{"version":3,"file":"app.171146b58fee0c638328.js","mappings":"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","sources":["webpack://silverstripe-base/./themes/app/src/scripts/components/index.js","webpack://silverstripe-base/./themes/app/src/scripts/components/scroll-to.js","webpack://silverstripe-base/./themes/app/src/scripts/components/site-announcement-bar.js","webpack://silverstripe-base/./themes/app/src/scripts/components/site-header.js","webpack://silverstripe-base/./themes/app/src/scripts/components/site-widget.js","webpack://silverstripe-base/./themes/app/src/scripts/common/slide.js","webpack://silverstripe-base/./themes/app/src/scripts/components/slide-toggle.js","webpack://silverstripe-base/./themes/app/src/index.js","webpack://silverstripe-base/./themes/app/src/scripts/components/mobile-bar.js","webpack://silverstripe-base/./themes/app/src/scripts/components/page-overlay.js","webpack://silverstripe-base/./themes/app/src/scripts/components/scroll-reveal.js","webpack://silverstripe-base/./themes/app/src/scripts/common/scroll-to.js"],"sourcesContent":["// Dynamically loads any components based on page conditions\n\nconst pageHas = (selector) => {\n return document.querySelectorAll(selector).length\n}\n\nconst loadComponents = async () => {\n if (pageHas('[data-paginated-list]')) {\n const { default: component } = await import(\n /* webpackChunkName: \"components-paginated-list\" */ '@scripts/components/paginated-list'\n )\n\n component.init()\n }\n\n if (pageHas('[data-modal]')) {\n const { default: component } = await import(/* webpackChunkName: \"components-modal\" */ '@scripts/components/modal')\n\n component.init()\n }\n\n if (pageHas('[data-popover]')) {\n const { default: component } = await import(\n /* webpackChunkName: \"components-popover\" */ '@scripts/components/popover'\n )\n\n component.init()\n }\n\n if (pageHas('[data-tooltip]')) {\n const { default: component } = await import(\n /* webpackChunkName: \"components-tooltip\" */ '@scripts/components/tooltip'\n )\n\n component.init()\n }\n\n if (pageHas('[data-tablist]')) {\n const { default: component } = await import(\n /* webpackChunkName: \"components-popover\" */ '@scripts/components/tablist'\n )\n\n component.init()\n }\n\n if (pageHas('.page-header-media-slider')) {\n const { default: component } = await import(\n /* webpackChunkName: \"components-page-header\" */ '@scripts/components/page-header'\n )\n\n component.init()\n }\n}\n\nexport default {\n init: loadComponents,\n}\n","import { on } from 'delegated-events'\nimport scrollTo from '@common/scroll-to'\n\nconst ignorePageTypes = []\n\nconst handleScroll = (event, el) => {\n let targetSelector = null\n\n if (el.dataset.scroll) {\n targetSelector = el.dataset.scroll\n } else if (el.tagName === 'A') {\n targetSelector = el.hash\n } else {\n return\n }\n\n if (targetSelector) {\n const target = document.querySelector(targetSelector)\n let offset = 0\n\n if (target) {\n event.preventDefault()\n\n // Deactivate navigation menu if active\n document.documentElement.classList.remove('js-site-menu-open')\n\n scrollTo(target, offset)\n }\n }\n}\n\nconst handleUrl = () => {\n const shouldIgnore = Array.from(document.body.classList).some((x) => ignorePageTypes.includes(x))\n\n if (shouldIgnore) {\n return\n }\n\n if (window.location.hash) {\n let targetSelector = window.location.hash\n\n let target = document.querySelector(targetSelector)\n\n if (target) {\n setTimeout(() => {\n window.scrollTo(0, 0)\n }, 1)\n\n setTimeout(() => {\n scrollTo(target)\n }, 250)\n }\n }\n}\n\n// Automatically scrolls to the first element with the [data-scrolltome] attribute\nconst handleScrollToMe = () => {\n const target = document.querySelector('[data-scrolltome]')\n\n if (target) {\n setTimeout(() => {\n scrollTo(target)\n }, 250)\n }\n}\n\nexport default {\n init: () => {\n on('click', '[data-scroll]', (event) => {\n const el = event.target.closest('[data-scroll]')\n\n handleScroll(event, el)\n })\n\n // Handle any custom anchor tags\n on('click', '.wysiwyg a[href*=\"#\"]:not(.ignore-scroll)', (event) => {\n const el = event.target.closest('a')\n\n handleScroll(event, el)\n })\n\n handleUrl()\n handleScrollToMe()\n },\n}\n","import { on } from 'delegated-events'\n\nconst topBar = document.querySelector('.site-announcement-bar')\n\nconst handleClose = () => {\n topBar.remove()\n setHeight()\n}\n\nconst setHeight = () => {\n document.documentElement.style.setProperty('--site-announcement-height', `${topBar.offsetHeight}px`)\n}\n\nexport default {\n init: () => {\n if (topBar) {\n on('click', '.site-announcement-bar-close', handleClose)\n\n setHeight()\n window.addEventListener('resize', setHeight)\n }\n },\n}\n","import { on } from 'delegated-events'\n\nconst siteHeader = document.querySelector('.site-header')\nconst siteMenu = document.querySelector('.site-menu')\nconst siteSearch = document.querySelector('.site-search')\nconst calendarSearch = document.querySelector('.calendar-search')\n\nconst openMenu = () => {\n document.documentElement.classList.add('js-site-menu-open')\n}\n\nconst closeMenu = () => {\n document.documentElement.classList.remove('js-site-menu-open')\n\n if (siteMenu) {\n siteMenu.querySelectorAll('.is-active').forEach((el) => {\n const trigger = el.querySelector('[data-slide-toggle]')\n const target = document.getElementById(trigger.getAttribute('aria-controls'))\n\n target.style = null\n trigger.setAttribute('aria-expanded', 'false')\n el.classList.remove('is-active')\n })\n }\n}\n\nconst toggleSearch = () => {\n if (document.documentElement.classList.contains('js-site-search-open')) {\n document.documentElement.classList.remove('js-site-search-open')\n\n siteSearch.querySelector('form').reset()\n } else {\n document.documentElement.classList.add('js-site-search-open')\n\n siteSearch.querySelector('input').focus()\n }\n}\n\nconst toggleCalendarSearch = () => {\n if (document.documentElement.classList.contains('js-calendar-search-open')) {\n document.documentElement.classList.remove('js-calendar-search-open')\n\n calendarSearch.querySelector('form').reset()\n } else {\n document.documentElement.classList.add('js-calendar-search-open')\n\n calendarSearch.querySelector('input').focus()\n }\n }\n\nexport default {\n init: () => {\n const scrollPixel = document.querySelector('.scroll-pixel')\n\n if (scrollPixel) {\n const observer = new IntersectionObserver(\n ([e]) => siteHeader.classList.toggle('is-stuck', e.intersectionRatio < 1),\n {\n threshold: [1],\n }\n )\n\n observer.observe(document.querySelector('.scroll-pixel'))\n }\n\n on('click', '.site-menu-open', openMenu)\n on('click', '.site-menu-close', closeMenu)\n on('click', '.site-menu-screen', closeMenu)\n on('click', '.site-search-trigger', toggleSearch)\n on('click', '.calendar-search-trigger', toggleCalendarSearch)\n },\n}\n","import Cookies from 'js-cookie'\nimport { on } from 'delegated-events'\n\nconst widget = document.querySelector('.site-widget')\n\nconst setCookie = (state) => {\n Cookies.set('widgetstate', state, {\n expires: 1,\n })\n}\n\nconst handleToggle = () => {\n const offset = widget.querySelector('.site-widget-top').offsetHeight\n\n if (widget.getAttribute('aria-expanded') === 'false') {\n widget.style.transform = 'translate3d(0, 0, 0)'\n widget.setAttribute('aria-expanded', 'true')\n setCookie('active')\n } else {\n widget.style.transform = `translate3d(0, calc(100% - ${offset}px), 0)`\n widget.setAttribute('aria-expanded', 'false')\n setCookie('inactive')\n }\n}\n\nconst handleClose = (e) => {\n e.stopPropagation()\n\n widget.remove()\n}\n\nexport default {\n init: () => {\n if (widget) {\n on('click', '.site-widget-top', handleToggle)\n on('click', '.site-widget-close', handleClose)\n\n const offset = widget.querySelector('.site-widget-top').offsetHeight\n\n if (Cookies.get('widgetstate') === 'inactive') {\n setTimeout(() => {\n widget.style.transform = `translate3d(0, calc(100% - ${offset}px), 0)`\n widget.setAttribute('aria-expanded', 'false')\n }, 25)\n setCookie('inactive')\n } else {\n widget.classList.add('no-animate')\n widget.style.transform = 'translate3d(0, 0, 0)'\n widget.setAttribute('aria-expanded', 'true')\n setCookie('active')\n\n setTimeout(() => {\n widget.classList.remove('no-animate')\n }, 750)\n }\n\n if (widget.classList.contains('has-auto-hide')) {\n setTimeout(() => {\n if (widget.getAttribute('aria-expanded') === 'true') {\n widget.style.transform = `translate3d(0, calc(100% - ${offset}px), 0)`\n widget.setAttribute('aria-expanded', 'false')\n setCookie('inactive')\n }\n }, 5000)\n }\n }\n },\n}\n","import { up, down, toggle } from 'slide-element'\n\nexport const slideUp = (element, duration = 400, display = 'block') => {\n element.classList.add('is-sliding')\n\n const slide = up(element, {\n duration,\n display,\n easing: 'ease-out',\n })\n\n slide.then(() => {\n element.classList.remove('is-sliding')\n })\n\n return slide\n}\n\nexport const slideDown = (element, duration = 400, display = 'block') => {\n element.classList.add('is-sliding')\n\n const slide = down(element, {\n duration,\n display,\n easing: 'ease-out',\n })\n\n slide.then(() => {\n element.classList.remove('is-sliding')\n })\n\n return slide\n}\n\nexport const slideToggle = (element, duration = 400, display = 'block') => {\n element.classList.add('is-sliding')\n\n const slide = toggle(element, {\n duration,\n display,\n easing: 'ease-out',\n })\n\n slide.then(() => {\n element.classList.remove('is-sliding')\n })\n\n return slide\n}\n","import '@styles/components/slide-toggle.css'\nimport { on, off } from 'delegated-events'\nimport { slideToggle } from '@common/slide'\nimport scrollTo from '@common/scroll-to'\n\nconst handleToggle = async (e) => {\n if (e.type === 'keyup' && e.keyCode !== 13) {\n return\n }\n\n if (e.target.closest('[data-scroll]')) {\n return\n }\n\n const trigger = e.target.closest('[data-slide-toggle]')\n\n if (!trigger) {\n return\n }\n\n const target = document.getElementById(trigger.getAttribute('aria-controls'))\n\n if (!target) {\n return\n }\n\n const otherTriggers = Array.from(\n document.querySelectorAll(`[data-slide-toggle][aria-controls=\"${trigger.getAttribute('aria-controls')}\"]`)\n ).filter((x) => x !== trigger)\n\n if (trigger.getAttribute('aria-expanded') === 'false') {\n trigger.setAttribute('aria-expanded', 'true')\n otherTriggers.forEach((x) => x.setAttribute('aria-expanded', 'true'))\n\n await slideToggle(target)\n\n if (trigger.dataset.slideToggle === 'scroll') {\n scrollTo(target)\n }\n\n const holder = trigger.closest('[data-slide-toggle-holder]')\n\n if (holder) {\n holder.classList.add('is-active')\n } else {\n trigger.parentNode.classList.add('is-active')\n otherTriggers.forEach((x) => x.parentNode.classList.add('is-active'))\n }\n } else {\n slideToggle(target)\n trigger.setAttribute('aria-expanded', 'false')\n otherTriggers.forEach((x) => x.setAttribute('aria-expanded', 'false'))\n\n const holder = trigger.closest('[data-slide-toggle-holder]')\n\n if (holder) {\n holder.classList.remove('is-active')\n } else {\n trigger.parentNode.classList.remove('is-active')\n otherTriggers.forEach((x) => x.parentNode.classList.remove('is-active'))\n }\n }\n}\n\nconst handleOpenedDefault = () => {\n document.querySelectorAll('[data-slide-toggle-opened-default]').forEach((el) => {\n const trigger = el.closest('[data-slide-toggle]')\n const target = document.getElementById(trigger.getAttribute('aria-controls'))\n\n if (trigger && target) {\n trigger.setAttribute('aria-expanded', 'true')\n target.classList.remove('hidden')\n }\n })\n}\n\nexport default {\n init: () => {\n const clickArgs = ['click', '[data-slide-toggle]', handleToggle]\n const keyArgs = ['keyup', '[data-slide-toggle]', handleToggle]\n\n off(...clickArgs)\n off(...keyArgs)\n\n on(...clickArgs)\n on(...keyArgs)\n\n handleOpenedDefault()\n },\n}\n","// Thirdparty\nimport 'swiper/css'\nimport 'swiper/css/autoplay'\nimport 'swiper/css/effect-fade'\n\n// Theme\nimport '@styles/index.css'\n\n// Scripts\nimport components from '@scripts/components'\nimport mobileBar from '@scripts/components/mobile-bar'\nimport pageOverlay from '@scripts/components/page-overlay'\nimport scrollReveal from '@scripts/components/scroll-reveal'\nimport scrollTo from '@scripts/components/scroll-to'\nimport siteAnnouncementBar from '@scripts/components/site-announcement-bar'\nimport siteHeader from '@scripts/components/site-header'\nimport siteWidget from '@scripts/components/site-widget'\nimport slideToggle from '@scripts/components/slide-toggle'\n\ncomponents.init()\nmobileBar.init()\npageOverlay.init()\nif (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\n scrollReveal.init()\n}\nscrollTo.init()\nsiteAnnouncementBar.init()\nsiteHeader.init()\nsiteWidget.init()\nslideToggle.init()\n\ndocument.addEventListener('DOMContentLoaded', () => {\n setTimeout(() => {\n document.documentElement.classList.remove('_preload')\n }, 500)\n})\n","export default {\n init: () => {\n const mobileBar = document.querySelector('.mobile-bar')\n\n if (mobileBar) {\n const observer = new IntersectionObserver(([e]) => mobileBar.classList.toggle('is-hidden', !e.isIntersecting))\n\n observer.observe(document.querySelector('.scroll-pixel'))\n }\n },\n}\n","import Cookies from 'js-cookie'\n\nexport default {\n init: async () => {\n const overlayUrl = document.body.dataset.pageOverlayUrl\n const overlayCookie = document.body.dataset.pageOverlayCookie\n\n if (overlayUrl) {\n const { default: component } = await import(\n /* webpackChunkName: \"components-modal\" */ '@scripts/components/modal'\n )\n\n component.openModal({\n type: 'content',\n url: overlayUrl,\n })\n\n if (parseInt(overlayCookie) === 1) {\n Cookies.set('seenpageoverlay', true, { expires: 1 })\n }\n }\n },\n}\n","import ScrollReveal from 'scrollreveal'\n\nexport default {\n init: () => {\n const variants = {\n 'fade-up': {\n distance: '30%',\n origin: 'bottom',\n },\n 'fade-left': {\n distance: '30%',\n origin: 'right',\n },\n 'fade-right': {\n distance: '30%',\n origin: 'left',\n },\n grow: {\n origin: 'center',\n scale: 0.2,\n duration: 1000,\n delay: 600,\n },\n zoom: {\n origin: 'center',\n scale: 0.5,\n },\n fade: {\n duration: 1000,\n },\n }\n\n document.querySelectorAll('[data-sr-group]').forEach((group) => {\n if (group.closest('[data-disable-animations]')) return\n\n const common = {\n interval: 150,\n duration: 800,\n }\n\n for (const [key, opts] of Object.entries(variants)) {\n const els = group.querySelectorAll(`[data-sr=\"${key}\"]`)\n\n if (els.length) {\n ScrollReveal().reveal(els, {\n ...common,\n ...opts,\n })\n }\n }\n\n group.querySelectorAll('[data-sr=\"fade-content-up\"]').forEach((content) => {\n const els = content.querySelectorAll('*')\n\n ScrollReveal().reveal(els, {\n interval: 150,\n duration: 600,\n distance: '30%',\n origin: 'bottom',\n })\n })\n })\n\n window.addEventListener('beforeprint', () => {\n document.querySelectorAll('[data-sr]').forEach((el) => {\n el.style.opacity = 1\n el.style.transform = null\n })\n })\n },\n}\n","import jump from 'jump.js'\n\nconst getPageOffset = () => {\n let offset = 0\n\n const siteHeader = document.querySelector('.site-header')\n\n if (siteHeader) {\n offset += siteHeader.offsetHeight\n }\n\n return offset\n}\n\nconst scrollTo = (target, additionalOffset = 0) => {\n const pageOffset = getPageOffset() * -1\n\n if (target.dataset.scrollOffset) {\n additionalOffset = parseInt(target.dataset.scrollOffset)\n }\n\n let offset = pageOffset - additionalOffset\n\n return new Promise((resolve) => {\n jump(target, { duration: 600, offset, callback: resolve })\n })\n}\n\nexport default scrollTo\n"],"names":["pageHas","selector","document","querySelectorAll","length","ignorePageTypes","handleScroll","event","el","targetSelector","dataset","scroll","tagName","hash","target","querySelector","offset","preventDefault","documentElement","classList","remove","scrollTo","topBar","handleClose","setHeight","style","setProperty","offsetHeight","siteHeader","siteMenu","siteSearch","calendarSearch","openMenu","add","closeMenu","forEach","trigger","getElementById","getAttribute","setAttribute","toggleSearch","contains","reset","focus","toggleCalendarSearch","widget","setCookie","state","Cookies","set","expires","handleToggle","transform","e","stopPropagation","slideToggle","element","duration","arguments","undefined","display","slide","toggle","easing","then","async","type","keyCode","closest","otherTriggers","Array","from","filter","x","holder","parentNode","default","component","init","components","mobileBar","IntersectionObserver","_ref","isIntersecting","observe","overlayUrl","body","pageOverlayUrl","overlayCookie","pageOverlayCookie","openModal","url","parseInt","pageOverlay","window","matchMedia","matches","variants","distance","origin","grow","scale","delay","zoom","fade","group","common","interval","key","opts","Object","entries","els","ScrollReveal","reveal","content","addEventListener","opacity","scrollReveal","on","handleUrl","some","includes","location","setTimeout","handleScrollToMe","intersectionRatio","threshold","get","siteWidget","clickArgs","keyArgs","off","additionalOffset","pageOffset","getPageOffset","scrollOffset","Promise","resolve","jump","callback"],"sourceRoot":""}