{"version":3,"file":"../scripts.js","sources":["scripts.js"],"sourcesContent":["(function($, Drupal, once) {\n\n $mobileBreakpoint = 900;\n\n Drupal.behaviors.header = {\n attach: function(context, settings) {\n\n // Mobile menu functionality\n $(window).resize(function() {\n var more = document.getElementById(\"js-navigation-more\");\n if ($(more).length > 0) {\n var windowWidth = $(window).width();\n var moreLeftSideToPageLeftSide = $(more).offset().left;\n var moreLeftSideToPageRightSide = windowWidth - moreLeftSideToPageLeftSide;\n\n if (moreLeftSideToPageRightSide < 330) {\n $(\"#js-navigation-more .submenu .submenu\").removeClass(\"fly-out-right\");\n $(\"#js-navigation-more .submenu .submenu\").addClass(\"fly-out-left\");\n }\n\n if (moreLeftSideToPageRightSide > 330) {\n $(\"#js-navigation-more .submenu .submenu\").removeClass(\"fly-out-left\");\n $(\"#js-navigation-more .submenu .submenu\").addClass(\"fly-out-right\");\n }\n }\n });\n\n $(document).ready(function() {\n var menuToggle = $(\"#js-mobile-menu\").unbind();\n $(\"#js-navigation-menu\").removeClass(\"show\");\n\n menuToggle.on(\"click\", function(e) {\n e.preventDefault();\n $('.search-section').removeAttr('style');\n\n $(\".mobile-nav\").slideToggle(function(){\n menuToggle.find('.fal').removeClass('fa-bars').addClass('close');\n $('html, body').addClass('scroll-lock');\n if($(\".mobile-nav\").is(\":hidden\")) {\n $(\".mobile-nav\").removeAttr(\"style\");\n menuToggle.find('.fal').removeClass('close').addClass('fa-bars');\n $('html, body').removeClass('scroll-lock');\n }\n });\n });\n });\n\n // Opens the search bar\n $('#js-search-trigger').on(\"click\", function(e) {\n e.preventDefault();\n if($(window).width() < $mobileBreakpoint) {\n $('.search-section').animate({width: 'toggle'},function() {\n if($(this).is(\":hidden\")) {\n $('.search-section').removeAttr('style');\n }\n $(this).find(\"#edit-keys\").focus();\n /* Hide mobile nav when opening search */\n $(\".mobile-nav\").removeAttr(\"style\");\n $(\"#js-mobile-menu\").find('.fal').removeClass('close').addClass('fa-bars');\n $('html, body').removeClass('scroll-lock');\n\n });\n } else {\n $('.search-section').animate({height: 'toggle'},function() {\n if($(this).is(\":hidden\")) {\n $('.search-section').removeAttr('style');\n }\n $(this).find(\"#edit-keys\").focus();\n });\n }\n\n });\n\n // Closes the search bar.\n $('#js-search-close').on('click', function(e) {\n e.preventDefault();\n if($(window).width() < $mobileBreakpoint) {\n $('.search-section').animate({width: 'toggle'},function() {\n if($(this).is(\":hidden\")) {\n $('.search-section').removeAttr('style');\n }\n });\n } else {\n $('.search-section').animate({height: 'toggle'},function() {\n if($(this).is(\":hidden\")) {\n $('.search-section').removeAttr('style');\n }\n });\n }\n });\n }\n };\n\n Drupal.behaviors.attachViewExpandClasses = {\n attach: function(context, settings) {\n $(document).ready(function() {\n\n var $expandingViews = $('.js-expand-view');\n\n $expandingViews.each(function() {\n var $rows = $(this).find('.views-row');\n if($rows.length > 3) {\n $slicedRows = $rows.slice(3);\n $slicedRows.addClass('js-expand-element');\n }\n });\n });\n }\n };\n\n Drupal.behaviors.accordionExpand = {\n attach: function(context, settings) {\n $(document).ready(function() {\n\n $(\".js-accordion-expand\").each(function() {\n var $expand = $(this);\n $expand.addClass('close');\n $expand.find('.js-accordion-expand-trigger').click(function() {\n\n if($(window).width() < $mobileBreakpoint) {\n\n var $expandElement = $expand.find('.js-accordion-expand-element');\n if($expand.hasClass('close')) {\n $expand.removeClass('close').addClass('open');\n $expandElement.slideDown();\n }\n else {\n $expand.removeClass('open').addClass('close');\n $expandElement.slideUp();\n }\n }\n });\n });\n });\n }\n };\n\n Drupal.behaviors.expand = {\n attach: function(context, settings) {\n $(document).ready(function() {\n\n $(\".js-expand\").each(function() {\n var $expand = $(this);\n var $expandTrigger = $expand.find('.js-expand-trigger');\n $expand.addClass('close');\n $expandTrigger.addClass('close');\n $expand.find('.js-expand-trigger').click(function() {\n var $expandElement = $expand.find('.js-expand-element');\n if($expand.hasClass('close')) {\n $expand.removeClass('close').addClass('open');\n $expandTrigger.removeClass('close').addClass('open');\n $expandElement.slideDown();\n }\n else {\n $expand.removeClass('open').addClass('close');\n $expandTrigger.removeClass('open').addClass('close');\n $expandElement.slideUp();\n }\n });\n });\n\n /* Expand \"members\" tab on mobile if going direct to members */\n if ((window.location.hash == '#members') && ($(window).width() < $mobileBreakpoint)) {\n $(\"#members .js-accordion-expand-trigger\").click();\n }\n\n });\n }\n };\n\n Drupal.behaviors.previewSwitch = {\n attach: function(context, settings) {\n var $switchTrigger = $('.js-card-list-trigger');\n var $list = $('.js-card-list');\n if($switchTrigger.length) {\n $switchTrigger.click(function() {\n var $viewsCols = $list.find('.views-col, .views-row');\n var $viewContent = $list.find('.view-content');\n\n if($viewContent.hasClass('list-col')) {\n $viewContent.removeClass('list-col');\n $switchTrigger.text('List View');\n } else {\n $viewContent.addClass('list-col');\n $switchTrigger.text('Grid View');\n }\n });\n }\n }\n };\n\n Drupal.behaviors.researchCardShowAllLeads = {\n attach: function(context, settings) {\n $('.research-result .field--name-field-leads .field__item:nth-child(4):not(:last-child)')\n .after('...more');\n $(\".show-leads\").on('click', function(e) {\n $(this).siblings().css({'display':'inline-block'});\n $(this).hide();\n return false;\n })\n }\n };\n\n Drupal.behaviors.stickyNav = {\n attach: function(context, settings) {\n var $stickyNav = $('.js-sticky-nav');\n if($stickyNav.length) {\n $navPlaceholder = $('.sticky-nav-placeholder');\n\n if($('#toolbar-administration').length) {\n $stickyNav.css('top', '80px');\n }\n\n $(window).on('load', function() {\n var top = $stickyNav.offset().top;\n $navPlaceholder.css('height', $stickyNav.height());\n\n if($(document).scrollTop() > top) {\n $stickyNav.addClass('sticky');\n $navPlaceholder.removeClass('hidden');\n }\n else {\n $stickyNav.removeClass('sticky');\n $navPlaceholder.addClass('hidden');\n }\n\n $(document).on('scroll', function(e) {\n\n if($(document).scrollTop() > top) {\n $stickyNav.addClass('sticky');\n $navPlaceholder.removeClass('hidden');\n }\n else {\n $stickyNav.removeClass('sticky');\n $navPlaceholder.addClass('hidden');\n }\n });\n });\n }\n }\n };\n\n Drupal.behaviors.contactModal = {\n attach: function(context, settings) {\n\n var $modal = $('.modal-inner');\n var $tabs = $('.modal-inner .js-tab');\n var modalPadding = parseInt($modal.css('padding-left')) + parseInt($modal.css('padding-right'));\n var tabsWidth = 0;\n\n $(\"#contact-modal\").on(\"change\", function() {\n if ($(this).is(\":checked\")) {\n $(\"body\").addClass(\"modal-open\");\n } else {\n $(\"body\").removeClass(\"modal-open\");\n }\n\n // Gets the combined width of all the tabs inside modal.\n if ($tabs.length) {\n tabsWidth = 0;\n $tabs.each(function(i, val) {\n tabsWidth += $(this).outerWidth(true);\n });\n\n if ($(window).width() > $mobileBreakpoint) {\n if (tabsWidth < 600) {\n tabsWidth = 600;\n }\n } else {\n tabsWidth = $(window).width() * 0.8;\n }\n\n // Applies tabs width and padding to width of modal.\n $modal.css('width', tabsWidth + modalPadding + 5);\n }\n });\n\n $(\".modal-fade-screen, .modal-close\").on(\"click\", function() {\n $(\".modal-state:checked\").prop(\"checked\", false).change();\n });\n\n $(\".modal-inner\").on(\"click\", function(e) {\n e.stopPropagation();\n });\n }\n };\n\n Drupal.behaviors.idTabList = {\n attach: function(context, settings) {\n var $tabPane = $('.js-tab-pane');\n var $tabMenu = $('.js-tab-menu');\n if($tabMenu.length) {\n var $firstTabMenu = $tabMenu.find('.tab:first-child');\n $firstTabMenu.addClass('active');\n var firstId = $firstTabMenu.attr('for');\n $('#' + firstId).addClass('open');\n\n var $tab = $tabMenu.find('.tab');\n\n $tab.on('click', function() {\n var id = $(this).attr('for');\n\n if(!$(this).hasClass('active')) {\n $tabMenu.find('.active').removeClass('active');\n $tabPane.find('.open').removeClass('open');\n $tabPane.find('#' + id).addClass('open');\n $(this).addClass('active');\n }\n });\n }\n }\n };\n\n Drupal.behaviors.anchorScroll = {\n attach: function(context, settings) {\n var $root = $('html, body');\n var $stickyNav = $('.js-sticky-nav');\n var offset = 0;\n\n if ($stickyNav.length) {\n offset = $stickyNav.outerHeight();\n }\n if ($(window).width() < $mobileBreakpoint) {\n offset = $('#site-header').outerHeight();\n }\n\n $(window).on('load', function() {\n if (window.location.hash) {\n var href = window.location.hash;\n $root.animate({\n scrollTop: $(href).offset().top - offset\n }, 500);\n }\n });\n\n $('a[href^=\"#\"]:not(.show-leads)').click(function(e) {\n e.preventDefault();\n var href = $.attr(this, 'href');\n if($(href).length) {\n $root.animate({\n scrollTop: $(href).offset().top - offset\n }, 500);\n\n if (history.pushState) {\n history.pushState(null,null,href);\n } else {\n location.hash = href;\n }\n }\n return false;\n });\n }\n };\n\n Drupal.behaviors.contentPageMobileDropdown = {\n attach: function(context, settings) {\n var $mobileDropdown = $('.js-mobile-dropdown');\n\n if($mobileDropdown.length) {\n var $trigger = $mobileDropdown.find('li.menu-item--active-trail > a');\n\n $trigger.on('click', function(e) {\n var $menu = $(this).parent();\n var $hiddenSubnav = $mobileDropdown.find('li.menu-item--active-trail li');\n\n if($(window).width() < $mobileBreakpoint) {\n if($menu.hasClass('open')) {\n $menu.removeClass('open');\n $hiddenSubnav.hide();\n }\n else {\n $menu.addClass('open');\n $hiddenSubnav.show();\n }\n return false;\n }\n });\n\n $(window).resize(function() {\n if($(this).width() > $mobileBreakpoint) {\n $mobileDropdown.find('.menu-item').removeAttr('style');\n }\n });\n }\n }\n };\n\n /*\n Drupal.behaviors.filtersExpand = {\n attach: function(context, settings) {\n $openFilters = $('.js-filters-open');\n $closeFilters = $('.js-filters-close');\n $filters = $('.view-filters');\n $contentColumn = $('.landing-content-column');\n\n $(window).on('load', function() {\n if($(window).width() > $mobileBreakpoint) {\n $filters.addClass('open');\n $openFilters.addClass('hidden');\n $contentColumn.addClass('push');\n }\n });\n\n $closeFilters.click(function() {\n $filters.hide('slide', {direction: 'left'}).removeClass('open');\n $openFilters.removeClass('hidden');\n $contentColumn.removeClass('push');\n });\n\n $openFilters.click(function() {\n $filters.addClass('open').show('slide', {direction: 'left'});\n $(this).addClass('hidden');\n $contentColumn.addClass('push');\n });\n }\n };\n */\n\n Drupal.behaviors.spotlightNews = {\n attach: function(context, settings) {\n var $spotlight = $('.spotlight');\n var screenSize = ($(window).width() < $mobileBreakpoint) ? 'mobile' : 'desktop';\n\n if($spotlight.length) {\n $(window).on('load', function() {\n if($(window).width() < $mobileBreakpoint) {\n $spotlight.addClass('owl-carousel');\n $spotlight.owlCarousel({\n autoWidth: true,\n dotsContainer: '.spotlight-pager',\n items: 1,\n margin: 30,\n navigation: true,\n nestedItemSelector: 'spotlight-item',\n loop: false\n });\n } else {\n $spotlight.addClass('tabs-pane');\n spotlightTabs();\n }\n });\n\n $(window).resize(function() {\n if($(window).width() < $mobileBreakpoint && screenSize == 'desktop') {\n $spotlight.addClass('owl-carousel');\n $spotlight.owlCarousel({\n autoWidth: true,\n dotsContainer: '.spotlight-pager',\n items: 1,\n margin: 30,\n navigation: true,\n nestedItemSelector: 'spotlight-item',\n loop: false\n });\n screenSize = 'mobile';\n $spotlight.removeClass('tabs-pane');\n } else if ($(window).width() > $mobileBreakpoint && screenSize == 'mobile') {\n $spotlight.addClass('tabs-pane').removeClass('owl-carousel');\n screenSize = 'desktop';\n var items = $spotlight.find('.spotlight-item').detach();\n items.prependTo('.spotlight-items');\n $spotlight.owlCarousel('destroy');\n }\n });\n }\n\n function spotlightTabs() {\n var $tabPane = $('.spotlight.tabs-pane');\n var $tabMenu = $('.spotlight-tabs');\n if($tabMenu.length) {\n var $firstTabMenu = $tabMenu.find('.tab:first-of-type');\n $firstTabMenu.addClass('active');\n var firstId = $firstTabMenu.attr('for');\n $('#' + firstId).addClass('open');\n\n var $tab = $tabMenu.find('.tab');\n\n $tab.on('mouseenter', function() {\n var id = $(this).attr('for');\n\n if(!$(this).hasClass('active')) {\n $tabMenu.find('.active').removeClass('active');\n $tabPane.find('.open').removeClass('open');\n $tabPane.find('#' + id).addClass('open');\n $(this).addClass('active');\n }\n });\n }\n }\n }\n };\n\n Drupal.behaviors.calendar = {\n attach: function(context, settings) {\n $(document).ready(function() {\n\n if($('#event-mini-calendar').length != 0) {\n var searchString = decodeURIComponent(window.location.search);\n\n var match = searchString.match(/[^=&?]+\\s*=\\s*[^]*/g);\n var vars = {};\n if(match !== null) {\n for ( var i = match.length; i--; ) {\n var spl = match[i].split(\"=\");\n var name = spl[0].replace(\"[]\", \"\");\n var value = spl[1];\n\n vars[name] = vars[name] || [];\n vars[name].push(value);\n }\n }\n\n var selected = (vars['date[min]'] !== undefined) ? vars['date[min]'][0] : moment().format('YYYY-MM-DD');\n\n $('#event-mini-calendar').clndr({\n template: $('#template-calendar').html(),\n selectedDate: selected,\n startWithMonth: selected,\n clickEvents: {\n click: function(target) {\n var today = moment().format('YYYY-MM-DD');\n var targetDate = target.date.format('YYYY-MM-DD');\n var minDate = targetDate;\n var maxDate = moment(targetDate).add(1, 'days').format('YYYY-MM-DD');\n\n vars['date[min]'] = [minDate];\n vars['date[max]'] = [minDate];\n vars['date_gt'] = [maxDate];\n\n var urlArr = [];\n $.each(vars, function(idx2,val2) {\n var str = idx2 + \"=\" + val2;\n urlArr.push(str);\n });\n\n var urlString = encodeURI(urlArr.join(\"&\"));\n\n\n window.location = window.location.pathname + '?' + urlString;\n },\n onMonthChange: function(month) {\n $('.clndr-previous-button').text(moment(month).subtract(1, 'month').format('MMM'));\n $('.clndr-previous-button').prepend('');\n $('.clndr-next-button').text(moment(month).add(1, 'month').format('MMM'));\n $('.clndr-next-button').append('');\n }\n },\n ready: function() {\n /* Same as the onMonthChange() event, but with the selected month at startup */\n $('.clndr-previous-button').text(moment(selected).subtract(1, 'month').format('MMM'));\n $('.clndr-previous-button').prepend('');\n $('.clndr-next-button').text(moment(selected).add(1, 'month').format('MMM'));\n $('.clndr-next-button').append('');\n }\n });\n\n $('#event-mini-calendar').find('.today').parent().addClass('this-week');\n }\n });\n }\n };\n\n Drupal.behaviors.tabListNews = {\n attach: function(context, settings) {\n var $tabPane = $('.js-tab-pane-2');\n var $tabMenu = $('.js-tab-menu-2');\n if($tabMenu.length) {\n\n var $tab = $tabMenu.find('.tab');\n\n $tab.on('click', function() {\n var id = $(this).attr('for');\n\n $('.block-views-exposed-filter-blocknews-landing-page-page-1 form').css('top', '18px');\n\n $('html, body').animate({\n scrollTop: $('.layout__region--filter-bar').offset().top + 'px'\n }, 'fast');\n\n if(!$(this).hasClass('active')) {\n $tabMenu.find('.active').removeClass('active');\n $tabPane.find('.views-element-container').addClass('closed');\n $tabPane.find('.open').removeClass('open');\n $tabPane.find(id).addClass('open');\n $(this).addClass('active').removeClass('closed');\n }\n });\n /* Remove tab items that don't link to anything */\n $tabMenu.find('.tab').each(function() {\n var id = $(this).attr('for');\n if (!$(id).length) {\n $(this).remove();\n }\n })\n\n }\n }\n };\n\n Drupal.behaviors.searchKeywords = {\n attach: function(context, settings) {\n\n if($('.layout--search').length && window.location.search != '') {\n $('.layout--search .base-search-title').hide();\n $('.layout--search .block-views-blockcsail-search-block-1 .view-header h1').show();\n var keywords = $('#views-exposed-form-csail-search-page-1 #edit-keywords').attr('value');\n\n if($('.search-page-header').attr('data-results') != 0) {\n $('#views-exposed-form-csail-search-page-1').addClass('has-results');\n }\n\n $('.block-views-blockcsail-search-block-1 .view-header .keywords').text(keywords);\n } else if ($('.layout--search').length) {\n\n }\n }\n };\n\n Drupal.behaviors.mobileFacetDropdown = {\n attach: function(context, settings) {\n var $mobileDropdown = $('.js-mobile-collapse-menu');\n\n if($mobileDropdown.length) {\n var $placeholder = $mobileDropdown.find('.js-selected-placeholder');\n var $menu = $mobileDropdown.find('ul');\n\n var active = $menu.find('.facet-item .is-active').find('.facet-item__value').text();\n\n if(active != '') {\n $placeholder.find('.value').text(active);\n } else {\n $placeholder.find('.value').text('All');\n }\n\n\n $placeholder.click(function() {\n if($menu.hasClass('open')) {\n $menu.removeClass('open');\n $placeholder.removeClass('open');\n } else {\n $menu.addClass('open');\n $placeholder.addClass('open');\n }\n });\n\n $menu.find('li, a').click(function() {\n $placeholder.find('.value').text($(this).text());\n $menu.removeClass('open');\n $placeholder.removeClass('open');\n });\n\n }\n\n }\n };\n\n Drupal.behaviors.newsLastParagraph = {\n attach: function(context, settings) {\n $newsBottom = $('.news-bottom');\n\n if($newsBottom.length) {\n $bodyTexts = $newsBottom.find('.body-text');\n $.trim($bodyTexts.find('p').text);\n $trimmedBodies = $newsBottom.find('.body-text');\n $lastText = $trimmedBodies.last();\n $lastP = $lastText.find('p').last();\n $lastP.addClass('final');\n }\n }\n };\n\n Drupal.behaviors.anchorNav = {\n attach: function(context, settings) {\n if($('.js-anchor-nav').length) {\n // Cache selectors\n var topMenu = $(\".js-anchor-nav\"),\n topMenuHeight = topMenu.outerHeight(),\n // All list items\n menuItems = topMenu.find(\"a\"),\n // Anchors corresponding to menu items\n scrollItems = menuItems.map(function(){\n var t = $(this).attr(\"href\")\n if (t.startsWith('#')) {\n var item = $(t);\n if (item.length) { return item; }\n }\n });\n\n // Bind to scroll\n $(window).scroll(function() {\n // Get container scroll position\n var fromTop = $(this).scrollTop()+topMenuHeight+40;\n\n // Get id of current scroll item\n var cur = scrollItems.map(function(){\n if ($(this).offset().top < fromTop)\n return this;\n });\n // Get the id of the current element\n cur = cur[cur.length-1];\n var id = cur && cur.length ? cur[0].id : \"\";\n // Set/remove active class\n menuItems\n .parent().removeAttr('class')\n .end().filter(\"[href='#\"+id+\"']\").parent().addClass(\"active\");\n });\n }\n }\n };\n\n Drupal.behaviors.addToCalendar = {\n attach: function(context, settings) {\n if ($(\".add-to-calendar\").length) {\n if (window.addtocalendar)if (typeof window.addtocalendar.start == \"function\")return;\n if (window.ifaddtocalendar == undefined) {\n window.ifaddtocalendar = 1;\n var d = document, s = d.createElement('script'), g = 'getElementsByTagName';\n s.type = 'text/javascript';\n s.charset = 'UTF-8';\n s.async = true;\n s.src = 'https://addtocalendar.com/atc/1.5/atc.min.js';\n var h = d[g]('body')[0];\n h.appendChild(s);\n }\n }\n }\n };\n\n Drupal.behaviors.mapPopup = {\n attach: function(context, settings) {\n if ($(window).width() > $mobileBreakpoint) {\n $(context).find(\"a.room-popup\").colorbox({\n closeButton: false,\n title: function () {\n return $(this)[0].innerHTML;\n }});\n }\n }\n };\n\n})(jQuery, Drupal);\n"],"names":["$","Drupal","$mobileBreakpoint","behaviors","header","attach","context","settings","window","resize","more","document","getElementById","length","moreLeftSideToPageRightSide","width","offset","left","removeClass","addClass","ready","menuToggle","unbind","on","e","preventDefault","removeAttr","slideToggle","find","is","animate","this","focus","height","attachViewExpandClasses","each","$rows","$slicedRows","slice","accordionExpand","$expand","click","$expandElement","hasClass","slideDown","slideUp","expand","$expandTrigger","location","hash","previewSwitch","$switchTrigger","$list","$viewContent","text","researchCardShowAllLeads","after","siblings","css","display","hide","stickyNav","$stickyNav","$navPlaceholder","top","scrollTop","contactModal","$modal","$tabs","modalPadding","parseInt","tabsWidth","i","val","outerWidth","prop","change","stopPropagation","idTabList","firstId","$tabPane","$tabMenu","$firstTabMenu","attr","id","anchorScroll","$root","outerHeight","href","history","pushState","contentPageMobileDropdown","$mobileDropdown","$menu","parent","$hiddenSubnav","show","spotlightNews","$spotlight","screenSize","owlCarousel","autoWidth","dotsContainer","items","margin","navigation","nestedItemSelector","loop","spotlightTabs","detach","prependTo","calendar","match","decodeURIComponent","search","vars","spl","split","name","replace","value","push","selected","undefined","moment","format","clndr","template","html","selectedDate","startWithMonth","clickEvents","target","targetDate","date","minDate","maxDate","add","urlArr","idx2","val2","urlString","encodeURI","join","pathname","onMonthChange","month","subtract","prepend","append","tabListNews","remove","searchKeywords","keywords","mobileFacetDropdown","$placeholder","active","newsLastParagraph","$newsBottom","$bodyTexts","trim","$trimmedBodies","$lastText","last","$lastP","anchorNav","topMenu","topMenuHeight","menuItems","scrollItems","map","t","startsWith","item","scroll","fromTop","cur","end","filter","addToCalendar","d","s","addtocalendar","start","ifaddtocalendar","createElement","type","charset","async","src","appendChild","mapPopup","colorbox","closeButton","title","innerHTML","jQuery"],"mappings":"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"}