{"version":3,"sources":["node_modules/browser-pack/_prelude.js","frontend/Common/js/common/dynamicSearch.js","frontend/Common/js/common/fetchSearchResults.js","frontend/Common/js/common/scrollHelpers.js","frontend/Common/js/common/toggleItemInArray.js","frontend/Common/js/common/useClickAway.js","frontend/Common/js/components/ArrowLink/ArrowLink.jsx","frontend/Common/js/components/FilterDropdown/FilterDropdownSingle.jsx","frontend/Common/js/components/Form/SelectInput.jsx","frontend/Common/js/components/GrantsListing/GrantsListing.jsx","frontend/Common/js/components/Icon/Icon.jsx","frontend/Common/js/components/LoadingSpinner/LoadingSpinner.jsx","frontend/Common/js/components/Pagination/Pagination.jsx","frontend/Common/js/components/ResultsInfo/ResultsInfo.jsx","frontend/Common/js/components/SearchParts/SelectedFilters/SelectedFilters.jsx","frontend/Common/js/components/SectionHeadline/SectionHeadline.jsx","frontend/Common/js/components/ShowPerPage/ShowPerPage.jsx","frontend/Common/js/components/SimpleSearchBox/SimpleSearchBox.jsx","frontend/Common/js/modules/GrantsSearch/GrantsFilters.jsx","frontend/Common/js/modules/GrantsSearch/GrantsSearchApp.jsx","frontend/Common/js/modules/GrantsSearch/SorterSelect/SorterSelect.jsx","frontend/Common/js/modules/GrantsSearch/entry/grants-search.js","frontend/Common/js/modules/GrantsSearch/initialState.js","frontend/Common/js/modules/GrantsSearch/renderGrantsSearch.jsx"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","R","__esModule","default","_getRequireWildcardCache","has","get","__proto__","Object","defineProperty","getOwnPropertyDescriptor","hasOwnProperty","set","_interopRequireWildcard","_queryString","_interopRequireDefault","_propTypes","_toggleItemInArray","WeakMap","selectedFacetShape","objectOf","arrayOf","string","parseQueryString","parse","arrayFormat","skipEmptyString","skipNull","stringifyQueryString","data","stringify","initFacets","urlQueryString","ifElse","equals","identity","compose","map","value","Array","isArray","pickBy","key","initCurrentParams","queryString","generalParams","when","undefined","page","assoc","q","createQueryString","currentParams","selectedFacets","parseInt","createFacetQueryString","facet","facetGroupId","facetId","toggleFacet","facetGroupValue","state","propEq","dissoc","evolve","clearFacetGroup","clearFacet","over","lensProp","reject","selectedFacetIds","facets","groupId","selectedValues","filter","selected","facetValue","id","facetName","name","selectedChildren","reduce","final","child","childValues","allSelectedFacetIds","facetGroup","childGroups","selectedGroups","group","values","url","params","type","signal","fetchURL","indexOf","fetch","then","response","json","results","result","cta","href","contentUrl","urlType","image","alt","sources","imageSrc","imageFormat","imageSrc1x1","imageSrc16x9","image1x1","image16x9","body","summary","link","grantBox","sidebar","catch","err","console","error","scrollTo","getOffsetTopById","getOffsetTop","element","top","getBoundingClientRect","getScrollTop","nav","document","querySelector","navPos","window","getComputedStyle","position","height","getHeaderHeight","replace","documentElement","scrollTop","scroll","left","behavior","curry","array","symmetricDifference","props","isOpen","setOpen","ref","disallow","fallbackRef","_react","useRef","dropdownRef","buttonRef","clickStartedInside","setClickStartedInside","useState","moveFocus","setMoveFocus","useEffect","handleClickAway","isOrContainsNode","current","target","handleKeydown","focus","handleMouseDown","handleFocusLoss","addEventListener","removeEventListener","parent","contains","_classnames","_Icon","propTypes","arrowLinkPropTypes","isRequired","oneOf","text","title","className","reversed","bool","onKeyDown","func","lang","gtmElementLabel","focusRef","object","ArrowLink","let","download","iconName","createElement","hrefLang","arrow-link--reversed","rel","data-gtm-element","data-gtm-link","data-gtm-text","_useClickAway","filterLabel","label","shape","count","number","onFacetChange","FilterDropdownSingle","selectedLabel","setSelectedLabel","filterDropdownRef","selectedFacet","find","aria-labelledby","aria-expanded","onClick","filter-dropdown__panel--is-open","aria-label","filter-dropdown__single-option--selected","handleSelectChange","required","errorMsg","checked","inputdescription","fullWidth","autocomplete","options","matchName","readonly","jsClass","onChange","hiddenLabel","SelectInput","inputId","Math","random","selectClass","js-form-required","sc-form-item--optional","sc-form-item--full-width","has-error","htmlFor","u-visuallyhidden","data-type","aria-required","autoComplete","data-match","readOnly","option","role","dictionary","grantee","division","date","regionServed","awardedAmount","grantTopic","grantStatus","grantDuration","granteeLocation","city","country","GrantsListing","warn","tabIndex","divisionExtras","grantDate","regionServedExtras","grantTopicExtras","_extends","assign","bind","arguments","apply","Icon","otherProps","focusable","aria-hidden","xlinkHref","assetsFolder","LoadingSpinner","aria-live","totalResults","resultsPerPage","currentPage","onPaginationChange","Pagination","totalPages","ceil","isHidden","disabled","range","renderPageButton","skipButton","pagination__page-button--hidden","btn--active","Number","query","request","perPage","resultsInfoLabel","onClearFacets","clearAllFacetsLabel","ResultsInfo","currentPageNumber","resultsPerPageNumber","ceiling","floor","renderCurrentResultsRange","_dynamicSearch","_lodash","clearLabel","onClearItem","onClearAll","SelectedFilters","labelId","pills","useMemo","sort","b","item","index","_ArrowLink","subtitle","centered","noBorder","darkTheme","stacked","size","sectionHeadline","titleClass","section-headline--no-border","section-headline--centered","section-headline--dark","section-headline--stacked","dangerouslySetInnerHTML","__html","_SelectInput","defaultPerPage","ShowPerPage","selectedItem","setSelectedItem","selectProps","event","onTextChange","placeholder","searchTerm","SimpleSearchBox","inputValue","setInputValue","handleSubmit","preventDefault","inputRef","onSubmit","onBlur","_reactAnimateHeight","_FilterDropdownSingle","rangeSpacer","GrantsFilters","filterTitle","accordionOpen","setAccordionOpen","narrowView","setNarrowView","innerWidth","handleResize","grants-filters__accordion-btn--is-open","duration","_initialState","_fetchSearchResults","_scrollHelpers","_GrantsFilters","_SorterSelect","_GrantsListing","_SelectedFilters","_LoadingSpinner","_Pagination","_ResultsInfo","_SectionHeadline","_ShowPerPage","_SimpleSearchBox","enableQueryString","search","downloadUrl","lastUpdated","listingId","showSummaries","showDates","showContentTypes","showImages","loadAllPages","pageId","sorters","direction","isActive","GrantsSearchApp","debouncedBanner","useCallback","setMobileUpdateStyle","opacity","zIndex","setTimeout","activeSorterParam","activeSorter","sorter","sortBy","sortOrder","showOverlay","setShowOverlay","downloading","setDownloading","setSelectedFacets","location","serverData","setServerData","setCurrentParams","resultsFocusRef","showFocusRef","showFocus","mobileUpdateStyle","origFacets","forEach","v","history","replaceState","origin","pathname","hash","controller","AbortController","message","finally","abort","term","prevState","searchPlaceholder","style","resultsUpdated","filtered","push","selectedFilters","lastUpdatedLabel","clearAll","grants-search__download-area--busy","ok","statusText","blob","URL","createObjectURL","appendChild","click","remove","downloadLabel","loading","noResultsMessage","scrollToId","showPerPage","SortSelect","combinedLabel","setCombinedLabel","activeItem","_renderGrantsSearch","pagination","preSelectedFacets","querySelectorAll","mount","JSON","dataset","dataModel","model","showQueryStrings","_reactDom","render","_GrantsSearchApp"],"mappings":"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","file":"grants-search-generated.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i\r\n queryString.parse(string, {\r\n arrayFormat: \"comma\",\r\n skipEmptyString: true,\r\n skipNull: true,\r\n });\r\n\r\nexport const stringifyQueryString = (data) =>\r\n queryString.stringify(data, {\r\n arrayFormat: \"comma\",\r\n skipEmptyString: true,\r\n skipNull: true,\r\n });\r\n\r\n//initialize facets from the URL query string\r\nexport const initFacets = (urlQueryString) => {\r\n return R.ifElse(\r\n R.equals({}),\r\n R.identity,\r\n R.compose(\r\n R.map((value) => (Array.isArray(value) ? value : [value])),\r\n R.pickBy((value, key) => key !== \"q\" && key !== \"page\" && key !== \"id\"),\r\n ),\r\n )(parseQueryString(urlQueryString));\r\n};\r\n\r\n//init current params from the URL query string\r\nexport const initCurrentParams = (queryString, generalParams) => {\r\n return R.compose(\r\n R.when(\r\n () => parseQueryString(queryString).page !== undefined,\r\n R.assoc(\"page\", parseQueryString(queryString).page),\r\n ),\r\n R.when(\r\n () => parseQueryString(queryString).q !== undefined,\r\n R.assoc(\"q\", parseQueryString(queryString).q),\r\n ),\r\n )(generalParams);\r\n};\r\n\r\nexport const createQueryString = (currentParams, selectedFacets) => {\r\n return stringifyQueryString({\r\n // ...parseQueryString(window.location.search),\r\n q:\r\n currentParams.q === \"\" || currentParams.q === null\r\n ? undefined\r\n : currentParams.q,\r\n page: parseInt(currentParams.page) === 1 ? undefined : currentParams.page,\r\n ...selectedFacets,\r\n });\r\n};\r\n\r\nexport const createFacetQueryString = (facet) => {\r\n return stringifyQueryString({\r\n [facet.facetGroupId]: facet.facetId,\r\n });\r\n};\r\n\r\n//If the facetGroup id value exists in the selectedFacets, add the facet id to existing array\r\n//Otherwise, create the the array with the seleced facet\r\n//If the array at selectedFacet[GroupId] is empty, remove it.\r\nexport const toggleFacet = (facetGroupValue, facet, state) => {\r\n return R.compose(\r\n R.when(R.propEq(facetGroupValue, []), R.dissoc(facetGroupValue)),\r\n R.ifElse(\r\n R.has(facetGroupValue),\r\n R.evolve({\r\n [facetGroupValue]: toggleItemInArray(facet),\r\n }),\r\n R.assoc(facetGroupValue, [facet]),\r\n ),\r\n )(state);\r\n};\r\n\r\n//clear a facetGroup\r\nexport const clearFacetGroup = (facetGroupValue, state) => {\r\n return R.when(R.has(facetGroupValue), R.dissoc(facetGroupValue))(state);\r\n};\r\n\r\n//clear a single facet\r\nexport const clearFacet = (facetGroupValue, facetId, state) => {\r\n return R.compose(\r\n R.when(R.propEq(facetGroupValue, []), R.dissoc(facetGroupValue)),\r\n R.over(\r\n R.lensProp(facetGroupValue),\r\n R.reject((value) => value === facetId),\r\n ),\r\n )(state);\r\n};\r\n\r\nexport const selectedFacetIds = (facets, groupId) => {\r\n if (!facets && facets.length < 1) {\r\n return [];\r\n }\r\n\r\n // find all selected items in Values\r\n const selectedValues = facets\r\n .filter((facet) => facet.selected)\r\n .map((facet) => {\r\n return {\r\n facetGroupId: groupId,\r\n facetValue: facet.id,\r\n facetName: facet.name || \"\",\r\n };\r\n });\r\n\r\n // find all selected items in childValues if it exists\r\n const selectedChildren = facets.reduce((final, child) => {\r\n return [...final, ...selectedFacetIds(child.childValues || [], groupId)];\r\n }, []);\r\n\r\n // return the combination as a single array\r\n return [...selectedValues, ...selectedChildren];\r\n};\r\n\r\nexport const allSelectedFacetIds = (facets) => {\r\n return facets.reduce((selectedFacets, facetGroup) => {\r\n const childGroups = facetGroup.childGroups || [];\r\n\r\n const selectedGroups = childGroups.reduce((final, group) => {\r\n return [...final, ...selectedFacetIds(group.values, facetGroup.id)];\r\n }, []);\r\n\r\n return [\r\n ...selectedFacets,\r\n ...selectedFacetIds(facetGroup.values, facetGroup.id),\r\n ...selectedGroups,\r\n ];\r\n }, []);\r\n};\r\n","import queryString from \"query-string\";\r\n\r\nexport default (url, params, type, signal) => {\r\n const fetchURL =\r\n url + (!url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + queryString.stringify(params);\r\n\r\n return fetch(fetchURL, { signal })\r\n .then((response) => response.json())\r\n .then((data) => {\r\n if (type === \"default\" || type === undefined) {\r\n const results =\r\n data &&\r\n data.results &&\r\n data.results.map((result) => {\r\n return {\r\n ...result,\r\n cta: {\r\n href: result.contentUrl || \"\",\r\n type: result.urlType || \"\",\r\n },\r\n image: {\r\n alt: \"\",\r\n sources: result.imageSrc\r\n ? [result.imageSrc]\r\n : result.imageFormat === 1 && result.imageSrc1x1\r\n ? [result.imageSrc1x1]\r\n : result.imageFormat === 2 && result.imageSrc16x9\r\n ? [result.imageSrc16x9]\r\n : [],\r\n },\r\n image1x1: {\r\n alt: \"\",\r\n sources: result.imageSrc1x1 ? [result.imageSrc1x1] : [],\r\n },\r\n image16x9: {\r\n alt: \"\",\r\n sources: result.imageSrc16x9 ? [result.imageSrc16x9] : [],\r\n },\r\n };\r\n });\r\n\r\n return { ...data, results };\r\n } else if (type === \"search-component\") {\r\n const results =\r\n data &&\r\n data.results[0].results &&\r\n data.results[0].results.map((result) => {\r\n return {\r\n ...result,\r\n body: result.summary,\r\n cta: { href: result.link || \"\" },\r\n image: {\r\n alt: \"\",\r\n sources: result.image ? [result.image] : [],\r\n },\r\n };\r\n });\r\n\r\n return {\r\n ...data,\r\n grantBox: data.results[0].grantBox,\r\n sidebar: data.results[0].sidebar,\r\n results,\r\n };\r\n } else {\r\n return data;\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.name === \"AbortError\") {\r\n return; // Continuation logic has already been skipped, so return normally\r\n }\r\n console.error(err);\r\n });\r\n};\r\n","import * as R from \"ramda\";\r\n\r\n// Element -> Number\r\nexport function getOffsetTop(element) {\r\n if (!element) {\r\n return 0;\r\n }\r\n\r\n const { top } = element.getBoundingClientRect();\r\n const scrollTop = getScrollTop();\r\n return top + scrollTop;\r\n}\r\n\r\n// String -> Number\r\nconst getOffsetTopById = (id) => {\r\n try {\r\n return R.compose(\r\n (top) => top - getHeaderHeight() - 150,\r\n getOffsetTop,\r\n (id) => document.querySelector(`#${id}`),\r\n R.replace(\"#\", \"\"),\r\n )(id);\r\n } catch (e) {\r\n // probably a bad id\r\n }\r\n};\r\n\r\n// cross browser schinanigans\r\nexport function getScrollTop() {\r\n return document.documentElement.scrollTop || document.body.scrollTop;\r\n}\r\n\r\nexport function scrollTo(top) {\r\n window.scroll({\r\n top,\r\n left: 0,\r\n behavior: \"smooth\",\r\n });\r\n}\r\n\r\n// () -> Number\r\nfunction getHeaderHeight() {\r\n const nav = document.querySelector(\".js-global-header\");\r\n const navPos = nav && window.getComputedStyle(nav).position;\r\n return nav && navPos === \"sticky\" ? nav.getBoundingClientRect().height : 0;\r\n}\r\n\r\nexport function scrollToId(id) {\r\n scrollTo(getOffsetTopById(id));\r\n}\r\n","import * as R from \"ramda\";\r\n\r\nexport default R.curry((value, array) => {\r\n if (Array.isArray(value)) {\r\n return R.symmetricDifference(value, array);\r\n } else {\r\n return R.symmetricDifference([value], array);\r\n }\r\n});\r\n","import { useEffect, useState, useRef } from \"react\";\r\n\r\n/**\r\n *\r\n * @param {object} props\r\n * @param {boolean} props.isOpen\r\n * @param {function} props.setOpen\r\n * @param {React.RefObject} props.ref\r\n * @param {boolean | undefined} [disallow] - Optional boolean to disallow click away in certain circumstances\r\n * @returns {React.RefObject}\r\n */\r\nexport default function useClickAway(props) {\r\n const { isOpen, setOpen, ref, disallow } = props;\r\n\r\n const fallbackRef = useRef();\r\n const dropdownRef = ref || fallbackRef;\r\n const buttonRef = props.buttonRef || fallbackRef;\r\n\r\n // if the click originated inside, don't close it when the \"click\" event\r\n // happens outside\r\n const [clickStartedInside, setClickStartedInside] = useState(false);\r\n\r\n const [moveFocus, setMoveFocus] = useState(true);\r\n\r\n useEffect(() => {\r\n if (disallow) {\r\n return;\r\n }\r\n\r\n if (isOpen) {\r\n const handleClickAway = (e) => {\r\n if (\r\n !isOrContainsNode(dropdownRef.current, e.target) &&\r\n !clickStartedInside\r\n ) {\r\n setOpen(false);\r\n }\r\n\r\n setClickStartedInside(false); // reset\r\n };\r\n\r\n const handleKeydown = (e) => {\r\n if (e.key === \"Esc\" || e.key === \"Escape\") {\r\n setOpen(false);\r\n\r\n if (moveFocus) {\r\n buttonRef.current.focus();\r\n }\r\n }\r\n };\r\n\r\n const handleMouseDown = (e) => {\r\n if (isOrContainsNode(dropdownRef.current, e.target)) {\r\n setClickStartedInside(true);\r\n }\r\n };\r\n\r\n const handleFocusLoss = (e) => {\r\n setMoveFocus(isOrContainsNode(dropdownRef.current, e.target));\r\n };\r\n\r\n document.addEventListener(\"click\", handleClickAway, true);\r\n document.addEventListener(\"keydown\", handleKeydown);\r\n document.addEventListener(\"mousedown\", handleMouseDown);\r\n document.addEventListener(\"focusin\", handleFocusLoss);\r\n\r\n return () => {\r\n document.removeEventListener(\"click\", handleClickAway, true);\r\n document.removeEventListener(\"keydown\", handleKeydown);\r\n document.removeEventListener(\"mousedown\", handleMouseDown);\r\n document.removeEventListener(\"focusin\", handleFocusLoss);\r\n };\r\n }\r\n }, [\r\n clickStartedInside,\r\n dropdownRef,\r\n isOpen,\r\n setOpen,\r\n buttonRef,\r\n moveFocus,\r\n disallow,\r\n ]);\r\n\r\n return dropdownRef;\r\n}\r\n\r\n/* https://github.com/downshift-js/downshift/blob/046e4abf4468fead3bf3adadb1352279532345ed/src/utils.js#L41-L48*/\r\n/**\r\n * @param {HTMLElement} parent the parent node\r\n * @param {HTMLElement} child the child node\r\n * @return {Boolean} whether the parent is the child or the child is in the parent\r\n */\r\nfunction isOrContainsNode(parent, child) {\r\n return (\r\n !parent || parent === child || (parent.contains && parent.contains(child))\r\n );\r\n}\r\n","// *****\r\n// Sitecore link types are: internal, external, anchor, media, mailto, javascript\r\n// type mailto links already have the `mailto:` string prepended\r\n// *****\r\n\r\nimport React from \"react\";\r\nimport { string, oneOf, bool, func, object } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport Icon from \"../Icon/Icon.jsx\";\r\n\r\nconst propTypes = {\r\n href: string.isRequired,\r\n type: oneOf([\r\n \"\",\r\n \"internal\",\r\n \"external\",\r\n \"anchor\",\r\n \"mailto\",\r\n \"media\",\r\n \"download\",\r\n \"arrow\",\r\n ]),\r\n text: string,\r\n title: string,\r\n className: string,\r\n reversed: bool,\r\n onKeyDown: func,\r\n lang: string,\r\n gtmElementLabel: string,\r\n focusRef: object,\r\n};\r\n\r\nconst ArrowLink = (props) => {\r\n const {\r\n href,\r\n type,\r\n text,\r\n title,\r\n className,\r\n lang,\r\n reversed = false,\r\n gtmElementLabel,\r\n focusRef,\r\n } = props;\r\n\r\n let download = false;\r\n let iconName = \"\";\r\n\r\n switch (type) {\r\n case \"download\":\r\n case \"media\":\r\n download = true;\r\n iconName = \"download\";\r\n break;\r\n case \"external\":\r\n iconName = \"external\";\r\n break;\r\n case \"anchor\":\r\n case \"arrow\":\r\n iconName = reversed ? \"arrow-left\" : \"arrow-right\";\r\n break;\r\n default:\r\n }\r\n\r\n const classModifier = type ? `arrow-link--${type}` : \"\";\r\n\r\n return (\r\n // eslint-disable-next-line react/jsx-no-target-blank\r\n \r\n {reversed && iconName && }\r\n {text}\r\n {!reversed && iconName && }\r\n \r\n );\r\n};\r\nArrowLink.propTypes = propTypes;\r\nexport { propTypes as arrowLinkPropTypes };\r\nexport default ArrowLink;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { func, string, arrayOf, shape, number } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport useClickAway from \"../../common/useClickAway.js\";\r\n\r\nconst propTypes = {\r\n filterLabel: string,\r\n label: string.isRequired,\r\n id: string,\r\n values: arrayOf(\r\n shape({\r\n name: string.isRequired,\r\n id: string.isRequired,\r\n count: number,\r\n }),\r\n ).isRequired,\r\n onFacetChange: func.isRequired,\r\n};\r\n\r\nconst FilterDropdownSingle = (props) => {\r\n const { filterLabel, label, values, id, onFacetChange } = props;\r\n\r\n const [isOpen, setOpen] = useState(false);\r\n const [selectedLabel, setSelectedLabel] = useState(null);\r\n const filterDropdownRef = useClickAway({ isOpen, setOpen });\r\n\r\n useEffect(() => {\r\n const selectedFacet = values.find((value) => value.selected);\r\n setSelectedLabel(\r\n selectedFacet ? `${selectedFacet.name} (${selectedFacet.count})` : label,\r\n );\r\n }, [values, label]);\r\n\r\n const handleSelectChange = (id, value) => {\r\n if (value.selected) {\r\n onFacetChange(id, \"\");\r\n } else {\r\n onFacetChange(id, value.id);\r\n }\r\n setSelectedLabel(value.selected ? label : `${value.name} (${value.count})`);\r\n setOpen(false);\r\n };\r\n\r\n const renderGroup = (values) => {\r\n return (\r\n values &&\r\n values.map((value) => {\r\n return (\r\n
  • \r\n handleSelectChange(id, value)}\r\n data-gtm-element=\"dcl filter\"\r\n >{`${value.name} (${value.count})`}\r\n
  • \r\n );\r\n })\r\n );\r\n };\r\n\r\n return (\r\n \r\n {filterLabel ? (\r\n \r\n {label}\r\n \r\n ) : null}\r\n
    \r\n setOpen(!isOpen)}\r\n className=\"filter-dropdown__open-button\"\r\n data-gtm-element=\"dcl filter dropdown\"\r\n >\r\n \r\n \r\n {selectedLabel !== null\r\n ? selectedLabel\r\n : filterLabel\r\n ? `${filterLabel} ${label}`\r\n : `${label}`}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
      \r\n {renderGroup(values)}\r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\nFilterDropdownSingle.propTypes = propTypes;\r\nexport default FilterDropdownSingle;\r\n","import React, { useState } from \"react\";\r\nimport { string, bool, arrayOf, shape, func } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n id: string,\r\n type: string,\r\n required: bool,\r\n error: bool,\r\n name: string.isRequired,\r\n label: string.isRequired,\r\n errorMsg: string,\r\n checked: bool,\r\n value: string,\r\n inputdescription: string,\r\n fullWidth: bool,\r\n autocomplete: string,\r\n options: arrayOf(\r\n shape({\r\n value: string,\r\n text: string,\r\n selected: bool,\r\n }),\r\n ),\r\n matchName: string,\r\n readonly: bool,\r\n jsClass: string,\r\n onChange: func,\r\n hiddenLabel: bool,\r\n};\r\n\r\nconst SelectInput = (props) => {\r\n const {\r\n type,\r\n required,\r\n error,\r\n name,\r\n label,\r\n errorMsg,\r\n value,\r\n fullWidth,\r\n autocomplete,\r\n options,\r\n matchName,\r\n readonly,\r\n jsClass,\r\n id,\r\n onChange,\r\n hiddenLabel,\r\n } = props;\r\n\r\n const [inputId] = useState(id || `GUID-${parseInt(Math.random() * 1000)}`);\r\n const selectClass = jsClass || \"\";\r\n\r\n return (\r\n \r\n {label && (\r\n \r\n {label}\r\n \r\n )}\r\n
    \r\n \r\n {options.map((option) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
    \r\n {errorMsg && (\r\n \r\n {errorMsg}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nSelectInput.propTypes = propTypes;\r\nexport default SelectInput;\r\n","import React from \"react\";\r\nimport { arrayOf, shape, string, object } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n dictionary: object,\r\n results: arrayOf(\r\n shape({\r\n id: string,\r\n grantee: string,\r\n division: string,\r\n date: string,\r\n regionServed: string,\r\n awardedAmount: string,\r\n grantTopic: string,\r\n grantStatus: string,\r\n grantDuration: string,\r\n granteeLocation: shape({\r\n city: string,\r\n state: string,\r\n country: string.isRequired,\r\n }),\r\n url: string,\r\n }),\r\n ),\r\n focusRef: object,\r\n};\r\n\r\nconst GrantsListing = (props) => {\r\n const { results, dictionary, focusRef } = props;\r\n\r\n if (typeof results === \"undefined\" || results.length < 1) {\r\n console.warn(\"no results\");\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {results.map((result, i) => {\r\n return (\r\n
    \r\n
    \r\n
    {dictionary.grantee}
    \r\n \r\n {result.grantee}\r\n
    \r\n
    \r\n
    \r\n
    {dictionary.division}
    \r\n
    \r\n {result.division}\r\n {result.divisionExtras > 0 && (\r\n \r\n +{result.divisionExtras}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {dictionary.grantDate}\r\n
    \r\n
    {result.date}
    \r\n
    \r\n
    \r\n
    \r\n {dictionary.regionServed}\r\n
    \r\n
    \r\n {result.regionServed}\r\n {result.regionServedExtras > 0 && (\r\n \r\n +{result.regionServedExtras}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {dictionary.awardedAmount}\r\n
    \r\n
    {result.awardedAmount}
    \r\n
    \r\n
    \r\n
    \r\n {dictionary.grantTopic}\r\n
    \r\n
    \r\n {result.grantTopic}\r\n {result.grantTopicExtras > 0 && (\r\n \r\n +{result.grantTopicExtras}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {dictionary.grantDuration}\r\n
    \r\n
    {result.grantDuration}
    \r\n
    \r\n
    \r\n
    \r\n {dictionary.granteeLocation}\r\n
    \r\n
    \r\n {result.granteeLocation && result.granteeLocation.city && (\r\n {result.granteeLocation.city},\r\n )}\r\n {result.granteeLocation && result.granteeLocation.state && (\r\n {result.granteeLocation.state},\r\n )}\r\n {result.granteeLocation && result.granteeLocation.country && (\r\n {result.granteeLocation.country}\r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n })}\r\n
    \r\n );\r\n};\r\nGrantsListing.propTypes = propTypes;\r\nexport default GrantsListing;\r\n","import React from \"react\";\r\nimport { string } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nconst propTypes = {\r\n iconName: string,\r\n className: string,\r\n title: string,\r\n};\r\n\r\nconst Icon = (props) => {\r\n const { iconName, className, title, ...otherProps } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nIcon.propTypes = propTypes;\r\nexport default Icon;\r\n","import React from \"react\";\r\nimport { string } from \"prop-types\";\r\n\r\nconst propTypes = { text: string };\r\n\r\nconst LoadingSpinner = (props) => {\r\n const { text } = props;\r\n\r\n return (\r\n
    \r\n {text || \"Loading Results\"}\r\n
    \r\n );\r\n};\r\n\r\nLoadingSpinner.propTypes = propTypes;\r\nexport default LoadingSpinner;\r\n","import React from \"react\";\r\nimport * as R from \"ramda\";\r\nimport cx from \"classnames\";\r\nimport Icon from \"../Icon/Icon.jsx\";\r\nimport { number, func } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n totalResults: number.isRequired,\r\n resultsPerPage: number.isRequired,\r\n currentPage: number.isRequired,\r\n onPaginationChange: func.isRequired,\r\n};\r\n\r\nconst Pagination = (props) => {\r\n const { totalResults, resultsPerPage, currentPage, onPaginationChange } =\r\n props;\r\n\r\n const totalPages = Math.ceil(totalResults / resultsPerPage);\r\n\r\n const isHidden = (value, currentPage, totalPages) => {\r\n if (totalPages <= 8) {\r\n return false;\r\n }\r\n\r\n // current Page\r\n if (value === currentPage) {\r\n return false;\r\n }\r\n\r\n // first and last page\r\n if (value === 1 || value === totalPages) {\r\n return false;\r\n }\r\n\r\n // previous and next page\r\n if (value === currentPage - 1 || value === currentPage + 1) {\r\n return false;\r\n }\r\n\r\n // start or end position\r\n if (\r\n (currentPage <= 2 || currentPage >= totalPages - 1) &&\r\n (value <= 3 || value >= totalPages - 2)\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const renderPageButton = (value, currentPage, totalPages) => {\r\n const skipButton = isHidden(value, currentPage, totalPages);\r\n\r\n return (\r\n \r\n {skipButton ? (\r\n \r\n ) : (\r\n onPaginationChange(value)}\r\n data-gtm-element=\"dcl page button\"\r\n >\r\n {value}\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n const renderButtons = (totalPages, currentPage) => {\r\n //R.range create an array from x to y of incrementing numbers\r\n return R.range(1, totalPages + 1).map((page) =>\r\n renderPageButton(page, currentPage, totalPages),\r\n );\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nPagination.propTypes = propTypes;\r\nexport default Pagination;\r\n","import React from \"react\";\r\nimport { shape, string, number, func } from \"prop-types\";\r\n\r\nconst propTypes = {\r\n query: string,\r\n request: shape({\r\n page: number,\r\n perPage: number,\r\n }),\r\n resultsInfoLabel: string,\r\n totalResults: number.isRequired,\r\n onClearFacets: func,\r\n clearAllFacetsLabel: string,\r\n};\r\n\r\nconst ResultsInfo = (props) => {\r\n const {\r\n query,\r\n request,\r\n resultsInfoLabel,\r\n totalResults,\r\n onClearFacets,\r\n clearAllFacetsLabel,\r\n } = props;\r\n\r\n const renderCurrentResultsRange = (currentPage, resultsPerPage) => {\r\n //ensure base 10 number\r\n const currentPageNumber = parseInt(currentPage, 10);\r\n const resultsPerPageNumber = parseInt(resultsPerPage, 10);\r\n\r\n // Upper bound of visible results\r\n let ceiling = currentPageNumber * resultsPerPageNumber;\r\n\r\n // Lower bound of visible results\r\n let floor = ceiling - resultsPerPageNumber + 1;\r\n\r\n // make sure the ceiling does not exceed total results\r\n if (ceiling > totalResults) {\r\n ceiling = totalResults;\r\n }\r\n\r\n // if results are only one page, eschew the range entirely\r\n if (totalResults <= resultsPerPageNumber) {\r\n return ` ${totalResults}`;\r\n }\r\n\r\n // otherwise, return the full range\r\n return ` ${floor} - ${ceiling}`;\r\n };\r\n\r\n return (\r\n
    \r\n {resultsInfoLabel && (\r\n {resultsInfoLabel}\r\n )}\r\n {request && (\r\n \r\n {renderCurrentResultsRange(request.page, request.perPage)}\r\n \r\n )}\r\n {totalResults > 0 && (\r\n \r\n of{\" \"}\r\n {`${totalResults}`}\r\n \r\n )}\r\n {query && (\r\n \r\n for {`“${query}”`}\r\n \r\n )}\r\n {onClearFacets && (\r\n \r\n {clearAllFacetsLabel ? clearAllFacetsLabel : \"Clear All\"}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nResultsInfo.propTypes = propTypes;\r\nexport default ResultsInfo;\r\n","import React, { useMemo, useRef } from \"react\";\r\nimport { func, string, array } from \"prop-types\";\r\nimport { allSelectedFacetIds } from \"../../../common/dynamicSearch.js\";\r\nimport uniqueId from \"lodash.uniqueid\";\r\n\r\nimport Icon from \"../../Icon/Icon.jsx\";\r\n\r\nconst propTypes = {\r\n label: string,\r\n clearLabel: string,\r\n facets: array,\r\n onClearItem: func,\r\n onClearAll: func,\r\n};\r\n\r\nconst SelectedFilters = (props) => {\r\n const { label, clearLabel, facets, onClearItem, onClearAll } = props;\r\n\r\n const labelId = useRef(uniqueId(\"selected-filter-label-\"));\r\n\r\n const pills = useMemo(() => {\r\n if (facets) {\r\n return allSelectedFacetIds(facets);\r\n } else {\r\n return [];\r\n }\r\n }, [facets]);\r\n\r\n if (pills.length < 1) {\r\n return null;\r\n }\r\n\r\n pills.sort((a, b) => (a.value < b.value ? -1 : 1));\r\n\r\n return (\r\n
    \r\n {label && (\r\n
    \r\n {label}\r\n
    \r\n )}\r\n {pills?.length > 0 && (\r\n \r\n {pills.map((item, index) => (\r\n
  • \r\n {\r\n onClearItem(item.facetGroupId, item.facetValue);\r\n }}\r\n >\r\n {item.facetName}\r\n \r\n \r\n
  • \r\n ))}\r\n {pills?.length > 1 && onClearAll && (\r\n
  • \r\n {\r\n onClearAll();\r\n }}\r\n >\r\n {clearLabel || \"Clear\"}\r\n \r\n \r\n
  • \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\nSelectedFilters.propTypes = propTypes;\r\nexport default SelectedFilters;\r\n","import React from \"react\";\r\nimport { object, string, bool, oneOf } from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\nimport ArrowLink from \"../ArrowLink/ArrowLink.jsx\";\r\n\r\nconst propTypes = {\r\n cta: object,\r\n title: string.isRequired,\r\n subtitle: string,\r\n centered: bool,\r\n noBorder: bool,\r\n darkTheme: bool,\r\n stacked: bool,\r\n size: oneOf([\"\", \"large\", \"small\", \"x-small\"]),\r\n};\r\n\r\nconst sectionHeadline = (props) => {\r\n const { cta, title, subtitle, size, centered, noBorder, darkTheme, stacked } =\r\n props;\r\n\r\n const titleClass =\r\n size && size !== \"\" ? `section-headline__title--${size}` : \"\";\r\n\r\n return (\r\n \r\n

    {title}

    \r\n {!stacked && cta && cta.href && (\r\n
    \r\n \r\n
    \r\n )}\r\n {subtitle && (\r\n \r\n )}\r\n {stacked && cta && cta.href && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nsectionHeadline.propTypes = propTypes;\r\nexport default sectionHeadline;\r\n","import React, { useMemo, useState } from \"react\";\r\nimport uniqueId from \"lodash.uniqueid\";\r\n\r\nimport { func, string, number } from \"prop-types\";\r\n\r\nimport SelectInput from \"../Form/SelectInput.jsx\";\r\n\r\nconst propTypes = {\r\n label: string,\r\n defaultPerPage: number.isRequired,\r\n onChange: func.isRequired,\r\n};\r\n\r\nconst ShowPerPage = (props) => {\r\n const { label, defaultPerPage, onChange } = props;\r\n const id = uniqueId();\r\n\r\n const [perPage] = useState(defaultPerPage);\r\n const [selectedItem, setSelectedItem] = useState(`${perPage}`);\r\n\r\n const selectProps = useMemo(() => {\r\n return {\r\n options: [\r\n {\r\n value: `${perPage}`,\r\n text: `${perPage}`,\r\n },\r\n {\r\n value: `${perPage * 5}`,\r\n text: `${perPage * 5}`,\r\n },\r\n {\r\n value: `${perPage * 10}`,\r\n text: `${perPage * 10}`,\r\n },\r\n ],\r\n };\r\n }, [perPage]);\r\n\r\n const handleSelectChange = (event) => {\r\n const value = event.target.value;\r\n setSelectedItem(value);\r\n\r\n onChange({ perPage: parseInt(value) });\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\nShowPerPage.propTypes = propTypes;\r\nexport default ShowPerPage;\r\n","import React, { useRef, useState } from \"react\";\r\nimport { string, func } from \"prop-types\";\r\nimport debounce from \"lodash.debounce\";\r\n\r\nconst propTypes = {\r\n onTextChange: func.isRequired,\r\n placeholder: string,\r\n searchTerm: string,\r\n};\r\n\r\nconst SimpleSearchBox = (props) => {\r\n const { onTextChange, placeholder, searchTerm } = props;\r\n\r\n const [inputValue, setInputValue] = useState(searchTerm || \"\");\r\n\r\n const handleInputChange = (e) => {\r\n // slash characters where crashing the Grants Search App.\r\n // \"\\\\\" is an escaped backslash\r\n if (inputRef.current.value === \"/\" || inputRef.current.value === \"\\\\\") {\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n setInputValue(inputRef.current.value);\r\n\r\n debounce(() => {\r\n onTextChange(inputRef.current.value);\r\n }, 500);\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n if (inputRef.current.value === searchTerm) {\r\n return;\r\n }\r\n\r\n onTextChange(inputRef.current.value);\r\n };\r\n\r\n const inputRef = useRef();\r\n\r\n return (\r\n
    \r\n \r\n \r\n onTextChange(inputRef.current.value)}\r\n className=\"btn btn--primary simple-search-box__button\"\r\n data-gtm-element=\"dcl search button\"\r\n >\r\n Search\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nSimpleSearchBox.propTypes = propTypes;\r\nexport default SimpleSearchBox;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport AnimateHeight from \"react-animate-height\";\r\nimport cx from \"classnames\";\r\nimport debounce from \"lodash.debounce\";\r\n\r\nimport { arrayOf, string, shape, func, bool } from \"prop-types\";\r\n\r\nimport FilterDropdownSingle from \"../../components/FilterDropdown/FilterDropdownSingle.jsx\";\r\n\r\nconst propTypes = {\r\n facets: arrayOf(\r\n shape({\r\n id: string,\r\n values: arrayOf(\r\n shape({\r\n name: string,\r\n id: string,\r\n selected: bool,\r\n }),\r\n ),\r\n }),\r\n ),\r\n onFacetChange: func,\r\n dictionary: shape({\r\n filterLabel: string,\r\n date: string,\r\n grantStatus: string,\r\n rangeSpacer: string,\r\n }),\r\n};\r\n\r\nconst GrantsFilters = (props) => {\r\n const { facets, dictionary, onFacetChange } = props;\r\n const { filterLabel, filterTitle } = dictionary;\r\n const breakpoint = 780;\r\n\r\n const [accordionOpen, setAccordionOpen] = useState(false);\r\n const [narrowView, setNarrowView] = useState(window.innerWidth <= breakpoint);\r\n\r\n useEffect(() => {\r\n const handleResize = debounce(() => {\r\n // render is only called if this actually changes state.\r\n setNarrowView(window.innerWidth <= breakpoint);\r\n }, 100);\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, [breakpoint, narrowView]);\r\n\r\n // const handleCheckBoxChange = (value, checked) => {\r\n // onFacetChange(facets[4].id, checked ? value : \"\");\r\n // };\r\n\r\n if (!facets || facets.length < 8) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {narrowView && (\r\n
    \r\n setAccordionOpen(!accordionOpen)}\r\n type=\"button\"\r\n >\r\n {filterTitle ? filterTitle : \"Filters\"}\r\n \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {dictionary.date}\r\n
    \r\n {dictionary.date}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {dictionary.rangeSpacer}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n \r\n {dictionary.grantStatus}\r\n \r\n
    \r\n {dictionary.grantStatus}\r\n
    \r\n
    \r\n {facets[4].values.map((value) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n })}\r\n
    \r\n
    */}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {facets[8] && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nGrantsFilters.propTypes = propTypes;\r\nexport default GrantsFilters;\r\n","import React, {\r\n useEffect,\r\n useState,\r\n useRef,\r\n useMemo,\r\n useCallback,\r\n} from \"react\";\r\nimport { string, bool, shape, object, arrayOf } from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport queryString from \"query-string\";\r\n\r\nimport initialState from \"./initialState.js\";\r\n\r\nimport debounce from \"lodash.debounce\";\r\n\r\nimport fetchSearchResults from \"../../common/fetchSearchResults.js\";\r\nimport { scrollToId } from \"../../common/scrollHelpers.js\";\r\n\r\nimport GrantsFilters from \"./GrantsFilters.jsx\";\r\nimport SorterSelect from \"./SorterSelect/SorterSelect.jsx\";\r\n\r\nimport GrantsListing from \"../../components/GrantsListing/GrantsListing.jsx\";\r\nimport SelectedFilters from \"../../components/SearchParts/SelectedFilters/SelectedFilters.jsx\";\r\nimport Icon from \"../../components/Icon/Icon.jsx\";\r\nimport LoadingSpinner from \"../../components/LoadingSpinner/LoadingSpinner.jsx\";\r\nimport Pagination from \"../../components/Pagination/Pagination.jsx\";\r\nimport ResultsInfo from \"../../components/ResultsInfo/ResultsInfo.jsx\";\r\nimport SectionHeadline from \"../../components/SectionHeadline/SectionHeadline.jsx\";\r\nimport ShowPerPage from \"../../components/ShowPerPage/ShowPerPage.jsx\";\r\nimport SimpleSearchBox from \"../../components/SimpleSearchBox/SimpleSearchBox.jsx\";\r\n\r\nimport {\r\n initFacets,\r\n initCurrentParams,\r\n createQueryString,\r\n toggleFacet,\r\n} from \"../../common/dynamicSearch.js\";\r\n\r\nconst propTypes = {\r\n id: string.isRequired,\r\n title: string,\r\n enableQueryString: bool,\r\n search: bool,\r\n url: string.isRequired,\r\n downloadUrl: string,\r\n type: string,\r\n dictionary: object.isRequired,\r\n lastUpdated: string,\r\n query: shape({\r\n listingId: string,\r\n showSummaries: bool,\r\n showDates: bool,\r\n showContentTypes: bool,\r\n showImages: string,\r\n loadAllPages: bool,\r\n pageId: string,\r\n }).isRequired,\r\n sorters: arrayOf(\r\n shape({\r\n direction: string,\r\n label: string,\r\n value: string,\r\n isActive: bool,\r\n id: string,\r\n }),\r\n ),\r\n};\r\n\r\nconst GrantsSearchApp = (props) => {\r\n const {\r\n id,\r\n enableQueryString,\r\n search,\r\n url,\r\n downloadUrl,\r\n type,\r\n dictionary,\r\n query,\r\n sorters,\r\n lastUpdated,\r\n title,\r\n } = props;\r\n\r\n const debouncedBanner = useCallback(\r\n debounce(() => {\r\n setMobileUpdateStyle({\r\n opacity: 1,\r\n zIndex: 1,\r\n });\r\n\r\n setTimeout(() => {\r\n setMobileUpdateStyle({\r\n opacity: 0,\r\n zIndex: -1,\r\n });\r\n }, 3000);\r\n }, 1000),\r\n [],\r\n );\r\n\r\n const activeSorterParam = useMemo(() => {\r\n const activeSorter = sorters.find((sorter) => sorter.isActive) || null;\r\n\r\n return activeSorter\r\n ? {\r\n sortBy: activeSorter.value,\r\n sortOrder: activeSorter.direction,\r\n }\r\n : null;\r\n }, [sorters]);\r\n\r\n const generalParams = {\r\n ...initialState.query,\r\n ...query,\r\n ...activeSorterParam,\r\n };\r\n\r\n const [showOverlay, setShowOverlay] = useState(false);\r\n const [downloading, setDownloading] = useState(false);\r\n\r\n const [selectedFacets, setSelectedFacets] = useState(\r\n initFacets(window.location.search),\r\n );\r\n const [serverData, setServerData] = useState(null);\r\n\r\n //initialize the query to that of the query string if it exists\r\n const [currentParams, setCurrentParams] = useState(\r\n initCurrentParams(window.location.search, generalParams),\r\n );\r\n\r\n const resultsFocusRef = useRef();\r\n const showFocusRef = useRef({ showFocus: false });\r\n\r\n const [mobileUpdateStyle, setMobileUpdateStyle] = useState({\r\n opacity: 0,\r\n zIndex: -1,\r\n });\r\n\r\n const handleSorterClick = (params) => {\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, ...params, page: 1 };\r\n });\r\n };\r\n\r\n const handleQueryChange = (term) => {\r\n debouncedBanner();\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, q: term, page: 1 };\r\n });\r\n };\r\n\r\n const handlePaginationChange = (page) => {\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, page: page };\r\n });\r\n // move the focus back to the top of the results on page change\r\n scrollToId(`${id}-results`);\r\n showFocusRef.current.showFocus = true;\r\n };\r\n\r\n const handlePerPageChange = (params) => {\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, ...params, page: 1 };\r\n });\r\n // move the focus back to the top of the results on page change\r\n resultsFocusRef.current.focus();\r\n };\r\n\r\n const handlePillChange = (facetGroupValue, facet) => {\r\n setSelectedFacets((prevState) => {\r\n return toggleFacet(facetGroupValue, facet, prevState);\r\n });\r\n debouncedBanner();\r\n\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, page: 1 };\r\n });\r\n };\r\n const handleFacetChange = (facetGroupId, facetValue) => {\r\n const origFacets = {};\r\n if (serverData.facets) {\r\n serverData.facets.forEach((facet) => {\r\n const selectedValues = facet.values.reduce((filtered, value) => {\r\n if (value.selected) {\r\n filtered.push(value.id);\r\n }\r\n return filtered;\r\n }, []);\r\n\r\n if (selectedValues.length > 0) {\r\n origFacets[facet.id] = selectedValues;\r\n }\r\n });\r\n }\r\n setSelectedFacets(() => {\r\n facetValue === \"\"\r\n ? delete origFacets[facetGroupId]\r\n : (origFacets[facetGroupId] = [facetValue]);\r\n return origFacets;\r\n });\r\n\r\n debouncedBanner();\r\n\r\n setCurrentParams((prevState) => {\r\n return { ...prevState, page: 1 };\r\n });\r\n };\r\n\r\n // trigger download of results\r\n const handleDownload = () => {\r\n setDownloading(true);\r\n\r\n const fetchURL =\r\n downloadUrl +\r\n (!downloadUrl.indexOf(\"?\") > 0 ? \"&\" : \"?\") +\r\n queryString.stringify({\r\n ...currentParams,\r\n ...selectedFacets,\r\n });\r\n\r\n fetch(fetchURL)\r\n .then(function (response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n })\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement(\"a\");\r\n a.href = url;\r\n a.download = \"BMGFGrants.csv\";\r\n document.body.appendChild(a); // we need to append the element to the dom -> otherwise it will not work in firefox\r\n a.click();\r\n a.remove(); //afterwards we remove the element again\r\n })\r\n .catch(function (e) {\r\n if (e.name === \"AbortError\") {\r\n return; // Continuation logic has already been skipped, so return normally\r\n }\r\n console.warn(\"request error: \" + e.message);\r\n })\r\n .finally(function () {\r\n setDownloading(false);\r\n });\r\n };\r\n\r\n const closeMobileUpdate = () => {\r\n setMobileUpdateStyle({\r\n opacity: 0,\r\n zIndex: -1,\r\n });\r\n };\r\n\r\n //update the url with the latest query parameters\r\n useEffect(() => {\r\n if (enableQueryString) {\r\n const origFacets = {};\r\n if (serverData && serverData.facets) {\r\n serverData.facets.forEach((facet) => {\r\n const selectedValues = facet.values.filter((v) => v.selected);\r\n if (selectedValues.length > 0) {\r\n origFacets[facet.id] = selectedValues.map((v) => v.id);\r\n }\r\n });\r\n }\r\n\r\n const queryString = createQueryString(currentParams, origFacets);\r\n\r\n if (queryString.length > 0) {\r\n window.history.replaceState(\r\n \"\",\r\n \"\",\r\n window.location.origin +\r\n window.location.pathname +\r\n \"?\" +\r\n queryString +\r\n window.location.hash,\r\n );\r\n } else {\r\n window.history.replaceState(\r\n \"\",\r\n \"\",\r\n window.location.origin +\r\n window.location.pathname +\r\n window.location.hash,\r\n );\r\n }\r\n }\r\n }, [currentParams, enableQueryString, serverData]);\r\n\r\n // fetch new results\r\n useEffect(() => {\r\n const controller = new AbortController();\r\n const signal = controller.signal;\r\n\r\n setShowOverlay(true);\r\n\r\n fetchSearchResults(\r\n url,\r\n {\r\n ...currentParams,\r\n ...selectedFacets,\r\n },\r\n type,\r\n signal,\r\n )\r\n .then(function (data) {\r\n if (data) {\r\n setServerData(data);\r\n }\r\n })\r\n .catch(function (e) {\r\n if (e.name === \"AbortError\") {\r\n return; // Continuation logic has already been skipped, so return normally\r\n }\r\n console.warn(\"request error: \" + e.message);\r\n })\r\n .finally(function () {\r\n setShowOverlay(false);\r\n });\r\n // unmounts or data changes\r\n return () => {\r\n controller.abort();\r\n };\r\n }, [currentParams, selectedFacets, type, url]);\r\n\r\n useEffect(() => {\r\n if (resultsFocusRef.current && showFocusRef.current.showFocus) {\r\n //move the focus back to the top of the results on page change\r\n resultsFocusRef.current.focus();\r\n showFocusRef.current.showFocus = false;\r\n }\r\n }, [serverData]);\r\n\r\n return (\r\n
    \r\n
    \r\n {title && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {search && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n {dictionary.resultsUpdated || \"Results updated. Scroll to view.\"}\r\n \r\n
    \r\n {serverData && serverData.facets && (\r\n
    \r\n \r\n
    \r\n )}\r\n {serverData && serverData.facets && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {serverData && lastUpdated && (\r\n
    \r\n {dictionary.lastUpdatedLabel} {lastUpdated}\r\n
    \r\n )}\r\n {serverData && serverData.totalResults > 0 && (\r\n
    \r\n \r\n
    \r\n )}\r\n {sorters && sorters.length > 0 && (\r\n
    \r\n \r\n {downloadUrl && (\r\n \r\n \r\n {dictionary.downloadLabel}\r\n {dictionary.loading || \"Loading\"}...\r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n {showOverlay && (\r\n \r\n )}\r\n {serverData &&\r\n serverData.results &&\r\n serverData.results.length < 1 && (\r\n
    \r\n {dictionary.noResultsMessage || \"No Results Found\"}\r\n
    \r\n )}\r\n {!showOverlay &&\r\n serverData &&\r\n serverData.results &&\r\n serverData.results.length > 0 && (\r\n
    \r\n New Results\r\n
    \r\n )}\r\n {serverData && serverData.results && (\r\n \r\n )}\r\n
    \r\n {serverData && (\r\n
    \r\n
    \r\n {serverData.totalResults > serverData.request.perPage && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nGrantsSearchApp.propTypes = propTypes;\r\nexport default GrantsSearchApp;\r\n","import React, { useMemo, useState, useEffect } from \"react\";\r\nimport uniqueId from \"lodash.uniqueid\";\r\n\r\nimport { func, string, arrayOf, shape, bool } from \"prop-types\";\r\n\r\nimport SelectInput from \"../../../components/Form/SelectInput.jsx\";\r\n\r\nconst propTypes = {\r\n label: string,\r\n values: arrayOf(\r\n shape({\r\n isActive: bool,\r\n value: string,\r\n label: string,\r\n }),\r\n ),\r\n onChange: func.isRequired,\r\n};\r\n\r\nconst SortSelect = (props) => {\r\n const { label, values, onChange } = props;\r\n const id = uniqueId();\r\n\r\n const [combinedLabel, setCombinedLabel] = useState(label || \"\");\r\n const [selectedItem, setSelectedItem] = useState(() => {\r\n if (values && values.length > 0) {\r\n const activeItem = values.find((v) => v.isActive);\r\n if (activeItem) {\r\n return activeItem.value;\r\n } else {\r\n return values[0].value;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n });\r\n\r\n const selectProps = useMemo(() => {\r\n return {\r\n options: [\r\n ...values.map((value) => {\r\n return {\r\n value: value.value,\r\n text: value.label,\r\n };\r\n }),\r\n ],\r\n };\r\n }, [values]);\r\n\r\n const handleSelectChange = (event) => {\r\n const value = event.target.value;\r\n setSelectedItem(value);\r\n\r\n onChange({\r\n sortBy: value,\r\n sortOrder: null,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (label) {\r\n const activeItem = values.find((v) => v.value === selectedItem);\r\n setCombinedLabel(`${label} ${activeItem.label}`);\r\n }\r\n }, [label, selectedItem, values]);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\nSortSelect.propTypes = propTypes;\r\nexport default SortSelect;\r\n","import renderGrantsSearch from \"../renderGrantsSearch.jsx\";\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n renderGrantsSearch();\r\n});\r\n","export default {\r\n query: {\r\n q: null,\r\n sortBy: \"relevance\",\r\n sortOrder: \"asc\",\r\n page: 1,\r\n perPage: 10,\r\n pageId: \"\",\r\n loadAllPages: true,\r\n date: null,\r\n showDates: false,\r\n showContentTypes: false,\r\n showSummaries: false,\r\n listingId: \"\",\r\n showImages: 1,\r\n },\r\n pagination: false,\r\n preSelectedFacets: {},\r\n sorters: [],\r\n lastUpdated: \"January 01, 2021\",\r\n url: \"/api/dynamiccontentlisting\",\r\n};\r\n","import React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport GrantsSearchApp from \"./GrantsSearchApp.jsx\";\r\n\r\nexport default function renderGrantsSearch() {\r\n document.querySelectorAll(\".js-grants-search-mount\").forEach((mount, i) => {\r\n const dictionary = JSON.parse(mount.dataset.dictionary) || null;\r\n const query = JSON.parse(mount.dataset.query) || {};\r\n const dataModel = JSON.parse(mount.dataset.model);\r\n const showQueryStrings =\r\n dataModel.enableQueryString &&\r\n !document.querySelector(\"body.is-page-editor\");\r\n\r\n ReactDom.render(\r\n ,\r\n mount,\r\n );\r\n });\r\n}\r\n"]}