{"version":3,"file":"flexible-content.min.js","sources":["../js/flexible-content/_accordion.js","../js/flexible-content/_hero.js","../js/flexible-content/_stories.js","../js/flexible-content/_news.js","../js/flexible-content/_tabs-cards.js","../js/flexible-content/_resource-collection.js","../js/flexible-content/_playworks-near-you.js","../js/_breakpoints.js","../js/flexible-content.js"],"sourcesContent":["import debug from 'bows';\nimport $ from 'jquery';\n\nconst log = debug('site:layout:accordion');\n\nclass Accordion {\n\tconstructor(node) {\n\t\tthis.node = node;\n\t\tthis.$node = $(node);\n\t\tthis.activeClass = 'accordion__panel--active';\n\t\tthis.duration = 200;\n\n\t\tthis.$panels = this.$node.find('.accordion__panel');\n\t\tthis.$titles = this.$node.find('.accordion__panel-title');\n\t\tthis.$contents = this.$node.find('.accordion__panel-content');\n\n\t\tthis.$node.on('click', '.accordion__panel-title', (e) => {\n\t\t\te.preventDefault();\n\n\t\t\tconst $title = $(e.target);\n\t\t\tconst $panel = $title.closest('.accordion__panel');\n\t\t\tconst $content = $panel.find('.accordion__panel-content');\n\n\t\t\tif ($panel.hasClass(this.activeClass)) {\n\t\t\t\t$content.slideUp(this.duration, () => {\n\t\t\t\t\t$panel.removeClass(this.activeClass);\n\t\t\t\t\t$content.css('display', '');\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$content.slideDown(this.duration, () => {\n\t\t\t\t\t$panel.addClass(this.activeClass);\n\t\t\t\t\t$content.css('display', '');\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.$node.on('click', '.accordion__panel-close', (e) => {\n\t\t\tconst $close = $(e.target);\n\t\t\tconst $panel = $close.closest('.accordion__panel');\n\t\t\tconst $content = $panel.find('.accordion__panel-content');\n\n\t\t\t$content.slideUp(this.duration, () => {\n\t\t\t\t$panel.removeClass(this.activeClass);\n\t\t\t\t$content.css('display', '');\n\t\t\t});\n\t\t});\n\n\t\tif (window.location.hash) {\n\t\t\tfor (let i = 0; i < this.$titles.length; i++) {\n\t\t\t\tlog(this.$titles[i].hash, window.location.hash);\n\t\t\t\tif (this.$titles[i].hash === window.location.hash) {\n\t\t\t\t\tlet $panel = this.$panels.eq(i);\n\t\t\t\t\t$panel.addClass(this.activeClass);\n\t\t\t\t\tthis.$contents.eq(i).css('display', '');\n\n\t\t\t\t\twindow.scrollTo(0, $panel.offset().top - 50);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default Accordion;\n\n","import debug from 'bows';\nimport Dropdown from 'modernDropdown';\nimport breakpoints from '../_breakpoints';\n\nconst log = debug('hero');\n\nclass Hero {\n\tconstructor(node) {\n\t\tthis.node = node;\n\n\t\tif (this.node.classList.contains('flex-layout--hero--has-nav')) {\n\t\t\tthis.dropdowns = Array.prototype.slice.call(this.node.querySelectorAll('.nav__menu-item--depth0.nav__menu-item--has-submenu')).map((item) => {\n\t\t\t\tconst layout = this.node;\n\t\t\t\treturn new Dropdown(item, {\n\t\t\t\t\topenClass: 'nav__menu-item--submenu-open',\n\t\t\t\t\tmenu: '.nav__menu',\n\t\t\t\t\tbeforeOpen: () => {\n\t\t\t\t\t\tif (document.body.clientWidth < breakpoints.medium) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t},\n\t\t\t\t\tafterOpen: function() {\n\t\t\t\t\t\tif (document.body.clientWidth < breakpoints.medium) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (layout.getBoundingClientRect().right < this.menu.getBoundingClientRect().right) {\n\t\t\t\t\t\t\tthis.menu.classList.add('nav__menu--off-right');\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\tlet browserHeight = isNaN(window.innerHeight) ? window.clientHeight : window.innerHeight;\n\t\t\t\t\t\tlet menuHeight = item.clientHeight + this.menu.clientHeight;\n\t\t\t\t\t\tif ((browserHeight - (item.getBoundingClientRect().top + menuHeight) < 10)) {\n\t\t\t\t\t\t\tthis.menu.style.top = 'auto';\n\t\t\t\t\t\t\tthis.menu.style.bottom = (item.clientHeight - 2) + 'px';\n\t\t\t\t\t\t\tthis.menu.classList.add('nav__menu--off-top');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t},\n\t\t\t\t\tafterClose: function() {\n\t\t\t\t\t\tif (this.menu.classList.contains('nav__menu--off-right')) {\n\t\t\t\t\t\t\tthis.menu.classList.remove('nav__menu--off-right');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.menu.classList.contains('nav__menu--off-top')) {\n\t\t\t\t\t\t\tthis.menu.classList.remove('nav__menu--off-top');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.menu.removeAttribute('style');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tthis.subMenuToggles = Array.prototype.slice.call(this.node.querySelectorAll('.nav__menu-item--has-submenu > .nav__link'));\n\t\t\tif (this.subMenuToggles.length) {\n\t\t\t\tthis.subMenuToggles.forEach((t) => {\n\t\t\t\t\tt.addEventListener('click', (e) => {\n\t\t\t\t\t\tif (document.body.clientWidth < breakpoints.medium) {\n\t\t\t\t\t\t\tif (!t.parentNode.classList.contains('nav__menu-item--submenu-open')) {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tt.parentNode.classList.add('nav__menu-item--submenu-open');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.location.href = t.href;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.menuToggle = this.node.querySelector('a[href=\"#menu-toggle\"]');\n\t\t\tif (this.menuToggle) {\n\t\t\t\tthis.menuToggle.addEventListener('click', (e) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.node.classList.toggle('flex-layout--hero--nav-open');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (this.node.dataset.video) {\n\t\t\tthis.video = document.createElement('video');\n\t\t\tthis.video.type = (this.node.dataset.videoMimeType) ? this.node.dataset.videoMimeType : 'video/mp4';\n\n\t\t\tif (this.video.canPlayType(this.video.type)) {\n\t\t\t\tthis.video.classList.add('hero__video');\n\t\t\t\tthis.video.src = this.node.dataset.video;\n\t\t\t\tthis.video.volume = 0;\n\t\t\t\tthis.video.muted = true;\n\t\t\t\tthis.video.loop = true;\n\t\t\t\tthis.video.setAttribute('playsinline', 'playsinline');\n\n\t\t\t\tlet poster = getComputedStyle(node).backgroundImage;\n\t\t\t\tif ( poster ) {\n\t\t\t\t\tposter = poster.replace( /^url\\(['\"]/, '').replace( /['\"]\\)$/, '' );\n\t\t\t\t\tthis.video.poster = poster;\n\t\t\t\t}\n\n\t\t\t\tconst wrap = this.node.querySelector('.flex-layout__wrap');\n\t\t\t\twrap.insertBefore(this.video, wrap.firstChild);\n\n\t\t\t\tlet promise = this.video.play();\n\n\t\t\t\tif ( typeof promise !== 'undefined' ) {\n\t\t\t\t\tpromise.then(() => {\n\t\t\t\t\t\tthis.video.insertAdjacentHTML('afterend', '<div class=\"hero__overlay\"></div>');\n\t\t\t\t\t\tlog('video autoplay');\n\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\tlog(\"video can't autoplay\");\n\t\t\t\t\t\tthis.video.parentNode.removeChild(this.video);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tlet onTimeUpdate = () => {\n\t\t\t\t\t\tlog('timeupdate');\n\t\t\t\t\t\tthis.video.insertAdjacentHTML('afterend', '<div class=\"hero__overlay\"></div>');\n\t\t\t\t\t\tthis.video.removeEventListener('timeupdate', onTimeUpdate);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.video.addEventListener('timeupdate', onTimeUpdate);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default Hero;\n","import Flickity from 'flickity';\n\nclass Stories {\n\tconstructor(node) {\n\t\tthis.node = node;\n\t\tthis.wrap = this.node.querySelector('.stories__items');\n\t\tthis.items = Array.from(this.wrap.querySelectorAll('.stories__item'));\n\n\t\tthis.flickity = new Flickity(this.wrap, {\n\t\t\tadaptiveHeight: false,\n\t\t\tautoPlay: false,\n\t\t\tcellAlign: 'left',\n\t\t\timagesLoaded: true,\n\t\t\tprevNextButtons: false,\n\t\t\twatchCSS: true,\n\t\t\twrapAround: false\n\t\t});\n\t}\n}\n\nexport default Stories;\n","import Flickity from 'flickity';\nimport debug from 'bows';\nimport breakpoints from '../_breakpoints';\n\nconst log = debug('news');\n\nclass News {\n\tconstructor(node) {\n\t\tthis.node = node;\n\t\tthis.wrap = this.node.querySelector('.news__items');\n\t\tthis.items = Array.from(this.wrap.querySelectorAll('.news__item'));\n\n\t\tthis.flickity = new Flickity(this.wrap, {\n\t\t\tadaptiveHeight: false,\n\t\t\tautoPlay: false,\n\t\t\tcellAlign: 'left',\n\t\t\tprevNextButtons: false,\n\t\t\twatchCSS: true,\n\t\t\twrapAround: false\n\t\t});\n\n\t\twindow.addEventListener('site.resize', this.resize.bind(this));\n\t\tthis.adjustPHeight();\n\t}\n\n\t// Measure height of each cards contents and adjust the height of the excerpt\n\tadjustPHeight() {\n\t\t// log(document.body.clientWidth);\n\t\t// log('bp', breakpoints.medium);\n\t\tif (this.items) {\n\t\t\tthis.items.forEach((card) => {\n\t\t\t\tlet cardContent = card.querySelector('.card__excerpt p');\n\t\t\t\tif (document.body.clientWidth >= breakpoints.medium) {\n\n\t\t\t\t\t// Get inner height of card without padding\n\t\t\t\t\tlet cardComputedStyle = getComputedStyle(card)\n\t\t\t\t\tlet cardHeight = card.clientHeight; // height with padding\n\t\t\t\t\tcardHeight -= parseFloat(cardComputedStyle.paddingTop) + parseFloat(cardComputedStyle.paddingBottom);\n\n\t\t\t\t\t// Get height of card header elements\n\t\t\t\t\tlet cardPub = card.querySelector('.card__publication');\n\t\t\t\t\tlet cardPubHeight = cardPub ? this.getTotalHeight(cardPub) : 0;\n\t\t\t\t\tlet cardDate = card.querySelector('.card__date');\n\t\t\t\t\tlet cardDateHeight = cardDate ? this.getTotalHeight(cardDate) : 0;\n\t\t\t\t\tlet cardTitle = card.querySelector('.card__title');\n\t\t\t\t\tlet cardTitleHeight = cardTitle ? this.getTotalHeight(cardTitle) : 0;\n\t\t\t\t\t//log(cardHeight);\n\t\t\t\t\tlet cardMetaHeight = cardPubHeight + cardDateHeight + cardTitleHeight;\n\n\t\t\t\t\t// Get available height for card content\n\t\t\t\t\tlet cardContentHeightMax = cardHeight - cardMetaHeight;\n\n\t\t\t\t\t// Find line height of excerpt and return new height based on available space\n\t\t\t\t\tlet cardLineHeight = this.getLineHeight(cardContent);\n\n\t\t\t\t\t// Capture any margin and subtract that from available height\n\t\t\t\t\tlet excerptComputedStyle = getComputedStyle(cardContent);\n\t\t\t\t\tlet excerptMarginTop = parseInt(excerptComputedStyle.getPropertyValue('margin-top'), 10);\n\t\t\t\t\tcardContentHeightMax -= excerptMarginTop;\n\n\t\t\t\t\t// Find height for card content based on available lines\n\t\t\t\t\tlet newCardContentHeight = cardLineHeight * (Math.floor(cardContentHeightMax / cardLineHeight));\n\t\t\t\t\tcardContent.style.height = newCardContentHeight + 'px';\n\t\t\t\t\tcardContent.style.overflow = 'hidden';\n\t\t\t\t} else {\n\t\t\t\t\t// Reset attributes on mobile\n\t\t\t\t\tcardContent.style.height = '';\n\t\t\t\t\tcardContent.style.overflow = '';\n\t\t\t\t\tlog('noop');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tresize() {\n\t\tthis.adjustPHeight();\n\t}\n\n\tgetLineHeight(element) {\n\t\tlet temp = document.createElement(element.nodeName);\n\t\ttemp.setAttribute(\"style\", \"margin:0px;padding:0px;font-family:\" + element.style.fontFamily + \";font-size:\" + element.style.fontSize);\n\t\ttemp.innerHTML = \"test\";\n\t\ttemp = element.parentNode.appendChild(temp);\n\t\tlet calcLineHeight = temp.clientHeight;\n\t\ttemp.parentNode.removeChild(temp);\n\t\treturn calcLineHeight;\n\t}\n\n\tgetTotalHeight(element) {\n\t\tlet style = window.getComputedStyle(element);\n\t\tlet height = ['height', 'padding-top', 'padding-bottom', 'margin-top', 'margin-bottom']\n\t\t\t.map((key) => parseInt(style.getPropertyValue(key), 10))\n\t\t\t.reduce((prev, cur) => prev + cur);\n\t\treturn height;\n\t}\n}\n\nexport default News;\n","import debug from 'bows';\nimport Flickity from 'flickity';\nconst log = debug('tabs-cards');\n\nclass Tabs {\n\tconstructor(node) {\n\t\tthis.node = node;\n\t\tthis.active = -1;\n\n\t\tthis.navs = Array.from(this.node.querySelectorAll('.tabs-cards__nav-link'));\n\t\tthis.tabs = Array.from(this.node.querySelectorAll('.tabs-cards__tabs'));\n\n\t\tthis.navs.forEach((nav, index) => {\n\t\t\tnav.addEventListener('click', (e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.activate(index);\n\t\t\t});\n\t\t});\n\n\t\tthis.flickityOpts = {\n\t\t\tadaptiveHeight: false,\n\t\t\tautoPlay: false,\n\t\t\tcellAlign: 'left',\n\t\t\timagesLoaded: true,\n\t\t\tprevNextButtons: false,\n\t\t\twatchCSS: true,\n\t\t\twrapAround: false\n\t\t}\n\n\t\tthis.flickiti = this.tabs.map((tab) => new Flickity(tab, this.flickityOpts));\n\n\t\tthis.activate(0);\n\t\tlog(this);\n\t}\n\n\tactivate(index) {\n\t\tif (this.active > -1) {\n\t\t\tthis.navs[this.active].classList.remove('tabs-cards__nav-link--active');\n\t\t\tthis.tabs[this.active].classList.remove('tabs-cards__tabs--active');\n\t\t}\n\n\t\tthis.active = index;\n\n\t\tthis.navs[this.active].classList.add('tabs-cards__nav-link--active');\n\t\tthis.tabs[this.active].classList.add('tabs-cards__tabs--active');\n\t\tif (this.flickiti[this.active] instanceof Flickity) {\n\t\t\tthis.flickiti[this.active].resize();\n\t\t}\n\t}\n}\n\nexport default Tabs;\n","import Flickity from 'flickity';\nimport debug from 'bows';\n\nconst log = debug('resource-collection');\n\nclass ResourceCollection {\n\tconstructor(node) {\n\t\tthis.node = node;\n\t\tthis.wrap = this.node.querySelector('.collection__items');\n\t\tthis.items = Array.from(this.wrap.querySelectorAll('.collection__item'));\n\n\t\tthis.flickity = new Flickity(this.wrap, {\n\t\t\tadaptiveHeight: false,\n\t\t\tautoPlay: false,\n\t\t\tcellAlign: 'left',\n\t\t\timagesLoaded: true,\n\t\t\tprevNextButtons: false,\n\t\t\twatchCSS: true,\n\t\t\twrapAround: false,\n\t\t});\n\n\t\tlog(this);\n\t}\n}\n\nexport default ResourceCollection;\n","import debug from 'bows';\n\nconst log = debug('playworks-near-you');\n\nclass PlayworksNearYou {\n\tconstructor(node) {\n\t\tthis.node = node;\n\t\tthis.map = this.node.querySelector('.pny-map');\n\t\tthis.aside = this.node.querySelector('.pny-aside');\n\t\tthis.svg = this.node.querySelector('.pny-svg');\n\t\tthis.states = Array.prototype.slice.call(this.svg.querySelectorAll('g[data-state]'));\n\t\tthis.dict = {};\n\t\tthis.active = null;\n\t\tthis.activeClass = 'active';\n\n\t\tthis.select = document.createElement('select');\n\t\tthis.select.className = 'pny-map__state-select';\n\t\tthis.states.forEach((state) => {\n\t\t\tlet opt = document.createElement('option');\n\t\t\topt.value = state.getAttribute('data-state');\n\t\t\topt.appendChild(document.createTextNode(state.getAttribute('data-name')));\n\t\t\tthis.select.appendChild(opt);\n\t\t});\n\t\tthis.aside.appendChild(this.select);\n\t\tthis.select.insertAdjacentHTML('beforebegin', '<p class=\"pny-map__state-select-label\">Select a state</p>');\n\t\tthis.select.addEventListener('change', (e) => {\n\t\t\tthis.activate(e.target.value);\n\t\t});\n\n\t\tthis.selectContent = document.createElement('div');\n\t\tthis.selectContent.className = 'pny-map__state-select-content';\n\t\tthis.aside.appendChild(this.selectContent);\n\n\t\tthis.resize();\n\t\twindow.addEventListener('site.resize', this.resize.bind(this));\n\n\t\tthis.states.forEach((node) => {\n\t\t\tconst state = node.getAttribute('data-state');\n\t\t\tthis.dict[state] = {\n\t\t\t\tnode: node,\n\t\t\t\tcontent: this.node.querySelector(`.pny-map__state[data-state=\"${state}\"]`),\n\t\t\t\ttri: this.node.querySelector(`.pny-map__state[data-state=\"${state}\"] .pny-map__state-tri`)\n\t\t\t}\n\t\t\tnode.addEventListener('click', () => {\n\t\t\t\tthis.activate(state);\n\t\t\t});\n\t\t\tthis.dict[state].content.addEventListener('click', () => {\n\t\t\t\tthis.deactivate();\n\t\t\t});\n\t\t});\n\t}\n\n\tresize() {\n\t\tthis.svg.style.width = `${this.map.offsetWidth}px`;\n\t\tthis.svg.style.height = `${Math.ceil(this.map.offsetWidth * .618)}px`;\n\n\t\tif (this.active) {\n\t\t\tthis.position(this.active);\n\t\t}\n\t}\n\n\tposition(state) {\n\t\tconst node = this.dict[state].node;\n\t\tconst content = this.dict[state].content;\n\t\tconst nodeRect = node.getBoundingClientRect();\n\t\tconst contentRect = content.getBoundingClientRect();\n\t\tconst mapRect = this.map.getBoundingClientRect();\n\t\tconst adjustX = parseInt(node.getAttribute('data-adjust-x'), 10);\n\t\tconst adjustY = parseInt(node.getAttribute('data-adjust-y'), 10);\n\n\t\tlet left = nodeRect.left - mapRect.left - (contentRect.width / 2) + (nodeRect.width / 2) + adjustX;\n\t\tlet top = nodeRect.top - mapRect.top - contentRect.height + adjustY;\n\t\tlet triOffset = 0;\n\n\t\tif (left < 10) {\n\t\t\ttriOffset = Math.round(10 + Math.abs(left)) * -1;\n\t\t\tleft = 10;\n\t\t} else if (left + content.offsetWidth > document.body.clientWidth) {\n\t\t\ttriOffset = left - (document.body.clientWidth - 10 - content.offsetWidth);\n\t\t\tleft = document.body.clientWidth - 10 - content.offsetWidth;\n\t\t}\n\n\t\tcontent.style.left = `${left}px`;\n\t\tcontent.style.top = `${top}px`;\n\t\tif (triOffset !== 0) {\n\t\t\tthis.dict[state].tri.style.transform = `translateX(${triOffset}px)`;\n\t\t}\n\t}\n\n\tactivate(state) {\n\t\tif (this.dict[state]) {\n\t\t\tif (this.active) {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\n\t\t\tthis.position(state);\n\n\t\t\tthis.select.value = state;\n\t\t\tthis.selectContent.innerHTML = this.dict[state].content.innerHTML;\n\n\t\t\tthis.dict[state].node.setAttribute('class', this.activeClass);\n\t\t\tthis.dict[state].content.classList.add(this.activeClass);\n\n\t\t\t// this.select.value = state;\n\t\t\tthis.active = state;\n\t\t}\n\t}\n\n\tdeactivate() {\n\t\tif (this.active) {\n\t\t\tthis.dict[this.active].node.removeAttribute('class');\n\t\t\tthis.dict[this.active].content.classList.remove(this.activeClass);\n\t\t\tthis.active = null;\n\t\t\tthis.selectContent.innerHTML = '';\n\t\t}\n\t}\n}\n\nexport default PlayworksNearYou;\n","export default {\n\tsmall: 600,\n\tmedium: 800,\n\tlarge: 1000,\n\txlarge: 1260\n}","import debug from 'bows';\nimport Accordion from './flexible-content/_accordion';\nimport PlayworksNearYou from './flexible-content/_playworks-near-you';\nimport Hero from './flexible-content/_hero';\nimport Stories from './flexible-content/_stories';\nimport News from './flexible-content/_news';\nimport TabsCards from './flexible-content/_tabs-cards';\nimport ResourceCollection from './flexible-content/_resource-collection';\n\nconst log = debug('flex-content');\n\nclass FlexibleContent {\n\n\tconstructor() {\n\t\tthis.nodes = Array.prototype.slice.call(document.querySelectorAll('.flex-layout'));\n\t\tif (!this.nodes.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dict = {\n\t\t\t// 'playworks-near-you': PlayworksNearYou,\n\t\t\taccordion: Accordion,\n\t\t\thero: Hero,\n\t\t\tstories: Stories,\n\t\t\tnews: News,\n\t\t\t'tabs-cards': TabsCards,\n\t\t\t'resource-collection': ResourceCollection,\n\t\t}\n\n\t\tthis.controllers = this.nodes.filter((node) => {\n\t\t\treturn this.dict[node.dataset.layout];\n\t\t}).map((node) => {\n\t\t\treturn new this.dict[node.dataset.layout](node);\n\t\t});\n\t}\n}\n\nexport default FlexibleContent;\n"],"names":["Accordion","node","this","$node","$","activeClass","duration","$panels","find","$titles","$contents","on","e","preventDefault","const","$panel","target","closest","$content","hasClass","slideUp","removeClass","css","slideDown","addClass","window","location","hash","let","i","length","log","eq","scrollTo","offset","top","Hero","onTimeUpdate","classList","contains","dropdowns","Array","prototype","slice","call","querySelectorAll","map","item","layout","Dropdown","openClass","menu","beforeOpen","document","body","clientWidth","breakpoints","medium","afterOpen","browserHeight","menuHeight","getBoundingClientRect","right","add","isNaN","innerHeight","clientHeight","style","bottom","afterClose","remove","removeAttribute","subMenuToggles","forEach","t","addEventListener","parentNode","href","menuToggle","querySelector","toggle","dataset","video","createElement","type","canPlayType","src","volume","muted","loop","setAttribute","poster","getComputedStyle","backgroundImage","replace","wrap","insertBefore","firstChild","promise","play","then","insertAdjacentHTML","catch","removeChild","removeEventListener","Stories","items","from","flickity","Flickity","adaptiveHeight","autoPlay","cellAlign","imagesLoaded","prevNextButtons","watchCSS","wrapAround","News","resize","bind","adjustPHeight","Tabs","active","navs","tabs","nav","index","activate","flickityOpts","flickiti","tab","ResourceCollection","debug","small","large","xlarge","card","cardContentHeightMax","newCardContentHeight","cardContent","cardComputedStyle","cardHeight","parseFloat","paddingTop","paddingBottom","cardPub","getTotalHeight","cardDate","cardTitle","cardLineHeight","getLineHeight","excerptComputedStyle","parseInt","getPropertyValue","Math","floor","height","overflow","element","temp","nodeName","calcLineHeight","fontFamily","fontSize","innerHTML","appendChild","key","reduce","prev","cur","nodes","dict","accordion","hero","stories","news","tabs-cards","TabsCards","resource-collection","controllers","filter"],"mappings":"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"}