{"version":3,"sources":["../bower_components/bootstrap-sass/assets/javascripts/bootstrap.js","../assets/scripts/main.js","../assets/scripts/iframe.js","../assets/scripts/layout.js","../assets/scripts/slideshow.js","../assets/scripts/nav.js","../assets/scripts/nav-expanded.js","../assets/scripts/evergreen.js","../assets/scripts/search.js","../assets/scripts/term-groups.js","../assets/scripts/custom-search-filters.js"],"names":["jQuery","Error","version","fn","jquery","split","$","emulateTransitionEnd","duration","called","$el","this","one","setTimeout","trigger","support","transition","end","el","document","createElement","transEndEventNames","WebkitTransition","MozTransition","OTransition","name","undefined","style","transitionEnd","event","special","bsTransitionEnd","bindType","delegateType","handle","e","target","is","handleObj","handler","apply","arguments","Alert","on","dismiss","close","VERSION","TRANSITION_DURATION","prototype","$this","selector","attr","replace","$parent","find","removeElement","detach","remove","preventDefault","length","closest","Event","isDefaultPrevented","removeClass","hasClass","old","alert","option","each","data","call","Constructor","noConflict","Button","element","options","$element","extend","DEFAULTS","isLoading","Plugin","toggle","setState","loadingText","state","d","val","resetText","proxy","addClass","prop","removeAttr","$input","changed","toggleClass","button","$btn","first","test","type","Carousel","$indicators","paused","sliding","interval","$active","$items","keyboard","keydown","pause","documentElement","cycle","action","slide","to","wrap","tagName","which","prev","next","clearInterval","setInterval","getItemIndex","item","parent","children","index","getItemForDirection","direction","active","activeIndex","itemIndex","eq","pos","that","$next","isCycling","$nextIndicator","relatedTarget","slideEvent","slidEvent","offsetWidth","join","carousel","clickHandler","slideIndex","href","$target","window","$carousel","Collapse","$trigger","id","transitioning","getParent","addAriaAndCollapsedClass","getTargetFromTrigger","dimension","show","activesData","actives","startEvent","complete","scrollSize","camelCase","hide","offsetHeight","i","isOpen","collapse","Dropdown","clearMenus","contains","isActive","insertAfter","stopPropagation","dropdown","Modal","$body","body","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","fixedContent","remote","load","_relatedTarget","BACKDROP_TRANSITION_DURATION","backdrop","checkScrollbar","setScrollbar","escape","resize","appendTo","scrollTop","adjustDialog","enforceFocus","off","hideModal","has","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","callback","callbackRemove","animate","doAnimate","currentTarget","focus","modalIsOverflowing","scrollHeight","clientHeight","css","paddingLeft","bodyIsOverflowing","paddingRight","documentElementRect","fullWindowWidth","innerWidth","getBoundingClientRect","right","Math","abs","left","clientWidth","measureScrollbar","bodyPad","parseInt","actualPadding","calculatedPadding","parseFloat","padding","removeData","scrollDiv","className","append","removeChild","modal","showEvent","DISALLOWED_ATTRIBUTES","uriAttrs","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","implementation","createHTMLDocument","createdDocument","innerHTML","whitelistKeys","map","elements","len","elName","nodeName","toLowerCase","inArray","attributeList","attributes","whitelistedAttributes","concat","j","len2","allowedAttributeList","attrName","Boolean","nodeValue","match","regExp","filter","value","RegExp","l","allowedAttribute","removeAttribute","parentNode","Tooltip","enabled","timeout","hoverState","inState","init","animation","placement","template","title","delay","html","container","viewport","sanitize","getOptions","$viewport","isFunction","click","hover","constructor","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","dataAttributes","dataAttr","hasOwnProperty","getDelegateOptions","defaults","key","obj","self","tip","clearTimeout","isInStateTrue","hasContent","inDom","ownerDocument","$tip","tipId","getUID","setContent","autoToken","autoPlace","top","display","orgPlacement","viewportDim","getPosition","actualWidth","actualHeight","bottom","width","calculatedOffset","getCalculatedOffset","applyPlacement","prevHoverState","offset","height","marginTop","marginLeft","isNaN","setOffset","using","props","round","delta","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","arrow","getTitle","text","$e","isBody","elRect","isSvg","SVGElement","elOffset","scroll","outerDims","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","viewportPadding","viewportDimensions","o","prefix","random","getElementById","$arrow","enable","disable","toggleEnabled","destroy","tooltip","Popover","content","typeContent","getContent","popover","ScrollSpy","$scrollElement","offsets","targets","activeTarget","process","refresh","getScrollHeight","max","offsetMethod","offsetBase","isWindow","$href","sort","push","maxScroll","activate","clear","parents","parentsUntil","scrollspy","$spy","Tab","$previous","hideEvent","$ul","tab","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getState","offsetTop","offsetBottom","position","targetHeight","initializing","colliderTop","getPinnedOffset","affix","affixType","Sage","common","finalize","home","about_us","UTIL","fire","func","funcname","args","loadEvents","classnm","ready","resizeFrameEl","addEventListener","JSON","parse","error","HEWLETT","layout","heroDetails","heroThumb","sidebarCallouts","jumpMenu","jumpMenuItems","calloutsToAdjust","recentGrants","setupEvents","flexRecentGrants","applySmallSpacing","bind","isMobile","notDesktop","isTablet","recentGrantsHeight","innerGrantsHeight","callouts","isStacked","tallestVal","calloutPadding","stackedHeight","minHeight","Slideshow","gallery","slides","pages","status","caption","slidesCount","currentSlideInt","goto","slideNumber","setStatus","nextHandler","nextSlideInt","console","log","prevHandler","prevSlideInt","pageHandler","slideshow","slideshows","menuToggle","searchToggle","menu","search","navToggles","querySelectorAll","menuToggleNew","searchToggleNew","menuNew","searchNew","forEach","slideToggle","siblings","slideUp","evergreen","applyViewAllListener","evt","dataset","tabName","filters","getFilters","startAjax","changeActiveTab","currentTab","newTab","applyTabArrowListeners","tabs","currentTabSelected","currentTabIdx","get","tabIndex","change","slideDirection","newTabIdx","changeBodyContent","after","ajax","url","jqXHR","textStatus","errorThrown","success","response","select","currentOptionSelected","newOptionIdx","optionIndex","querySelector","classList","getUrlParam","param","vars","location","substring","pair","targetPage","keyword","inputs","word","getKeyword","grantPrograms","programs","pathname","grantStrategies","strategies","contentTypes","years","grant_programs","grant_strategies","content_types","current_page","updateFilter","idx","indexOf","substr","updateUrl","isUser","queryStrings","queryString","string","history","pushState","updatePagination","pagination","currentPageNumber","empty","page","textValue","number","numberString","toString","convertTextValueToNumberString","textContent","jumpToResults","searchValues","path","engine","listing_type","filterKey","info","articles","records","rejected","total_result_count","decodeURIComponent","per_page","min","pathName","isFilterable","isFilterableListing","searchTriggers","searchForm","filterTypes","clearFilters","keywordInput","urlParams","values","decoded","decodeURI","collectUrlParams","isSearchPage","querySettings","makeInitAjax","wrapper","icon","keypress","submit","$toggle","termGroupId","warn","$termGroup","$currentToggle","isExpanded","$currentGroup","stop","$relatedTerm","atr","toggleButtons","setAttribute","section","getAttribute","add"],"mappings":"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","file":"main.js","sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // https://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.4.1'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n selector = selector === '#' ? [] : selector\n var $parent = $(document).find(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.4.1'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.4.1'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n if (typeof $next === 'object' && $next.length) {\n $next[0].offsetWidth // force reflow\n }\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n if (href) {\n href = href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n }\n\n var target = $this.attr('data-target') || href\n var $target = $(document).find(target)\n\n if (!$target.hasClass('carousel')) return\n\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.4.1'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(document).find(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(document).find(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.4.1'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#modals\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.4.1'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n var scrollbarWidth = this.scrollbarWidth\n if (this.bodyIsOverflowing) {\n this.$body.css('padding-right', bodyPad + scrollbarWidth)\n $(this.fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight\n var calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')\n })\n }\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n $(this.fixedContent).each(function (index, element) {\n var padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var target = $this.attr('data-target') ||\n (href && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n\n var $target = $(document).find(target)\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\n var uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n ]\n\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n }\n\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase()\n\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\n if ($.inArray(attrName, uriAttrs) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n var regExp = $(allowedAttributeList).filter(function (index, value) {\n return value instanceof RegExp\n })\n\n // Check if a regular expression validates the attribute.\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n }\n\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n // IE 8 and below don't support createHTMLDocument\n if (!document.implementation || !document.implementation.createHTMLDocument) {\n return unsafeHtml\n }\n\n var createdDocument = document.implementation.createHTMLDocument('sanitization')\n createdDocument.body.innerHTML = unsafeHtml\n\n var whitelistKeys = $.map(whiteList, function (el, i) { return i })\n var elements = $(createdDocument.body).find('*')\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var el = elements[i]\n var elName = el.nodeName.toLowerCase()\n\n if ($.inArray(elName, whitelistKeys) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n var attributeList = $.map(el.attributes, function (el) { return el })\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n for (var j = 0, len2 = attributeList.length; j < len2; j++) {\n if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {\n el.removeAttribute(attributeList[j].nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n }\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.4.1'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n },\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n var dataAttributes = this.$element.data()\n\n for (var dataAttr in dataAttributes) {\n if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\n delete dataAttributes[dataAttr]\n }\n }\n\n options = $.extend({}, this.getDefaults(), dataAttributes, options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n if (options.sanitize) {\n options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n if (this.options.html) {\n if (this.options.sanitize) {\n title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)\n }\n\n $tip.find('.tooltip-inner').html(title)\n } else {\n $tip.find('.tooltip-inner').text(title)\n }\n\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {\n return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)\n }\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.4.1'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n if (this.options.html) {\n var typeContent = typeof content\n\n if (this.options.sanitize) {\n title = this.sanitizeHtml(title)\n\n if (typeContent === 'string') {\n content = this.sanitizeHtml(content)\n }\n }\n\n $tip.find('.popover-title').html(title)\n $tip.find('.popover-content').children().detach().end()[\n typeContent === 'string' ? 'html' : 'append'\n ](content)\n } else {\n $tip.find('.popover-title').text(title)\n $tip.find('.popover-content').children().detach().end().text(content)\n }\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.4.1'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.4.1'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(document).find(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#affix\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)\n\n this.$target = target\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.4.1'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n","/* ========================================================================\n * DOM-based Routing\n * Based on http://goo.gl/EUTi53 by Paul Irish\n *\n * Only fires on body classes that match. If a body class contains a dash,\n * replace the dash with an underscore when adding it to the object below.\n *\n * .noConflict()\n * The routing is enclosed within an anonymous function so that you can\n * always reference jQuery with $, even when in .noConflict() mode.\n * ======================================================================== */\n\n(function ($) {\n\n // Use this variable to set up the common and page specific functions. If you\n // rename this variable, you will also need to rename the namespace below.\n var Sage = {\n // All pages\n 'common': {\n init: function () {\n // JavaScript to be fired on all pages\n },\n finalize: function () {\n // JavaScript to be fired on all pages, after page specific JS is fired\n }\n },\n // Home page\n 'home': {\n init: function () {\n // JavaScript to be fired on the home page\n },\n finalize: function () {\n // JavaScript to be fired on the home page, after the init JS\n }\n },\n // About us page, note the change from about-us to about_us.\n 'about_us': {\n init: function () {\n // JavaScript to be fired on the about us page\n }\n }\n // 'sign_up': {\n // init: function () {\n // // JavaScript to be fired on the sign up page\n // var sanitized = document.getElementById(\"sanitized\").value;\n // document.getElementById(\"mc-email\").value = sanitized;\n // }\n // }\n };\n\n // The routing fires all common scripts, followed by the page specific scripts.\n // Add additional events for more control over timing e.g. a finalize event\n var UTIL = {\n fire: function (func, funcname, args) {\n var fire;\n var namespace = Sage;\n funcname = (funcname === undefined) ? 'init' : funcname;\n fire = func !== '';\n fire = fire && namespace[func];\n fire = fire && typeof namespace[func][funcname] === 'function';\n\n if (fire) {\n namespace[func][funcname](args);\n }\n },\n loadEvents: function () {\n // Fire common init JS\n UTIL.fire('common');\n\n // Fire page-specific init JS, and then finalize JS\n $.each(document.body.className.replace(/-/g, '_').split(/\\s+/), function (i, classnm) {\n UTIL.fire(classnm);\n UTIL.fire(classnm, 'finalize');\n });\n\n // Fire common finalize JS\n UTIL.fire('common', 'finalize');\n }\n };\n\n // Load Events\n $(document).ready(UTIL.loadEvents);\n\n // Target the form element. If it has an error class scroll to the top of the form.\n // function scrollToGFormAnchor(id) {\n // var formEl = $(id);\n // if (formEl.length) {\n // $(\"html,body\").animate({ scrollTop: formEl.offset().top - 100 }, 'fast');\n // }\n // }\n\n // $(document).bind('gform_post_render', function () {\n // if ($(\".validation_error\")[0]) {\n // scrollToGFormAnchor('#gform_1');\n // } else {\n // return false;\n // }\n // });\n\n})(jQuery); // Fully reference jQuery after this point.\n","(function ($) {\n\n //add title to iframe embeds\n $(\"iframe\").each(function() {\n var $this = $(this);\n if (!$this.attr(\"title\")) {\n $this.attr(\"title\", \"Embedded Media\");\n }\n });\n\n // listen for resize event from https://hewlett.hrmdirect.com iframes (ClearCompany)\n var resizeFrameEl = document.getElementById(\"careersFrame\");\n\n if (resizeFrameEl) {\n window.addEventListener(\"message\", function(event) {\n\n // Since the JS in the iframe that emits the message doesn’t seem to run right away,\n // we have to use a try/catch to avoid an error.\n try {\n var data = JSON.parse(event.data);\n\n if (data.action === \"resizeMe\") {\n resizeFrameEl.style.height = parseInt(data.height, 10) + \"px\";\n }\n }\n catch(error) {\n // console.warn(\"Can’t parse iframe message data as JSON on resize\", event.data);\n }\n });\n }\n\n})(jQuery);\n","(function($) {\n\n window.HEWLETT = window.HEWLETT || {};\n\n function Layout() {\n\n this.heroDetails = $(\".hero-callout .callout-details\");\n this.heroThumb = $(\".hero-callout .callout-thumb\");\n this.sidebarCallouts = $(\".home .sidebar\");\n this.jumpMenu = $(\".strategy .jump-menu\");\n this.jumpMenuItems = $(\".strategy .jump-menu-items\");\n this.calloutsToAdjust = $(\".callouts\");\n this.recentGrants = $(\".recentgrants\");\n\n /**\n * Init\n */\n this.init = function() {\n this.setupEvents();\n this.flexRecentGrants();\n this.applySmallSpacing();\n\n $(window).trigger(\"resize\");\n\n setTimeout(function() {\n $(window).trigger(\"resize\");\n }, 300);\n };\n\n /**\n * Setup Events\n */\n this.setupEvents = function() {\n $(window).on(\"resize\", this.resize.bind(this));\n };\n\n /**\n * Flex Recent Grants module container\n */\n this.flexRecentGrants = function() {\n if(!$(\".home\").length) {\n $(\".recentgrants\")\n .closest(\".components\")\n .addClass(\"sidebar-component\");\n }\n };\n\n /**\n * Apply spacing on strategy page\n */\n this.applySmallSpacing = function() {\n if($(\".single-strategy\").length) {\n $(\".research-stories-callout\")\n .closest(\".component-group\")\n .find(\".components\")\n .addClass(\"small-spaced-components\");\n }\n };\n\n /**\n * Resizing layout\n * @param {Event} e\n */\n this.resize = function(e) {\n\n var width = $(window).width(),\n isMobile = width <= 700,\n notDesktop = width < 1024,\n isTablet = width > 780 && width < 1024,\n that = this;\n\n // Align callout details\n $.each(this.calloutsToAdjust, function(e) {\n var callouts = $(this).find(\".callout\"),\n isStacked = $(this).hasClass(\"stacked-callouts\"),\n tallestVal = 0;\n\n $.each(callouts, function(e) {\n var height = $(this).find(\".callout-details-container\").height();\n if(height > tallestVal) {\n tallestVal = height;\n }\n });\n\n $.each(callouts, function(e) {\n var calloutPadding = $(this).hasClass(\"strategy-callout\") ? 30 : 40;\n var height = isMobile ? \"auto\" : tallestVal + calloutPadding;\n var stackedHeight = isTablet ? tallestVal + calloutPadding : \"auto\";\n\n if(isStacked) {\n $(this)\n .find(\".callout-details\")\n .css({ height: stackedHeight });\n } else {\n $(this)\n .find(\".callout-details\")\n .css({ height: height });\n }\n });\n\n if( that.heroDetails.length ) {\n // Align Hero details on homepage\n that.heroDetails.css({\n height: notDesktop ? \"auto\" : that.sidebarCallouts.height() - that.heroThumb.height()\n });\n }\n\n // jump menu min height\n if( that.jumpMenuItems.length ) {\n that.jumpMenu.css({\n minHeight: isMobile ? \"auto\" : that.jumpMenuItems.height() + 160\n });\n }\n\n if( !$(\".home\").length ) {\n var recentGrantsHeight = notDesktop ? \"auto\" : that.recentGrants.closest(\".content\").find(\".callouts\").height();\n\n var innerGrantsHeight = that.recentGrants.find(\".recentgrants-inner\").height() + 30;\n if( recentGrantsHeight < innerGrantsHeight ) {\n recentGrantsHeight = innerGrantsHeight;\n }\n\n that.recentGrants.css({\n height: recentGrantsHeight\n });\n }\n });\n };\n\n this.init();\n }\n\n HEWLETT.layout = new Layout();\n\n})(jQuery);\n","\n(function($) {\n\n window.HEWLETT = window.HEWLETT || {};\n\n function Slideshow( gallery ) {\n\n\n\n this.slides = gallery.find(\".gallery-slide\");\n this.pages = gallery.find(\".gallery-page\");\n this.status = gallery.find(\".gallery-status\");\n this.caption = gallery.find(\".gallery-caption\");\n\n this.slidesCount = this.slides.length;\n this.currentSlideInt = 0;\n\n /**\n * Goto slide number\n * @param {Integer} slideNumber\n */\n this.goto = function(slideNumber) {\n if(this.currentSlideInt !== slideNumber) {\n this.slides\n .removeClass(\"is-active\")\n .eq(slideNumber)\n .addClass(\"is-active\");\n\n this.pages\n .removeClass(\"is-active\")\n .eq(slideNumber)\n .addClass(\"is-active\");\n\n this.currentSlideInt = slideNumber;\n\n this.setStatus();\n }\n };\n\n /**\n * Next arrow click handler\n * @param {MouseEvent} event\n */\n this.nextHandler = function(event) {\n event.preventDefault();\n var nextSlideInt = this.currentSlideInt + 1;\n console.log(nextSlideInt);\n if(nextSlideInt >= this.slidesCount) {\n nextSlideInt = 0;\n }\n this.goto(nextSlideInt, this);\n };\n\n /**\n * Previous arrow click handler\n * @param {MouseEvent} event\n */\n this.prevHandler = function(event) {\n event.preventDefault();\n var prevSlideInt = this.currentSlideInt - 1;\n if(prevSlideInt < 0) {\n prevSlideInt = this.slidesCount - 1;\n }\n this.goto(prevSlideInt, this);\n };\n\n /**\n * Set page by pagination\n * @param {MouseEvent} event\n */\n this.pageHandler = function(event) {\n event.preventDefault();\n\n var index = $(event.target).closest(\".gallery-page\").index();\n this.goto(index);\n };\n\n this.setStatus = function() {\n this.status.html((this.currentSlideInt + 1) + \"/\" + this.slidesCount);\n this.caption.html( this.slides.eq(this.currentSlideInt).attr('data-caption') );\n };\n\n gallery.find(\".gallery-next\").on(\"click\", this.nextHandler.bind(this));\n gallery.find(\".gallery-prev\").on(\"click\", this.prevHandler.bind(this));\n gallery.find(\".gallery-page\").on(\"click\", this.pageHandler.bind(this));\n\n this.setStatus();\n }\n\n function Slideshows() {\n\n this.slideshows = $(\".gallery\");\n if(!this.slideshows.length) { return; }\n\n this.slideshows.each(function( index ){\n\n var slideshow = new Slideshow($(this));\n\n });\n }\n\n HEWLETT.slideshow = new Slideshows();\n\n})(jQuery);\n","(function ($) {\n var menuToggle = $(\"#menu-toggle-cb\");\n var searchToggle = $(\"#search-toggle-cb\");\n var menu = $(\".menu-nav\");\n var search = $(\".menu-search\");\n\n menuToggle.on(\"change\", function () {\n menu.toggleClass(\"is-active\");\n\n if (search.hasClass(\"is-active\")) {\n searchToggle.click();\n }\n });\n\n searchToggle.on(\"change\", function () {\n search.toggleClass(\"is-active\");\n\n if (menu.hasClass(\"is-active\")) {\n menuToggle.click();\n }\n\n if (search.hasClass(\"is-active\")) {\n search.find(\"input\").focus();\n }\n });\n})(jQuery);\n","(function ($) {\n// Toggle for the new \"expanded\" primary drop down navigation\n\n// Vars\n var navToggles = document.querySelectorAll(\"[data-nav-toggle]\");\n var menuToggleNew = $(\"#menu-toggle-cntrl\");\n var searchToggleNew = $(\"#search-toggle-cntrl\");\n var menuNew = $(\".menu-nav\");\n var searchNew = $(\".menu-search\");\n\n // Toggle for Mobile Navigation Hamburger Menu and Search\n\n menuToggleNew.on(\"change\", function () {\n menuNew.toggleClass(\"is-active\");\n \n if (searchNew.hasClass(\"is-active\")) {\n searchToggleNew.click();\n }\n });\n \n searchToggleNew.on(\"change\", function () {\n searchNew.toggleClass(\"is-active\");\n \n if (menuNew.hasClass(\"is-active\")) {\n menuToggleNew.click();\n }\n \n if (searchNew.hasClass(\"is-active\")) {\n searchNew.find(\"input\").focus();\n }\n });\n\n// Drop down navigation for primary nav.\n\n navToggles.forEach(function(toggle){\n $(toggle).click(function(){\n $(this).next(\"div.expandable\").slideToggle();\n $(this).parent().siblings().children().next().slideUp();\n $(this).parent().toggleClass(\"open\");\n $(this).parent().siblings().removeClass(\"open\");\n \n });\n });\n\n })(jQuery);\n ","/* jshint latedef:false */\n\n(function ($) {\n\n window.HEWLETT = window.HEWLETT || {};\n\n function Evergreen() {\n\n function applyViewAllListener() {\n var viewAll = $(\".evergreen-view-all\");\n\n viewAll.click(function (evt) {\n // open content type filter\n $(\".content-type-wrapper\").addClass(\"filter-open\");\n\n // clear already checked boxes\n $(\"input.filter-checkbox\").attr(\"checked\", false);\n\n // clear a search term if it exists\n $(\".keyword-input\").val(\"\");\n\n // check appropriate box\n var input = $(\"#content-type-\" + this.dataset.tabName);\n input.prop('checked', true);\n\n // trigger search\n var filters = HEWLETT.search.getFilters(\"1\");\n HEWLETT.search.startAjax(filters, true);\n });\n }\n\n function changeActiveTab(currentTab, newTab) {\n currentTab.toggleClass(\"tab-selected\");\n $(newTab).toggleClass(\"tab-selected\");\n }\n\n function applyTabArrowListeners(data) {\n var tabs = $(\".tab-evergreen\");\n var tabArrows = $(\".tab-arrows\");\n\n tabArrows.click(function (evt) {\n var currentTabSelected = $(\".tabs-evergreen .tab-selected\"),\n currentTabIdx = parseInt(currentTabSelected.get(0).dataset.tabIndex),\n change = parseInt(this.dataset.slideDirection), // -1 or 1\n newTabIdx,\n newTab;\n\n if (currentTabIdx + change === tabs.length) {\n newTabIdx = 0;\n } else if (currentTabIdx + change === -1) {\n newTabIdx = tabs.length - 1;\n } else {\n newTabIdx = currentTabIdx + change;\n }\n\n newTab = tabs[newTabIdx];\n // console.log('nt:', newTab);\n\n changeActiveTab(currentTabSelected, newTab);\n changeBodyContent(data, newTabIdx);\n });\n }\n\n // any time the active tab changes, the listeners need to be reapplied in addition to updating the content\n function changeBodyContent(data, newTabIdx) {\n $(\".evergreen-body-container\").remove();\n $(\".tabs-evergreen-container\").after(data[newTabIdx]);\n applyViewAllListener();\n applyTabArrowListeners(data);\n }\n\n function fetchHtml() {\n jQuery.ajax({\n url: \"/wp/wp-admin/admin-ajax.php\",\n type: \"post\",\n data: {\n \"action\": \"fetch_html\"\n },\n error: function (jqXHR, textStatus, errorThrown) {\n console.log(\"An error occured: \" + errorThrown);\n },\n success: function (response) {\n var tabs = $(\".tab-evergreen\");\n var tabArrows = $(\".tab-arrows\");\n var select = $(\".styled-select-item\");\n var data = JSON.parse(response);\n // console.log('data:', data);\n\n // desktop version with tabs\n tabs.click(function (evt) {\n var currentTabSelected = $(\".tabs-evergreen .tab-selected\"),\n currentTabIdx = parseInt(currentTabSelected.get(0).dataset.tabIndex),\n newTabIdx = parseInt(this.dataset.tabIndex);\n\n // don't bother with changes if the current tab is chosen anyway\n if (newTabIdx !== currentTabIdx) {\n changeActiveTab(currentTabSelected, this);\n changeBodyContent(data, newTabIdx);\n }\n });\n\n // mobile & tablet version with dropdown\n select.change(function (evt) {\n var currentOptionSelected = $(\".dropdown-evergreen .option-selected\");\n var currentOptionIdx = parseInt(currentOptionSelected.get(0).dataset.optionIndex);\n var newOptionIdx = parseInt($(\"#content-type option:selected\").get(0).dataset.optionIndex);\n\n changeActiveTab(currentOptionSelected, newOptionIdx);\n changeBodyContent(data, newOptionIdx);\n });\n\n applyTabArrowListeners(data); // wait to apply listeners till now when we have all data available\n\n } // end success callback\n });\n }\n\n this.init = function () {\n fetchHtml();\n applyViewAllListener();\n };\n\n if (document.querySelector(\"body\").classList.contains(\"ideas-practices\")) {\n this.init();\n }\n } // end Evergreen f'n\n\n HEWLETT.evergreen = new Evergreen();\n\n})(jQuery);\n","/* jshint latedef:false, eqeqeq:false */\n\n(function ($) {\n window.HEWLETT = window.HEWLETT || {};\n\n function Search() {\n // source: adapted from https://css-tricks.com/snippets/javascript/get-url-variables/\n function getUrlParam(param) {\n var query = window.location.search.substring(1);\n var vars = query.split(\"&\");\n\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split(\"=\");\n if (pair[0] === param) {\n return pair[1];\n }\n }\n\n return \"\";\n }\n\n function collectUrlParams(filters) {\n var urlParams = {};\n\n for (var key in filters) {\n var value = getUrlParam(key);\n\n if (value.indexOf(\",\") !== -1) {\n // multiple values\n var values = value.split(\",\");\n for (var i = 0; i < values.length; i++) {\n urlParams[key + \"__\" + (i + 1)] = values[i];\n }\n } else {\n // single value\n var decoded = decodeURI(value); // convert \"%20\" to space\n urlParams[key] = decoded.replace(/\\+/g, \" \"); // convert \"+\" to space\n }\n }\n\n return urlParams;\n }\n\n function scrollTo(id) {\n $(\"html, body\").animate({ scrollTop: $(\"#\" + id).offset().top }, 400);\n }\n\n function getKeyword(inputs) {\n // check both the landing graphic and sidebar inputs\n var word = \"\";\n\n for (var i = 0; i < inputs.length; i++) {\n if (inputs[i].value) {\n word = inputs[i].value;\n }\n }\n\n return word;\n }\n\n var getFilters = function (targetPage) {\n var keyword = getKeyword(document.querySelectorAll(\".keyword-input\"));\n\n var grantPrograms = $(\".program-filter-grants input[type=checkbox]:checked\")\n .map(function () {\n return this.value;\n })\n .get();\n var programs = $(\".program-filter-search input[type=checkbox]:checked\")\n .map(function () {\n return this.value;\n })\n .get();\n \n // always sort by date unless there is a filter AND it's set to something else\n var sort = $(\".sort-container option:selected\").val() || \"date\";\n\n // Remove automatic sort by date if on the grants page\n if (window.location.pathname == \"/grants/\") {\n sort = ''\n }\n\n var grantStrategies = $(\".strategy-filter-grants input[type=checkbox]:checked\")\n .map(function () {\n return this.value;\n }).get();\n\n var strategies = $(\".strategy-filter-search input[type=checkbox]:checked\")\n .map(function () {\n return this.value;\n })\n .get();\n var contentTypes = $(\".content-type-filter input[type=checkbox]:checked\")\n .map(function () {\n return this.value;\n })\n .get();\n var years = $(\".year-filter input[type=checkbox]:checked\")\n .map(function () {\n return this.value;\n })\n .get();\n var currentPage = targetPage ? targetPage : \"\";\n\n var filters = {\n keyword: keyword, // check both inputs (in the filters and the graphic)\n sort: sort,\n years: years,\n grant_programs: grantPrograms,\n grant_strategies: grantStrategies,\n programs: programs,\n strategies: strategies,\n content_types: contentTypes,\n current_page: currentPage\n };\n\n return filters;\n };\n\n function updateFilter(filter, value) {\n // options: get option with right value and set as selected\n // https://stackoverflow.com/a/36247087\n\n // a '__' (double underscore) indicates that there are multiple values; we are only concerned with beginning part\n var idx = filter.indexOf(\"__\");\n if (idx !== -1) {\n filter = filter.substr(0, idx);\n }\n\n switch (filter) {\n case \"keyword\":\n $(\".keyword-input\").val(value);\n break;\n case \"sort\":\n $(\"option[value=\" + value + \"]\").prop(\"selected\", \"selected\");\n break;\n case \"grant_programs\":\n $(\".grant-program-wrapper input[value=\" + value + \"]\").prop(\n \"checked\",\n \"checked\"\n );\n $(\".grant-program-wrapper\").addClass(\"filter-open\");\n break;\n case \"programs\":\n $(\".program-wrapper input[value=\" + value + \"]\").prop(\n \"checked\",\n \"checked\"\n );\n $(\".program-wrapper\").addClass(\"filter-open\");\n break;\n case \"grant_strategies\":\n $(\".grant-strategy-wrapper input[value=\" + value + \"]\").prop(\n \"checked\",\n \"checked\"\n );\n $(\".grant-strategy-wrapper\").addClass(\"filter-open\");\n break;\n case \"strategies\":\n $(\".strategy-wrapper input[value=\" + value + \"]\").prop(\n \"checked\",\n \"checked\"\n );\n $(\".strategy-wrapper\").addClass(\"filter-open\");\n break;\n case \"content_types\":\n $(\".content-type-wrapper input[value=\" + value + \"]\").prop(\n \"checked\",\n \"checked\"\n );\n $(\".content-type-wrapper\").addClass(\"filter-open\");\n break;\n case \"years\":\n $(\".year-filter input[value=\" + value + \"]\").prop(\n \"checked\",\n \"checked\"\n );\n $(\".year-wrapper\").addClass(\"filter-open\");\n break;\n }\n }\n\n function updateSearchDetails(data, filterKey) {\n var keyword = filterKey || getUrlParam(\"keyword\");\n var info = data.info;\n var top = data.info.total_result_count - data.rejected;\n if (data.records) {\n if (keyword) {\n $(\"#viewing-keyword-wrapper\").removeClass(\"hide\");\n $(\"#viewing-keyword\").html(' “' + decodeURIComponent(keyword) + '”');\n } else {\n // shouldn't see the \"for\" if no keyword\n $(\"#viewing-keyword-wrapper\").addClass(\"hide\");\n $(\"#viewing-keyword\").empty();\n }\n\n // search details row\n $(\".search-details-display\").removeClass(\"hide\");\n $(\"#viewing-lower\").html(info.current_page * info.per_page - 9);\n $(\"#viewing-upper\").html(\n Math.min(info.current_page * info.per_page, top)\n );\n $(\"#viewing-total\").html(top);\n\n // main results\n $(\"#article-wrapper\").empty();\n $(\".no-results-graphic\").addClass(\"hide-graphic\");\n $(\"#article-wrapper\").append(data.html);\n } else {\n $(\"#article-wrapper\").empty();\n $(\".no-results-graphic\").removeClass(\"hide-graphic\");\n $(\".search-details-display\").addClass(\"hide\");\n }\n }\n\n function updateUrl(filters, isUser) {\n // console.log( FILTERS: \", filters, \"\\nIS USER:\", isUser);\n\n var queryStrings = [],\n queryString = \"\";\n\n if (isUser) {\n for (var key in filters) {\n if (filters[key].length) {\n queryStrings.push(key + \"=\" + filters[key]);\n }\n }\n }\n\n queryStrings.forEach(function (string, idx) {\n if (idx < queryStrings.length - 1) {\n queryString += string + \"&\";\n } else {\n queryString += string;\n }\n });\n queryString = queryString.length ? \"?\" + queryString : \"\";\n // console.log(\"adding qs:\", queryString);\n\n window.history.pushState(\"\", \"\", queryString);\n }\n\n // convert Wordpress pagination 'Next' and 'Previous' to page values\n function convertTextValueToNumberString(textValue, currentPageNumber) {\n var number;\n\n // return the text value if it can be converted to a number\n if (!isNaN(textValue)) {\n return textValue;\n }\n\n // if not a number, determine if we need to add or subtract\n var pattern = new RegExp(\"next\", \"i\");\n if (pattern.test(textValue)) {\n number = parseInt(currentPageNumber, 10) + 1;\n } else {\n number = parseInt(currentPageNumber, 10) - 1;\n }\n numberString = number.toString(10);\n\n // return the number string or the current page if the operation fails\n return numberString ? numberString : currentPageNumber.toString(10);\n }\n\n function updatePagination(pagination, currentPageNumber) {\n $(\".pagination\").empty();\n if (pagination) {\n $(\".pagination\").append(pagination);\n $(\"a.page-numbers\").click(function (evt) {\n evt.preventDefault();\n var page = convertTextValueToNumberString(\n this.textContent,\n currentPageNumber\n ),\n filters = getFilters(page);\n startAjax(filters, true);\n });\n }\n }\n\n var startAjax = function (filters, isUser, jumpToResults) {\n var searchValues = {},\n path = window.location.pathname,\n engine = path === \"/grants/\" ? \"grant\" : \"general\";\n\n for (var key in filters) {\n searchValues[key] = filters[key];\n }\n\n jQuery.ajax({\n url: \"/wp/wp-admin/admin-ajax.php\",\n type: \"post\",\n data: {\n action: \"update_results\",\n engine: engine,\n listing_type: path,\n keyword: searchValues.keyword,\n sort: searchValues.sort,\n grant_programs: searchValues.grant_programs,\n grant_strategies: searchValues.grant_strategies,\n years: searchValues.years,\n strategies: searchValues.strategies,\n content_types: searchValues.content_types,\n programs: searchValues.programs,\n current_page: searchValues.current_page\n },\n error: function (jqXHR, textStatus, errorThrown) {\n console.log(\"An error occured: \" + errorThrown);\n },\n success: function (response) {\n var data = JSON.parse(response),\n diagnostics = {\n articles: data.articles,\n records: data.records,\n info: data.info,\n options: data.options,\n rejected: data.rejected\n };\n // console.log(\"DIAGNOSTICS:\", diagnostics);\n\n $(\".landing-graphic\").empty();\n $(\".keyword-entry\").removeClass(\"hide-entry\");\n updateUrl(filters, isUser);\n updateSearchDetails(data, filters.keyword);\n updatePagination(data.pagination, data.info.current_page);\n\n if (jumpToResults || isUser) {\n scrollTo(\"results-wrapper\");\n }\n }\n });\n };\n\n this.init = function () {\n var pathName = window.location.pathname.replace(/\\//g, \"\"),\n isFilterableListing = document.querySelector(\"#listing-type\").dataset.isFilterableListing,\n isFilterable = isFilterableListing == \"true\";\n\n this.searchTriggers = isFilterable ? $(\".search-enter\") : false;\n this.searchForm = isFilterable ? $(\".search-wrapper-form\") : false;\n this.filterTypes = isFilterable ? $(\".filter-type, .expand-filter\") : false;\n this.clearFilters = isFilterable ? $(\".clear-filters\") : false;\n this.keywordInput = isFilterable ? $(\".keyword-input\") : false; // selects both inputs\n\n this.urlParams = collectUrlParams(\n getFilters(getUrlParam(\"current_page\"))\n );\n this.jumpToResults = getUrlParam(\"jump\") == \"true\" || false;\n this.isSearchPage = pathName === \"search\";\n this.querySettings = {};\n this.makeInitAjax = false; // default\n this.getFilters = getFilters;\n this.startAjax = startAjax;\n\n //update filters based on any params found in the URL\n for (var key in this.urlParams) {\n if (this.urlParams[key]) {\n this.makeInitAjax = true;\n updateFilter(key, this.urlParams[key]);\n }\n }\n\n if (!this.isSearchPage) {\n // all listing pages except search\n this.makeInitAjax = true;\n\n if (isFilterable) {\n if (!this.urlParams.current_page) {\n $(\".search-select\").val(\"relevance\"); // sort defaults to relevance for grants when current_page not in query string\n }\n this.querySettings = getFilters(getUrlParam(\"current_page\"));\n updateUrl(this.querySettings, true);\n } else {\n this.querySettings = getFilters(getUrlParam(\"current_page\"));\n updateUrl(this.querySettings, true);\n }\n } else {\n // search\n this.querySettings = getFilters(getUrlParam(\"current_page\"));\n }\n\n if (this.makeInitAjax) {\n startAjax(this.querySettings, false, this.jumpToResults);\n } else {\n $(\".landing-graphic\").removeClass(\"hide-graphic\");\n }\n\n /** //////////\n // Listeners//\n ///////////**/\n\n if (isFilterable) {\n // click listeners for filters\n this.searchTriggers.click(function (evt) {\n var filters = getFilters(\"1\");\n startAjax(filters, true);\n updateFilter(\"keyword\", filters.keyword); // make sure sidebar input gets a value if origin is landing graphic\n });\n\n // click listeners for expanding filters\n this.filterTypes.click(function (evt) {\n var wrapper = evt.target.dataset.wrapper;\n var filter = $(\".\" + wrapper + \"-wrapper\");\n var icon = $(\".expand-filter.\" + wrapper);\n\n if (filter.hasClass(\"filter-open\")) {\n filter.removeClass(\"filter-open\");\n icon.removeClass(\"icon-minus\");\n icon.addClass(\"icon-plus\");\n } else {\n filter.addClass(\"filter-open\");\n icon.removeClass(\"icon-plus\");\n icon.addClass(\"icon-minus\");\n }\n });\n\n // click listeners for clear-filters buttons\n this.clearFilters.click(function (evt) {\n $(\"input.filter-checkbox\").attr(\"checked\", false);\n });\n\n // click listeners for keyword typing and flash\n // only fires when on the grants or ideas-practices listing pages\n $(\n \".ideas-practices .search-filters .keyword-input\"\n ).keypress(function (evt) {\n $(\".search-select\").val(\"date\"); // auto change the sort to date\n $(\".search-select\").addClass(\"flash\"); // will trigger a visual indication to the user\n });\n\n // catch the form submission on hitting the return key\n this.searchForm.submit(function (evt) {\n evt.preventDefault();\n var filters = getFilters(\"1\");\n startAjax(filters, true);\n updateFilter(\"keyword\", filters.keyword); // make sure sidebar input gets a value if origin is landing graphic\n });\n } // end if (isFilterable)\n }; // end init\n\n // Not have this run on the grants listing page\n if (\n document.querySelector(\"body\").classList.contains(\"page-template-listing\") && \n document.querySelector(\"body\").classList.contains('grants') !== true\n ) {\n // only run on listing pages\n this.init();\n }\n } // end Search f'n\n\n HEWLETT.search = new Search();\n})(jQuery);\n","// Term groups expandble sections (for Writing Style Guide)\n(function($) {\n // Jump links\n $('.TermGroups-jumpNav-link').click(function() {\n var $this = $(this);\n var $toggle = $('[data-expands=\"' + $this.attr('href').replace('#', '') + '\"]');\n // Expand section if collapsed\n if ($toggle && $toggle.attr('aria-expanded') == 'false') {\n $toggle.click();\n }\n });\n\n // Expand toggles\n $('.TermGroups-toggle').each(function() {\n var $toggle = $(this);\n $toggle.attr('aria-expanded', true);// sections are expanded by default\n\n var termGroupId = $toggle.attr('data-expands');\n if (!termGroupId) {\n console.warn('“data-expands” attribute has invalid value', $(this));\n return false;\n }\n\n var $termGroup = $('#' + termGroupId);\n if (!$termGroup) {\n console.warn('Could not find term group with ID of “' + termGroupId + '”');\n return false;\n }\n\n $termGroup.attr('aria-hidden', false);\n\n $toggle.on('click', function() {\n var $currentToggle = $(this);\n var isExpanded = $currentToggle.attr('aria-expanded') == 'true';\n var $currentGroup = $('#' + $toggle.attr('data-expands'));\n\n // Note: Use stop() to prevent animation queue build up\n // https://api.jquery.com/stop/\n $currentGroup.stop(true, true).slideToggle('200');\n\n // Update attributes\n $currentToggle.attr('aria-expanded', !isExpanded);\n $currentGroup.attr('aria-hidden', !isExpanded);\n });\n });\n\n // Related term links\n $('.TermGroups-related-link').click(function() {\n var $this = $(this);\n var $relatedTerm = $($this.attr('href'));\n\n // Check if parent is expanded\n if ($relatedTerm) {\n var $toggle = $relatedTerm.closest('.TermGroups-toggle');\n if ($toggle && $toggle.atr('aria-expanded') == 'false') {\n $toggle.click();\n }\n }\n\n });\n})(jQuery);\n","// Expands and collapses the custom search filters on the custom search page template\n(function () {\n\n // Only run this script on the custom search page template or the grants page\n if (!document.querySelector('.page-template-custom-search') && !document.querySelector('.grants')) {\n return false;\n }\n\n var toggleButtons = document.querySelectorAll('[data-expands]');\n\n if (!toggleButtons) {\n return false;\n }\n\n toggleButtons.forEach(function (toggle) {\n toggle.setAttribute('aria-expanded', 'false');\n toggle.setAttribute('aria-haspopup', 'true'); \n\n\n toggle.addEventListener('click', function (e) {\n e.preventDefault();\n\n var section = document.getElementById(toggle.getAttribute('data-expands'));\n\n if (toggle.getAttribute('aria-expanded') === 'false') {\n toggle.setAttribute('aria-expanded', 'true');\n toggle.classList.remove('icon-plus');\n toggle.classList.add('icon-minus');\n\n section.classList.add('filter-open');\n // open the filter \n // set the aria-expanded attribute to true\n } else {\n toggle.setAttribute('aria-expanded', 'false');\n toggle.classList.remove('icon-minus');\n toggle.classList.add('icon-plus');\n\n section.classList.remove('filter-open');\n\n }\n });\n });\n \n\n})();"],"sourceRoot":"assets/scripts/"}