{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/Drupal.js","webpack:///./src/js/DDTemplates.js","webpack:///./src/js/Viewport.js","webpack:///./src/js/Menu.js","webpack:///./src/js/Header.js","webpack:///./src/js/Change.js","webpack:///./src/js/Sticky.js","webpack:///./src/js/Gallery.js","webpack:///./src/js/Toolbar.js","webpack:///./src/js/MobileMenu.js","webpack:///./src/js/SmartFooter.js","webpack:///./src/js/CalendarFeed.js","webpack:///./src/js/FixNavigation.js","webpack:///./src/js/TermNavigation.js","webpack:///./src/js/FooterMods.js","webpack:///./src/js/PodMods.js","webpack:///./src/js/Placeholder.js","webpack:///./src/js/ProgramsRedirect.js","webpack:///./src/js/Redirect.js","webpack:///./src/js/AccordionWrap.js","webpack:///./src/js/AccordionFix.js","webpack:///./src/js/AccordionContainer.js","webpack:///./src/js/Banner.js","webpack:///./src/js/BackgroundImage.js","webpack:///./src/js/RemoveLink.js","webpack:///./src/js/Slick.PlayPauseControls.js","webpack:///./src/js/Hero.js","webpack:///./src/js/StringSplit.js","webpack:///./src/js/SelectList.js","webpack:///./src/js/Columns.js","webpack:///./src/js/Slider.Programs.js","webpack:///./src/js/SingleChild.js","webpack:///./src/js/Slider.Events.js","webpack:///./src/js/Slider.Featured.js","webpack:///./src/js/HomepageEvents.js","webpack:///./src/js/HomeSignUp.js","webpack:///./src/js/SelectBox.js","webpack:///./src/js/BrowserCheck.js","webpack:///./src/js/ActivityView.js","webpack:///./src/js/ActivityType.FadeText.js","webpack:///./src/js/TitleCaption.js","webpack:///./src/js/GoogleMapsConfig.js","webpack:///./src/js/DistrictsData.js","webpack:///./src/js/LocatorMap.js","webpack:///./src/js/GeofieldFormController.js","webpack:///./src/js/GooglePublisherTags.config.js","webpack:///./src/js/GooglePublisherTags.js","webpack:///./src/js/GoogleNativeAd.js","webpack:///./src/js/CommunityCalendar.js","webpack:///./src/js/theme.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","behaviors","defaults","photoGalleryPID","itemAppearsIn","fullNodeRelatedLinks","bundledReferringContent","overviews","subtermOverviews","lexiconGlossary","nodeMeta","imageCaptions","slideshowIcons","expandingDates","DDTemplates","context","options","classCallCheck_default","this","isNodeView","isNode","settings","assign","defineApplicableBehaviors","$","document","body","is","view","_this","node","term","global","forEach","behavior","addEnabledBehavior","$appearingNav","find","addClass","each","element","$block","a","$node","$items","removeClass","$visible","map","item","getComputedStyle","getPropertyValue","filter","b","meta","$meta","$dates","$link","event","preventDefault","toggleClass","currentTarget","text","insertBefore","eq","$container","appendTo","append","$image","title","attr","$field","parents","caption","concat","$wrapper","remove","after","wrapAll","image","$img","before","$context","children","unwrap","letter","replace","html","toUpperCase","js_Viewport","Viewport","change","mobileState","getCurrentState","ticking","addListeners","state","innerWidth","currentState","previousState","changeCallbacks","fire","setCurrentState","mobileCallbacks","desktopCallbacks","requestTick","requestAnimationFrame","update","callback","Callbacks","add","on","hoverInit","hoverDelay","selector","Menu","$element","$menus","getMenus","over","out","listen","ready","$target","timer","clear","setTimeout","TickTock","closest","documentIsReady","Drupal","fn","DrupalAMD","offset","tolerance","classes","initial","pinned","unpinned","top","notTop","bottom","notBottom","onPin","onUnpin","onTop","onNotTop","onBottom","onNotBottom","Header","headroom","Headroom","init","js_Change","Change","callbacks","request","Sticky","register","onChange","innerHeight","height","speed","fade","autoplay","autoplaySpeed","dots","arrows","slidesToShow","slidesToScroll","responsive","breakpoint","Gallery","$gallery","build","slick","delay","selectors","menu","search","input","Toolbar","$body","getBody","$menuBtn","getBtn","$searchBtn","$searchBox","getBox","searchText","getText","menuHandler","resetSearchInput","type","$searchText","val","$input","off","typeOutPlaceholderText","_this2","setInterval","substr","focus","MobileMenu","$roots","getRootMenus","onClick","displayActiveMenus","shouldExpand","target","Footer","$footprint","outerHeight","storageKey","paginationLabel","filtersLabel","filterByPostTypes","useFilters","filters","defaultFilters","All","CalendarFeed","getFilters","buildCalendar","createFilters","$group","$posts","currentYear","currentMonth","post","$post","oDates","datetime","date","moment","month","format","mon","day","dow","year","start","toLowerCase","$year","$tile","markup","isSameMonth","end","isSameDay","isSameYear","next","$filters","types","ids","id","getDefaultData","getCustomizedData","currentFilter","sessionStorage","getItem","hash","location","decodeURIComponent","$filter","$show","inArray","not","stop","animate","opacity","setItem","$shown","nextUntil","$ctrl","filterHandler","trigger","_types","_ids","regex","test","exec","indexes","aResults","aTypes","parseInt","index","indexOf","sort","FixNavigation","process","$parent","$children","parent","TermNavigation","onHeaderClick","proxy","addPatties","$filteredMenus","has","onMenuClick","prepend","FooterMods","prependTo","PodMods","trim","Placeholder","label","substring","linkLocation","ProgramsRedirect","wrap","content","contents","url","first","Redirect","click","stopPropagation","href","AccordionWrap","getClasses","status","getStatus","addBack","$classes","hasClass","elemClasses","split","$status","AccordionFix","setVert","isVisible","topOffset","documentElement","scrollTop","e","elementTop","elementBottom","viewportTop","viewportBottom","elem","Banner","sourceSelector","destSelector","undefined","isPseudo","BackgroundImage","addBackgroundImage","getSource","src","css","RemoveLink","unlink","removeAttr","slickInstance","slickContainer","attachTo","playBtn","pauseBtn","SlickPlayPauseControls","$slickContainer","play","pause","onBreakpointChange","$playBtn","addPlayBtn","$pauseBtn","addPauseBtn","setCurrentBreakpointState","verify","error","addControls","slickControls","createElement","$slickControls","removeControls","paused","setPlayState","setPauseState","$autoplay","$activeBreakpoint","activeBreakpoint","breakpointSettings","pauseOnHover","infinite","cssEase","waitForAnimate","Hero","extend","addBackgrounds","addSlick","controls","$slider","backgroundImage","separator","StringSplit","RegExp","destination","placeholder","optionSrc","numerator","SelectList","$destination","targetUrl","targetLabel","interval","columns","divider","blockName","Columns","addIndexes","total","numLinks","Math","ceil","createCols","stripe","adaptiveHeight","Slider","SingleChild","$elem","$prepare","prep","HomepageEvents","slider","HomeSignUp","select2","SelectBox","$links","$select","$list","$options","option","hide","params","open","BrowserCheck","browserArr","uagent","navigator","userAgent","match","chrome","firefox","msie","safari","opr","browser","version","keys","matchCheck","newMatch","opera","ActivityView","noResults","fadeIn","vOffset","FadeText","innerElem","outerElem","padOffset","TitleCaption","GoogleMapsConfig","DistrictsData","districts","color","area","lat","lng","GoogleMapsLoader","LIBRARIES","KEY","VERSION","zoom","defaultLocation","icons","user","district","LocatorMap","load","google","geocoder","maps","Geocoder","bounds","LatLngBounds","setDistricts","DistrictData","createMap","pins","configureUserLocation","finally","configurePins","setBoundries","addPins","Promise","resolve","reject","userLocation","promise","geocode","then","plotUserLocation","catch","Error","console","warn","_ref","pos","LatLng","position","animation","Animation","DROP","infoWindow","InfoWindow","icon","plotDistrict","_this3","repFound","geometry","poly","containsLocation","polygon","setMap","$rep","noRep","message","className","textContent","appendChild","Map","getElementById","center","fitBounds","_this4","$nodes","$address","Number","info","_this5","dropPin","_this6","pin","Marker","addListener","close","_this7","classList","contains","Polygon","paths","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","setPosition","latLng","_this8","address","GeocoderStatus","OK","automaticLocation","manualLocation","GeofieldFormController","geolocation","currentLocation","usingCurrentLocation","submitHandler","setCurrentLocation","checkboxChangeHandler","textfieldChangeHandler","setViewState","checkboxState","protocol","getCurrentPosition","maximumAge","coords","$checkbox","$textfield","latitude","longitude","$hiddenfield","checked","GooglePublisherTags_config","account","placements","sizes","googletag","GooglePublisherTags","config","script","cmd","defineSlot","addService","pubads","enableSingleRequest","enableServices","display","async","getElementsByTagName","GoogleNativeAd","addEventListener","instance","adUnit","eventName","innerHTML","loader","querySelector","parentNode","removeChild","getAttribute","api","city","CommunityCalendar","objectSpread_default","fetchEvents","createCalendar","firstOfLastMonth","Request","cache","fetch","response","json","events","calendar","Calendar","plugins","listPlugin","dayGridPlugin","header","left","right","buttonText","listWeek","listDay","defaultView","defaultDate","navLinks","eventLimit","editable","eventClick","el","jsEvent","link","views","dayGridMonth","firstOfTheMonth","render","tabPanel","MutationObserver","mutationList","mutation","attributeName","changeView","optionsManager","computed","observe","attributes","subtract","startOf","browserCheck","banner","SmartFooter","accordionWrap","accordionContainer","AccordionContainer","podMods","redirect","removeLink","programsRedirect","hero","selectIdentifier","select","commSelect","intSelect","programs","SliderPrograms","SliderEvents","featured","SliderFeatured","signUp","community","agSplit","titleCaption","activityView","fadeText","ActivityTypeFadeText","$map","$nav","digitaldcoreCreateSiteMap"],"mappings":"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","file":"theme.min.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([25,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/* global Drupal */\nimport $ from 'jquery';\n\nlet behaviors;\nlet documentIsReady = false;\n\n/**\n * Allows a Drupal behavior to be added from an AMD-style module. The behavior\n * will be executed when:\n * - As soon as the DOM is ready, if the DOM is not ready when the behavior is\n * added, just like a regular Drupal behavior.\n * - Immediately upon adding, if the DOM is ready (which may happen since\n * AMD-style modules are loaded asynchronously).\n * - When Drupal.attachBehaviors is executed.\n */\nDrupal.behavior = function addDrupalBehavior(fn) {\n if (!behaviors) {\n behaviors = $.Callbacks();\n documentIsReady = false;\n\n $(document).ready(() => {\n documentIsReady = true;\n behaviors.fire(document);\n\n // Now that we know the document is ready, add ourselves to Drupal's\n // behavior handling.\n window.Drupal.behaviors.DrupalAMD = function DrupalAMD(context) {\n behaviors.fire(context);\n };\n });\n }\n\n // Note: we can't use the 'memory' option of jQuery.Callbacks, because we\n // need control over the argument.\n if (documentIsReady) {\n fn(document);\n }\n\n behaviors.add(fn);\n return this;\n};\n\nexport default Drupal;\n","import $ from 'jquery';\n\nconst defaults = {\n photoGalleryPID: 107,\n behaviors: {\n itemAppearsIn: true,\n fullNodeRelatedLinks: true,\n bundledReferringContent: true,\n overviews: true,\n subtermOverviews: true,\n lexiconGlossary: true,\n nodeMeta: true,\n imageCaptions: true,\n slideshowIcons: true,\n expandingDates: true,\n },\n};\n\nexport default class DDTemplates {\n constructor(context, options) {\n this.context = context;\n this.isNodeView = this.isNode();\n this.settings = Object.assign({}, defaults, options);\n // Global behaviors\n this.defineApplicableBehaviors('global', this.context);\n // Current view behaviors only\n this.defineApplicableBehaviors(this.isNodeView ? 'node' : 'term', this.context);\n }\n\n /**\n * Simple check to see if the current body element contains the node class.\n */\n isNode() {\n return $(document.body, this.context).is('.n, .section-node');\n }\n\n /**\n * Segregates behaviors by different types of common views. If they're\n * enabled, define them in this module.\n */\n defineApplicableBehaviors(view) {\n const behaviors = {\n node: [\n 'itemAppearsIn',\n 'bundledReferringContent',\n ],\n term: [\n 'overviews',\n 'subtermOverviews',\n 'lexiconGlossary',\n ],\n global: [\n 'nodeMeta',\n 'imageCaptions',\n 'slideshowIcons',\n 'expandingDates',\n ],\n };\n\n // Cycle through each behavior and only add it if it's enabled\n behaviors[view].forEach((behavior) => {\n this.addEnabledBehavior(behavior);\n });\n }\n\n /**\n * A way to enable only behaviors the theme requires.\n */\n addEnabledBehavior(behavior) {\n const enabled = this.settings.behaviors[behavior];\n if (enabled) {\n this[behavior].call(this);\n }\n }\n\n /**\n * Helper class for theming the appearing navigation block\n */\n itemAppearsIn() {\n const $appearingNav = $('.appearing-nav', this.context);\n const $links = $appearingNav.find('ul.links li');\n if (!$links.length) {\n $appearingNav.addClass('placeholder-block');\n }\n }\n\n /**\n * Hides the blocks if no content is present.\n */\n bundledReferringContent() {\n const $blocks = $('#block-digitaldcore-node_referring, #block-digitaldcore-node_bundled', this.context);\n $blocks.each((i, element) => {\n const $block = $(element);\n const $nodes = $block.find('.node-teaser');\n if (!$nodes.length) {\n $block.addClass('placeholder-block');\n }\n });\n }\n\n /**\n * Finds the real last meta item and identifies node of visible meta info\n */\n nodeMeta() {\n const $nodes = $('.node', this.context);\n $nodes.each((a, node) => {\n // Create a meta object\n const $node = $(node);\n const $meta = $node.find('.node-upper-meta');\n const $items = $meta.find('.meta-item');\n\n // Clean up last classname\n $items.removeClass('last');\n\n // Filter to just visible items\n const $visible = $items.map((i, item) => {\n const props = window.getComputedStyle(item);\n const display = props.getPropertyValue('display');\n return display !== 'none' ? item : null;\n });\n\n // Correctly identify last meta item and label node with the has-meta flag\n if ($visible.length) {\n $node.addClass('has-meta');\n $visible.filter(':last').addClass('last new-dd-templates-functionality');\n }\n });\n }\n\n /**\n * If there is more than two event dates, functionality is added to show and\n * hide all events within one container.\n *\n * Helps cleans up the look of meta data.\n *\n * @note:\n * This is only enabled for blocks with the 'posts' classname and all\n * full post views\n */\n expandingDates() {\n $('.posts .node, .node-full', this.context).each((a, node) => {\n $('.node-meta, .node-upper-meta', node).each((b, meta) => {\n const $meta = $(meta);\n const $dates = $('.event-date', node);\n\n if ($dates.length > 2) {\n // Create and add functionality to display all other dates\n const $link = $('Show all dates');\n $link.bind('click', (event) => {\n event.preventDefault();\n $meta.toggleClass('show-all-dates');\n $(event.currentTarget).text($meta.is('.show-all-dates') ? 'Hide all dates' : 'Show all dates');\n });\n $link.insertBefore($dates.eq(0));\n\n // Move all other dates\n const $container = $('
');\n $dates.appendTo($container);\n $meta.append($container);\n }\n });\n });\n }\n\n /**\n * Field image caption control\n */\n imageCaptions() {\n // Identifies an image that should have a caption added\n $('.field-image img[title]', this.context).each((i, element) => {\n const $image = $(element);\n const title = $image.attr('title');\n // Continue processing this title isn't an empty string\n if (title.length) {\n const $field = $image.parents('.field-image');\n const caption = `${title}`;\n const $wrapper = $field.find('a');\n\n // delete the existing caption if it exists\n $field.find('.caption').remove();\n\n // Add image as a link support\n $image.after(caption);\n\n if (!$wrapper.length) {\n $field.find('img, .caption').wrapAll('');\n }\n\n // Add a helper class to aid styling of the image and caption\n $field.addClass('has-caption');\n }\n });\n }\n\n /**\n * Adds markup to slideshow teasers to show an icon overlay\n */\n slideshowIcons() {\n const $slideshowNodes = $(`.pt${this.settings.photoGalleryPID}.node-teaser`, this.context);\n // cycle through each node instance\n $slideshowNodes.each((a, element) => {\n const $images = $(element).find('.field-image');\n // cycle through each field image instance\n $images.each((b, image) => {\n const $img = $(image).find('img');\n // add a button helper classname\n $(image).find('a').addClass('slideshow-btn');\n // prepend the icon overlay\n $img.before('');\n });\n });\n }\n\n /**\n * Removes the link from overview headings.\n */\n overviews() {\n const $context = $(this.context);\n if ($context.length) {\n $context.find('.overview .node-header a').children().unwrap();\n }\n }\n\n /**\n * Adds the has more class to subterm overviews to properly control node-link display\n */\n subtermOverviews() {\n $('.subterm-overview .node-teaser', this.context).removeClass('no-more').addClass('has-more');\n }\n\n /**\n * Helper function to theme the category letters and seperate the sections\n */\n lexiconGlossary() {\n $('#glossary', this.context).find('.lexicon-list > a').each((i, element) => {\n const letter = $(element).attr('id').replace('letter_', '');\n $(element).html(letter.toUpperCase());\n });\n }\n}\n","import $ from 'jquery';\n\nconst breakpoint = 1200;\n\nclass Viewport {\n constructor() {\n this.change = this.change.bind(this);\n this.mobileState = this.getCurrentState();\n this.ticking = false;\n this.addListeners();\n }\n\n setCurrentState(state) {\n this.mobileState = state;\n }\n\n /* eslint-disable class-methods-use-this */\n\n getCurrentState() {\n return window.innerWidth < breakpoint;\n }\n\n update() {\n this.ticking = false;\n const currentState = this.getCurrentState();\n const previousState = this.mobileState;\n\n // Announce screen has changed\n if (this.changeCallbacks) {\n this.changeCallbacks.fire();\n }\n\n // Check to see if the view state has changed\n if (currentState !== previousState) {\n this.setCurrentState(currentState);\n\n // Announce screen has changed to mobile mode\n if (this.mobileCallbacks && this.mobileState) {\n this.mobileCallbacks.fire();\n }\n\n // Announce screen has changed to desktop mode\n if (this.desktopCallbacks && !this.mobileState) {\n this.desktopCallbacks.fire();\n }\n }\n }\n\n change() {\n this.requestTick();\n }\n\n requestTick() {\n if (!this.ticking) {\n requestAnimationFrame(this.update.bind(this));\n this.ticking = true;\n }\n }\n\n onMobileChange(callback) {\n if (!this.mobileCallbacks) {\n this.mobileCallbacks = $.Callbacks('memory');\n }\n this.mobileCallbacks.add(callback);\n return this;\n }\n\n onDesktopChange(callback) {\n if (!this.desktopCallbacks) {\n this.desktopCallbacks = $.Callbacks('memory');\n }\n this.desktopCallbacks.add(callback);\n return this;\n }\n\n onChange(callback) {\n if (!this.changeCallbacks) {\n this.changeCallbacks = $.Callbacks('memory');\n }\n this.changeCallbacks.add(callback);\n return this;\n }\n\n addListeners() {\n $(window).on('resize orientationchange', this.change);\n }\n}\n\nexport default new Viewport();\n","import $ from 'jquery';\nimport TickTock from 'tick-tock';\nimport Viewport from './Viewport';\n\nconst settings = {\n hoverInit: 250,\n hoverDelay: 250,\n selector: 'li.menuparent',\n};\n\nexport default class Menu {\n constructor(element) {\n this.element = element;\n this.$element = $(element);\n this.settings = settings;\n this.$menus = this.getMenus();\n this.over = this.over.bind(this);\n this.out = this.out.bind(this);\n this.listen();\n this.ready();\n }\n\n getMenus() {\n return this.$element.find(this.settings.selector);\n }\n\n over(event) {\n const $target = $(event.currentTarget);\n if (!Viewport.mobileState) {\n event.currentTarget.timer.clear('hide');\n event.currentTarget.timer.setTimeout('show', () => {\n $target.addClass('show');\n }, this.settings.hoverInit);\n }\n }\n\n out(event) {\n const $target = $(event.currentTarget);\n if (!Viewport.mobileState) {\n event.currentTarget.timer.clear('show');\n event.currentTarget.timer.setTimeout('hide', () => {\n $target.removeClass('show');\n }, this.settings.hoverInit);\n }\n }\n\n listen() {\n this.$menus.each((i, element) => {\n element.timer = new TickTock();\n });\n\n this.$menus.removeClass('show')\n .on('mouseover focusin', this.over)\n .on('mouseout focusout', this.out);\n }\n\n ready() {\n this.$element.closest('header').addClass('menu-ready');\n }\n}\n","import $ from 'jquery';\nimport Headroom from 'headroom.js';\n\n// Headroom settings\nconst settings = {\n // vertical offset in px before element is first unpinned\n offset: 80,\n // scroll tolerance in px before state changes\n tolerance: 5, // or {down: 0, up: 0},\n // css classes to apply\n classes: {\n // when element is initialised\n initial: 'headroom',\n // when scrolling up\n pinned: 'locked',\n // when scrolling down\n unpinned: 'unlocked',\n // when above offset\n top: 'top',\n // when below offset\n notTop: 'not-top',\n // when at bottom of scoll area\n bottom: 'bottom',\n // when not at bottom of scroll area\n notBottom: 'not-bottom',\n },\n // callback when pinned, `this` is headroom object\n onPin() {\n $(document.body).addClass('locked').removeClass('unlocked');\n },\n // callback when unpinned, `this` is headroom object\n onUnpin() {\n $(document.body).addClass('unlocked').removeClass('locked');\n },\n // callback when above offset, `this` is headroom object\n onTop() {\n $(document.body).addClass('top').removeClass('not-top');\n },\n // callback when below offset, `this` is headroom object\n onNotTop() {\n $(document.body).addClass('not-top').removeClass('top');\n },\n // callback at bottom of page, `this` is headroom object\n onBottom() {},\n // callback when moving away from bottom of page, `this` is headroom object\n onNotBottom() {},\n};\n\nexport default class Header {\n constructor(element) {\n // Create a new Headroom instance\n const headroom = new Headroom(element, settings);\n // Initialize this Headroom instance\n headroom.init();\n // Return back the new instance\n return headroom;\n }\n}\n","import $ from 'jquery';\n\nclass Change {\n constructor() {\n this.change = this.change.bind(this);\n this.ticking = false;\n this.listen();\n }\n\n update() {\n this.ticking = false;\n if (this.callbacks) {\n this.callbacks.fire();\n }\n }\n\n change() {\n this.request();\n }\n\n request() {\n if (!this.ticking) {\n requestAnimationFrame(this.update.bind(this));\n this.ticking = true;\n }\n }\n\n onChange(callback) {\n if (!this.callbacks) {\n this.callbacks = $.Callbacks('memory');\n }\n this.callbacks.add(callback);\n return this;\n }\n\n listen() {\n $(window).on('scroll resize orientationchange', this.change);\n }\n}\n\nexport default new Change();\n","import $ from 'jquery';\nimport Change from './Change';\n\nconst OFFSET = 115 + 35; // header height plus top offset of sidebars\n\nexport default class Sticky {\n constructor(element) {\n this.element = element;\n this.$element = $(element);\n this.register();\n }\n\n register() {\n Change.onChange(this.update.bind(this));\n }\n\n update() {\n if (window.innerHeight - OFFSET > this.$element.height()) {\n this.$element.addClass('sticky');\n } else {\n this.$element.removeClass('sticky');\n }\n\n return this;\n }\n}\n","import $ from 'jquery';\nimport 'slick-carousel';\n\nconst defaults = {\n speed: 500,\n fade: true,\n autoplay: true,\n autoplaySpeed: 4000,\n dots: true,\n arrows: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n responsive: [\n {\n breakpoint: 690,\n settings: {\n arrows: false,\n },\n },\n ],\n};\n\nexport default class Gallery {\n constructor(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign({}, defaults, options);\n this.$gallery = this.build();\n this.ready();\n }\n\n build() {\n return this.$element.slick(this.settings);\n }\n\n ready() {\n this.$element.addClass('ready');\n }\n}\n","import $ from 'jquery';\nimport TickTock from 'tick-tock';\n\nconst settings = {\n delay: 400,\n selectors: {\n menu: '.menu-icon',\n search: '.search-icon',\n text: '#edit-box-text',\n input: '#edit-keywords',\n },\n};\n\nexport default class Toolbar {\n constructor(element, context) {\n this.context = context;\n this.element = element;\n this.$element = $(element);\n this.settings = settings;\n this.timer = new TickTock();\n this.$body = this.getBody();\n this.$menuBtn = this.getBtn('menu');\n this.$searchBtn = this.getBtn('search');\n this.$searchBox = this.getBox(context);\n this.searchText = this.getText(context);\n this.menuHandler = this.menuHandler.bind(this);\n this.resetSearchInput = this.resetSearchInput.bind(this);\n this.listen();\n this.ready();\n }\n\n getBody() {\n return $(document.body, this.context);\n }\n\n getBtn(type) {\n return $(this.settings.selectors[type], this.element);\n }\n\n getText(context) {\n const $searchText = $(this.settings.selectors.text, context);\n // clear out the value since we don't want it displayed\n const searchText = $searchText.val();\n $searchText.val('');\n return searchText;\n }\n\n getBox(context) {\n const $input = $(this.settings.selectors.input, context);\n $input.val('');\n return $input;\n }\n\n menuHandler() {\n return this.$body.is('.menu-active') ? this.off() : this.on();\n }\n\n off() {\n this.$body.removeClass('menu-active');\n // Cancel any search input timeouts that may be running.\n this.timer.clear('focus');\n this.timer.clear('typing');\n }\n\n on() {\n this.$body.addClass('menu-active');\n this.$searchBox.attr('placeholder', '');\n // Focus the search box after a small delay.\n this.timer.setTimeout('focus', () => {\n this.typeOutPlaceholderText();\n }, 750);\n }\n\n typeOutPlaceholderText() {\n let i = 0;\n if (!this.$searchBox.val().length) {\n this.timer.setInterval('typing', () => {\n if (i <= this.searchText.length) {\n this.$searchBox.attr('placeholder', this.searchText.substr(0, i)).focus();\n i += 1;\n } else {\n this.timer.clear('typing');\n }\n }, 60);\n }\n }\n\n resetSearchInput() {\n // This is a workaround to overcome the default dd-search.js search\n // input scripted behaviors.\n if (this.searchText === this.$searchBox.val()) {\n this.$searchBox.val('');\n }\n }\n\n listen() {\n this.$menuBtn.bind('click', this.menuHandler);\n this.$searchBtn.bind('click', this.menuHandler);\n\n // Listening so that we can override previously set scripted behaviors.\n this.$searchBox.bind('blur focus', this.resetSearchInput);\n }\n\n ready() {\n this.$element.closest('header').addClass('toolbar-ready');\n }\n}\n","import $ from 'jquery';\nimport Viewport from './Viewport';\n\nexport default class MobileMenu {\n constructor(element) {\n this.element = element;\n this.$roots = this.getRootMenus();\n this.onClick = this.onClick.bind(this);\n this.displayActiveMenus();\n this.listen();\n }\n\n getRootMenus() {\n return $(this.element).find('a.depth-1');\n }\n\n /* eslint-disable class-methods-use-this */\n onClick(event) {\n const shouldExpand = $(event.target).is('.menu-link');\n if (Viewport.mobileState && shouldExpand) {\n $(event.currentTarget).toggleClass('expand');\n event.preventDefault();\n }\n }\n\n displayActiveMenus() {\n $('.active-trail a.depth-1:not(.active)', this.element).addClass('expand');\n }\n\n listen() {\n this.$roots.on('click', this.onClick);\n }\n}\n","import $ from 'jquery';\nimport Change from './Change';\n\nexport default class Footer {\n constructor(element, $footprint) {\n this.$element = $(element);\n this.$footprint = $footprint;\n this.register();\n this.update();\n this.ready();\n }\n\n register() {\n Change.onChange(this.update.bind(this));\n }\n\n update() {\n this.$footprint.height(this.$element.outerHeight());\n }\n\n ready() {\n this.$element.addClass('ready');\n }\n}\n","import $ from 'jquery';\nimport moment from 'moment';\n\nconst defaults = {\n // local storage key used to save the currently applied filter\n storageKey: 'currentCalendarFilter',\n\n // Button text displayed as the pagination to the next page of events\n paginationLabel: 'Load More Events',\n\n // Mobile only drop down label that houses the filtering options\n filtersLabel: 'Filter by...',\n\n // Force the filters to be automatically determined by the post types present in the feed.\n filterByPostTypes: false,\n\n // A simple indicator to determine the build out of filters\n useFilters: false,\n\n // Used to pass in an object of filters which use key value pairs.\n // {Object}\n // @key: Name that will appear as the filter button text\n // @value: ID of post type or navigation term\n filters: false,\n};\n\n// These filters are used if the filterByPostTypes is enabled. Present post\n// types are then added to this object, then the filters are made from those.\nconst defaultFilters = {\n All: 2,\n};\n\nexport default class CalendarFeed {\n constructor(element, options) {\n this.$element = $(element);\n this.settings = Object.assign({}, defaults, options);\n this.filters = this.getFilters();\n this.buildCalendar();\n if (this.settings.useFilters) {\n this.createFilters();\n }\n }\n\n buildCalendar() {\n const $posts = this.$element.find('.node');\n const group = '
';\n let currentYear = null;\n let currentMonth = '';\n let $group;\n\n // Manage the types of calendar filters being created\n $posts.each((i, post) => {\n const $post = $(post);\n const dates = ['start', 'end'];\n const oDates = {};\n\n // Parse the start/end timestamps using the moment.js framework\n $.each(dates, (j, type) => {\n const datetime = $post.find(`time.${type}`).attr('datetime');\n const date = moment(datetime);\n oDates[type] = {\n month: date.format('MMMM'),\n mon: date.format('MMM'),\n day: date.format('D'),\n dow: date.format('ddd'),\n year: date.format('YYYY'),\n };\n });\n\n // Add the post into a month grouping\n if (oDates.start.month.length && currentMonth !== oDates.start.month) {\n currentMonth = oDates.start.month;\n $group = $(group);\n $group.addClass(oDates.start.month.toLowerCase());\n $group.append(`

${oDates.start.month}

`);\n $post.before($group);\n\n // Set year labels followed by the associated months of that year\n if (oDates.start.year && oDates.start.year > currentYear) {\n const $year = $(`${oDates.start.year}`);\n $group.before($year);\n currentYear = oDates.start.year;\n }\n }\n\n // Dynamically create the date tile for the event display\n const $tile = $post.find('.event-date-tile');\n const markup = data => `${data.dow}${data.mon}${data.day}`;\n $tile.find('time.start').html(markup(oDates.start));\n\n // Handle date ranges\n if ($tile.is('.range')) {\n const isSameMonth = oDates.start.month === oDates.end.month;\n const isSameDay = oDates.start.day === oDates.end.day;\n const isSameYear = oDates.start.year === oDates.end.year;\n\n // This identifies an event which begins and ends at different times on the same day\n if (isSameMonth && isSameDay && isSameYear) {\n $post.addClass('day-event');\n }\n\n // This identifies an event which spans multiple days within the same month\n if (isSameMonth && !isSameDay && isSameYear) {\n $post.addClass('multiple-day-event');\n $tile.find('time.start .day').text(`${oDates.start.day}-${oDates.end.day}`);\n }\n\n // This identifies an event which spans multiple months or maybe a year(s)\n if (!isSameMonth || !isSameYear) {\n $post.addClass('multiple-month-event');\n $tile.find('time.end').html(markup(oDates.end));\n }\n }\n\n // Add the grouped posts to the display\n $post.appendTo($group);\n });\n\n // Alter the text of the next pager button\n $('.pager-next a', this.$element).text(this.settings.paginationLabel);\n\n // Add a helper class\n this.$element.addClass('ready');\n }\n\n filterHandler(event) {\n event.preventDefault();\n $(this).next('.filters').toggleClass('expanded');\n }\n\n getFilters() {\n // If custom filters where passed, use them, if not use the defaults.\n let data = this.settings.filters ? this.settings.filters : defaultFilters;\n // If the filter by post types flag is set, force that filtering option.\n if (this.settings.filterByPostTypes) {\n data = defaultFilters;\n }\n return data;\n }\n\n createFilters() {\n const { $element } = this;\n const $posts = $element.find('.node');\n let $filters = $('
');\n const filter = '
';\n const types = [];\n const ids = [];\n\n // Create the proposed filters\n $.each(this.filters, (type, id) => {\n types.push(type);\n ids.push(id);\n });\n\n // Using the proposed filters, generate relevant filters of those types\n // that are actually present or use the semi default, filter by post type.\n const data = this.settings.filterByPostTypes\n ? this.getDefaultData(types, ids)\n : this.getCustomizedData(types, ids);\n\n // Get the latest selected filter.\n let currentFilter = sessionStorage.getItem(this.settings.storageKey) || ids[0];\n\n // See if a hash was passed, if so let's filter by that instead later on.\n let { hash } = window.location;\n if (hash.length > 1) {\n hash = hash.substr(1); // Remove the hash symbol #\n hash = decodeURIComponent(hash); // Normalize the filter passed\n }\n\n // Create filters\n $.each(data.types, (i, type) => {\n const $filter = $(filter);\n // Use the type key to identify the associated filter id\n const id = data.ids[i];\n\n // Check to see if this filter is being forced to be filtered by using\n // a url hash.\n if (hash.length && hash.toLowerCase() === type.toLowerCase()) {\n currentFilter = id;\n }\n\n // Add the type to the filter\n $filter.text(type);\n\n // Add a class name to theme the filter\n $filter.addClass(`show-${ids[i]}`);\n\n // Add the newly created filter\n $filters.append($filter);\n\n // Add a click handler\n $filter.on('click', () => {\n // Default to all posts in calendar feed\n let $show = $posts;\n\n // Filter what posts to display if not all option\n if (type !== 'All') {\n $show = $posts.filter(\n (j, element) => $.inArray(type, $(element).data('types')) !== -1,\n );\n }\n\n // Manage the active filter styling\n $filters.not(this).removeClass('active');\n $(this).addClass('active');\n\n // hide all events that aren't of this type\n $posts.not($show).stop(true, true).animate({\n opacity: 'hide',\n height: 'hide',\n }, 300).removeClass('show');\n\n // show all events that are of this type\n $show.stop(true, true).animate({\n opacity: 'show',\n height: 'show',\n }, 300).addClass('show');\n\n // Set the current filter into session storage\n sessionStorage.setItem(this.settings.storageKey, id);\n currentFilter = id;\n\n // Check to see if the event group is empty\n $element.find('.group').each((j, element) => {\n const $shown = $('.node.show', element);\n const result = $shown.length ? 'show' : 'hide';\n\n // Add a helper class for the use with the year function below\n if ($shown.length) {\n $(element).addClass('show');\n } else {\n $(element).removeClass('show');\n }\n\n // Manages the visibility of the group\n $(element).stop(true, true).animate({\n opacity: result,\n height: result,\n }, 300);\n });\n\n // Check to see if the group year should display or not\n $element.find('.group-year').each((j, element) => {\n const $shown = $(element).nextUntil('.group-year').filter('.show');\n const result = $shown.length ? 'show' : 'hide';\n $(element).stop(true, true).animate({\n opacity: result,\n height: result,\n }, 300);\n });\n });\n });\n\n // Add a drop down controller for mobile\n const $ctrl = $(`

${this.settings.filtersLabel}

`);\n $ctrl.on('click', this.filterHandler);\n\n // Add the drop down controller for mobile display\n $element.find('.view-header').append($ctrl, $filters);\n\n // Make this an jquery array of filters reference rather than a container\n // reference.\n $filters = $filters.find('.filter');\n\n // Simulate a click event for the last or default calendar filter\n $filters.filter(`.show-${currentFilter}`).trigger('click');\n }\n\n getDefaultData(_types, _ids) {\n const { $element } = this;\n const $posts = $element.find('.node');\n\n const types = _types;\n const ids = _ids;\n\n // Dynamically create the filter types and identify the posts that belong\n // to each one.\n $posts.each((i, post) => {\n const $post = $(post);\n\n // Extract the post type\n let type = $('.post-type', post).text();\n\n // If the post type is the generic Event, set the label to All instead.\n if (type === 'Event') {\n type = 'All';\n }\n\n let id = 0;\n const classes = $post.attr('class');\n const regex = /\\w?pt([0-9]+)/;\n\n // Make filters by types found if were using the default filters\n if (regex.test(classes)) {\n /* eslint-disable prefer-destructuring */\n id = regex.exec(classes)[1];\n }\n\n // Make filters by post type\n if ($.inArray(type, types) === -1) {\n types.push(type);\n ids.push(id);\n }\n\n // Add a data types to identify this when a filter is clicked\n $post.data('types', [type]);\n });\n\n return {\n types,\n ids,\n };\n }\n\n getCustomizedData(_types, _ids) {\n const { $element } = this;\n const $posts = $element.find('.node');\n const types = [];\n const ids = [];\n\n // Keep track of the types and ids that have been identified within this content.\n const indexes = [];\n\n // Dynamically create the filter types and identify the posts that belong\n // to each one.\n $posts.each((i, post) => {\n const $post = $(post);\n const classes = $post.attr('class');\n const regex = /\\w?[wp]t([0-9]+)/g; // Filter could be either wt or pt.\n const aTypes = [];\n\n // Add the post type by default\n aTypes.push($('.post-type', post).text());\n\n // If the post type is the generic Event, set the label to All instead.\n if (aTypes[0] === 'Event') {\n aTypes[0] = 'All';\n }\n\n // Iterates through all matches made to see what this post should be\n // filtered by from the filters assigned\n let aResults;\n // eslint-disable-next-line no-cond-assign\n while ((aResults = regex.exec(classes)) !== null) {\n const result = parseInt(aResults[1], 10);\n if ($.inArray(result, _ids) !== -1) {\n const index = _ids.indexOf(result);\n // Check to see if index has already been added, if not, add it.\n if ($.inArray(index, indexes) === -1) {\n indexes.push(index);\n }\n // Add this type to the post since it's been found\n aTypes.push(_types[index]);\n }\n }\n\n // Add a data id to identify this type when the filter is clicked\n $post.data('types', aTypes);\n });\n\n // Create new types and ids of the relevant types found using the\n // supplied custom filters\n $.each(indexes.sort(), (i, index) => {\n types.push(_types[index]);\n ids.push(_ids[index]);\n });\n\n return {\n types,\n ids,\n };\n }\n}\n","import $ from 'jquery';\n\nexport default class FixNavigation {\n constructor(element) {\n this.element = element;\n this.process();\n this.ready();\n }\n\n process() {\n $('.menuparent, .expanded, .collapsed', this.element).each((i, item) => {\n // handles the parent term (if hidden)\n const $parent = $(item).children('a');\n if (!$parent.length || $parent.is('.hidden')) {\n $(item).remove();\n }\n\n // handles the term to see if it only parents orphans.\n let $children = $('> ul > li', item);\n if (!$parent.is('.hidden') && $children.length) {\n // Logged in: shows links with a hidden class.\n $children.children('a.hidden').parent().remove();\n // Logged out: shows an empty li :\\\n $children.filter(':empty').remove();\n // Reset $children to reflect potential missing items.\n $children = $('> ul > li', item);\n // If the list is empty, the parent should no longer be\n // labeled as such and the list should be removed.\n if (!$children.length) {\n $(item).removeClass('menuparent expanded collapsed'); // unlabel\n $(item).find('ul').remove();\n }\n }\n });\n }\n\n ready() {\n $(this.element).addClass('ready');\n }\n}\n","import $ from 'jquery';\nimport Viewport from './Viewport';\n\nfunction TermNavigation(element) {\n this.element = element;\n this.$element = $(element);\n this.$menus = this.getMenus();\n this.onHeaderClick = $.proxy(this.onHeaderClick, this);\n this.setCurrentState();\n this.addPatties();\n this.listen();\n this.ready();\n}\n\nTermNavigation.prototype = {\n getMenus() {\n const $menus = this.$element.find('.block-content .expanded');\n const $filteredMenus = $menus.has('li a');\n $menus.removeClass('expanded');\n $filteredMenus.addClass('expanded');\n return $filteredMenus;\n },\n onHeaderClick(event) {\n if (Viewport.mobileState) {\n this.$element.toggleClass('expanded');\n event.preventDefault();\n }\n },\n onMenuClick(event) {\n const clickedActivator = $(event.target).is('.menu-link');\n if (clickedActivator) {\n $(this).parent().toggleClass('expanded collapsed');\n event.preventDefault();\n }\n },\n addPatties() {\n const patties = '';\n this.$element.find('.block-title a').prepend(patties);\n },\n setCurrentState() {\n // set all to collapsed other than the active items\n this.$menus.not('.active-trail').toggleClass('expanded collapsed');\n },\n listen() {\n // Add a click handler to control each submenu's visibility\n this.$menus.find(' > a').bind('click', this.onMenuClick);\n // Add a click handler to control the mobile dropdown menu\n this.$element.find('.block-title a').bind('click', this.onHeaderClick);\n },\n ready() {\n this.$element.addClass('ready');\n },\n};\n\nexport default TermNavigation;\n","import $ from 'jquery';\n\nfunction FooterMods(element) {\n this.element = element;\n this.$element = $(element);\n this.init();\n this.ready();\n}\n\nFooterMods.prototype = {\n init() {\n this.$element.find('.social-links .email-destination').html(this.$element.find('.footer-contact .email'));\n this.$element.find('.footer-contact').prependTo(this.$element.find('.footer-contact-wrapper'));\n },\n ready() { this.$element.addClass('ready'); },\n};\n\nexport default FooterMods;\n","import $ from 'jquery';\n\nfunction PodMods(element) {\n this.element = element;\n this.$element = $(element);\n this.init();\n this.ready();\n}\n\nPodMods.prototype = {\n init() { this.$element.find('.node-upper-image').insertBefore(this.$element.find('.node-inner')); },\n ready() { this.$element.addClass('ready'); },\n};\n\nexport default PodMods;\n","import $ from 'jquery';\n\nconst defaults = {\n trim: false,\n};\n\nfunction Placeholder(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.trim = this.settings.trim;\n this.init();\n}\n\nPlaceholder.prototype = {\n init() {\n let label = this.$element.find('label').text();\n if (label.length) {\n if (this.trim) {\n label = label.substring(0, label.indexOf(':'));\n this.$element.find('label').text(label);\n }\n this.$element.find('input').attr('placeholder', label.trim());\n }\n },\n};\n\nexport default Placeholder;\n","import $ from 'jquery';\n\nconst defaults = {\n selector: '.node-inner',\n linkLocation: '.link-read-more a',\n};\n\nfunction ProgramsRedirect(element, options) {\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.wrap();\n}\n\nProgramsRedirect.prototype = {\n wrap() {\n const $wrapper = this.$element.find(this.settings.selector);\n const content = $wrapper.contents();\n const url = $wrapper.find(this.settings.linkLocation).attr('href');\n $wrapper.prepend(``);\n $wrapper.children().first().prepend(content);\n },\n};\n\nexport default ProgramsRedirect;\n","import $ from 'jquery';\n\nconst defaults = {\n selector: '.node-inner',\n linkLocation: '.link-read-more a',\n};\n\nfunction Redirect(element, options) {\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.click = this.click.bind(this);\n this.listen();\n}\n\nRedirect.prototype = {\n listen() {\n this.$element.find(this.settings.selector).on('click', this.click);\n this.$element.find(this.settings.selector).on('tap', this.click);\n },\n click(event) {\n event.preventDefault();\n event.stopPropagation();\n const url = $(event.currentTarget).find(this.settings.linkLocation).attr('href');\n window.location.href = url;\n },\n};\n\nexport default Redirect;\n","import $ from 'jquery';\n\nfunction AccordionWrap(element) {\n this.element = element;\n this.$element = $(element);\n this.init();\n this.ready();\n}\n\nAccordionWrap.prototype = {\n init() {\n const classes = (this.getClasses()) ? this.getClasses() : '';\n const status = (this.getStatus()) ? ` style=\"display: ${this.getStatus()}\"` : '';\n this.$element\n .next('.accordion-content')\n .addBack()\n .wrapAll(`
`);\n },\n getClasses() {\n let $classes = null;\n if (this.$element.hasClass('under-tab')) {\n $classes = 'under-tab';\n let elemClasses = this.$element.attr('class');\n elemClasses = elemClasses.split(' ');\n\n for (let i = 0; i < elemClasses.length; i += 1) {\n const val = elemClasses[i];\n if (val.substring(0, 10) === 'under-tab-') {\n $classes += ` ${val}`;\n }\n }\n }\n\n return $classes;\n },\n getStatus() {\n let $status;\n if (this.$element.hasClass('under-tab')) {\n $status = (this.$element.is('.under-tab-0')) ? 'block' : 'none';\n }\n\n return $status;\n },\n ready() {\n setTimeout(() => {\n this.$element.addClass('ready');\n }, 200);\n },\n};\n\nexport default AccordionWrap;\n","import $ from 'jquery';\n\nconst defaults = {\n selector: 'a',\n};\n\nfunction AccordionFix(element, options) {\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.click = this.click.bind(this);\n this.setVert = this.setVert.bind(this);\n this.listen();\n}\n\nAccordionFix.prototype = {\n listen() {\n this.$element.on('click', this.click);\n },\n click(event) {\n event.preventDefault();\n event.stopPropagation();\n this.setVert(event);\n },\n setVert(event) {\n setTimeout(() => {\n const isVis = this.isVisible(event.target);\n if (!isVis) {\n const topOffset = $(this.$element).offset().top - 80;\n $([document.documentElement, document.body]).animate({\n scrollTop: topOffset,\n }, 500);\n }\n }, 500);\n },\n isVisible(e) {\n const elementTop = $(e).offset().top - 80;\n const elementBottom = elementTop + $(e).outerHeight();\n const viewportTop = $(window).scrollTop();\n const viewportBottom = viewportTop + $(window).height();\n return (elementBottom > viewportTop && elementTop < viewportBottom);\n },\n};\n\nexport default AccordionFix;\n","import $ from 'jquery';\n\nfunction AccordionFix(element) {\n this.$element = $(element);\n this.init();\n}\n\nAccordionFix.prototype = {\n init() {\n this.$element.find(':not(.accordion-item) + .accordion-item, * > .accordion-item:first-of-type, > .accordion-item:first-of-type').each((i, elem) => {\n $(elem)\n .nextUntil(':not(.accordion-item)')\n .addBack()\n .wrapAll('
');\n });\n },\n};\n\nexport default AccordionFix;\n","import $ from 'jquery';\n\nfunction Banner(element, context) {\n this.$element = $(element);\n this.$body = this.getBody(context);\n this.init();\n this.ready();\n}\n\nBanner.prototype = {\n getBody(context) {\n return $(document.body, context);\n },\n init() {\n const hasBanner = this.$element.is('.banner:not(.placeholder-block)');\n if (hasBanner) {\n this.$body.addClass('has-banner');\n }\n },\n ready() {\n this.$element.closest('.page-top').addClass('ready');\n },\n};\n\nexport default Banner;\n","import $ from 'jquery';\n\nconst defaults = {\n sourceSelector: '.field-image.c1 img',\n destSelector: undefined,\n isPseudo: false,\n};\n\nfunction BackgroundImage(element, options) {\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.addBackgroundImage();\n this.ready();\n}\n\nBackgroundImage.prototype = {\n getSource() { return this.$element.find(this.settings.sourceSelector).attr('src'); },\n\n addBackgroundImage() {\n const src = this.getSource();\n if (src && src.length) {\n if (this.settings.isPseudo) {\n this.$element.find('.node').prepend('');\n this.$element.find('.pod-image-bg').css('background-image', `url(${src})`);\n } else if (this.settings.destSelector) {\n this.$element.find(this.settings.destSelector).css('background-image', `url(${src})`);\n } else {\n this.$element.css('background-image', `url(${src})`);\n }\n this.$element.addClass('hasImage');\n }\n },\n\n ready() {\n setTimeout(() => {\n this.$element.addClass('ready');\n }, 300);\n },\n};\n\nexport default BackgroundImage;\n","import $ from 'jquery';\n\nconst defaults = {\n selector: '.node-header a',\n};\n\nfunction RemoveLink(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.unlink();\n}\n\nRemoveLink.prototype = {\n unlink() {\n return this.$element.find(this.settings.selector).removeAttr('href');\n },\n};\n\nexport default RemoveLink;\n","import $ from 'jquery';\n\n/**\n * Adds Play and Pause functionality to a Slick Carousel component\n * @param slickContainer {jQuery} Required jQuery container that the slick\n * component was made from\n * @param options {object}\n * - attachTo {jQuery} An optional jQuery object to inject the play and\n * pause controls\n * - playBtn {html string} HTML to be used as the play button\n * - pauseBtn {html string} HTML to be used as the pause button\n */\n\nconst defaults = {\n slickInstance: null,\n slickContainer: null,\n attachTo: null,\n playBtn: '',\n pauseBtn: '',\n};\n\nfunction SlickPlayPauseControls(slickContainer, options) {\n this.slickContainer = slickContainer;\n this.$slickContainer = $(slickContainer);\n this.slickInstance = slickContainer.get(0).slick;\n this.settings = Object.assign(defaults, options);\n\n // quit on errors\n // if (this.error = this.verify(slickContainer)) {\n // return console.log(this.error);\n // }\n\n // set scope\n this.play = $.proxy(this.play, this);\n this.pause = $.proxy(this.pause, this);\n this.onBreakpointChange = $.proxy(this.onBreakpointChange, this);\n\n // create\n this.$playBtn = this.addPlayBtn();\n this.$pauseBtn = this.addPauseBtn();\n\n // set breakpoint listener\n this.slickContainer.on('breakpoint', this.onBreakpointChange);\n\n // set current state\n this.setCurrentBreakpointState();\n}\n\nSlickPlayPauseControls.prototype = {\n verify(slickContainer) {\n let error;\n if (!slickContainer || !slickContainer.length) {\n error = \"SlickPlayPauseControls: The slickContainer was't found or passed\";\n } else if (!slickContainer.get(0).slick) {\n error = \"SlickPlayPauseControls: The slickInstance wasn't found\";\n }\n return error;\n },\n addPlayBtn() {\n return $(this.settings.playBtn);\n },\n addPauseBtn() {\n return $(this.settings.pauseBtn);\n },\n addControls() {\n // Allows the controls to be attached to a passed jQuery object or default\n // to the passed in container\n if (!this.settings.attachTo) {\n this.settings.attachTo = this.slickContainer;\n }\n\n // Add play and pause the controls and finally add the controls container\n const slickControls = document.createElement('div');\n const $slickControls = $(slickControls);\n $slickControls\n .addClass('slickControls')\n .append(this.$playBtn, this.$pauseBtn);\n this.settings.attachTo.append($slickControls);\n\n // Add click handlers to each button to control autoplay functionality\n this.$playBtn.on('click', this.play);\n this.$pauseBtn.on('click', this.pause);\n\n // set the current state of these buttons we just added\n this.setCurrentState();\n },\n removeControls() {\n // remove the buttons\n this.$playBtn.off('click', this.play).remove();\n this.$pauseBtn.off('click', this.pause).remove();\n },\n play(event) {\n event.preventDefault();\n if (this.slickInstance.paused) {\n this.slickContainer.slick('slickPlay');\n }\n this.setCurrentState();\n },\n pause(event) {\n event.preventDefault();\n if (!this.slickInstance.paused) {\n this.slickContainer.slick('slickPause');\n }\n this.setCurrentState();\n },\n setPlayState() {\n this.$playBtn.attr('aria-hidden', 'false');\n this.$pauseBtn.attr('aria-hidden', 'true');\n this.$playBtn.addClass('active');\n this.$pauseBtn.removeClass('active');\n },\n setPauseState() {\n this.$playBtn.attr('aria-hidden', 'true');\n this.$pauseBtn.attr('aria-hidden', 'false');\n this.$playBtn.removeClass('active');\n this.$pauseBtn.addClass('active');\n },\n setCurrentBreakpointState() {\n const $activeBreakpoint = this.slickInstance.activeBreakpoint;\n let $autoplay;\n\n // check to see if the current breakpoint adjusts the autoplay setting\n if ($activeBreakpoint) {\n $autoplay = this.slickInstance.breakpointSettings[$activeBreakpoint].autoplay;\n }\n\n // verify that an autoplay setting will be set\n if (!$autoplay) {\n $autoplay = this.slickInstance.options.autoplay;\n }\n\n // manage our controls accordingly\n if ($autoplay) {\n this.addControls();\n } else {\n this.removeControls();\n }\n // autoplay\n // ? this.addControls()\n // : this.removeControls();\n },\n setCurrentState() {\n if (this.slickInstance.paused) {\n this.setPlayState();\n } else {\n this.setPauseState();\n }\n // this.slickInstance.paused\n // ? this.setPlayState()\n // : this.setPauseState()\n },\n // Integrates with the slick carousel breakpoint functionality\n onBreakpointChange(event, slick, breakpoint) {\n this.setCurrentBreakpointState(slick, breakpoint);\n },\n};\n\nexport default SlickPlayPauseControls;\n","import $ from 'jquery';\nimport 'slick-carousel';\nimport SlickPlayPauseControls from './Slick.PlayPauseControls';\nimport BackgroundImage from './BackgroundImage';\n\nconst defaults = {\n fade: true,\n speed: 1000,\n arrows: false,\n dots: false,\n autoplay: true,\n pauseOnHover: false,\n autoplaySpeed: 5000,\n infinite: true,\n cssEase: 'cubic-bezier(0.165,0.84,0.44,1)',\n waitForAnimate: false,\n responsive: [{\n breakpoint: 1200,\n settings: {\n speed: 500,\n autoplay: false,\n },\n }],\n};\n\n/**\n * Gallery Constructor\n */\nfunction Hero(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = $.extend(true, defaults, options);\n this.addBackgrounds = this.addBackgrounds.bind(this);\n\n // add slick carousel functionality\n this.$slickContainer = this.addSlick();\n\n // add play/pause functionality\n this.controls = this.addControls();\n\n // set component ready\n this.ready();\n}\n\nHero.prototype = {\n addSlick() {\n const $slider = this.$element.find('.view-content');\n $slider.on('init breakpoint', this.addBackgrounds);\n return $slider\n .slick(this.settings);\n },\n addControls() {\n return new SlickPlayPauseControls(this.$slickContainer, {\n attachTo: this.$slickContainer,\n });\n },\n addBackgrounds() {\n $('.slick-slide', this.element).each((i, element) => {\n element.backgroundImage = new BackgroundImage(element, {\n destSelector: undefined,\n sourceSelector: '.node-content .field-image.c1 img',\n });\n });\n },\n ready() {\n this.$element.closest('.page-top').addClass('ready');\n },\n};\n\nexport default Hero;\n","import $ from 'jquery';\n\nconst defaults = {\n title: '.node-header .title',\n separator: '
',\n};\n\nfunction StringSplit(element, options) {\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.title = this.settings.title;\n this.init();\n this.ready();\n}\n\nStringSplit.prototype = {\n init() {\n // hack in differences in font size when a BR tag is present\n this.$element.find(this.settings.title).each((i, title) => {\n const html = $(title).html();\n const regexSeparator = new RegExp(this.settings.separator);\n if (regexSeparator.test(html)) {\n const a = html.split(this.settings.separator);\n $(title).addClass('splitText').html(`${a[0]}${a[1]}`);\n }\n });\n },\n ready() {\n this.$element.addClass('ready');\n },\n};\n\nexport default StringSplit;\n","import $ from 'jquery';\n\nconst defaults = {\n selector: '.node-inner',\n destination: undefined,\n placeholder: undefined,\n optionSrc: undefined,\n target: undefined,\n numerator: undefined,\n after: false,\n};\n\nfunction SelectList(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.init();\n}\n\nSelectList.prototype = {\n init() {\n const placeholder = (this.settings.placeholder)\n ? this.settings.placeholder\n : this.$element.find('.node-header .title').text();\n const $destination = (this.settings.destination)\n ? this.$element.find(this.settings.destination)\n : this.$element;\n if (this.settings.after) {\n $destination.append(`
`);\n } else {\n $destination.prepend(`
`);\n }\n this.$element.find(this.settings.optionSrc).each((i, elem) => {\n const target = $(elem).find(this.settings.target);\n const targetUrl = $(target).attr('href');\n const targetLabel = $(target).text();\n this.$element.find(`#dynamic_select_${this.settings.numerator}`).append(``);\n });\n },\n};\n\nexport default SelectList;\n","import $ from 'jquery';\n\nconst defaults = {\n interval: undefined,\n columns: undefined,\n item: undefined,\n parent: undefined,\n divider: 'new-col',\n blockName: undefined,\n};\n\nfunction Columns(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.interval = this.settings.interval;\n this.columns = this.settings.columns;\n this.item = this.settings.item;\n this.parent = this.settings.parent;\n this.divider = this.settings.divider;\n this.blockName = this.settings.blockName;\n this.addIndexes = this.addIndexes.bind(this);\n this.total = this.numLinks();\n this.init();\n this.ready();\n}\n\nColumns.prototype = {\n init() {\n const interval = (this.interval) ? this.interval : Math.ceil(this.total / this.columns);\n this.$element.find(`${this.item}:nth-child(${interval}n + 1)`).addClass(this.divider);\n if (this.parent) {\n this.$element.find(this.parent).addClass(`${this.blockName}-cols`);\n } else {\n this.$element.addClass(`${this.blockName}-cols`);\n }\n this.addIndexes();\n let i = 0;\n let c = 1;\n do {\n this.createCols(i, c);\n i += interval;\n c += 1;\n } while (i < this.total);\n },\n addIndexes() {\n this.$element.find(`${this.item}`).each((i, element) => {\n $(element).addClass(`id-${i + 1}`);\n });\n },\n createCols(i, c) {\n const id = i + 1;\n const stripe = (c % 2 === 0) ? 'even' : 'odd';\n this.$element.find(`.id-${id}`)\n .nextUntil(`.${this.divider}`)\n .addBack()\n .wrapAll(`
`);\n },\n numLinks() {\n return this.$element.find(this.item).length;\n },\n ready() { this.$element.addClass('ready'); },\n};\n\nexport default Columns;\n","import $ from 'jquery';\nimport 'slick-carousel';\n\nconst defaults = {\n speed: 500,\n dots: true,\n arrows: true,\n fade: false,\n slidesToShow: 2,\n slidesToScroll: 2,\n adaptiveHeight: true,\n responsive: [\n {\n breakpoint: 992,\n settings: {\n arrows: false,\n slidesToShow: 1,\n slidesToScroll: 1,\n },\n },\n ],\n};\n\n/**\n * Slider Constructor\n */\nfunction Slider(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.$gallery = this.build();\n this.ready();\n}\n\nSlider.prototype = {\n build() { return this.$element.slick(this.settings); },\n ready() { this.$element.addClass('ready'); },\n};\n\nexport default Slider;\n","import $ from 'jquery';\n\nfunction SingleChild(element) {\n this.element = element;\n this.$element = $(element);\n this.init();\n this.ready();\n}\n\nSingleChild.prototype = {\n init() {\n const columns = this.$element.find('.home-programs-col');\n columns.each((i, elem) => {\n const $elem = $(elem);\n if ($elem.find('.views-row').length === 1) {\n $elem.addClass('single-child');\n } else if ($elem.find('.views-row').length === 3) {\n $elem.addClass('three-children');\n } else if ($elem.find('.views-row').length === 2) {\n $elem.addClass('two-children');\n }\n });\n },\n ready() { this.$element.addClass('ready'); },\n};\n\nexport default SingleChild;\n","import $ from 'jquery';\nimport 'slick-carousel';\n\nconst defaults = {\n speed: 500,\n dots: true,\n arrows: false,\n fade: false,\n slidesToShow: 4,\n slidesToScroll: 1,\n adaptiveHeight: true,\n responsive: [\n {\n breakpoint: 992,\n settings: {\n arrows: false,\n slidesToShow: 2,\n slidesToScroll: 2,\n },\n }, {\n breakpoint: 640,\n settings: {\n arrows: false,\n slidesToShow: 1,\n slidesToScroll: 1,\n },\n },\n ],\n};\n\n/**\n * Slider Constructor\n */\nfunction Slider(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.$gallery = this.build();\n this.ready();\n}\n\nSlider.prototype = {\n build() { return this.$element.slick(this.settings); },\n ready() { this.$element.addClass('ready'); },\n};\n\nexport default Slider;\n","import $ from 'jquery';\nimport 'slick-carousel';\n\nconst defaults = {\n speed: 500,\n dots: true,\n arrows: true,\n fade: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n adaptiveHeight: false,\n responsive: [\n {\n breakpoint: 992,\n settings: {\n arrows: false,\n adaptiveHeight: true,\n },\n },\n ],\n};\n\n/**\n * Slider Constructor\n */\nfunction Slider(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.$prepare = this.prep();\n this.$gallery = this.build();\n this.ready();\n}\n\nSlider.prototype = {\n prep() {\n this.$element.find('.views-row').each((i, elem) => {\n $(elem).find('.node-image').insertBefore($(elem).find('.node-inner'));\n });\n },\n build() { return this.$element.slick(this.settings); },\n ready() { this.$element.addClass('ready'); },\n};\n\nexport default Slider;\n","import $ from 'jquery';\nimport 'slick-carousel';\n\nconst settings = {\n dots: true,\n arrows: false,\n slidesToShow: 4,\n slidesToScroll: 4,\n infinite: false,\n responsive: [\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2,\n },\n },\n ],\n};\n\nexport default class HomepageEvents {\n constructor(element) {\n this.slider = $(element).find('.events').slick(settings);\n }\n}\n","import $ from 'jquery';\nimport 'select2';\n\nconst defaults = {};\n\nfunction HomeSignUp(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.init();\n}\n\nHomeSignUp.prototype = {\n init() {\n const $select = this.$element.find('#edit-submitted-pick-a-location');\n $select.select2({\n placeholder: 'Pick a Location',\n });\n },\n};\n\nexport default HomeSignUp;\n","import $ from 'jquery';\nimport 'select2';\n\nconst defaults = {\n selector: '.node-links',\n placeholder: 'Select',\n options: 'ul.links',\n optionSrc: '.link:not(.link-read-more)',\n remove: true,\n};\n\nfunction SelectBox(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.create();\n}\n\nSelectBox.prototype = {\n create() {\n const $links = this.$element.find(this.settings.selector);\n const $select = $(``);\n const $list = $links.find(this.settings.options);\n const $options = $list.find(this.settings.optionSrc);\n $select.append(``);\n $options.each((i, item) => {\n const label = $(item).text();\n const value = $('a', item).attr('href');\n const option = ``;\n $select.append(option);\n });\n $select.insertBefore($list);\n $select.select2();\n if (this.settings.selector === '.node-links' && this.settings.remove) {\n $list.hide(); // if .node-links is removed, node flyout is broken\n } else if (this.settings.selector !== '.node-links') {\n $list.remove();\n }\n // Add an on selection change event handler which redirects users to the\n // selected program.\n $select.on('select2:select', (event) => {\n const { data } = event.params;\n if (data && data.id) {\n window.open(data.id, '_self');\n }\n });\n // Add ready class to fade it in.\n $links.addClass('ready');\n },\n};\n\nexport default SelectBox;\n","import $ from 'jquery';\n\nfunction BrowserCheck(element) {\n this.element = element;\n this.$element = $(element);\n this.init();\n}\n\nBrowserCheck.prototype = {\n init() {\n const browserArr = {};\n const uagent = navigator.userAgent.toLowerCase();\n let match = '';\n\n // console.log(`User agent string: ${uagent}`);\n\n browserArr.chrome = /webkit/.test(uagent) && /chrome/.test(uagent) && !/edge/.test(uagent);\n browserArr.firefox = /mozilla/.test(uagent) && /firefox/.test(uagent);\n browserArr.msie = /msie/.test(uagent) || /trident/.test(uagent) || /edge/.test(uagent);\n browserArr.safari = /safari/.test(uagent) && /applewebkit/.test(uagent) && !/chrome/.test(uagent);\n browserArr.opr = /mozilla/.test(uagent) && /applewebkit/.test(uagent) && /chrome/.test(uagent) && /safari/.test(uagent) && /opr/.test(uagent);\n browserArr.browser = '';\n browserArr.version = '';\n\n // console.log(Object.keys(browserArr).slice(0, -2));\n\n Object.keys(browserArr).slice(0, -2).forEach((key) => {\n if (browserArr[key]) {\n let matchCheck = '';\n\n if (key === 'msie') {\n matchCheck = 'msie|edge';\n } else if (key === 'safari') {\n matchCheck = 'version';\n } else {\n matchCheck = key;\n }\n\n match = uagent.match(new RegExp(`(${matchCheck})( |/)([0-9]+)`));\n browserArr.browser = key;\n\n if (match) {\n const newMatch = match[3];\n browserArr.version = newMatch;\n } else {\n match = uagent.match(new RegExp('rv:([0-9]+)'));\n browserArr.version = match ? match[1] : '';\n }\n }\n });\n\n $(document.body).addClass(`${browserArr.browser} ${browserArr.browser}-v${browserArr.version}`);\n\n browserArr.opera = browserArr.opr;\n delete browserArr.opr;\n },\n};\n\nexport default BrowserCheck;\n","import $ from 'jquery';\n\nfunction ActivityView(element) {\n this.element = element;\n this.$element = $(element);\n this.init();\n this.listen();\n this.noResults();\n}\n\nActivityView.prototype = {\n init() {\n $(document.body).addClass('grid-view');\n },\n toggleClass() {\n $(document.body).toggleClass('grid-view');\n },\n listen() {\n this.$element.find('.block-prefix button').on('click', this.toggleClass);\n },\n noResults() {\n if (this.$element.hasClass('placeholder-block')) {\n this.$element.find('.placeholder-text span').text('No classes available at this time');\n this.$element.find('.placeholder-text').fadeIn();\n }\n },\n};\n\nexport default ActivityView;\n","import $ from 'jquery';\nimport Change from './Change';\n\nconst defaults = {\n vOffset: undefined,\n};\n\nfunction FadeText(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign(defaults, options);\n this.vOffset = this.settings.vOffset;\n this.update();\n this.register();\n}\n\nFadeText.prototype = {\n register() {\n Change.onChange(setTimeout(this.update.bind(this), 500));\n },\n\n update() {\n const innerElem = this.$element.find('.node-header');\n const outerElem = this.$element.find('.node-inner');\n const padTop = parseInt(outerElem.css('padding-top'), 10);\n const padBottom = parseInt(outerElem.css('padding-bottom'), 10);\n const padOffset = padTop + padBottom;\n const vOffset = (this.vOffset) ? this.$element.find(this.vOffset).outerHeight(true) : 0;\n const innerHt = innerElem.outerHeight(true) + vOffset;\n const outerHt = outerElem.outerHeight(true) - padOffset;\n if (innerHt > outerHt) {\n this.$element.find('.node-teaser').addClass('fade-text');\n } else {\n this.$element.find('.node-teaser').removeClass('fade-text');\n }\n },\n};\n\nexport default FadeText;\n","import $ from 'jquery';\n\nfunction TitleCaption(element) {\n this.element = element;\n this.$element = $(element);\n this.toggleClass = this.toggleClass.bind(this);\n this.listen = this.listen.bind(this);\n this.init();\n this.listen();\n}\n\nTitleCaption.prototype = {\n init() {\n const title = this.$element.find('.node-header .title').text();\n $(`
${title}
`).insertBefore(this.$element.find('.node-inner'));\n },\n toggleClass() {\n this.$element.find('.node-teaser').toggleClass('expanded');\n },\n listen() {\n this.$element.find('.tile-caption').on('click', this.toggleClass);\n },\n};\n\nexport default TitleCaption;\n","export default {\n key: 'AIzaSyCOIyplEfezocWdL9z3IGVsjk6L048RTpI',\n version: 'quarterly',\n};\n","export default {\n districts: [\n {\n title: 'Division 1',\n color: '#cc0000',\n area: [\n { lat: 33.70035029271861, lng: -116.268310546875 },\n { lat: 33.65659607841489, lng: -116.26784344941478 },\n { lat: 33.65659607841489, lng: -116.23385449677806 },\n { lat: 33.627442295974234, lng: -116.23316785127025 },\n { lat: 33.62772816528307, lng: -116.26612683564525 },\n { lat: 33.435696822683255, lng: -116.26441022187572 },\n { lat: 33.435123811862624, lng: -115.82118054658275 },\n { lat: 33.66027770792694, lng: -115.82478256993562 },\n { lat: 33.675707405970904, lng: -115.94631882481843 },\n { lat: 33.683706900394334, lng: -116.01498337559968 },\n { lat: 33.693990870929525, lng: -116.054122169545 },\n { lat: 33.70027491379242, lng: -116.07884140782625 },\n { lat: 33.698023185185995, lng: -116.09515210419994 },\n { lat: 33.673169316193906, lng: -116.09446545869213 },\n { lat: 33.67402646578041, lng: -116.11060162812572 },\n { lat: 33.64287788106662, lng: -116.09000226289135 },\n { lat: 33.64173459926915, lng: -116.1809827926765 },\n { lat: 33.67031208920449, lng: -116.18132611543041 },\n { lat: 33.67031208920449, lng: -116.19093915253978 },\n { lat: 33.685168632915236, lng: -116.19093915253978 },\n { lat: 33.685168632915236, lng: -116.21634503632885 },\n { lat: 33.70030823761816, lng: -116.2160017135749 },\n ],\n },\n {\n title: 'Division 2',\n color: '#007300',\n area: [\n { lat: 33.891665599651674, lng: -116.30183812246912 },\n { lat: 33.82709095613143, lng: -116.30115147696131 },\n { lat: 33.82694835324248, lng: -116.28312703238123 },\n { lat: 33.82138665506334, lng: -116.28278370962732 },\n { lat: 33.82138665506334, lng: -116.2678491698324 },\n { lat: 33.7795910496497, lng: -116.2678491698324 },\n { lat: 33.779305685285145, lng: -116.25514622793787 },\n { lat: 33.77616661452791, lng: -116.23969670401209 },\n { lat: 33.76489354866652, lng: -116.21635075674646 },\n { lat: 33.7002231646799, lng: -116.21652241812342 },\n { lat: 33.7007944188574, lng: -116.1986696349203 },\n { lat: 33.642221111734386, lng: -116.19832631216639 },\n { lat: 33.64250693199194, lng: -116.08777638540857 },\n { lat: 33.67134009199299, lng: -116.10595083452677 },\n { lat: 33.67103706566484, lng: -116.07261920733077 },\n { lat: 33.69918183353436, lng: -116.07344121596384 },\n { lat: 33.68927488392398, lng: -116.03953916957016 },\n { lat: 33.681491302875095, lng: -116.0049375939227 },\n { lat: 33.67949144750793, lng: -115.97918838737974 },\n { lat: 33.6769201365404, lng: -115.95275253532895 },\n { lat: 33.66291942793598, lng: -115.8562788414813 },\n { lat: 33.8892849660687, lng: -115.8604077564958 },\n ],\n },\n {\n title: 'Division 3',\n color: '#e5e500',\n area: [\n { lat: 33.81582498903193, lng: -116.30143310591245 },\n { lat: 33.80127635320644, lng: -116.30108978315855 },\n { lat: 33.80070576806082, lng: -116.2818637089398 },\n { lat: 33.773027822813056, lng: -116.28117706343198 },\n { lat: 33.773027822813056, lng: -116.2862410740521 },\n { lat: 33.757615606205476, lng: -116.28667022749448 },\n { lat: 33.75775765133134, lng: -116.29345375689428 },\n { lat: 33.755259855082144, lng: -116.286288225198 },\n { lat: 33.75176258472206, lng: -116.2791231945451 },\n { lat: 33.74733625889729, lng: -116.2696889043786 },\n { lat: 33.73776979147131, lng: -116.2667861149643 },\n { lat: 33.729200342324354, lng: -116.26887760597793 },\n { lat: 33.72191247496271, lng: -116.26876983141335 },\n { lat: 33.72189995089126, lng: -116.27747886218106 },\n { lat: 33.7145945875665, lng: -116.27738787713668 },\n { lat: 33.71468982706921, lng: -116.26381976579808 },\n { lat: 33.70874179436989, lng: -116.2658661287694 },\n { lat: 33.707413105106966, lng: -116.26875654045097 },\n { lat: 33.70746905444484, lng: -116.27058861096077 },\n { lat: 33.70286976260018, lng: -116.27047666794641 },\n { lat: 33.702810645389356, lng: -116.26870839975243 },\n { lat: 33.69983713253634, lng: -116.26860543642181 },\n { lat: 33.700307258976245, lng: -116.21657509727396 },\n { lat: 33.75720209903404, lng: -116.2165179780448 },\n { lat: 33.777907327876136, lng: -116.25210504429396 },\n { lat: 33.7782209094147, lng: -116.26319896541236 },\n { lat: 33.799966376829346, lng: -116.2632398823219 },\n ],\n },\n {\n title: 'Division 4',\n color: '#0000cc',\n area: [\n { lat: 33.77307103973598, lng: -116.33323263078944 },\n { lat: 33.76536528287434, lng: -116.31949972063319 },\n { lat: 33.7601563688137, lng: -116.30181859880702 },\n { lat: 33.75508986105669, lng: -116.30379270464198 },\n { lat: 33.74372990638903, lng: -116.30387853533045 },\n { lat: 33.74365853553213, lng: -116.32121633440272 },\n { lat: 33.728812106506496, lng: -116.32138799577967 },\n { lat: 33.72895487286417, lng: -116.36078428179042 },\n { lat: 33.714716942307064, lng: -116.36104177385585 },\n { lat: 33.709040705736065, lng: -116.35649284701776 },\n { lat: 33.704221241756926, lng: -116.36430334001795 },\n { lat: 33.70380258896683, lng: -116.37391637712733 },\n { lat: 33.6743076614568, lng: -116.3740022078158 },\n { lat: 33.67362667881269, lng: -116.35624246635723 },\n { lat: 33.568418787808135, lng: -116.35589914360332 },\n { lat: 33.56527201003842, lng: -116.26800851860332 },\n { lat: 33.629615094148996, lng: -116.26732187309551 },\n { lat: 33.6301868173972, lng: -116.23333292045879 },\n { lat: 33.656767757197485, lng: -116.23333292045879 },\n { lat: 33.656767757197485, lng: -116.26800851860332 },\n { lat: 33.69949340559815, lng: -116.2686538696289 },\n { lat: 33.69991865791809, lng: -116.27059448651892 },\n { lat: 33.70724078258812, lng: -116.27054214477539 },\n { lat: 33.70730899170064, lng: -116.26874912671667 },\n { lat: 33.710557681192554, lng: -116.26475799970251 },\n { lat: 33.71459159709528, lng: -116.26411426953894 },\n { lat: 33.714627294620165, lng: -116.2774180262528 },\n { lat: 33.7218817656061, lng: -116.27737511090857 },\n { lat: 33.7218817656061, lng: -116.2686632960282 },\n { lat: 33.72962712288586, lng: -116.26883495740515 },\n { lat: 33.73415968164317, lng: -116.26786942450428 },\n { lat: 33.73869222917371, lng: -116.26647461347204 },\n { lat: 33.74354559315651, lng: -116.26887787274939 },\n { lat: 33.74343170174287, lng: -116.26500727216177 },\n { lat: 33.74617944412786, lng: -116.26698137799673 },\n { lat: 33.757757326969774, lng: -116.29343572587618 },\n { lat: 33.75825683958197, lng: -116.2918907734836 },\n { lat: 33.758185480815555, lng: -116.28656927079805 },\n { lat: 33.7728841323357, lng: -116.28622594804415 },\n { lat: 33.77295547886402, lng: -116.28124776811251 },\n { lat: 33.797449400077646, lng: -116.28150526017794 },\n { lat: 33.800159748758574, lng: -116.28536764115938 },\n { lat: 33.800516367195534, lng: -116.30124631852755 },\n { lat: 33.77583486535265, lng: -116.30124631852755 },\n { lat: 33.772838360718445, lng: -116.3032204243625 },\n ],\n },\n {\n title: 'Division 5',\n color: '#551a8b',\n area: [\n { lat: 33.81637240133637, lng: -116.40533310800191 },\n { lat: 33.84531949163866, lng: -116.40550476937887 },\n { lat: 33.84574720764789, lng: -116.34576661019918 },\n { lat: 33.83120366223055, lng: -116.34542328744527 },\n { lat: 33.831346258021796, lng: -116.33254868417379 },\n { lat: 33.772576659284, lng: -116.33151871591207 },\n { lat: 33.760104223120635, lng: -116.30139071671391 },\n { lat: 33.743619125405964, lng: -116.3036223146143 },\n { lat: 33.743690496295635, lng: -116.32130343644047 },\n { lat: 33.72891545598318, lng: -116.32078845230961 },\n { lat: 33.72891545598318, lng: -116.36078555313969 },\n { lat: 33.72134850827826, lng: -116.3611288758936 },\n { lat: 33.714209266854766, lng: -116.36061389176274 },\n { lat: 33.71206737866521, lng: -116.3475676271143 },\n { lat: 33.704213331561306, lng: -116.37366015641118 },\n { lat: 33.66764686236022, lng: -116.37434680191899 },\n { lat: 33.667218256843974, lng: -116.36095721451665 },\n { lat: 33.627205675565726, lng: -116.35906893937016 },\n { lat: 33.627748828369484, lng: -116.40240915442217 },\n { lat: 33.77201053410006, lng: -116.40395696190052 },\n { lat: 33.772581310482984, lng: -116.38782079246693 },\n { lat: 33.801685863202906, lng: -116.38747746971302 },\n { lat: 33.801685863202906, lng: -116.39674718406849 },\n { lat: 33.81082417298631, lng: -116.396662780922 },\n ],\n },\n ],\n};\n","import $ from 'jquery';\nimport GoogleMapsLoader from 'google-maps';\nimport GoogleMapsConfig from './GoogleMapsConfig';\nimport DistrictData from './DistrictsData';\n\nGoogleMapsLoader.LIBRARIES = ['geometry'];\nGoogleMapsLoader.KEY = GoogleMapsConfig.key;\nGoogleMapsLoader.VERSION = GoogleMapsConfig.version;\n\nconst defaults = {\n name: 'district-locator', // Used for id of map and to plot relative location icon within the /img directory.\n zoom: 15, // Max zoom of the map when initialized.\n defaultLocation: { lat: 38.5689826, lng: -121.480051 }, // Digital Deployment HQ\n icons: {\n user: '/sites/default/themes/dtheme/img/marker-user.svg', // Filename of the user marker icon\n district: '/sites/default/themes/dtheme/img/marker-district.svg', // Filename of the node marker icon\n },\n};\n\nexport default class LocatorMap {\n constructor(element, options) {\n this.element = element;\n this.$element = $(element);\n this.settings = Object.assign({}, defaults, options);\n\n GoogleMapsLoader.load((google) => {\n this.google = google;\n this.geocoder = new google.maps.Geocoder();\n this.bounds = new google.maps.LatLngBounds();\n this.districts = this.setDistricts(DistrictData);\n this.map = this.createMap();\n this.pins = [];\n this.configureUserLocation().finally(() => {\n this.configurePins();\n this.setBoundries();\n this.addPins();\n this.ready();\n });\n });\n }\n\n configureUserLocation() {\n return new Promise((resolve, reject) => {\n // Quit if a valid address hasn't been added.\n if (!this.userLocation.length) {\n resolve(window.console.warn('Please input a valid city, address, or zipcode.'));\n return;\n }\n\n // Fetch location using Google Maps API.\n const promise = this.geocode(this.userLocation);\n promise.then((data) => {\n resolve(this.plotUserLocation(data.location));\n });\n promise.catch(() => {\n reject(new Error('No user location found. Continuing on mapping the other points.'));\n });\n });\n }\n\n plotUserLocation({ lat, lng }) {\n const pos = new this.google.maps.LatLng(lat(), lng());\n const info = {\n content: `
\n
\n

Your location

\n
\n
`,\n };\n const settings = {\n map: this.map,\n position: pos,\n title: 'You are here',\n animation: this.google.maps.Animation.DROP,\n infoWindow: new this.google.maps.InfoWindow(info),\n icon: this.settings.icons.user,\n };\n\n // Plot district user is within.\n this.plotDistrict(pos);\n\n // Stage pins in an array.\n this.pins.push(settings);\n\n // Extend the map bounds to include this location.\n this.bounds.extend(pos);\n }\n\n plotDistrict(position) {\n let repFound = false;\n this.districts.forEach((district) => {\n if (this.google.maps.geometry.poly.containsLocation(position, district.polygon)) {\n district.polygon.setMap(this.map);\n // We want to first see if a rep is present.\n const $rep = $('.division-reps .node').filter(`[data-division=\"${district.title}\"]`);\n if ($rep.length) {\n // We also want to show the rep associated to this district.\n $rep.addClass('active');\n // Switch repFound flag\n repFound = true;\n }\n }\n });\n\n // Set default rep message if a rep was not found within the queried location.\n if (!repFound) {\n const noRep = document.createElement('div');\n const message = document.createElement('p');\n noRep.className = 'node no-rep active';\n message.textContent = 'The provided address is not within our District Boundaries. Please call 760-347-3484 for assistance. Thank you.';\n noRep.appendChild(message);\n $('.division-reps .reps').append(noRep);\n }\n\n // Display the rep container.\n $('.division-reps').addClass('show');\n }\n\n createMap() {\n return new this.google.maps.Map(document.getElementById(`${this.settings.name}-map`), {\n zoom: this.settings.zoom,\n center: this.settings.defaultLocation,\n });\n }\n\n setBoundries() {\n // Adjust map bounds by the points to display.\n this.map.fitBounds(this.bounds);\n }\n\n configurePins() {\n return this.$nodes.each((i, node) => {\n const $address = $(node).find('.address');\n const lat = $address.attr('data-lat');\n const lng = $address.attr('data-lng');\n const pos = new this.google.maps.LatLng(Number(lat), Number(lng));\n const info = {\n content: `
${$(node).html()}
`,\n };\n\n const settings = {\n map: this.map,\n position: pos,\n title: $(node).find('.title').text(),\n animation: this.google.maps.Animation.DROP,\n infoWindow: new this.google.maps.InfoWindow(info),\n icon: this.settings.icons.district,\n };\n\n // Stage pins in an array.\n this.pins.push(settings);\n\n // Extend the map bounds to include this location.\n this.bounds.extend(pos);\n });\n }\n\n addPins() {\n const delay = this.pins.length > 10 ? 25 : 125;\n this.pins.forEach((settings, i) => {\n setTimeout(() => {\n this.dropPin(settings);\n }, i * delay);\n });\n }\n\n dropPin(settings) {\n const pin = new this.google.maps.Marker(settings);\n pin.addListener('click', () => {\n this.pins.forEach(p => p.infoWindow.close());\n this.districts.forEach(d => d.infoWindow.close());\n settings.infoWindow.open(this.map, pin);\n });\n }\n\n setDistricts(data) {\n const districts = [];\n\n // Return empty array of districts if they aren't set to show on this display.\n if (!this.element.classList.contains('show-districts')) {\n return districts;\n }\n\n // Iterate over all districts and add a polygon attribute.\n data.districts.forEach((district) => {\n district.polygon = new this.google.maps.Polygon({\n paths: district.area,\n strokeColor: district.color,\n strokeOpacity: 0.75,\n strokeWeight: 2,\n fillColor: district.color,\n fillOpacity: 0.25,\n });\n\n district.infoWindow = new this.google.maps.InfoWindow({\n content: `
${district.title}
`,\n });\n\n this.google.maps.event.addListener(district.polygon, 'click', (event) => {\n district.infoWindow.setPosition(event.latLng);\n district.infoWindow.open(this.map);\n });\n\n // Add the district to our array.\n districts.push(district);\n });\n\n return districts;\n }\n\n geocode(location) {\n return new Promise((resolve, reject) => {\n this.geocoder.geocode({ address: location }, (data, status) => {\n if (status === this.google.maps.GeocoderStatus.OK) {\n resolve(data[0].geometry);\n } else {\n reject(new Error(status));\n }\n });\n });\n }\n\n ready() {\n this.$element.addClass('ready');\n }\n\n get $nodes() {\n return this.$element.find('.node-district-locator--result');\n }\n\n get userLocation() {\n return this.automaticLocation ? this.automaticLocation : this.manualLocation;\n }\n\n get automaticLocation() {\n return this.$element.find('#edit-location').val();\n }\n\n get manualLocation() {\n return this.$element.find('#edit-search').val();\n }\n}\n","import $ from 'jquery';\n\nexport default class GeofieldFormController {\n constructor(element) {\n this.element = element;\n // Declare utility variables.\n this.geolocation = false;\n this.currentLocation = null;\n this.usingCurrentLocation = false;\n // Set callback contexts.\n this.submitHandler = this.submitHandler.bind(this);\n this.setCurrentLocation = this.setCurrentLocation.bind(this);\n this.checkboxChangeHandler = this.checkboxChangeHandler.bind(this);\n this.textfieldChangeHandler = this.textfieldChangeHandler.bind(this);\n // Initialize functionality.\n this.setViewState();\n this.listen();\n this.ready();\n }\n\n setViewState() {\n this.usingCurrentLocation = this.checkboxState;\n\n if ('geolocation' in navigator && window.location.protocol === 'https:') {\n this.geolocation = true;\n this.$element.addClass('geolocation');\n\n // save location for an hour\n const options = {\n maximumAge: 1000 * 60 * 60,\n };\n\n // Obtain user's current location using the Geolocation API.\n navigator.geolocation.getCurrentPosition(this.setCurrentLocation, null, options);\n }\n }\n\n setCurrentLocation(position) {\n this.currentLocation = position.coords;\n }\n\n listen() {\n this.$element.on('submit', this.submitHandler);\n this.$checkbox.on('change', this.checkboxChangeHandler);\n this.$textfield.on('input', this.textfieldChangeHandler);\n }\n\n checkboxChangeHandler() {\n if (this.checkboxState) {\n this.$textfield.val(null);\n this.$element.trigger('submit');\n }\n }\n\n textfieldChangeHandler(event) {\n const total = event.target.value.length;\n\n if (total > 0) {\n this.checkboxState = false;\n } else if (total === 0 && this.usingCurrentLocation && this.geolocation) {\n this.checkboxState = true;\n }\n }\n\n submitHandler() {\n let location = this.$textfield.val();\n\n if (this.checkboxState) {\n if (this.geolocation && this.currentLocation) {\n location = `${this.currentLocation.latitude} ${this.currentLocation.longitude}`;\n }\n }\n\n this.$hiddenfield.val(location);\n }\n\n ready() {\n this.$element.addClass('ready');\n }\n\n // Get jquery elements.\n\n get $element() {\n return $(this.element);\n }\n\n get $checkbox() {\n return this.$element.find('#edit-automatic');\n }\n\n get $textfield() {\n return this.$element.find('#edit-search');\n }\n\n get $hiddenfield() {\n return this.$element.find('#edit-location');\n }\n\n // Get and Set element states.\n\n get checkboxState() {\n return this.$checkbox.get(0).checked;\n }\n\n set checkboxState(state) {\n this.$checkbox.get(0).checked = state;\n }\n}\n","export default {\n account: '21839570870',\n placements: [\n {\n name: 'sidebar',\n id: 'div-gpt-ad-1578596696331-0',\n sizes: [\n ['fluid'],\n ],\n },\n ],\n};\n","import config from './GooglePublisherTags.config';\n\nlet googletag = null;\n\nfunction defineNamespace() {\n googletag = window.googletag || {};\n googletag.cmd = googletag.cmd || [];\n window.googletag = googletag;\n}\n\nfunction loadScript() {\n const script = document.createElement('script');\n script.async = true;\n script.type = 'text/javascript';\n script.src = '//www.googletagservices.com/tag/js/gpt.js';\n const head = document.getElementsByTagName('head')[0];\n head.appendChild(script);\n}\n\nfunction defineSlots() {\n config.placements.forEach((data) => {\n const element = document.getElementById(data.id);\n if (element) {\n googletag.cmd.push(() => {\n googletag.defineSlot(`/${config.account}/${data.name}`, data.sizes, data.id).addService(googletag.pubads());\n });\n }\n });\n}\n\nfunction enableServices() {\n googletag.cmd.push(() => {\n googletag.pubads().enableSingleRequest();\n googletag.enableServices();\n });\n}\n\nfunction displaySlots() {\n config.placements.forEach((data) => {\n const element = document.getElementById(data.id);\n if (element) {\n googletag.cmd.push(() => {\n googletag.display(data.id);\n });\n }\n });\n}\n\nexport default class GooglePublisherTags {\n constructor() {\n if (!config) throw Error('No configuration found');\n defineNamespace();\n defineSlots();\n enableServices();\n displaySlots();\n loadScript();\n }\n}\n","export default class GoogleNativeAd {\n constructor(element) {\n this.element = element;\n\n // Listen to message from child window (iframe ad postMessage)\n window.addEventListener('message', (event) => {\n const key = event.message ? 'message' : 'data';\n const data = event[key];\n const instance = data.adUnit || false;\n const eventName = data.message || 'ignore';\n\n // We're only managing native ad message listeners coming in. So quit if it's not.\n if (!instance || instance !== this.adUnit) return;\n\n // Handle the visibility of our element based on whether or not\n // ad content is available.\n if (eventName === 'adContentAvailable') {\n // If ad content is available, display it within our element.\n this.element.innerHTML = data.content;\n } else {\n // If no content is available, hide our element.\n this.element.classList.add('empty');\n const loader = this.element.querySelector('.loader');\n if (loader) loader.parentNode.removeChild(loader);\n }\n }, false);\n }\n\n // Returns this particular instance's ad unit id to help manage all\n // message listeners captured.\n get adUnit() {\n return this.element.getAttribute('data-container-ad-unit-id');\n }\n}\n","/* eslint-disable class-methods-use-this */\nimport 'whatwg-fetch';\nimport moment from 'moment';\nimport { Calendar } from '@fullcalendar/core';\nimport listPlugin from '@fullcalendar/list';\nimport dayGridPlugin from '@fullcalendar/daygrid';\n\n/**\n * @community_calendar {module} menu callback endpoints.\n */\nconst api = {\n events: '/community_calendar/events',\n};\n\nconst defaults = {\n city: 'Coachella',\n};\n\nexport default class CommunityCalendar {\n constructor(element, options) {\n this.element = element;\n this.settings = { ...defaults, ...options };\n this.fetchEvents()\n .then(this.createCalendar.bind(this));\n }\n\n async fetchEvents() {\n const url = `${api.events}?city=${this.city}&date=${this.firstOfLastMonth}`;\n const options = { cache: 'no-cache' };\n const request = new Request(url, options);\n const response = await fetch(request);\n this.events = await response.json();\n }\n\n createCalendar() {\n this.calendar = new Calendar(this.element, {\n plugins: [\n listPlugin,\n dayGridPlugin,\n ],\n header: {\n left: 'prev,next today',\n center: 'title',\n right: 'dayGridMonth,listWeek,listDay',\n },\n buttonText: {\n listWeek: 'week',\n listDay: 'day',\n },\n defaultView: 'listWeek',\n defaultDate: this.date,\n navLinks: true,\n eventLimit: true,\n editable: false,\n events: this.events,\n eventClick: ({ el, jsEvent }) => {\n jsEvent.preventDefault();\n const link = el.querySelector('a');\n window.open(link.href, '_blank');\n },\n views: {\n dayGridMonth: {\n defaultDate: this.firstOfTheMonth,\n },\n },\n });\n\n // Render calculator instance.\n this.calendar.render();\n\n // Add a mutation listener to re-render the calendar.\n // This is needed in cases where the calendar is created within a\n // hidden container.\n const tabPanel = this.element.closest('.views-row.under-tab');\n if (tabPanel) {\n const observer = new MutationObserver((mutationList) => {\n mutationList.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n if (tabPanel.classList.contains('js-tabs-show')) {\n this.calendar.changeView(this.calendar.optionsManager.computed.defaultView);\n }\n }\n });\n });\n observer.observe(tabPanel, { attributes: true });\n }\n\n // Add ready state.\n this.element.classList.add('ready');\n }\n\n get date() {\n return moment().format('YYYY-MM-DD');\n }\n\n get firstOfLastMonth() {\n return moment().subtract(1, 'month').startOf('month').format('YYYY-MM-DD');\n }\n\n get city() {\n return this.element.getAttribute('data-city') || this.settings.city;\n }\n}\n","import $ from 'jquery';\n\nimport DDTemplates from './DDTemplates';\nimport Menu from './Menu';\nimport Drupal from './Drupal';\nimport Header from './Header';\nimport Sticky from './Sticky';\nimport Gallery from './Gallery';\nimport Toolbar from './Toolbar';\nimport MobileMenu from './MobileMenu';\nimport SmartFooter from './SmartFooter';\nimport CalendarFeed from './CalendarFeed';\nimport FixNavigation from './FixNavigation';\nimport TermNavigation from './TermNavigation';\nimport FooterMods from './FooterMods';\nimport PodMods from './PodMods';\nimport Placeholder from './Placeholder';\nimport ProgramsRedirect from './ProgramsRedirect';\nimport Redirect from './Redirect';\nimport AccordionWrap from './AccordionWrap';\nimport AccordionFix from './AccordionFix';\nimport AccordionContainer from './AccordionContainer';\nimport Banner from './Banner';\nimport BackgroundImage from './BackgroundImage';\nimport RemoveLink from './RemoveLink';\nimport Hero from './Hero';\nimport StringSplit from './StringSplit';\nimport SelectList from './SelectList';\nimport Columns from './Columns';\nimport SliderPrograms from './Slider.Programs';\nimport SingleChild from './SingleChild';\nimport SliderEvents from './Slider.Events';\nimport SliderFeatured from './Slider.Featured';\nimport HomepageEvents from './HomepageEvents';\nimport HomeSignUp from './HomeSignUp';\nimport SelectBox from './SelectBox';\nimport BrowserCheck from './BrowserCheck';\nimport ActivityView from './ActivityView';\nimport ActivityTypeFadeText from './ActivityType.FadeText';\nimport TitleCaption from './TitleCaption';\n\n// Google Maps Integration Locator Map View.\nimport LocatorMap from './LocatorMap';\nimport GeofieldFormController from './GeofieldFormController';\n\n// Google DFP Ads\nimport GooglePublisherTags from './GooglePublisherTags';\nimport GoogleNativeAd from './GoogleNativeAd';\n\n// Community Calendar\nimport CommunityCalendar from './CommunityCalendar';\n\n// Add the theme behaviors\nDrupal.behavior((context) => {\n // Helpers\n const $body = $(document.body, context);\n\n // DD Template Behaviors\n if (!document.body.DDTemplates) {\n document.body.DDTemplates = new DDTemplates(context);\n }\n\n // Google DFP\n if (!document.body.GooglePublisherTags) {\n document.body.GooglePublisherTags = new GooglePublisherTags();\n }\n\n // Google DFP Ad Unit\n $('.native-ad', context).each((i, element) => {\n if (!element.GoogleNativeAd) {\n element.GoogleNativeAd = new GoogleNativeAd(element);\n }\n });\n\n // Get browser and version\n $body.each((i, element) => {\n if (!element.browserCheck) {\n element.browserCheck = new BrowserCheck(element);\n }\n });\n\n // Fix our damn menus from displaying orphaned children\n $('.primary-navigation, .term-nav', context).each((i, element) => {\n if (!element.FixNavigation) {\n element.FixNavigation = new FixNavigation(element);\n }\n });\n\n // Sticky sidebars\n $('.page-sidebar', context).each((i, element) => {\n if (!element.Sticky) {\n element.Sticky = new Sticky(element);\n }\n });\n\n // Main/Primary Site Navigation\n $('#block-nice_menus-3', context).each((i, element) => {\n if (!element.Menu && !element.MobileMenu) {\n element.Menu = new Menu(element);\n element.MobileMenu = new MobileMenu(element);\n }\n });\n\n // Controls the states of the menu and search states\n $('.toolbar', context).each((i, element) => {\n if (!element.Toolbar) {\n element.Toolbar = new Toolbar(element);\n }\n });\n\n // Controls the page overlay display\n $('.overlay', context).bind('click', () => {\n $body.removeClass('menu-active search-active');\n });\n\n // Fixed Header using Headroom.js\n $('.headroom', context).each((i, element) => {\n if (!element.Header) {\n element.Header = new Header(element);\n }\n });\n\n // Adds .has-banner class to body if banner exists\n $('.page-top .block', context).each((i, element) => {\n if (!element.banner) {\n element.banner = new Banner(element);\n }\n });\n\n // Background image\n $('.banner, .activity-type .node-teaser', context).each((i, element) => {\n if (!element.backgroundImage) {\n element.backgroundImage = new BackgroundImage(element);\n }\n });\n\n $('.home-programs .views-row', context).each((i, element) => {\n if (!element.backgroundImage) {\n element.backgroundImage = new BackgroundImage(element, {\n destSelector: '.node-image',\n });\n }\n });\n\n $('.home-community .views-row', context).each((i, element) => {\n if (!element.backgroundImage) {\n element.backgroundImage = new BackgroundImage(element, {\n destSelector: '.node-inner',\n });\n }\n });\n\n // Smart Footer\n $('.page-footer', context).each((i, element) => {\n const $footprint = $('.footprint', context);\n if (!element.SmartFooter && $footprint.length) {\n element.SmartFooter = new SmartFooter(element, $footprint);\n element.FooterMods = new FooterMods(element);\n }\n });\n\n // Term Navigation\n $('.term-nav', context).each((i, element) => {\n if (!element.TermNavigation) {\n element.TermNavigation = new TermNavigation(element);\n }\n });\n\n // Photo Galleries\n $('.node-content .photo-gallery, .photo-gallery .node-image, .photo-gallery .node-upper-image', context).each((i, element) => {\n if (!element.Gallery) {\n element.Gallery = new Gallery(element);\n }\n });\n\n // Wraps each accordion element\n $('.accordion-heading', context).each((i, element) => {\n if (!element.accordionWrap) {\n element.accordionWrap = new AccordionWrap(element);\n element.accordionWrap = new AccordionFix(element);\n }\n });\n\n // Wraps each accordion in a container\n $('.node-content', context).each((i, element) => {\n if (!element.accordionContainer) {\n setTimeout(() => {\n element.accordionContainer = new AccordionContainer(element);\n }, 300);\n }\n });\n\n // Calendar of Events View\n $('.calendar-feed', context).each((i, element) => {\n if (!element.CalendarFeed) {\n element.CalendarFeed = new CalendarFeed(element);\n }\n });\n\n // Modify Pods for design\n $('.pods .views-row', context).each((i, element) => {\n if (!element.podMods) {\n element.podMods = new PodMods(element);\n element.redirect = new Redirect(element, {\n selector: '.node-upper-image',\n });\n }\n });\n\n // Set placeholder of textfield using label\n $('.pods .type-textfield, .home-sign-up .type-textfield', context).each((i, element) => {\n if (!element.placeholder) {\n element.placeholder = new Placeholder(element, {\n trim: true,\n });\n }\n });\n\n // Disable link in header\n $('.hero .views-row, .home-programs-headerband .views-row, .home-community .views-row, .home-events-headerband .views-row, .home-sign-up .views-row, .activities-by-community .views-row, .activity-guides .views-row, .footer-contact .views-row', context).each((i, element) => {\n if (!element.removeLink) {\n element.removeLink = new RemoveLink(element);\n }\n });\n\n // Make entire element clickable\n $('.activity-type .views-row', context).each((i, element) => {\n if (!element.redirect) {\n element.redirect = new Redirect(element);\n }\n });\n\n // Make entire element clickable\n $('.home-programs .views-row, .home-events .views-row', context).each((i, element) => {\n if (!element.programsRedirect) {\n element.programsRedirect = new ProgramsRedirect(element);\n }\n });\n\n // Hero background images and slider\n $('.hero', context).each((i, element) => {\n if (!element.hero) {\n element.hero = new Hero(element);\n element.hero = new StringSplit(element);\n }\n });\n\n // Select list generators\n let selectIdentifier = 1;\n $('.hero-links', context).each((i, element) => {\n if (!element.select) {\n element.select = new SelectList(element, {\n placeholder: 'Quicklinks',\n destination: '.block-inner',\n optionSrc: '.views-row',\n target: '.node-header a',\n numerator: selectIdentifier,\n after: true,\n });\n }\n });\n $('.activities-by-community', context).each((i, element) => {\n if (!element.commSelect) {\n element.commSelect = new SelectList(element, {\n destination: '.node-inner',\n optionSrc: '.link:not(.link-read-more)',\n target: 'a',\n placeholder: 'Pick a Location',\n numerator: selectIdentifier,\n after: true,\n });\n selectIdentifier += 1;\n element.select = new SelectBox(element, {\n placeholder: 'Pick a Location',\n });\n $(element).addClass('ready');\n }\n });\n $('.activities-by-interest', context).each((i, element) => {\n if (!element.intSelect) {\n element.intSelect = new SelectList(element, {\n placeholder: 'Pick an Interest',\n destination: '.block-inner',\n optionSrc: '.views-row',\n target: '.node-header a',\n numerator: selectIdentifier,\n after: true,\n });\n $(element).closest('.content-after').addClass('ready');\n }\n });\n\n // Home Programs columns / slider\n $('.home-programs .view-content', context).each((i, element) => {\n if (!element.programs) {\n element.programs = new Columns(element, {\n interval: 4,\n item: '.views-row',\n parent: '.view-content',\n divider: 'new-col',\n blockName: 'home-programs',\n });\n element.programs = new SingleChild(element);\n element.programs = new SliderPrograms(element);\n $(element).closest('.content-before').addClass('ready');\n }\n });\n\n // Home Events slider\n $('.home-events .view-content', context).each((i, element) => {\n if (!element.events) {\n element.events = new SliderEvents(element);\n $(element).closest('.content-after').addClass('ready');\n }\n });\n\n // Home Featured slider\n $('.home-featured .view-content', context).each((i, element) => {\n if (!element.featured) {\n element.featured = new SliderFeatured(element);\n }\n });\n\n // Homepage DD Facebook Events Feed\n $('.front .dd-facebook-events-feed--homepage', context).each((i, element) => {\n if (!element.HomepageEvents) {\n element.HomepageEvents = new HomepageEvents(element);\n }\n });\n\n // Home email sign-up\n $('.home-sign-up', context).each((i, element) => {\n if (!element.signUp) {\n element.signUp = new StringSplit(element);\n element.signUp = new HomeSignUp(element);\n }\n });\n\n // Home community\n $('.home-community', context).each((i, element) => {\n if (!element.community) {\n element.community = new StringSplit(element, {\n title: '.block-title .block-title-text',\n separator: '|',\n });\n }\n });\n\n // Activity Guides header split\n $('.activity-guides', context).each((i, element) => {\n if (!element.agSplit) {\n element.agSplit = new StringSplit(element);\n }\n });\n\n // Creates image caption using node header\n $('.activity-type .views-row', context).each((i, element) => {\n if (!element.titleCaption) {\n element.titleCaption = new TitleCaption(element);\n }\n });\n\n // Toggle view mode for Activity Type template\n $('.activity-type', context).each((i, element) => {\n if (!element.activityView) {\n element.activityView = new ActivityView(element);\n }\n });\n\n // Fade out text that exceeds parent height\n $('.activity-type .views-row', context).each((i, element) => {\n if (!element.fadeText) {\n element.fadeText = new ActivityTypeFadeText(element);\n }\n });\n\n $body.addClass('instant');\n setTimeout(() => {\n $body.addClass('delayed');\n }, 500);\n\n // Add Sitemap output using the digitaldcore.js function\n const $map = $('#sitemap', context);\n const $nav = $('#sitemap .content', context);\n\n if ($map.length && $nav.length) {\n Drupal.digitaldcoreCreateSiteMap($map, $nav);\n $map.addClass('ready');\n }\n\n // -----------------------------------------------------------------------------\n // Locate Your District: Map\n // -----------------------------------------------------------------------------\n\n $('.district-locator', context).each((i, element) => {\n if (!element.LocatorMap) {\n element.LocatorMap = new LocatorMap(element);\n }\n });\n\n // -----------------------------------------------------------------------------\n // Locate Your District: Form Controller\n // -----------------------------------------------------------------------------\n\n $('.district-locator form#district-locator-geofield', context).each((i, element) => {\n if (!element.GeofieldFormController) {\n element.GeofieldFormController = new GeofieldFormController(element);\n }\n });\n\n // -----------------------------------------------------------------------------\n // Community Calendar - Loads events from the activity API, creates and displays\n // a calendar with the results.\n // -----------------------------------------------------------------------------\n\n $('.community-calendar', context).each((i, element) => {\n if (!element.CommunityCalendar) {\n element.CommunityCalendar = new CommunityCalendar(element);\n }\n });\n});\n"],"sourceRoot":""}