{"version":3,"file":"app.5df04e8bd290a81a8f94.js","mappings":"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","sources":["webpack://silverstripe-base/./themes/app/src/scripts/components/mailing-list.js","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/scroll-reveal.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/common/scroll-to.js"],"sourcesContent":["import { on } from 'delegated-events'\n\nexport default {\n init: () => {\n document.querySelectorAll('a[href*=\"mailing-list\"]').forEach((anchor) => {\n anchor.href = '/_modal/mailinglist'\n anchor.setAttribute('data-modal', 'content')\n })\n\n on('mailinglistmodal:open', 'html', (e) => {\n const modalEl = e.detail.modalEl\n const modalMailchimpHolder = modalEl.querySelector('.form-holder')\n const footerMailchimpEmbed = document.querySelector('.site-footer .mailchimp-embed')\n\n if (footerMailchimpEmbed) {\n modalMailchimpHolder.append(footerMailchimpEmbed)\n }\n })\n\n on('mailinglistmodal:close', 'html', (e) => {\n const modalEl = e.detail.modalEl\n const modalMailchimpEmbed = modalEl.querySelector('.mailchimp-embed')\n const footerMailchimpHolder = document.querySelector('.footer-mailchimp-form')\n\n if (modalMailchimpEmbed) {\n footerMailchimpHolder.append(modalMailchimpEmbed)\n }\n })\n\n const mailchimpSuccess = document.getElementById('mce-success-response')\n\n if (mailchimpSuccess) {\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function () {\n if (mailchimpSuccess.innerHTML === \"You're already subscribed, your profile has been updated. Thank you!\") {\n mailchimpSuccess.innerHTML = \"You're successfully subscribed.\"\n }\n })\n })\n\n const config = { attributes: true, childList: true, characterData: true }\n\n observer.observe(mailchimpSuccess, config)\n }\n },\n}\n","// 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-counter]')) {\n const { default: component } = await import(\n /* webpackChunkName: \"components-count-up\" */ '@scripts/components/count-up'\n )\n\n component.init()\n }\n\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-tablist]')) {\n const { default: component } = await import(\n /* webpackChunkName: \"components-popover\" */ '@scripts/components/tablist'\n )\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('.media-slider')) {\n const { default: component } = await import(\n /* webpackChunkName: \"components-page-header\" */ '@scripts/components/media-slider'\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 }, 10)\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 { gsap } from 'gsap'\nimport { ScrollTrigger } from 'gsap/ScrollTrigger'\n\ngsap.registerPlugin(ScrollTrigger)\n\nexport default {\n init: () => {\n const variants = {\n 'fade-up': {\n from: { opacity: 0, y: '50%' },\n to: { opacity: 1, y: 0 },\n },\n 'fade-left': {\n from: { opacity: 0, x: '100%' },\n to: { opacity: 1, x: 0 },\n },\n 'fade-right': {\n from: { opacity: 0, x: '-100%' },\n to: { opacity: 1, x: 0 },\n },\n 'zoom-in': {\n from: { opacity: 0, scale: 0.2 },\n to: { opacity: 1, scale: 1 },\n },\n }\n\n const elementSelector = '.element-section:not([data-disable-animations]) [data-sr-group]'\n\n // Handle elements\n for (const [key, opts] of Object.entries(variants)) {\n if (document.querySelectorAll(`${elementSelector} [data-sr=\"${key}\"]`).length) {\n gsap.set(`${elementSelector} [data-sr=\"${key}\"]`, opts.from)\n }\n }\n\n // Handle element content parts\n if (document.querySelectorAll(`${elementSelector} [data-sr=\"fade-content-up\"]`).length) {\n const childrenNotWysiwyg = `${elementSelector} [data-sr=\"fade-content-up\"] > *:not(.wysiwyg)`\n\n if (document.querySelectorAll(childrenNotWysiwyg).length) {\n gsap.set(childrenNotWysiwyg, {\n opacity: 0,\n y: '50%',\n })\n }\n\n const childrenNotChecklist = `${elementSelector} [data-sr=\"fade-content-up\"] > .wysiwyg > *:not([class*=\"as-checklist\"])`\n\n if (document.querySelectorAll(childrenNotChecklist).length) {\n gsap.set(childrenNotChecklist, {\n opacity: 0,\n y: '50%',\n })\n }\n\n const childrenChecklist = `${elementSelector} [data-sr=\"fade-content-up\"] > .wysiwyg > [class*=\"as-checklist\"] li`\n\n if (document.querySelectorAll(childrenChecklist).length) {\n gsap.set(childrenChecklist, {\n opacity: 0,\n y: '50%',\n })\n }\n }\n\n document.querySelectorAll('.element-section:not([data-disable-animations]) [data-sr-group]').forEach((group) => {\n const common = {\n duration: 0.8,\n stagger: 0.2,\n paused: true,\n ease: 'power4',\n scrollTrigger: {\n trigger: group,\n start: 'top 75%',\n markers: false,\n },\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 gsap.to(els, {\n ...opts.to,\n ...common,\n })\n }\n }\n\n group.querySelectorAll('[data-sr=\"fade-content-up\"]').forEach((content) => {\n gsap.to(content.querySelectorAll('*'), {\n opacity: 1,\n y: 0,\n ...common,\n })\n })\n })\n\n window.addEventListener('beforeprint', () => {\n for (const [key, opts] of Object.entries(variants)) {\n if (document.querySelectorAll(`[data-sr=\"${key}\"]`).length) {\n gsap.set(`[data-sr=\"${key}\"]`, opts.to)\n }\n }\n })\n },\n}\n","import Cookies from 'js-cookie'\nimport { on } from 'delegated-events'\n\nconst siteHeader = document.querySelector('.site-header')\nconst siteMenu = document.querySelector('.site-menu')\nconst siteSearch = document.querySelector('.site-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 handleSiteLogo = async () => {\n const siteLogoVideo = document.querySelector('.site-logo-video')\n\n if (siteLogoVideo) {\n if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\n siteLogoVideo.classList.add('opacity-0')\n }\n\n try {\n await siteLogoVideo.play()\n } catch (err) {\n siteLogoVideo.classList.add('opacity-0')\n }\n\n siteLogoVideo.addEventListener('ended', () => {\n siteLogoVideo.classList.add('opacity-0')\n })\n\n if (siteLogoVideo.dataset.setCookie) {\n if (!Cookies.get('ucm_logo_video')) {\n Cookies.set('ucm_logo_video', true, {\n expires: 1,\n })\n }\n }\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 window.addEventListener('click', (e) => {\n if (e.target.closest('.site-menu-mobile-screen') && !e.target.closest('.site-menu-mobile')) {\n closeMenu()\n }\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\n handleSiteLogo()\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, fire } 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 fire(document.documentElement, 'slidetoggle:toggle', { el: trigger })\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'\nimport 'swiper/css/thumbs'\n\n// Theme\nimport '@styles/index.css'\n\nimport mailingList from '@scripts/components/mailing-list'\n\nimport components from '@scripts/components'\nimport mobileBar from '@scripts/components/mobile-bar'\nimport pageOverlay from '@scripts/components/page-overlay'\nimport scrollTo from '@scripts/components/scroll-to'\nimport siteAnnouncementBar from '@scripts/components/site-announcement-bar'\nimport scrollReveal from '@scripts/components/scroll-reveal'\nimport siteHeader from '@scripts/components/site-header'\nimport siteWidget from '@scripts/components/site-widget'\nimport slideToggle from '@scripts/components/slide-toggle'\n\nmailingList.init()\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 }, 250)\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 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","gsap","registerPlugin","ScrollTrigger","siteHeader","siteMenu","siteSearch","openMenu","add","closeMenu","forEach","trigger","getElementById","getAttribute","setAttribute","toggleSearch","contains","reset","focus","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","fire","init","anchor","href","on","modalMailchimpHolder","detail","modalEl","footerMailchimpEmbed","append","modalMailchimpEmbed","footerMailchimpHolder","mailchimpSuccess","config","attributes","childList","characterData","MutationObserver","mutations","innerHTML","observe","mailingList","default","component","components","mobileBar","IntersectionObserver","_ref","isIntersecting","overlayUrl","body","pageOverlayUrl","overlayCookie","pageOverlayCookie","openModal","url","parseInt","pageOverlay","window","matchMedia","matches","variants","opacity","y","to","scale","elementSelector","key","opts","Object","entries","childrenNotWysiwyg","childrenNotChecklist","childrenChecklist","group","common","stagger","paused","ease","scrollTrigger","start","markers","els","content","addEventListener","scrollReveal","handleUrl","some","includes","location","setTimeout","handleScrollToMe","intersectionRatio","threshold","siteLogoVideo","play","err","get","handleSiteLogo","siteWidget","clickArgs","keyArgs","off","additionalOffset","pageOffset","getPageOffset","scrollOffset","Promise","resolve","jump","callback"],"sourceRoot":""}