{"version":3,"file":"scripts.min.js","sources":["../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../assets/js/base/_throttle.js","../../../assets/js/modules/_utility.js","../../../assets/js/base/_debounce.js","../../../assets/js/modules/_header.js","../../../assets/js/modules/_flyout.js","../../../assets/js/modules/_animation.js","../../../assets/js/modules/_table-of-contents.js","../../../assets/js/base/_slide.js","../../../assets/js/modules/_panels.js","../../../assets/js/modules/_menu.js","../../../assets/js/base/_object-fit-cover.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../assets/js/modules/_facet.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/awesomplete/awesomplete.js","../../../assets/js/modules/_search.js","../../../assets/js/scripts.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function (fn, time = 50) {\r\n\tlet timer = null;\r\n\r\n\tfunction throttledFn(...args) {\r\n\t\tif (!timer) {\r\n\t\t\ttimer = setTimeout(() => {\r\n\t\t\t\tfn(...args);\r\n\t\t\t\ttimer = null;\r\n\t\t\t}, time)\r\n\t\t}\r\n\t}\r\n\r\n\tthrottledFn.cancel = () => {\r\n\t\tclearTimeout(timer);\r\n\t\ttimer = null;\r\n\t}\r\n\r\n\treturn throttledFn;\r\n}\r\n","\r\nexport default class Utility {\r\n\tconstructor() {\r\n\t\tthis.opened = false;\r\n\t\tthis.node = document.querySelector('.utility');\r\n\r\n\t\tif ( !(this.node instanceof HTMLElement) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.lang = this.node.querySelector('.nav--language');\r\n\r\n\t\tif ( ! (this.lang) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.langToggle = this.lang.querySelector('.nav__menu-item--level-0 > .nav__link');\r\n\t\tthis.langDrop = this.lang.querySelector('.nav__menu--level-1');\r\n\r\n\t\tif ( ! this.langToggle || ! this.langDrop ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.handleLostFocus = () => {\r\n\t\t\tif ( ! this.opened ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet node = document.activeElement;\r\n\r\n\t\t\twhile ( node && node.parentNode ) {\r\n\t\t\t\tif ( this.lang === node ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnode = node.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\tthis.closeDropdown();\r\n\t\t};\r\n\r\n\t\tthis.handleRegionChange = (e) => {\r\n\t\t\tlet node = e.target;\r\n\r\n\t\t\twhile ( node && node !== this.langDrop ) {\r\n\t\t\t\tif ( node.tagName === 'A' ) {\r\n\t\t\t\t\treturn this.setCookie();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnode = node.parentNode;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdocument.body.addEventListener('focus', this.handleLostFocus, true);\r\n\t\tdocument.body.addEventListener('click', this.handleLostFocus, true);\r\n\t\tthis.langToggle.addEventListener('click', this.toggleDropdown.bind(this));\r\n\t\tthis.langDrop.addEventListener('click', this.handleRegionChange.bind(this));\r\n\t}\r\n\r\n\tsetCookie() {\r\n\t\tdocument.cookie = `wp-region-explicit=1;path=/`;\r\n\t}\r\n\r\n\ttoggleDropdown() {\r\n\t\treturn this.opened ? this.closeDropdown() : this.openDropdown();\r\n\t}\r\n\r\n\topenDropdown() {\r\n\t\tthis.opened = true;\r\n\t\tthis.langToggle.classList.add('nav__link--opened');\r\n\t\tthis.langDrop.removeAttribute('hidden');\r\n\t\tthis.langDrop.setAttribute('aria-expanded', 'true');\r\n\t}\r\n\r\n\tcloseDropdown() {\r\n\t\tthis.opened = false;\r\n\t\tthis.langToggle.classList.remove('nav__link--opened');\r\n\t\tthis.langDrop.setAttribute('hidden', 'hidden');\r\n\t\tthis.langDrop.setAttribute('aria-expanded', 'false');\r\n\t}\r\n}\r\n","export default function(fn, time = 100) {\r\n\tlet timer = null;\r\n\r\n\tconst cancel = () => {\r\n\t\tclearTimeout(timer);\r\n\t\ttimer = null;\r\n\t};\r\n\r\n\tfunction debouncedFn(...args) {\r\n\t\tcancel();\r\n\r\n\t\ttimer = setTimeout( () => {\r\n\t\t\tfn(...args);\r\n\t\t}, time )\r\n\t}\r\n\r\n\tdebouncedFn.cancel = cancel;\r\n\r\n\treturn debouncedFn;\r\n}\r\n","import throttle from '../base/_throttle';\r\nimport _debounce from '../base/_debounce';\r\n\r\nexport default class Header {\r\n\tconstructor() {\r\n\t\tthis.node = document.querySelector('.header');\r\n\r\n\t\tif ( ! this.node instanceof HTMLElement ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.wrap = this.node.querySelector('.header__wrap');\r\n\t\tthis.search = this.node.querySelector('.header__search');\r\n\t\tthis.hamburger = this.node.querySelector('.header__menu');\r\n\t\tthis.closeNav = this.node.querySelectorAll('.nav__close');\r\n\t\tthis.visibleClass = 'nav__menu-dropdown--visible';\r\n\t\tthis.visibleMenu = null;\r\n\t\tthis.menus = this.node.querySelectorAll('.nav__menu-item--level-0.menu-item-has-children');\r\n\t\tthis.isSticking = false;\r\n\t\tthis.stuckClass = 'header--stuck';\r\n\t\tthis.adminBar = document.getElementById('wpadminbar');\r\n\r\n\t\tthis.menus.forEach( menu => {\r\n\t\t\tconst toggler = menu.querySelector('.nav__menu-toggler');\r\n\t\t\tconst dropdown = menu.querySelector('.nav__menu-dropdown');\r\n\r\n\t\t\tif ( toggler && dropdown ) {\r\n\t\t\t\ttoggler.addEventListener( 'click', (e) => {\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tif ( dropdown.classList.contains( this.visibleClass ) ) {\r\n\t\t\t\t\t\tthis.closeDropdown( dropdown );\r\n\t\t\t\t\t\tthis.visibleMenu = null;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.openDropdown( dropdown );\r\n\r\n\t\t\t\t\t\tif ( this.visibleMenu && this.visibleMenu !== dropdown ) {\r\n\t\t\t\t\t\t\tthis.closeDropdown( this.visibleMenu );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.visibleMenu = dropdown;\r\n\t\t\t\t\t}\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\t// close the visible menu when clicking outside the menu\r\n\t\tdocument.body.addEventListener( 'click', (e) => {\r\n\t\t\tlet node = e.target;\r\n\r\n\t\t\tif ( this.visibleMenu ) {\r\n\t\t\t\twhile ( node && node.parentNode ) {\r\n\t\t\t\t\tif ( node === this.node ) {\r\n\t\t\t\t\t\t// click was inside the node = do nothing\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tnode = node.parentNode;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// click was outside the header - close the visible menu\r\n\t\t\t\tthis.closeDropdown( this.visibleMenu );\r\n\t\t\t\tthis.visibleMenu = null;\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\tthis.closeNav.forEach( menu => {\r\n\t\t\tmenu.addEventListener('click', (e) => {\r\n\t\t\t\tif (this.visibleMenu) {\r\n\t\t\t\t\tthis.closeDropdown(this.visibleMenu);\r\n\t\t\t\t\tthis.visibleMenu = null;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.throttledOnScroll = throttle( this.onScroll.bind(this), 50 );\r\n\r\n\t\tdocument.addEventListener( 'scroll', this.throttledOnScroll );\r\n\t\tthis.onScroll();\r\n\t}\r\n\r\n\tonScroll() {\r\n\t\tif ( this.isSticking ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst scrollTop = document.documentElement.scrollTop;\r\n\t\tconst isStuck = this.node.classList.contains( this.stuckClass );\r\n\t\tlet target = 0;\r\n\r\n\t\tif ( this.adminBar ) {\r\n\t\t\ttarget += this.adminBar.offsetHeight;\r\n\t\t}\r\n\r\n\t\tif ( ! isStuck && scrollTop > target ) {\r\n\t\t\tthis.stick( target );\r\n\t\t} else if ( isStuck && scrollTop <= target ) {\r\n\t\t\tthis.unstick();\r\n\t\t}\r\n\t}\r\n\r\n\tstick() {\r\n\t\tthis.isSticking = true;\r\n\t\tthis.node.classList.add( this.stuckClass );\r\n\t\tsetTimeout( () => this.isSticking = false, 500 );\r\n\t}\r\n\r\n\tunstick() {\r\n\t\tthis.isSticking = true;\r\n\t\tthis.node.classList.remove( this.stuckClass );\r\n\t\tsetTimeout( () => this.isSticking = false, 500 );\r\n\t}\r\n\r\n\topenDropdown( node ) {\r\n\t\tnode.classList.add( this.visibleClass );\r\n\t\tnode.setAttribute( 'aria-expanded', 'true' );\r\n\t}\r\n\r\n\tcloseDropdown( node ) {\r\n\t\tnode.classList.remove( this.visibleClass );\r\n\t\tnode.setAttribute( 'aria-expanded', 'false' );\r\n\t}\r\n}\r\n","export default class Flyout {\r\n\tconstructor() {\r\n\t\tthis.node = document.querySelector('.flyout');\r\n\r\n\t\tif ( ! this.node ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.classes = {\r\n\t\t\tbodyOpened : 'fixed',\r\n\t\t\tcontentOpened : 'flyout__content--opened',\r\n\t\t\tmenuOpened : 'flyout__submenu--opened',\r\n\t\t\topened : 'flyout--opened',\r\n\t\t\ttoggleActive : 'flyout__toggle--active',\r\n\t\t\tnavHasToggleActive: 'flyout__nav--has-toggle-active',\r\n\t\t};\r\n\r\n\t\tthis.closer = this.node.querySelector('.flyout__close');\r\n\t\tthis.content = this.node.querySelector('.flyout__content');\r\n\t\tthis.modeToggle = this.node.querySelector('.flyout__mode');\r\n\t\tthis.nav = this.node.querySelector('.flyout__nav');\r\n\t\tthis.backs = this.node.querySelectorAll('.flyout__back');\r\n\t\tthis.toggles = this.node.querySelectorAll('.flyout__toggle');\r\n\t\tthis.searchInput = this.node.querySelector('input[name=\"s\"]');\r\n\t\tthis.header = document.querySelector('.header');\r\n\r\n\t\tthis.modes = ['menu', 'search'];\r\n\t\tthis.setMode('menu');\r\n\r\n\t\tif ( this.modeToggle ) {\r\n\t\t\tthis.modeToggle.addEventListener('click', () => {\r\n\t\t\t\tif (this.mode === 'menu') {\r\n\t\t\t\t\tthis.setMode('search');\r\n\t\t\t\t\tthis.searchInput.focus();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.setMode('menu');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif ( this.closer ) {\r\n\t\t\tthis.closer.addEventListener('click', () => this.close());\r\n\t\t}\r\n\r\n\t\tif ( this.searchToggle ) {\r\n\t\t\tthis.searchToggle.addEventListener('click', () => this.mode('search'));\r\n\t\t}\r\n\r\n\t\t// handle esc/tab keys\r\n\t\tthis.handleKeyup = (e) => {\r\n\t\t\tif (this.opened) {\r\n\t\t\t\tif ( e.key === 'Escape' ) {\r\n\t\t\t\t\treturn this.close();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (e.key === 'Tab' && ! document.activeElement.closest('.flyout')) {\r\n\t\t\t\t\t// close the flyout when you tab out of it (if possible)\r\n\t\t\t\t\treturn this.close();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// handle close\r\n\t\tthis.handleClose = (e) => {\r\n\t\t\tif ( ! this.opened || e.target.closest('.flyout')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.close();\r\n\t\t};\r\n\r\n\t\tconst openSubmenu = (navItem) => {\r\n\t\t\tif ( ! navItem) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst submenu = navItem.querySelector('.flyout__submenu');\r\n\t\t\tconst toggle = navItem.querySelector('.flyout__toggle');\r\n\r\n\t\t\tthis.nav.classList.add(this.classes.navHasToggleActive);\r\n\t\t\ttoggle.classList.add(this.classes.toggleActive);\r\n\t\t\tsubmenu.classList.add(this.classes.menuOpened);\r\n\t\t\tsubmenu.style.height = `${submenu.scrollHeight}px`;\r\n\r\n\t\t\tsubmenu.querySelectorAll( 'a, button' ).forEach( node => {\r\n\t\t\t\tif ( node.dataset.tabIndex ) {\r\n\t\t\t\t\tnode.tabIndex = node.dataset.tabIndex;\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\r\n\t\t\tthis.content.scrollTo(0,0);\r\n\t\t}\r\n\r\n\t\tconst closeSubmenu = (navItem) => {\r\n\t\t\tif ( ! navItem ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst submenu = navItem.querySelector('.flyout__submenu');\r\n\t\t\tconst toggle = navItem.querySelector('.flyout__toggle');\r\n\r\n\t\t\tthis.nav.classList.remove(this.classes.navHasToggleActive);\r\n\t\t\ttoggle.classList.remove(this.classes.toggleActive);\r\n\t\t\tsubmenu.classList.remove(this.classes.menuOpened);\r\n\t\t\tsubmenu.style.height = '';\r\n\r\n\t\t\tsubmenu.querySelectorAll( 'a, button' ).forEach( node => {\r\n\t\t\t\tnode.tabIndex = -1;\r\n\t\t\t} );\r\n\r\n\t\t\tthis.content.scrollTo(0,0);\r\n\t\t}\r\n\r\n\t\tthis.node.querySelectorAll('.flyout__submenu a, .flyout__submenu button').forEach( node => {\r\n\t\t\tnode.dataset.tabIndex = node.tabIndex;\r\n\t\t\tnode.tabIndex = -1;\r\n\t\t} );\r\n\r\n\t\tthis.backs.forEach(back => {\r\n\t\t\tback.addEventListener('click', () => closeSubmenu(back.closest('.flyout__item')));\r\n\t\t});\r\n\r\n\t\tthis.toggles.forEach( toggle => {\r\n\t\t\ttoggle.addEventListener('click', () => {\r\n\t\t\t\tconst item = toggle.closest('.flyout__item');\r\n\r\n\t\t\t\tif (toggle.classList.contains(this.classes.toggleActive)) {\r\n\t\t\t\t\t// close\r\n\t\t\t\t\tcloseSubmenu(item);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// open\r\n\t\t\t\t\topenSubmenu(item);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\topen(mode) {\r\n\t\tif (mode) {\r\n\t\t\tthis.setMode(mode);\r\n\t\t}\r\n\r\n\t\tif ( this.header ) {\r\n\t\t\t// set the height so it's consistently below the header\r\n\t\t\tconst headerRect = this.header.getBoundingClientRect();\r\n\t\t\tthis.content.style.top = `${headerRect.top + headerRect.height}px`;\r\n\t\t}\r\n\r\n\t\tthis.opened = true;\r\n\t\tthis.node.style.display = 'block';\r\n\t\tdocument.body.classList.add(this.classes.bodyOpened);\r\n\t\tdocument.addEventListener('keyup', this.handleKeyup);\r\n\r\n\t\tthis.disableTabs();\r\n\r\n\t\tthis.previousActiveElement = document.activeElement;\r\n\r\n\t\trequestAnimationFrame( () => requestAnimationFrame( () => {\r\n\t\t\tthis.node.classList.add(this.classes.opened);\r\n\t\t\tthis.content.classList.add(this.classes.contentOpened);\r\n\r\n\t\t\tif (this.mode === 'search' && this.searchInput) {\r\n\t\t\t\tthis.searchInput.focus();\r\n\t\t\t} else if ( this.closer ) {\r\n\t\t\t\tthis.closer.focus();\r\n\t\t\t}\r\n\r\n\t\t\tthis.node.dispatchEvent( new CustomEvent('flyout:open', { bubbles: true, cancelable: false } ) );\r\n\t\t\tdocument.body.addEventListener('click', this.handleClose);\r\n\t\t} ) );\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.opened = false;\r\n\t\tdocument.removeEventListener('keyup', this.handleKeyup);\r\n\r\n\t\tconst onTransitionEnd = (e) => {\r\n\t\t\tthis.content.removeEventListener('transitionend', onTransitionEnd);\r\n\r\n\t\t\tthis.node.style.display = '';\r\n\r\n\t\t\tdocument.body.classList.remove(this.classes.bodyOpened);\r\n\t\t\tthis.node.classList.remove(this.classes.opened);\r\n\r\n\t\t\tif (this.previousActiveElement) {\r\n\t\t\t\tthis.previousActiveElement.focus();\r\n\t\t\t}\r\n\r\n\t\t\tthis.enableTabs();\r\n\r\n\t\t\tthis.node.dispatchEvent( new CustomEvent('flyout:close', { bubbles: true, cancelable: false }) );\r\n\t\t\tdocument.body.removeEventListener('click', this.handleClose);\r\n\t\t}\r\n\r\n\t\tthis.content.addEventListener('transitionend', onTransitionEnd);\r\n\t\tthis.content.classList.remove(this.classes.contentOpened);\r\n\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\tthis.opened ? this.closeSearch() : this.openSearch();\r\n\t}\r\n\r\n\tsetMode( mode = 'menu' ) {\r\n\t\tif ( ! this.modes.includes( mode ) ) {\r\n\t\t\treturn this.mode;\r\n\t\t}\r\n\r\n\t\tthis.mode = mode;\r\n\r\n\t\tthis.modes.forEach( m => {\r\n\t\t\tif ( mode === m ) {\r\n\t\t\t\tthis.node.classList.add(`flyout--${m}`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.node.classList.remove(`flyout--${m}`);\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\treturn this.mode;\r\n\t}\r\n\r\n\tgetTabs( scope = document ) {\r\n\t\treturn Array.from(scope.querySelectorAll([\r\n\t\t\t'select',\r\n\t\t\t'input',\r\n\t\t\t'textarea',\r\n\t\t\t'button',\r\n\t\t\t'a',\r\n\t\t\t'iframe',\r\n\t\t\t'object',\r\n\t\t\t'embed',\r\n\t\t\t'*[contenteditable]',\r\n\t\t\t'*[tabindex]',\r\n\t\t].join(', '))).filter(node => {\r\n\t\t\treturn ! node.closest('.flyout');\r\n\t\t});\r\n\t}\r\n\r\n\tdisableTabs() {\r\n\t\tconst tabs = this.getTabs();\r\n\r\n\t\ttabs.forEach(node => {\r\n\t\t\tlet prevTabIndex = node.getAttribute('tabIndex');\r\n\t\t\tif (prevTabIndex) {\r\n\t\t\t\tnode.setAttribute('data-tab-index', prevTabIndex);\r\n\t\t\t}\r\n\r\n\t\t\tnode.setAttribute('tabIndex', '-1');\r\n\t\t});\r\n\r\n\t\treturn tabs;\r\n\t}\r\n\r\n\tenableTabs() {\r\n\t\tconst tabs = this.getTabs();\r\n\r\n\t\ttabs.forEach(node => {\r\n\t\t\tlet prevTabIndex = node.getAttribute('data-tab-index');\r\n\t\t\tif (prevTabIndex) {\r\n\t\t\t\tnode.setAttribute('tabIndex', prevTabIndex);\r\n\t\t\t\tnode.removeAttribute('data-tab-index');\r\n\t\t\t} else {\r\n\t\t\t\tnode.removeAttribute('tabIndex');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn tabs;\r\n\t}\r\n}\r\n","\r\nvar isInViewport = function(elem) {\r\n var $bounding = elem.getBoundingClientRect();\r\n if (\r\n ($bounding.top <= window.innerHeight * 0.95 && $bounding.top > 0) ||\r\n ($bounding.bottom > 400 && $bounding.bottom < window.innerHeight * 0.95)\r\n ) {\r\n return true;\r\n }\r\n };\r\n\r\nvar media = document.querySelectorAll('.interactive-media__wrap');\r\nvar animate = document.querySelector('.animate');\r\n\r\nwindow.addEventListener('scroll', function(event) {\r\n\tif ( ! animate ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// add event on scroll\r\n\tmedia.forEach( element => {\r\n\t\tvar offset = element.getBoundingClientRect().top - element.offsetParent.getBoundingClientRect().top;\r\n\t\tconst top = window.pageYOffset + window.innerHeight - offset;\r\n\t\tif (top <= element.scrollHeight - 50 && isInViewport(element) ) {\r\n\t\t\t//if in Viewport\r\n\t\t\tanimate.classList.add(\"is-visible\");\r\n\t\t\tanimate.classList.remove(\"is-fadeout\");\r\n\t\t}\r\n\t\telse{\r\n\t\t\tanimate.classList.remove(\"is-visible\");\r\n\t\t\tanimate.classList.add(\"is-fadeout\");\r\n\t\t}\r\n\t});\r\n}, false);\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function(event) {\r\n // media.forEach(element => {\r\n // if (top <= element.scrollHeight - 50 && isInViewport(element)) {\r\n // //if in Viewport\r\n // animate.classList.add(\"is-visible\");\r\n // animate.classList.remove(\"is-fadeout\");\r\n // }\r\n // else{\r\n // animate.classList.remove(\"is-visible\");\r\n // animate.classList.add(\"is-fadeout\");\r\n // }\r\n // });\r\n});\r\n","var toc = document.querySelectorAll('.toc .toc__column');\r\n\r\nif (toc.length) {\r\n var menu =document.querySelectorAll('.toc .toc__column .toc-section .toc__title a');\r\n for(var i = 0; i < menu.length; i++){\r\n var item = document.getElementById(menu[i]?.getAttribute(\"href\").substring(1));\r\n item.parentElement.parentElement?.classList.add('toc-index' + (i+1),'toc-index');\r\n\r\n }\r\n}\r\n","const inlineProps = [\r\n\t'overflow',\r\n\t'height',\r\n\t'transition-duration',\r\n\t'transition-property',\r\n];\r\n\r\nconst getNodeHeight = ( node, computedStyle ) => {\r\n\tcomputedStyle = computedStyle || window.getComputedStyle(node);\r\n\r\n\tlet height = 0;\r\n\r\n\theight += node.scrollHeight;\r\n\r\n\treturn height;\r\n}\r\n\r\nconst ensureTransitions = ( node, computedStyle ) => {\r\n\tcomputedStyle = computedStyle || window.getComputedStyle(node);\r\n\r\n\tif ( computedStyle.transitionProperty !== 'all' ) {\r\n\t\tif ( computedStyle.transitionProperty.split(', ').indexOf( 'height' ) === -1 ) {\r\n\t\t\tnode.style.transitionProperty += ', height';\r\n\t\t}\r\n\t}\r\n\r\n\tif ( parseInt( computedStyle.transitionDuration, 10 ) <= 0 ) {\r\n\t\tnode.style.transitionDuration = '400ms';\r\n\t}\r\n}\r\n\r\nexport function slideUp( node ) {\r\n\treturn new Promise( ( resolve, reject ) => {\r\n\t\tconst computedStyle = window.getComputedStyle(node);\r\n\r\n\t\tnode.style.display = 'block';\r\n\t\tnode.style.overflow = 'hidden';\r\n\r\n\t\tconst height = getNodeHeight( node, computedStyle );\r\n\t\tnode.style.height = `${height}px`;\r\n\r\n\t\tensureTransitions( node, computedStyle );\r\n\r\n\t\tconst onTransitionEnd = (e) => {\r\n\t\t\tif ( e && e.propertyName === 'height' ) {\r\n\t\t\t\tinlineProps.forEach( prop => node.style.removeProperty( prop ) );\r\n\r\n\t\t\t\tnode.style.display = 'none';\r\n\t\t\t\tnode.removeEventListener('transitionend', onTransitionEnd);\r\n\t\t\t\tresolve();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tnode.addEventListener('transitionend', onTransitionEnd);\r\n\r\n\t\trequestAnimationFrame(() => {\r\n\t\t\trequestAnimationFrame( () => {\r\n\t\t\t\tnode.style.height = '0';\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n}\r\n\r\nexport function slideDown( node ) {\r\n\treturn new Promise( ( resolve, reject ) => {\r\n\t\tconst computedStyle = window.getComputedStyle(node);\r\n\r\n\t\tconst display = computedStyle.display;\r\n\t\tnode.style.display = display === 'none' ? 'block' : display;\r\n\r\n\t\tlet height = getNodeHeight( node, computedStyle );\r\n\r\n\t\tnode.style.height = 0;\r\n\t\tnode.style.overflow = 'hidden';\r\n\r\n\t\tensureTransitions( node, computedStyle );\r\n\r\n\t\tconst onTransitionEnd = (e) => {\r\n\t\t\tif ( e && e.propertyName === 'height' ) {\r\n\t\t\t\tinlineProps.forEach( prop => node.style.removeProperty( prop ) );\r\n\t\t\t\tnode.removeEventListener('transitionend', onTransitionEnd);\r\n\t\t\t\tresolve();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tnode.addEventListener('transitionend', onTransitionEnd);\r\n\r\n\t\trequestAnimationFrame(() => {\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tnode.style.height = `${height}px`;\r\n\t\t\t});\r\n\t\t});\r\n\t} );\r\n}\r\n\r\nexport function slideToggle( node ) {\r\n\tif ( node.getBoundingClientRect().height > 0 ) {\r\n\t\treturn slideUp( node );\r\n\t}\r\n\r\n\treturn slideDown( node );\r\n}\r\n","import plus from '../../svg/plus.svg';\r\nimport { slideToggle, slideDown, slideUp } from '../base/_slide.js';\r\n\r\nexport function toggle( panel, openClass = 'panels__panel--opened' ) {\r\n\tconst content = panel.querySelector('.panels__content');\r\n\r\n\tif ( ! content ) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif ( panel.classList.contains( openClass ) ) {\r\n\t\tpanel.classList.remove( openClass );\r\n\t\treturn slideUp( content );\r\n\t}\r\n\r\n\tpanel.classList.add( openClass );\r\n\treturn slideDown( content );\r\n}\r\n\r\nexport function init() {\r\n\t// document.querySelectorAll('.panels__title').forEach( title => title.insertAdjacentHTML( 'beforeend', `${plus}` ) );\r\n\r\n\tdocument.body.addEventListener( 'click', (e) => {\r\n\t\tlet node = e.target;\r\n\r\n\t\twhile ( node && node.parentNode ) {\r\n\t\t\tif ( node && node.matches( '.panels__title') ) {\r\n\t\t\t\tconst panel = node.closest('.panels__panel');\r\n\t\t\t\tif ( panel ) {\r\n\t\t\t\t\ttoggle( panel );\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tnode = node.parentNode;\r\n\t\t}\r\n\t} );\r\n}\r\n\r\ndocument.addEventListener( 'DOMContentLoaded', init );\r\n","// Add a class if the dropdown menu has description and button\r\nvar menu = document.querySelectorAll('.nav__menu--dropdown > .nav__menu-item > .nav__menu--details');\r\n\r\nfor(var i=0; i< menu.length; i++){\r\n var menuParent = menu[i].parentElement.classList.add(\"nav__menu--parent-details\");\r\n}\r\n// add column count if the ul has more than 5 li items\r\nvar ul = document.querySelectorAll('.nav__menu--dropdown > .nav__menu-item.nav__menu--parent-details.menu-item-has-children > .nav__menu--level-2');\r\nfor(var i=0; i< ul.length; i++){\r\n if(ul[i].children.length > 5) {\r\n ul[i].style.columnCount = 2;\r\n ul[i].style.columnGap = '100px';\r\n }\r\n}\r\n\r\n// check if a tag has a # or a vaid url. If a valid url add arrow icon\r\n\r\nvar dropdown = document.querySelectorAll('.nav__menu--dropdown > .nav__menu-item > .nav__link');\r\nfor(var i=0; i< dropdown.length; i++){\r\n var link = dropdown[i].getAttribute(\"href\");\r\n if(link != '#') {\r\n dropdown[i].classList.add(\"arrow-icon\")\r\n }\r\n}\r\n\r\n","/**\r\n * IE11 Fix to convert object-fit: cover to background-size: cover\r\n *\r\n * @param {string|NodeList|Array} nodes\r\n * @param {string} img the img selector\r\n * @param {string} position the background position to use\r\n */\r\nexport default function objectFitCover( nodes = '.object-fit-cover', img = 'img', position = 'center' ) {\r\n\tif ( typeof nodes === 'string' ) {\r\n\t\tnodes = Array.from( document.querySelectorAll( nodes ) );\r\n\t}\r\n\r\n\tif ( ! nodes.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfor ( let i = 0, nodesLength = nodes.length; i < nodesLength; i++ ) {\r\n\t\tlet imgNode = nodes[i].querySelector( img );\r\n\r\n\t\tif ( ! imgNode ) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tnodes[i].style.backgroundPosition = position;\r\n\t\tnodes[i].style.backgroundSize = 'cover';\r\n\t\tnodes[i].style.backgroundImage = `url(${imgNode.currentSrc || imgNode.src})`;\r\n\t\timgNode.style.display = 'none';\r\n\t}\r\n}\r\n\r\nif ( document.readyState.match(/complete|loaded/) ) {\r\n\tobjectFitCover();\r\n} else {\r\n\tdocument.addEventListener('DOMContentLoaded', objectFitCover);\r\n}\r\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { slideToggle } from \"../base/_slide\";\r\nimport debounce from \"../base/_debounce\";\r\n\r\n/**\r\n * This FacetForm is designed to work with the JsonQueriedObject model from an archive\r\n */\r\nexport class FacetForm {\r\n\r\n\tconstructor( form, opts = {} ) {\r\n\t\tthis.form = typeof form === 'string' ? document.querySelector( form ) : form;\r\n\t\tthis.opts = {\r\n\t\t\tresults : '.facet-form__results',\r\n\t\t\tfacets : '.facet-form__facets',\r\n\t\t\tfacetToggle : '.facet-form__facet-toggle',\r\n\t\t\tpagination : '.facet-form__pagination',\r\n\t\t\tpaginationLabel : '.facet-form__pagination-label',\r\n\t\t\tsorter : '.facet-form__sort',\r\n\t\t\tsearchInput : '.facet-form__search-input',\r\n\t\t\tapplied : '.facet-form__applied',\r\n\t\t\tappliedFilters : '.facet-form__applied-filters',\r\n\t\t\tappliedFiltersRemove: '.facet-form__applied-filter',\r\n\t\t\tappliedFiltersClear : '.facet-form__applied-clear',\r\n\t\t\tnoResultsMessage : 'There are no items that match your filters.',\r\n\t\t\tfacetOpenClass : 'facet-form__facets--open',\r\n\t\t\tfacetToggleOpenClass: 'facet-form__facet-toggle--open',\r\n\t\t\terrorClass : 'facet-form__error',\r\n\t\t\terrors : 'facet-form__errors',\r\n\t\t\tfacetAutoSubmit : true,\r\n\t\t\tliveSearch : false,\r\n\t\t\tliveSearchDebounce : 500,\r\n\t\t\tscrollOffset : 175,\r\n\t\t\t...this.form.dataset,\r\n\t\t\t...opts\r\n\t\t};\r\n\r\n\t\tif ( ! this.form instanceof HTMLFormElement ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( ! this.form.action ) {\r\n\t\t\tthis.form.action = this.form.dataset.action || ( window.location.origin + window.location.pathname );\r\n\t\t}\r\n\r\n\t\t[\r\n\t\t\t'results',\r\n\t\t\t'facets',\r\n\t\t\t'facetToggle',\r\n\t\t\t'pagination',\r\n\t\t\t'paginationLabel',\r\n\t\t\t'sorter',\r\n\t\t\t'searchInput',\r\n\t\t\t'applied',\r\n\t\t\t'appliedFilters',\r\n\t\t\t'errors',\r\n\t\t].forEach( opt => {\r\n\t\t\tif ( typeof this.opts[ opt ] === 'string' ) {\r\n\t\t\t\tswitch ( opt ) {\r\n\t\t\t\t\tcase 'paginationLabel':\r\n\t\t\t\t\t\tthis.opts[ opt ] = this.form.querySelectorAll( this.opts[ opt ] );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tthis.opts[ opt ] = this.form.querySelector( this.opts[ opt ] );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\tif ( ! this.opts.results instanceof HTMLElement ) {\r\n\t\t\tthis.opts.results = document.createElement( 'div' );\r\n\t\t\tthis.opts.results.classList.add( typeof opts.results === 'string' ? opts.results.replace(/^\\.|#/, '') : 'facet-form__items' );\r\n\t\t\tthis.form.insertAdjacentElement( 'afterend', this.opts.results );\r\n\t\t}\r\n\r\n\t\tif ( this.opts.pagination instanceof HTMLElement ) {\r\n\t\t\tthis.opts.pagination.addEventListener('click', this.onPaginate.bind(this));\r\n\t\t}\r\n\r\n\t\tif ( this.opts.appliedFilters instanceof HTMLElement ) {\r\n\t\t\tthis.opts.appliedFilters.addEventListener('click', this.onRemoveFilter.bind(this));\r\n\t\t}\r\n\r\n\t\tif ( this.opts.facetToggle && this.opts.facets ) {\r\n\t\t\tthis.opts.facetToggle.addEventListener('click', () => {\r\n\t\t\t\tthis.opts.facets.classList.toggle( this.opts.facetOpenClass );\r\n\t\t\t\tthis.opts.facetToggle.classList.toggle( this.opts.facetToggleOpenClass );\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\tif ( this.opts.searchInput && this.opts.liveSearch ) {\r\n\t\t\tthis.opts.searchInput.addEventListener( 'input', debounce( () => {\r\n\t\t\t\tif ( this.opts.searchInput.value ) {\r\n\t\t\t\t\tthis.refresh()\r\n\t\t\t\t}\r\n\t\t\t}, Number( this.opts.liveSearchDebounce ) ) );\r\n\t\t}\r\n\r\n\t\tthis.form.addEventListener('submit', this.onSubmit.bind(this));\r\n\t\tthis.form.addEventListener('change', this.onChange.bind(this));\r\n\t\twindow.addEventListener('popstate', this.onPopstate.bind(this));\r\n\t}\r\n\r\n\tonPaginate(e) {\r\n\t\te.preventDefault();\r\n\r\n\t\tlet node = e.target;\r\n\r\n\t\twhile ( node !== this.opts.pagination ) {\r\n\t\t\tif ( node.dataset.page ) {\r\n\t\t\t\tconst urlSearchParams = this.getParams();\r\n\t\t\t\turlSearchParams.set( 'paged', node.dataset.page );\r\n\t\t\t\tthis.refresh( urlSearchParams );\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tnode = node.parentNode;\r\n\t\t}\r\n\t}\r\n\r\n\tonSubmit(e) {\r\n\t\te.preventDefault();\r\n\t\tthis.refresh();\r\n\t}\r\n\r\n\tonChange(e) {\r\n\t\tif ( ! this.opts.facetAutoSubmit ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( e.target.tagName === 'SELECT' || ( e.target.tagName === 'INPUT' && [ 'checkbox', 'radio' ].includes( e.target.type ) ) ) {\r\n\t\t\tthis.wasFocused = {\r\n\t\t\t\tname: e.target.name,\r\n\t\t\t\tvalue: e.target.value\r\n\t\t\t};\r\n\t\t\tthis.refresh();\r\n\t\t}\r\n\t}\r\n\r\n\tonRemoveFilter(e) {\r\n\t\tif ( e.target && e.target.parentNode ) {\r\n\t\t\tlet node = e.target;\r\n\r\n\t\t\twhile ( node && node !== this.opts.appliedFilters ) {\r\n\t\t\t\tif ( node.matches( this.opts.appliedFiltersRemove ) ) {\r\n\t\t\t\t\tlet input = this.form[ node.dataset.name ];\r\n\r\n\t\t\t\t\tif ( input ) {\r\n\t\t\t\t\t\tif ( ! input.length ) {\r\n\t\t\t\t\t\t\tinput = [ input ];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tArray.from( input ).filter( inputNode => inputNode.value === node.dataset.value ).forEach(inputNode => {\r\n\t\t\t\t\t\t\tif ( 'checkbox' === inputNode.type ) {\r\n\t\t\t\t\t\t\t\tinputNode.checked = false;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tinputNode.value = '';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tthis.refresh();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( node.matches( this.opts.appliedFiltersClear ) ) {\r\n\t\t\t\t\tArray.from( this.form.elements ).filter( node => node.checked ).forEach( node => node.checked = false );\r\n\t\t\t\t\tthis.refresh();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnode = node.parentNode;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonPopstate(e) {\r\n\t\tif ( e.state && e.state.data ) {\r\n\t\t\tthis.clearError();\r\n\t\t\tthis.clearTemplates();\r\n\t\t\tthis.render( e.state.data );\r\n\t\t\tthis.scrollIntoView();\r\n\t\t} else {\r\n\t\t\tconst urlSearchParams = new URLSearchParams( window.location.search );\r\n\t\t\tthis.refresh( urlSearchParams, false );\r\n\t\t}\r\n\t}\r\n\r\n\tgetParams( formData ) {\r\n\t\tif ( ! formData ) {\r\n\t\t\tformData = new FormData( this.form );\r\n\t\t}\r\n\r\n\t\tArray.from( formData.keys() ).forEach( key => {\r\n\t\t\tif ( ! formData.getAll( key ).filter( v => v ).length ) {\r\n\t\t\t\tformData.delete(key);\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\t// ignore orderby if a q param (search) isn't present\r\n\t\tif ( formData.get( 'orderby' ) && ! formData.get('q') ) {\r\n\t\t\tformData.delete( 'orderby' );\r\n\t\t}\r\n\r\n\t\tif ( ! formData.get('paged' ) && this.paged > 1 ) {\r\n\t\t\tformData.append( 'paged', this.paged );\r\n\t\t}\r\n\r\n\t\treturn new URLSearchParams( formData );\r\n\t}\r\n\r\n\tdispatchEvent( type, detail = {} ) {\r\n\t\tthis.form.dispatchEvent(\r\n\t\t\tnew CustomEvent(\r\n\t\t\t\ttype,\r\n\t\t\t\t{\r\n\t\t\t\t\tbubbles: true,\r\n\t\t\t\t\tcancellable: false,\r\n\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\tfacetForm: this,\r\n\t\t\t\t\t\t...detail,\r\n\t\t\t\t\t},\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tclearTemplates() {\r\n\t\t[\r\n\t\t\t'results',\r\n\t\t\t'facets',\r\n\t\t\t'pagination',\r\n\t\t\t'paginationLabel',\r\n\t\t\t'appliedFilters',\r\n\t\t].forEach( node => {\r\n\t\t\tif ( this.opts[ node ] ) {\r\n\t\t\t\tlet nodes = Array.isArray( this.opts[ node ] ) ? this.opts[ node ] : [ this.opts[ node ] ];\r\n\r\n\t\t\t\tnodes.forEach( n => {\r\n\t\t\t\t\tif ( n instanceof HTMLElement ) {\r\n\t\t\t\t\t\tn = [ n ];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tn.forEach( n => {\r\n\t\t\t\t\t\tArray.from( n.children ).forEach( child => {\r\n\t\t\t\t\t\t\tconst evt = new CustomEvent(\r\n\t\t\t\t\t\t\t\t'facetform:clearTemplates:child',\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tbubbles: false,\r\n\t\t\t\t\t\t\t\t\tcancelable: true\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\tif ( child.dispatchEvent( evt ) ) {\r\n\t\t\t\t\t\t\t\tchild.parentNode.removeChild( child );\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconsole.log( child );\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} );\r\n\t\t\t\t\t} );\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\t\t} );\r\n\t}\r\n\r\n\trefresh(urlSearchParams, history = true) {\r\n\t\tthis.dispatchEvent( 'facetform:refresh:start', { urlSearchParams } );\r\n\r\n\t\tthis.form.classList.add( 'is-loading' );\r\n\r\n\t\tif ( ! urlSearchParams ) {\r\n\t\t\turlSearchParams = this.getParams();\r\n\t\t}\r\n\r\n\t\tlet historyUrl = window.location.origin + window.location.pathname;\r\n\r\n\t\tif ( Array.from( urlSearchParams.keys() ).length > 0 ) {\r\n\t\t\thistoryUrl += '?' + ( urlSearchParams.toString() );\r\n\t\t}\r\n\r\n\t\turlSearchParams.set( 'json', '1' );\r\n\r\n\t\tlet payload = {};\r\n\r\n\t\twindow.fetch( `${this.form.action}?${urlSearchParams.toString()}`, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Accept': 'application/json',\r\n\t\t\t\t'Content-Type': 'x-www-form-urlencoded',\r\n\t\t\t}\r\n\t\t} ).then( response => {\r\n\t\t\treturn response.json();\r\n\t\t} ).then( data => {\r\n\t\t\tpayload = data;\r\n\t\t\tthis.clearError();\r\n\t\t\tthis.clearTemplates();\r\n\t\t\tthis.render( data );\r\n\t\t} ).catch( fault => {\r\n\t\t\tthis.clearTemplates();\r\n\t\t\tthis.setError( fault.toString() );\r\n\t\t\tpayload = fault;\r\n\t\t\tconsole.error( fault );\r\n\t\t} ).finally( () => {\r\n\t\t\tthis.form.classList.remove( 'is-loading' );\r\n\r\n\t\t\tif ( history ) {\r\n\t\t\t\twindow.history.pushState(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdata: payload,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpayload.title || '',\r\n\t\t\t\t\thistoryUrl\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tthis.scrollIntoView();\r\n\t\t\tthis.dispatchEvent( 'facetform:refresh:complete', { payload } );\r\n\t\t} );\r\n\t}\r\n\r\n\trender( data ) {\r\n\t\tif ( data.items.length > 0 ) {\r\n\t\t\tthis.opts.results.insertAdjacentHTML( 'beforeend', data.items.map( item => item.view ).join('') );\r\n\t\t} else {\r\n\t\t\tthis.setError( this.opts.noResultsMessage.replace( /%s/, this.opts.searchInput.value ? this.opts.searchInput.value : 'your current filters' ) );\r\n\t\t}\r\n\r\n\t\tif ( this.opts.facets && data.facets ) {\r\n\t\t\tthis.opts.facets.insertAdjacentHTML( 'beforeend', data.facets.map( facet => facet.view ).join('') );\r\n\t\t}\r\n\r\n\t\tif ( this.opts.pagination && data.pagination ) {\r\n\t\t\tthis.opts.pagination.insertAdjacentHTML( 'beforeend', data.pagination );\r\n\t\t}\r\n\r\n\t\tif ( this.opts.paginationLabel.length && data.paginationLabel ) {\r\n\t\t\tthis.opts.paginationLabel.forEach( paginationLabel => paginationLabel.innerHTML = data.paginationLabel );\r\n\t\t}\r\n\r\n\t\tif ( this.opts.sorter ) {\r\n\t\t\tif ( data.q && data.items.length ) {\r\n\t\t\t\tthis.opts.sorter.removeAttribute('hidden');\r\n\t\t\t} else {\r\n\t\t\t\tthis.opts.sorter.hidden = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( this.opts.searchInput && ! this.opts.liveSearch ) {\r\n\t\t\tif ( data.q ) {\r\n\t\t\t\tthis.opts.searchInput.value = data.q;\r\n\t\t\t} else {\r\n\t\t\t\tthis.opts.searchInput.value = '';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( this.opts.applied ) {\r\n\t\t\tif ( data.facetsApplied && data.facetsApplied.active > 0 ) {\r\n\t\t\t\tthis.opts.applied.removeAttribute('hidden');\r\n\t\t\t} else {\r\n\t\t\t\tthis.opts.applied.hidden = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( this.opts.appliedFilters && data?.facetsApplied?.view ) {\r\n\t\t\tthis.opts.appliedFilters.innerHTML = data.facetsApplied.view;\r\n\t\t}\r\n\r\n\t\tif ( data.title ) {\r\n\t\t\tdocument.title = data.title;\r\n\t\t}\r\n\r\n\t\tif ( this.wasFocused ) {\r\n\t\t\tconst toFocus = this.form.querySelector( `[name=\"${this.wasFocused.name}\"][value=\"${this.wasFocused.value}\"]` );\r\n\r\n\t\t\tif ( toFocus ) {\r\n\t\t\t\ttoFocus.focus();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.dispatchEvent( 'facetform:render', { data } );\r\n\r\n\t\tif ( this.wasFocused ) {\r\n\t\t\tdelete this.wasFocused;\r\n\t\t}\r\n\t}\r\n\r\n\tscrollIntoView( node = this.opts.results ) {\r\n\t\tconst rect = node.getBoundingClientRect();\r\n\r\n\t\tif ( rect.top < 0 ) {\r\n\t\t\tconst top = window.scrollY + rect.top - this.opts.scrollOffset;\r\n\r\n\t\t\twindow.scrollTo( {\r\n\t\t\t\ttop,\r\n\t\t\t\tbehavior: 'smooth',\r\n\t\t\t} );\r\n\t\t}\r\n\t}\r\n\r\n\tsetError(msg) {\r\n\t\tthis.form.classList.add('has-error');\r\n\r\n\t\tif ( ! this.opts.errors ) {\r\n\t\t\tthis.opts.errors = document.createElement('div');\r\n\t\t\tthis.opts.errors.classList.add(this.opts.errorClass);\r\n\t\t}\r\n\r\n\t\tthis.opts.errors.innerHTML = msg;\r\n\r\n\t\tif ( ! this.opts.errors.parentNode ) {\r\n\t\t\tthis.opts.results.insertAdjacentElement( 'afterend', this.opts.errors );\r\n\t\t}\r\n\r\n\t\tthis.dispatchEvent( 'facetform:error', { msg } );\r\n\t}\r\n\r\n\tclearError() {\r\n\t\tthis.form.classList.remove('has-error');\r\n\r\n\t\tif ( this.opts.errors && this.opts.errors.parentNode ) {\r\n\t\t\tthis.opts.errors.parentNode.removeChild( this.opts.errors );\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function facetForm( form = '.facet-form', opts = {} ) {\r\n\treturn new FacetForm( form, opts );\r\n}\r\n\r\nexport function facetForms( selector = '.facet-form', opts = {} ) {\r\n\treturn Array.from( document.querySelectorAll( selector ) ).map( form => new FacetForm( form, opts ) );\r\n}\r\n\r\nexport class CheckboxFacet {\r\n\tconstructor( node, opts = {} ) {\r\n\t\tthis.node = node;\r\n\t\tthis.opts = Object.assign( {\r\n\t\t\topenClass : 'facet--open',\r\n\t\t\tnoMatchClass : 'facet--no-match',\r\n\t\t\tinvertedClass : 'facet--inverted',\r\n\t\t\ttoggler : '.facet__toggler',\r\n\t\t\tsearch : '.facet__search',\r\n\t\t\tfilters : '.facet__filter',\r\n\t\t\tdropdown : '.facet__dropdown',\r\n\t\t\tmobileMediaQuery: '(max-width: 848px)',\r\n\t\t}, opts );\r\n\r\n\t\tthis.opened = false;\r\n\r\n\t\tthis.toggler = this.node.querySelector( this.opts.toggler );\r\n\t\tthis.search = this.node.querySelector( this.opts.search );\r\n\t\tthis.dropdown = this.node.querySelector( this.opts.dropdown );\r\n\t\tthis.filters = Array.from( this.node.querySelectorAll( this.opts.filters ) );\r\n\t\tthis.searchData = this.filters.map( node => {\r\n\t\t\treturn {\r\n\t\t\t\tnode,\r\n\t\t\t\tname: node.querySelector( '.facet__name' ).textContent.toLowerCase().replace( /\\s/g, '' )\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\t// open/close\r\n\t\tthis.toggler.addEventListener( 'click', this.toggle.bind(this) );\r\n\r\n\t\tif( this.search ) {\r\n\t\t\t// search on input\r\n\t\t\tthis.search.addEventListener( 'input', this.filter.bind(this) );\r\n\r\n\t\t\t// go ahead and filter if the input already has value\r\n\t\t\tthis.filter();\r\n\t\t}\r\n\r\n\t\t// don't propagate click events on checkboxes/labels outside the node\r\n\t\tthis.node.addEventListener( 'click', (e) => {\r\n\t\t\tlet node = e.target;\r\n\r\n\t\t\twhile( node.parentNode && node !== this.node ) {\r\n\t\t\t\tif ( 'LABEL' === node.tagName || ( 'INPUT' === node.tagName && 'checkbox' === node.type ) ) {\r\n\t\t\t\t\treturn e.stopPropagation();\r\n\t\t\t\t}\r\n\t\t\t\tnode = node.parentNode;\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\t// listen for clicks outside the node and close if outside - but not on mobile\r\n\t\tthis.listenForClose = (e) => {\r\n\t\t\tif ( ! window.matchMedia( this.opts.mobileMediaQuery ).matches ) {\r\n\t\t\t\tlet node = document.activeElement;\r\n\r\n\t\t\t\twhile( node && node.parentNode ) {\r\n\t\t\t\t\tif ( node === this.node ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tnode = node.parentNode;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// listen for the esc key\r\n\t\tthis.listenForEsc = (e) => {\r\n\t\t\tif ( this.opened && e.key === 'Escape' ) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst focusPrevFilter = () => {\r\n\t\t\tif ( document.activeElement !== this.search ) {\r\n\t\t\t\tconst focusable = this.filters.filter( filter => ! filter.hidden );\r\n\r\n\t\t\t\tif ( focusable.length > 0 ) {\r\n\t\t\t\t\tconst focused = document.activeElement.closest( this.opts.filters );\r\n\t\t\t\t\tconst toFocusIndex = focusable.indexOf( focused ) - 1;\r\n\r\n\t\t\t\t\tif ( toFocusIndex > -1 ) {\r\n\t\t\t\t\t\tfocusable[ toFocusIndex ].querySelector('input').focus();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.search.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.search.focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst focusNextFilter = () => {\r\n\t\t\tconst focusable = this.filters.filter( filter => ! filter.hidden );\r\n\r\n\t\t\tif ( focusable.length > 0 ) {\r\n\t\t\t\tif ( document.activeElement === this.search ) {\r\n\t\t\t\t\tfocusable[0].querySelector( 'input' ).focus();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst focused = document.activeElement.closest( this.opts.filters );\r\n\t\t\t\t\tconst toFocusIndex = focusable.indexOf( focused ) + 1;\r\n\r\n\t\t\t\t\tif ( toFocusIndex < focusable.length ) {\r\n\t\t\t\t\t\tfocusable[ toFocusIndex ].querySelector('input').focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.search.focus();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.listenForArrow = ( e ) => {\r\n\t\t\tif ( this.opened ) {\r\n\t\t\t\tswitch( e.key ) {\r\n\t\t\t\t\tcase 'ArrowUp':\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tfocusPrevFilter();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'ArrowDown':\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tfocusNextFilter();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tfilter() {\r\n\t\tif ( ! this.search ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst search = this.search.value.toLowerCase().replace( /\\s/g, '' );\r\n\t\tlet hasMatch = false;\r\n\r\n\t\tthis.searchData.forEach( datum => {\r\n\t\t\tif ( datum.name.indexOf( search ) > -1 ) {\r\n\t\t\t\tdatum.node.removeAttribute( 'hidden' );\r\n\t\t\t\thasMatch = true;\r\n\t\t\t} else {\r\n\t\t\t\tdatum.node.setAttribute( 'hidden', 'hidden' );\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\tif ( false === hasMatch ) {\r\n\t\t\tthis.node.classList.add( this.opts.noMatchClass );\r\n\t\t} else {\r\n\t\t\tthis.node.classList.remove( this.opts.noMatchClass );\r\n\t\t}\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.opened = true;\r\n\t\tthis.node.classList.add( this.opts.openClass );\r\n\t\tdocument.body.addEventListener( 'onClick', this.listenForClose );\r\n\t\tthis.node.addEventListener( 'keydown', this.listenForArrow );\r\n\t\tdocument.addEventListener( 'keyup', this.listenForEsc );\r\n\r\n\t\tif ( this.search ) {\r\n\t\t\tthis.search.focus();\r\n\t\t}\r\n\r\n\t\tif ( this.dropdown.getBoundingClientRect().bottom > window.innerHeight ) {\r\n\t\t\tthis.node.classList.add( this.opts.invertedClass );\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.opened = false;\r\n\t\tthis.node.classList.remove( this.opts.openClass );\r\n\t\tthis.node.classList.remove( this.opts.invertedClass );\r\n\t\tdocument.body.removeEventListener('onClick', this.listenForClose);\r\n\t\tthis.node.removeEventListener( 'keydown', this.listenForArrow );\r\n\t\tdocument.removeEventListener( 'keyup', this.listenForEsc );\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\treturn this.opened ? this.close() : this.open();\r\n\t}\r\n}\r\n\r\nexport function checkboxFacet( node, opts = {} ) {\r\n\tif ( typeof node === 'string' ) {\r\n\t\tnode = document.querySelector( node );\r\n\t}\r\n\r\n\treturn new CheckboxFacet( node, opts );\r\n};\r\n\r\nexport function checkboxFacets( nodes = '.facet--checkbox', opts = {} ) {\r\n\tif ( typeof nodes === 'string' ) {\r\n\t\tnodes = document.querySelectorAll(nodes);\r\n\t}\r\n\r\n\treturn Array.from( nodes ).map( node => new CheckboxFacet( node, opts ) );\r\n};\r\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/**\n * Simple, lightweight, usable local autocomplete library for modern browsers\n * Because there weren’t enough autocomplete scripts in the world? Because I’m completely insane and have NIH syndrome? Probably both. :P\n * @author Lea Verou http://leaverou.github.io/awesomplete\n * MIT license\n */\n\n(function () {\n\nvar _ = function (input, o) {\n\tvar me = this;\n\n // Keep track of number of instances for unique IDs\n _.count = (_.count || 0) + 1;\n this.count = _.count;\n\n\t// Setup\n\n\tthis.isOpened = false;\n\n\tthis.input = $(input);\n\tthis.input.setAttribute(\"autocomplete\", \"off\");\n\tthis.input.setAttribute(\"aria-expanded\", \"false\");\n\tthis.input.setAttribute(\"aria-owns\", \"awesomplete_list_\" + this.count);\n\tthis.input.setAttribute(\"role\", \"combobox\");\n\n\t// store constructor options in case we need to distinguish\n\t// between default and customized behavior later on\n\tthis.options = o = o || {};\n\n\tconfigure(this, {\n\t\tminChars: 2,\n\t\tmaxItems: 10,\n\t\tautoFirst: false,\n\t\tdata: _.DATA,\n\t\tfilter: _.FILTER_CONTAINS,\n\t\tsort: o.sort === false ? false : _.SORT_BYLENGTH,\n\t\tcontainer: _.CONTAINER,\n\t\titem: _.ITEM,\n\t\treplace: _.REPLACE,\n\t\ttabSelect: false\n\t}, o);\n\n\tthis.index = -1;\n\n\t// Create necessary elements\n\n\tthis.container = this.container(input);\n\n\tthis.ul = $.create(\"ul\", {\n\t\thidden: \"hidden\",\n role: \"listbox\",\n id: \"awesomplete_list_\" + this.count,\n\t\tinside: this.container\n\t});\n\n\tthis.status = $.create(\"span\", {\n\t\tclassName: \"visually-hidden\",\n\t\trole: \"status\",\n\t\t\"aria-live\": \"assertive\",\n \"aria-atomic\": true,\n inside: this.container,\n textContent: this.minChars != 0 ? (\"Type \" + this.minChars + \" or more characters for results.\") : \"Begin typing for results.\"\n\t});\n\n\t// Bind events\n\n\tthis._events = {\n\t\tinput: {\n\t\t\t\"input\": this.evaluate.bind(this),\n\t\t\t\"blur\": this.close.bind(this, { reason: \"blur\" }),\n\t\t\t\"keydown\": function(evt) {\n\t\t\t\tvar c = evt.keyCode;\n\n\t\t\t\t// If the dropdown `ul` is in view, then act on keydown for the following keys:\n\t\t\t\t// Enter / Esc / Up / Down\n\t\t\t\tif(me.opened) {\n\t\t\t\t\tif (c === 13 && me.selected) { // Enter\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select(undefined, undefined, evt);\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 9 && me.selected && me.tabSelect) {\n\t\t\t\t\t\tme.select(undefined, undefined, evt);\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 27) { // Esc\n\t\t\t\t\t\tme.close({ reason: \"esc\" });\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 38 || c === 40) { // Down/Up arrow\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme[c === 38? \"previous\" : \"next\"]();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tform: {\n\t\t\t\"submit\": this.close.bind(this, { reason: \"submit\" })\n\t\t},\n\t\tul: {\n\t\t\t// Prevent the default mousedowm, which ensures the input is not blurred.\n\t\t\t// The actual selection will happen on click. This also ensures dragging the\n\t\t\t// cursor away from the list item will cancel the selection\n\t\t\t\"mousedown\": function(evt) {\n\t\t\t\tevt.preventDefault();\n\t\t\t},\n\t\t\t// The click event is fired even if the corresponding mousedown event has called preventDefault\n\t\t\t\"click\": function(evt) {\n\t\t\t\tvar li = evt.target;\n\n\t\t\t\tif (li !== this) {\n\n\t\t\t\t\twhile (li && !/li/i.test(li.nodeName)) {\n\t\t\t\t\t\tli = li.parentNode;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (li && evt.button === 0) { // Only select on left click\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select(li, evt.target, evt);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t$.bind(this.input, this._events.input);\n\t$.bind(this.input.form, this._events.form);\n\t$.bind(this.ul, this._events.ul);\n\n\tif (this.input.hasAttribute(\"list\")) {\n\t\tthis.list = \"#\" + this.input.getAttribute(\"list\");\n\t\tthis.input.removeAttribute(\"list\");\n\t}\n\telse {\n\t\tthis.list = this.input.getAttribute(\"data-list\") || o.list || [];\n\t}\n\n\t_.all.push(this);\n};\n\n_.prototype = {\n\tset list(list) {\n\t\tif (Array.isArray(list)) {\n\t\t\tthis._list = list;\n\t\t}\n\t\telse if (typeof list === \"string\" && list.indexOf(\",\") > -1) {\n\t\t\t\tthis._list = list.split(/\\s*,\\s*/);\n\t\t}\n\t\telse { // Element or CSS selector\n\t\t\tlist = $(list);\n\n\t\t\tif (list && list.children) {\n\t\t\t\tvar items = [];\n\t\t\t\tslice.apply(list.children).forEach(function (el) {\n\t\t\t\t\tif (!el.disabled) {\n\t\t\t\t\t\tvar text = el.textContent.trim();\n\t\t\t\t\t\tvar value = el.value || text;\n\t\t\t\t\t\tvar label = el.label || text;\n\t\t\t\t\t\tif (value !== \"\") {\n\t\t\t\t\t\t\titems.push({ label: label, value: value });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis._list = items;\n\t\t\t}\n\t\t}\n\n\t\tif (document.activeElement === this.input) {\n\t\t\tthis.evaluate();\n\t\t}\n\t},\n\n\tget selected() {\n\t\treturn this.index > -1;\n\t},\n\n\tget opened() {\n\t\treturn this.isOpened;\n\t},\n\n\tclose: function (o) {\n\t\tif (!this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.input.setAttribute(\"aria-expanded\", \"false\");\n\t\tthis.ul.setAttribute(\"hidden\", \"\");\n\t\tthis.isOpened = false;\n\t\tthis.index = -1;\n\n\t\tthis.status.setAttribute(\"hidden\", \"\");\n\n\t\t$.fire(this.input, \"awesomplete-close\", o || {});\n\t},\n\n\topen: function () {\n\t\tthis.input.setAttribute(\"aria-expanded\", \"true\");\n\t\tthis.ul.removeAttribute(\"hidden\");\n\t\tthis.isOpened = true;\n\n\t\tthis.status.removeAttribute(\"hidden\");\n\n\t\tif (this.autoFirst && this.index === -1) {\n\t\t\tthis.goto(0);\n\t\t}\n\n\t\t$.fire(this.input, \"awesomplete-open\");\n\t},\n\n\tdestroy: function() {\n\t\t//remove events from the input and its form\n\t\t$.unbind(this.input, this._events.input);\n\t\t$.unbind(this.input.form, this._events.form);\n\n\t\t// cleanup container if it was created by Awesomplete but leave it alone otherwise\n\t\tif (!this.options.container) {\n\t\t\t//move the input out of the awesomplete container and remove the container and its children\n\t\t\tvar parentNode = this.container.parentNode;\n\n\t\t\tparentNode.insertBefore(this.input, this.container);\n\t\t\tparentNode.removeChild(this.container);\n\t\t}\n\n\t\t//remove autocomplete and aria-autocomplete attributes\n\t\tthis.input.removeAttribute(\"autocomplete\");\n\t\tthis.input.removeAttribute(\"aria-autocomplete\");\n\n\t\t//remove this awesomeplete instance from the global array of instances\n\t\tvar indexOfAwesomplete = _.all.indexOf(this);\n\n\t\tif (indexOfAwesomplete !== -1) {\n\t\t\t_.all.splice(indexOfAwesomplete, 1);\n\t\t}\n\t},\n\n\tnext: function () {\n\t\tvar count = this.ul.children.length;\n\t\tthis.goto(this.index < count - 1 ? this.index + 1 : (count ? 0 : -1) );\n\t},\n\n\tprevious: function () {\n\t\tvar count = this.ul.children.length;\n\t\tvar pos = this.index - 1;\n\n\t\tthis.goto(this.selected && pos !== -1 ? pos : count - 1);\n\t},\n\n\t// Should not be used, highlights specific item without any checks!\n\tgoto: function (i) {\n\t\tvar lis = this.ul.children;\n\n\t\tif (this.selected) {\n\t\t\tlis[this.index].setAttribute(\"aria-selected\", \"false\");\n\t\t}\n\n\t\tthis.index = i;\n\n\t\tif (i > -1 && lis.length > 0) {\n\t\t\tlis[i].setAttribute(\"aria-selected\", \"true\");\n\n\t\t\tthis.status.textContent = lis[i].textContent + \", list item \" + (i + 1) + \" of \" + lis.length;\n\n this.input.setAttribute(\"aria-activedescendant\", this.ul.id + \"_item_\" + this.index);\n\n\t\t\t// scroll to highlighted element in case parent's height is fixed\n\t\t\tthis.ul.scrollTop = lis[i].offsetTop - this.ul.clientHeight + lis[i].clientHeight;\n\n\t\t\t$.fire(this.input, \"awesomplete-highlight\", {\n\t\t\t\ttext: this.suggestions[this.index]\n\t\t\t});\n\t\t}\n\t},\n\n\tselect: function (selected, origin, originalEvent) {\n\t\tif (selected) {\n\t\t\tthis.index = $.siblingIndex(selected);\n\t\t} else {\n\t\t\tselected = this.ul.children[this.index];\n\t\t}\n\n\t\tif (selected) {\n\t\t\tvar suggestion = this.suggestions[this.index];\n\n\t\t\tvar allowed = $.fire(this.input, \"awesomplete-select\", {\n\t\t\t\ttext: suggestion,\n\t\t\t\torigin: origin || selected,\n\t\t\t\toriginalEvent: originalEvent\n\t\t\t});\n\n\t\t\tif (allowed) {\n\t\t\t\tthis.replace(suggestion);\n\t\t\t\tthis.close({ reason: \"select\" });\n\t\t\t\t$.fire(this.input, \"awesomplete-selectcomplete\", {\n\t\t\t\t\ttext: suggestion,\n\t\t\t\t\toriginalEvent: originalEvent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\n\tevaluate: function() {\n\t\tvar me = this;\n\t\tvar value = this.input.value;\n\n\t\tif (value.length >= this.minChars && this._list && this._list.length > 0) {\n\t\t\tthis.index = -1;\n\t\t\t// Populate list with options that match\n\t\t\tthis.ul.innerHTML = \"\";\n\n\t\t\tthis.suggestions = this._list\n\t\t\t\t.map(function(item) {\n\t\t\t\t\treturn new Suggestion(me.data(item, value));\n\t\t\t\t})\n\t\t\t\t.filter(function(item) {\n\t\t\t\t\treturn me.filter(item, value);\n\t\t\t\t});\n\n\t\t\tif (this.sort !== false) {\n\t\t\t\tthis.suggestions = this.suggestions.sort(this.sort);\n\t\t\t}\n\n\t\t\tthis.suggestions = this.suggestions.slice(0, this.maxItems);\n\n\t\t\tthis.suggestions.forEach(function(text, index) {\n\t\t\t\t\tme.ul.appendChild(me.item(text, value, index));\n\t\t\t\t});\n\n\t\t\tif (this.ul.children.length === 0) {\n\n this.status.textContent = \"No results found\";\n\n\t\t\t\tthis.close({ reason: \"nomatches\" });\n\n\t\t\t} else {\n\t\t\t\tthis.open();\n\n this.status.textContent = this.ul.children.length + \" results found\";\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.close({ reason: \"nomatches\" });\n\n this.status.textContent = \"No results found\";\n\t\t}\n\t}\n};\n\n// Static methods/properties\n\n_.all = [];\n\n_.FILTER_CONTAINS = function (text, input) {\n\treturn RegExp($.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.FILTER_STARTSWITH = function (text, input) {\n\treturn RegExp(\"^\" + $.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.SORT_BYLENGTH = function (a, b) {\n\tif (a.length !== b.length) {\n\t\treturn a.length - b.length;\n\t}\n\n\treturn a < b? -1 : 1;\n};\n\n_.CONTAINER = function (input) {\n\treturn $.create(\"div\", {\n\t\tclassName: \"awesomplete\",\n\t\taround: input\n\t});\n}\n\n_.ITEM = function (text, input, item_id) {\n\tvar html = input.trim() === \"\" ? text : text.replace(RegExp($.regExpEscape(input.trim()), \"gi\"), \"$&\");\n\treturn $.create(\"li\", {\n\t\tinnerHTML: html,\n\t\t\"role\": \"option\",\n\t\t\"aria-selected\": \"false\",\n\t\t\"id\": \"awesomplete_list_\" + this.count + \"_item_\" + item_id\n\t});\n};\n\n_.REPLACE = function (text) {\n\tthis.input.value = text.value;\n};\n\n_.DATA = function (item/*, input*/) { return item; };\n\n// Private functions\n\nfunction Suggestion(data) {\n\tvar o = Array.isArray(data)\n\t ? { label: data[0], value: data[1] }\n\t : typeof data === \"object\" && \"label\" in data && \"value\" in data ? data : { label: data, value: data };\n\n\tthis.label = o.label || o.value;\n\tthis.value = o.value;\n}\nObject.defineProperty(Suggestion.prototype = Object.create(String.prototype), \"length\", {\n\tget: function() { return this.label.length; }\n});\nSuggestion.prototype.toString = Suggestion.prototype.valueOf = function () {\n\treturn \"\" + this.label;\n};\n\nfunction configure(instance, properties, o) {\n\tfor (var i in properties) {\n\t\tvar initial = properties[i],\n\t\t attrValue = instance.input.getAttribute(\"data-\" + i.toLowerCase());\n\n\t\tif (typeof initial === \"number\") {\n\t\t\tinstance[i] = parseInt(attrValue);\n\t\t}\n\t\telse if (initial === false) { // Boolean options must be false by default anyway\n\t\t\tinstance[i] = attrValue !== null;\n\t\t}\n\t\telse if (initial instanceof Function) {\n\t\t\tinstance[i] = null;\n\t\t}\n\t\telse {\n\t\t\tinstance[i] = attrValue;\n\t\t}\n\n\t\tif (!instance[i] && instance[i] !== 0) {\n\t\t\tinstance[i] = (i in o)? o[i] : initial;\n\t\t}\n\t}\n}\n\n// Helpers\n\nvar slice = Array.prototype.slice;\n\nfunction $(expr, con) {\n\treturn typeof expr === \"string\"? (con || document).querySelector(expr) : expr || null;\n}\n\nfunction $$(expr, con) {\n\treturn slice.call((con || document).querySelectorAll(expr));\n}\n\n$.create = function(tag, o) {\n\tvar element = document.createElement(tag);\n\n\tfor (var i in o) {\n\t\tvar val = o[i];\n\n\t\tif (i === \"inside\") {\n\t\t\t$(val).appendChild(element);\n\t\t}\n\t\telse if (i === \"around\") {\n\t\t\tvar ref = $(val);\n\t\t\tref.parentNode.insertBefore(element, ref);\n\t\t\telement.appendChild(ref);\n\n\t\t\tif (ref.getAttribute(\"autofocus\") != null) {\n\t\t\t\tref.focus();\n\t\t\t}\n\t\t}\n\t\telse if (i in element) {\n\t\t\telement[i] = val;\n\t\t}\n\t\telse {\n\t\t\telement.setAttribute(i, val);\n\t\t}\n\t}\n\n\treturn element;\n};\n\n$.bind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function (event) {\n\t\t\t\telement.addEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.unbind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function(event) {\n\t\t\t\telement.removeEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.fire = function(target, type, properties) {\n\tvar evt = document.createEvent(\"HTMLEvents\");\n\n\tevt.initEvent(type, true, true );\n\n\tfor (var j in properties) {\n\t\tevt[j] = properties[j];\n\t}\n\n\treturn target.dispatchEvent(evt);\n};\n\n$.regExpEscape = function (s) {\n\treturn s.replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n};\n\n$.siblingIndex = function (el) {\n\t/* eslint-disable no-cond-assign */\n\tfor (var i = 0; el = el.previousElementSibling; i++);\n\treturn i;\n};\n\n// Initialization\n\nfunction init() {\n\t$$(\"input.awesomplete\").forEach(function (input) {\n\t\tnew _(input);\n\t});\n}\n\n// Make sure to export Awesomplete on self when in a browser\nif (typeof self !== \"undefined\") {\n\tself.Awesomplete = _;\n}\n\n// Are we in a browser? Check for Document constructor\nif (typeof Document !== \"undefined\") {\n\t// DOM already loaded?\n\tif (document.readyState !== \"loading\") {\n\t\tinit();\n\t}\n\telse {\n\t\t// Wait for it\n\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t}\n}\n\n_.$ = $;\n_.$$ = $$;\n\n// Expose Awesomplete as a CJS module\nif (typeof module === \"object\" && module.exports) {\n\tmodule.exports = _;\n}\n\nreturn _;\n\n}());\n","import debounce from '../base/_debounce';\r\nimport Awesomplete from 'awesomplete';\r\nimport autocompleteSvg from '../../svg/arrow-right.svg';\r\n\r\nconst autocompleteIcon = autocompleteSvg.replace(/(height|width)=\"[\\d]+\"/g, '$1=\"16\"');\r\nconst searchCache = {};\r\n\r\nclass Search {\r\n\tconstructor( form, { awesomplete = {}, ...opts } ) {\r\n\t\tthis.form = form;\r\n\t\tthis.opts = {\r\n\t\t\tinput : 's',\r\n\t\t\tinputAlt : 'q',\r\n\t\t\tdebounce : 500,\r\n\t\t\tloadingClass: 'searchform--loading',\r\n\t\t\tawesomplete: {\r\n\t\t\t\tfilter: () => true,\r\n\t\t\t\tsort: false,\r\n\t\t\t\tlist: [],\r\n\t\t\t\tminChars: 1,\r\n\t\t\t\tmaxItems: 8,\r\n\t\t\t\titem: ( match, inputText ) => {\r\n\t\t\t\t\tconst listItem = document.createElement( 'li' );\r\n\t\t\t\t\tlistItem.setAttribute( 'role', 'option' );\r\n\t\t\t\t\tlistItem.setAttribute( 'aria-selected', 'false' );\r\n\t\t\t\t\tlistItem.innerHTML = `${match.label.replace( new RegExp( `(${inputText})`, 'g' ), '$1' )} ${autocompleteIcon}`;\r\n\r\n\t\t\t\t\treturn listItem;\r\n\t\t\t\t},\r\n\t\t\t\t...awesomplete,\r\n\t\t\t},\r\n\t\t\t...opts\r\n\t\t};\r\n\r\n\t\tthis.input = this.form[ this.opts.input ] || this.form[ this.opts.inputAlt ];\r\n\r\n\t\tif ( ! this.input ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.awesomplete = new Awesomplete( this.input, this.opts.awesomplete );\r\n\r\n\t\tthis.input.addEventListener( 'input', debounce( (e) => {\r\n\t\t\tif ( this.input.value ) {\r\n\t\t\t\tif ( searchCache[ this.input.value ] ) {\r\n\t\t\t\t\tthis.render( searchCache[ this.input.value ] );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.request( this.input.value );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.awesomplete.list = [];\r\n\t\t\t\tthis.awesomplete.evaluate();\r\n\t\t\t}\r\n\t\t}, this.opts.debounce ) );\r\n\r\n\t\tthis.input.addEventListener( 'focus', () => this.awesomplete.open() );\r\n\t\tthis.input.addEventListener( 'blur', () => this.awesomplete.close() );\r\n\t\tthis.input.addEventListener( 'awesomplete-open', () => {\r\n\t\t\tif ( this.awesomplete._list.length ) {\r\n\t\t\t\tthis.form.classList.add('searchform--ac-open')\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.input.addEventListener( 'awesomplete-close', () => this.form.classList.remove('searchform--ac-open') );\r\n\r\n\t\tthis.input.addEventListener('awesomplete-select', (e) => {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tif ( e.text.value ) {\r\n\t\t\t\twindow.location.href = e.text.value;\r\n\t\t\t}\r\n\t\t} );\r\n\t}\r\n\r\n\trequest( search ) {\r\n\t\tthis.form.classList.add(this.opts.loadingClass);\r\n\r\n\t\tconst params = new URLSearchParams( {\r\n\t\t\t[ this.input.name ]: search,\r\n\t\t\tjson: '1',\r\n\t\t} );\r\n\r\n\t\tconst url = `${this.form.action}${this.form.action.indexOf('?') === -1 ? '?' : ''}${params.toString()}`;\r\n\r\n\t\treturn fetch( url ).then( response => {\r\n\t\t\treturn response.json()\r\n\t\t} ).then( data => {\r\n\t\t\tsearchCache[ search ] = data.items.map( item => ( { label: item.title.rendered, value: item.link } ) );\r\n\t\t\tthis.render( searchCache[ search ] );\r\n\t\t} ).catch( ( fault ) => {\r\n\t\t\tconsole.error( fault );\r\n\t\t} ).finally( () => {\r\n\t\t\tthis.form.classList.remove(this.opts.loadingClass);\r\n\t\t} );\r\n\t}\r\n\r\n\trender( list ) {\r\n\t\tthis.awesomplete.list = list;\r\n\t\tthis.awesomplete.evaluate();\r\n\t}\r\n}\r\n\r\nexport function searchAutocomplete( selector = '.searchform', opts = {} ) {\r\n\treturn Array.from(document.querySelectorAll(selector)).map(form => {\r\n\t\treturn new Search(form, opts);\r\n\t} );\r\n}\r\n\r\nexport function searchInventory( selector = '.flyout--search-form' ) {\r\n\tconst searchInventorySwap = function( node ) {\r\n\t\tconst inventoryForm = node.querySelector('.searchform--inventory');\r\n\t\tconst otherForm = node.querySelector('.searchform:not(.searchform--inventory)');\r\n\t\tconst toggler = node.querySelector('.searchform-inventory__cb');\r\n\t\tconst lsKey = 'searchInventory';\r\n\r\n\t\tif ( ! inventoryForm || ! otherForm || ! toggler ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst setState = ( checked ) => {\r\n\t\t\tif ( toggler.checked ) {\r\n\t\t\t\totherForm.hidden = true;\r\n\t\t\t\tinventoryForm.removeAttribute('hidden');\r\n\t\t\t\tlocalStorage.setItem(lsKey, '1');\r\n\t\t\t} else {\r\n\t\t\t\tinventoryForm.hidden = true;\r\n\t\t\t\totherForm.removeAttribute('hidden');\r\n\t\t\t\tlocalStorage.removeItem(lsKey);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttoggler.addEventListener( 'change', () => setState( toggler.checked ) );\r\n\t\tsetState( localStorage.getItem(lsKey) );\r\n\t}\r\n\r\n\treturn Array.from( document.querySelectorAll( selector ) ).map( searchInventorySwap );\r\n}\r\n","import throttle from './base/_throttle.js';\r\nimport Utility from './modules/_utility.js';\r\nimport Header from './modules/_header.js';\r\nimport Flyout from './modules/_flyout.js';\r\nimport './modules/_animation.js';\r\nimport './modules/_table-of-contents.js';\r\nimport './modules/_panels.js';\r\nimport './modules/_menu.js';\r\nimport './base/_object-fit-cover.js';\r\nimport { checkboxFacets, facetForms } from './modules/_facet';\r\nimport { searchAutocomplete, searchInventory } from './modules/_search.js';\r\n\r\nclass Scripts {\r\n\tconstructor() {\r\n\t\tdocument.addEventListener( 'DOMContentLoaded', this.ready.bind( this ) );\r\n\t\twindow.addEventListener( 'resize', throttle( this.resize.bind( this ), 25 ) );\r\n\t\tthis.resize();\r\n\t}\r\n\r\n\tready() {\r\n\t\tthis.header = new Header();\r\n\t\tthis.flyout = new Flyout();\r\n\t\tthis.utility = new Utility();\r\n\r\n\t\tthis.header.hamburger.addEventListener('click', () => this.flyout.open('menu'));\r\n\t\tthis.header.search.addEventListener('click', () => this.flyout.open('search'));\r\n\r\n\t\tconst group = document.querySelector( '.main__wrap > .wp-block-group:last-child' );\r\n\r\n\t\tif ( group ) {\r\n\t\t\tgroup.classList.add( 'group-last' );\r\n\t\t}\r\n\r\n\t\tfacetForms();\r\n\t\tcheckboxFacets();\r\n\t\tdocument.body.addEventListener( 'facetform:render', () => checkboxFacets() );\r\n\r\n\t\tthis.targetBlank( 'a[href$=\".pdf\"]' );\r\n\t\tthis.targetBlank( '.flyout__item--brands a.flyout__link' );\r\n\t\tdocument.body.addEventListener( 'facetform:render', () => this.targetBlank( 'a[href$=\".pdf\"]' ) );\r\n\r\n\t\tsearchAutocomplete( '.flyout .searchform' );\r\n\t\tsearchAutocomplete( 'footer .searchform', { awesomplete: { maxItems: 5 } } );\r\n\t\tsearchInventory();\r\n\t}\r\n\r\n\tresize() {\r\n\t\tif ( ! document.body ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// using this to allow css to know if it should exclude the scroll bar in calc's\r\n\t\tif ( window.innerWidth === document.body.clientWidth ) {\r\n\t\t\tdocument.documentElement.classList.remove( 'has-scrollbar' );\r\n\t\t} else {\r\n\t\t\tdocument.documentElement.classList.add( 'has-scrollbar' );\r\n\t\t}\r\n\t}\r\n\r\n\ttargetBlank( selector ) {\r\n\t\tdocument.querySelectorAll( selector ).forEach(anchor => {\r\n\t\t\tif ( ! anchor.target ) {\r\n\t\t\t\tanchor.target = '_blank';\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport default new Scripts;\r\n"],"names":["_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","throttle","fn","time","timer","throttledFn","_len","arguments","args","Array","_key","setTimeout","apply","cancel","clearTimeout","Utility","_this","this","opened","node","document","querySelector","HTMLElement","lang","langToggle","langDrop","handleLostFocus","activeElement","parentNode","closeDropdown","handleRegionChange","e","tagName","setCookie","body","addEventListener","toggleDropdown","bind","cookie","openDropdown","classList","add","removeAttribute","setAttribute","remove","debounce","debouncedFn","Header","wrap","search","hamburger","closeNav","querySelectorAll","visibleClass","visibleMenu","menus","isSticking","stuckClass","adminBar","getElementById","forEach","menu","toggler","dropdown","preventDefault","contains","throttledOnScroll","onScroll","scrollTop","documentElement","isStuck","offsetHeight","stick","unstick","_this2","_this3","value","Flyout","classes","bodyOpened","contentOpened","menuOpened","toggleActive","navHasToggleActive","closer","content","modeToggle","nav","backs","toggles","searchInput","header","modes","setMode","mode","focus","close","searchToggle","handleKeyup","closest","handleClose","closeSubmenu","navItem","submenu","toggle","style","height","tabIndex","scrollTo","dataset","back","item","scrollHeight","openSubmenu","headerRect","getBoundingClientRect","top","concat","display","disableTabs","previousActiveElement","requestAnimationFrame","dispatchEvent","CustomEvent","bubbles","cancelable","removeEventListener","onTransitionEnd","enableTabs","closeSearch","openSearch","_this4","includes","m","scope","from","join","filter","tabs","getTabs","prevTabIndex","getAttribute","media","animate","window","event","element","offset","offsetParent","pageYOffset","innerHeight","elem","$bounding","bottom","isInViewport","_menu$i","_item$parentElement$p","substring","parentElement","inlineProps","getNodeHeight","computedStyle","getComputedStyle","ensureTransitions","transitionProperty","split","indexOf","parseInt","transitionDuration","slideUp","Promise","resolve","reject","overflow","propertyName","prop","removeProperty","slideDown","panel","openClass","matches","ul","children","columnCount","columnGap","objectFitCover","nodes","img","position","nodesLength","imgNode","backgroundPosition","backgroundSize","backgroundImage","currentSrc","src","_defineProperty","obj","readyState","match","FacetForm","form","opts","_objectSpread","results","facets","facetToggle","pagination","paginationLabel","sorter","applied","appliedFilters","appliedFiltersRemove","appliedFiltersClear","noResultsMessage","facetOpenClass","facetToggleOpenClass","errorClass","errors","facetAutoSubmit","liveSearch","liveSearchDebounce","scrollOffset","HTMLFormElement","action","location","origin","pathname","opt","createElement","replace","insertAdjacentElement","onPaginate","onRemoveFilter","refresh","Number","onSubmit","onChange","onPopstate","page","urlSearchParams","getParams","set","type","wasFocused","name","input","inputNode","checked","elements","state","data","clearError","clearTemplates","render","scrollIntoView","URLSearchParams","formData","FormData","keys","getAll","v","delete","get","paged","append","detail","cancellable","facetForm","isArray","n","child","evt","removeChild","console","log","history","historyUrl","toString","payload","fetch","headers","Accept","then","response","json","catch","fault","setError","error","finally","pushState","title","_data$facetsApplied","items","insertAdjacentHTML","map","view","facet","innerHTML","q","hidden","facetsApplied","active","toFocus","undefined","rect","scrollY","behavior","msg","CheckboxFacet","_this5","assign","noMatchClass","invertedClass","filters","mobileMediaQuery","searchData","textContent","toLowerCase","stopPropagation","listenForClose","matchMedia","listenForEsc","focusPrevFilter","focusable","focused","toFocusIndex","focusNextFilter","listenForArrow","hasMatch","datum","open","checkboxFacets","_objectWithoutProperties","source","excluded","sourceKeys","objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","call","_","o","me","count","isOpened","$","options","properties","initial","attrValue","Function","configure","minChars","maxItems","autoFirst","DATA","FILTER_CONTAINS","sort","SORT_BYLENGTH","container","CONTAINER","ITEM","REPLACE","tabSelect","index","create","role","id","inside","status","className","_events","evaluate","blur","reason","keydown","c","keyCode","selected","select","submit","mousedown","click","li","test","nodeName","button","hasAttribute","list","all","push","Suggestion","label","_list","slice","el","disabled","text","trim","fire","goto","destroy","unbind","insertBefore","indexOfAwesomplete","splice","next","previous","pos","lis","offsetTop","clientHeight","suggestions","originalEvent","siblingIndex","suggestion","appendChild","RegExp","regExpEscape","FILTER_STARTSWITH","a","b","around","item_id","html","String","valueOf","expr","con","$$","init","tag","val","ref","callback","createEvent","j","initEvent","s","previousElementSibling","self","Awesomplete","Document","module","exports","autocompleteIcon","searchCache","Search","_ref","_ref$awesomplete","awesomplete","_excluded","inputAlt","loadingClass","inputText","listItem","request","href","_URLSearchParams","params","url","rendered","link","searchAutocomplete","selector","Scripts","ready","resize","flyout","utility","group","facetForms","targetBlank","searchInventorySwap","inventoryForm","otherForm","lsKey","setState","localStorage","setItem","removeItem","getItem","searchInventory","innerWidth","clientWidth","anchor"],"mappings":"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"}