{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/helpers/index.js","webpack://@verndale/toolkit/./src/js/modules/Modal.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/SearchBox.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/hooks/useOutsideClick.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/Tabs.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/Contexts.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/hooks/useFetch.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/ResultItem.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/Results.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/Facets.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/FacetLists.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/DateRange.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/CurrentSelection.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/ClearButton.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/QueryStringParams.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/components/AdvancedSearch.js","webpack://@verndale/toolkit/./src/js/modules/react/AdvancedSearch/index.js"],"names":[],"mappings":"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","file":"scripts/585.bundle.js","sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport AdvancedSearch from '../modules/react/AdvancedSearch';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const loadLazyModules = container => {\n if (container === null) return;\n const modules = container.querySelectorAll('.advanced-search');\n if (modules.length > 0) {\n modules.forEach(module => {\n if (module.dataset.loaded !== 'true') {\n const root = createRoot(module);\n root.render();\n }\n module.dataset.loaded = 'true';\n });\n }\n};\n","import { Component } from '@verndale/core';\nimport { loadLazyModules } from '../helpers';\n\nclass Modal extends Component {\n setupDefaults() {\n this.dom = {\n closeButton: this.el.querySelector('.modal-close'),\n modalId: this.el.dataset.moduleId\n };\n\n this.openButtons = document.querySelectorAll(\n `[data-open-modal=${this.dom.modalId}]`\n );\n }\n\n addListeners() {\n this.dom.closeButton.addEventListener('click', this.close.bind(this));\n\n if (this.openButtons.length > 0) {\n this.openButtons.forEach(button => {\n button.addEventListener('click', this.open.bind(this));\n });\n }\n }\n\n open(e) {\n e.preventDefault();\n const { moduleFocus } = e.target.dataset;\n\n this.el.classList.remove('hide');\n\n window.requestAnimationFrame(() => {\n this.el.classList.add('js-animate-in');\n\n setTimeout(() => {\n this.el.removeAttribute('aria-hidden');\n\n if (moduleFocus) {\n document.querySelector(moduleFocus).focus();\n }\n }, 500);\n });\n \n loadLazyModules(this.el);\n }\n\n close(e) {\n e.preventDefault();\n\n if (this.el.classList.contains('js-external-animation')) {\n return;\n }\n\n this.el.classList.remove('js-animate-in');\n\n setTimeout(() => {\n this.el.classList.add('hide');\n this.el.setAttribute('aria-hidden', 'true');\n }, 500);\n }\n}\n\nexport default Modal;\n","import React, { useState, useEffect } from 'react';\nimport { PropTypes } from 'prop-types';\n\nconst SearchBox = ({ placeholder, query, setQuery }) => {\n const [localQuery, setLocalQuery] = useState(query);\n\n const handleChange = e => {\n const debounce = (callback, wait) => {\n let timerId;\n return (...args) => {\n clearTimeout(timerId);\n timerId = setTimeout(() => {\n callback(...args);\n }, wait);\n };\n };\n\n const debouncedSetQuery = debounce(() => setQuery(e.target.value), 700);\n debouncedSetQuery(localQuery);\n setLocalQuery(e.target.value);\n };\n\n useEffect(() => {\n if (query) {\n setLocalQuery(query);\n } else {\n setLocalQuery('');\n }\n }, [query]);\n\n return (\n
\n \n
\n );\n};\n\nSearchBox.propTypes = {\n placeholder: PropTypes.string,\n query: PropTypes.string, \n setQuery: PropTypes.func\n};\n\nexport default SearchBox;\n","import { useEffect } from 'react';\n\nconst useOutsideClick = (ref, setState) => {\n useEffect(() => {\n /**\n * Alert if clicked on outside of element\n */\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n setState(false);\n }\n }\n // Bind the event listener\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n // Unbind the event listener on clean up\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref]);\n};\n\nexport default useOutsideClick;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport useOutsideClick from '../hooks/useOutsideClick';\n\nconst Tabs = ({ tabs, selectedTab, setSelectedTab }) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n\n useOutsideClick(dropdownRef, setIsOpen);\n\n const handleSelect = tab => {\n setSelectedTab(tab);\n };\n\n return (\n <>\n
\n {tabs && tabs.length\n ? tabs.map((tab, i) => (\n handleSelect(tab)}\n >\n {tab.label}\n
\n ))\n : ''}\n \n setIsOpen(!isOpen)}\n ref={dropdownRef}\n >\n \n
\n {tabs && tabs.length\n ? tabs.map((tab, i) => (\n handleSelect(tab)}\n >\n {tab.label}\n
\n ))\n : ''}\n \n \n \n );\n};\n\nTabs.propTypes = {\n tabs: PropTypes.array.isRequired,\n selectedTab: PropTypes.object.isRequired,\n setSelectedTab: PropTypes.func.isRequired\n};\n\nexport default Tabs;\n","/* eslint-disable import/prefer-default-export */\nimport { createContext } from 'react';\n\nexport const SearchContext = createContext();\nexport const SearchFilters = createContext();","import { useState, useEffect } from 'react';\nimport Axios from 'axios';\n\nexport const useFetch = (\n endpoint,\n {\n query,\n selectedFacets,\n facetsLists,\n dateRange,\n selectedTab,\n setSelectedTab,\n tabs,\n cleanQueryString,\n isLoaded\n }\n) => {\n const [results, setResults] = useState([]);\n const [loading, setLoading] = useState(false);\n const params = {};\n const currentKeys = Object.keys(selectedFacets);\n\n const formatFacets = () => {\n const selectedArray = Object.keys(selectedFacets);\n const selectedDropdowns = facetsLists.filter(\n x => selectedArray.filter(y => x.mainValue === y).length\n );\n\n const selectedFacetsArray = [...selectedDropdowns].map(dropdown => {\n const currentIds = selectedFacets[dropdown.mainValue];\n const values = currentIds.map(y => {\n const parentFacet = dropdown.facets.filter(z => y === z.value)[0];\n const obj = {};\n\n if (parentFacet) {\n obj.parentId = parentFacet.value;\n obj.children = parentFacet.childrens\n ? parentFacet.childrens.filter(x => currentIds.includes(x.value))\n : [];\n\n if (obj.children.length) {\n obj.children = obj.children.map(x => x.value);\n }\n }\n\n return obj.parentId && obj;\n });\n\n return {\n [dropdown.mainValue]: values.filter(x => x)\n };\n });\n return [...selectedFacetsArray];\n };\n\n useEffect(() => {\n const fetchData = async () => {\n if (query) {\n params.query = query;\n }\n\n if (selectedFacets) {\n params.facets = formatFacets();\n }\n\n if (dateRange) {\n dateRange.forEach(x => {\n params[x.label] = x.value;\n });\n }\n\n if (selectedTab) {\n params.searchType = selectedTab.value;\n }\n\n try {\n setLoading(true);\n const { data } = await Axios({\n method: 'POST',\n url: endpoint,\n data: params\n });\n setResults(data);\n\n if (!data.resultsList || !data.resultsList.length) {\n if (tabs.length && selectedTab.value !== tabs[0].value) {\n if (Object.keys(selectedFacets).length) {\n // eslint-disable-next-line no-restricted-syntax\n for (const [key] of Object.entries(selectedFacets)) {\n if (selectedFacets[key].length) return;\n }\n }\n cleanQueryString();\n setSelectedTab(tabs[0]);\n }\n }\n } catch (error) {\n console.log(error);\n } finally {\n setLoading(false);\n }\n };\n\n const check = Boolean(\n (query && query.length) ||\n currentKeys.length ||\n dateRange[0].value ||\n dateRange[1].value \n );\n\n if (check && isLoaded.current) fetchData();\n }, [query, selectedFacets, facetsLists, dateRange, selectedTab]);\n\n return { results, loading, currentKeys };\n};\n\nexport default useFetch;\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport parse from 'html-react-parser';\n\nconst ResultItem = ({ item }) => {\n const getLinkElement = () => {\n const titleElement = (\n

\n {parse(item.title)}\n

\n );\n\n if (item.endpoint && item.endpoint.serverUrl && item.endpoint.displayUrl) {\n return (\n \n {titleElement}\n \n );\n }\n\n if (item.link && item.link.url) {\n return (\n \n {titleElement}\n \n );\n }\n\n return titleElement;\n };\n\n return (\n <>\n {item.category ? (\n \n {parse(item.category)}\n \n ) : (\n ''\n )}\n\n {getLinkElement()}\n\n {item.details ? (\n

\n {parse(item.details)}\n

\n ) : (\n ''\n )}\n {item.excerpt ? (\n

\n {parse(item.excerpt)}\n

\n ) : (\n ''\n )}\n \n );\n};\n\nResultItem.propTypes = {\n item: PropTypes.object\n};\nexport default ResultItem;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { PropTypes } from 'prop-types';\nimport ResultItem from './ResultItem';\n\nconst Results = ({ results, isModal }) => {\n const elementClass = isModal ? 'div.main-footer' : 'footer.main-footer';\n const element = document.querySelector(elementClass);\n const [resultsToAdd, setResultsToAdd] = useState(5);\n const button = useRef(null);\n const newResults = results.slice(0, resultsToAdd);\n\n const addMoreResults = () => {\n if (resultsToAdd >= results.length ) return;\n setResultsToAdd(resultsToAdd + 5);\n };\n\n const handleOnIntersect = entry => {\n if (entry[0].isIntersecting && button.current) {\n button.current.click();\n }\n };\n\n const createObserver = () => {\n const options = {\n root: null,\n treshold: 0,\n rootMargin: '-90% 0% -10%'\n };\n\n const observerCallback = new IntersectionObserver(\n entries => handleOnIntersect(entries),\n options\n );\n\n observerCallback.observe(element);\n };\n \n useEffect(() => {\n createObserver();\n }, []);\n\n return (\n <>\n \n {newResults?.map((item, index) => (\n
\n \n
\n ))}\n \n );\n};\n\nResults.propTypes = {\n results: PropTypes.array,\n isModal: PropTypes.string\n};\n\nexport default Results;\n","import React, { useContext } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { SearchContext } from '../Contexts';\n\nconst Facets = ({ facets, facetListIndex, mainValue }) => {\n const { facetsLists, setFacetsLists, selectedFacets, setSelectedFacets } =\n useContext(SearchContext);\n\n return (\n
\n {facets.map((facet, index) => {\n const { label, value, selected, childrens } = facet;\n\n const addingFields = facetValue => {\n const selectedFacetsClone = { ...selectedFacets};\n if (mainValue in selectedFacets) {\n // adding the values after the first time\n selectedFacetsClone[mainValue].push(facetValue);\n } else {\n // adding the value for the first time\n Object.assign(selectedFacetsClone, { [mainValue]: [facetValue] });\n }\n setSelectedFacets(selectedFacetsClone);\n };\n\n const removingFields = facetValue => {\n const selectedFacetsClone = { ...selectedFacets};\n // clearing value from existing on the array\n if (\n selectedFacetsClone[mainValue] && selectedFacetsClone[mainValue].length &&\n selectedFacetsClone[mainValue].includes(facetValue)\n ) {\n selectedFacetsClone[mainValue].splice(\n selectedFacetsClone[mainValue].indexOf(facetValue), 1\n );\n }\n setSelectedFacets(selectedFacetsClone);\n };\n\n const resetChildrens = () => {\n if (childrens && childrens.length)\n childrens.forEach(child => {\n child.selected = false;\n removingFields(child.value);\n });\n };\n\n const handleCheck = () => {\n const facetsListsClone = [...facetsLists];\n facetsListsClone[facetListIndex].facets[index].selected =\n !facetsListsClone[facetListIndex].facets[index].selected;\n setFacetsLists(facetsListsClone);\n\n if (!facetsListsClone[facetListIndex].facets[index].selected) {\n resetChildrens();\n }\n\n if (facetsListsClone[facetListIndex].facets[index].selected) {\n addingFields(value);\n } else if (\n selectedFacets[mainValue] &&\n selectedFacets[mainValue].length\n ) {\n removingFields(value);\n }\n };\n\n return (\n
\n \n \n {selected && childrens && childrens.length ? (\n
\n {childrens.map((subfacet, i) => {\n const handleSubCheck = () => {\n const facetsListsClone = [...facetsLists];\n facetsListsClone[facetListIndex].facets[index].childrens[\n i\n ].selected =\n !facetsListsClone[facetListIndex].facets[index].childrens[\n i\n ].selected;\n setFacetsLists(facetsListsClone);\n\n if (\n facetsListsClone[facetListIndex].facets[index].selected\n ) {\n if (\n facetsListsClone[facetListIndex].facets[index]\n .childrens[i].selected\n ) {\n addingFields(subfacet.value);\n } else if (\n selectedFacets[mainValue] &&\n selectedFacets[mainValue].length\n ) {\n removingFields(subfacet.value);\n }\n }\n };\n return (\n handleSubCheck()}\n >\n \n \n
\n );\n })}\n
\n ) : (\n ''\n )}\n
\n );\n })}\n \n );\n};\n\nFacets.propTypes = {\n facets: PropTypes.array.isRequired,\n facetListIndex: PropTypes.number.isRequired,\n mainValue: PropTypes.string.isRequired\n};\n\nexport default Facets;\n","import React, { useState, useContext, useRef } from 'react';\nimport { SearchContext } from '../Contexts';\nimport Facets from './Facets';\nimport useOutsideAlerter from '../hooks/useOutsideClick';\n\nconst FacetLists = () => {\n const { facetsLists } = useContext(SearchContext);\n\n return (\n
\n {facetsLists && facetsLists.length\n ? facetsLists.map((facetList, index) => {\n const { mainLabel, mainValue, facets } = facetList;\n const [isExpanded, setIsExpanded] = useState(false);\n const dropdownRef = useRef(null);\n\n useOutsideAlerter(dropdownRef, setIsExpanded);\n\n return (\n \n setIsExpanded(!isExpanded)}\n >\n {mainLabel}\n \n \n
\n );\n })\n : ''}\n \n );\n};\n\nexport default FacetLists;\n","import React, { useState, useContext, useRef, useEffect } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { SearchContext } from '../Contexts';\nimport useOutsideAlerter from '../hooks/useOutsideClick';\n\nconst DateRange = ({ dateRangeLabel }) => {\n const { dateRange, setDateRange, years, dropdownValue, setDropdownValue} =\n useContext(SearchContext);\n const [fromYears, setFromYears] = useState(years.sort().reverse());\n const [toYears, setToYears] = useState(years.sort().reverse());\n\n return (\n
\n {dateRangeLabel ? (\n \n ) : (\n ''\n )}\n
\n {dateRange && dateRange.length\n ? dateRange.map((range, i) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef(null);\n\n const handleDateRange = e => {\n const clone = [...dropdownValue];\n const cloneDate = [...dateRange];\n\n clone[i] = e.target.innerText;\n cloneDate[i].value = e.target.innerText;\n setDropdownValue(clone);\n setDateRange(cloneDate);\n };\n\n useEffect(() => {\n if (range.label === 'From') {\n const y = years.filter(x => {\n if (dropdownValue[i] && x >= dropdownValue[i]) {\n return x;\n }\n });\n setToYears(y.length ? y : years);\n }\n\n if (range.label === 'To') {\n const y = years.filter(x => {\n if (dropdownValue[i] && x <= dropdownValue[i]) {\n return x;\n }\n });\n setFromYears(y.length ? y : years);\n }\n }, [isOpen]);\n\n useOutsideAlerter(dropdownRef, setIsOpen);\n return (\n
\n \n setIsOpen(!isOpen)}\n ref={dropdownRef}\n >\n \n
\n {range.label === 'From' &&\n fromYears &&\n fromYears.length &&\n fromYears.map((year, index) => (\n \n ))}\n {range.label === 'To' &&\n toYears &&\n toYears.length &&\n toYears.map((year, index) => (\n \n ))}\n
\n
\n
\n );\n })\n : ''}\n
\n \n );\n};\n\nDateRange.propTypes = {\n dateRangeLabel: PropTypes.string\n};\n\nexport default DateRange;\n","import React, { useContext } from 'react';\nimport { SearchContext } from '../Contexts';\n\nconst CurrentSelection = () => {\n const { facetsLists, setFacetsLists, selectedFacets, setSelectedFacets } =\n useContext(SearchContext);\n const handleRemoveParent = (facetValue, mainIndex, parentIndex) => {\n const facetsClone = [...facetsLists];\n const selectedFacetsClone = { ...selectedFacets };\n // filter only selected ones\n const filteredFacets = facetsClone[mainIndex].facets.filter(\n x => x.selected\n );\n // from selected remove the item with parent index\n filteredFacets[parentIndex].selected = false;\n\n setFacetsLists(facetsClone);\n\n selectedFacetsClone[facetsClone[mainIndex].mainValue].splice(\n selectedFacetsClone[facetsClone[mainIndex].mainValue].indexOf(facetValue),\n 1\n );\n\n if (\n facetsClone[mainIndex].facets[parentIndex].childrens &&\n facetsClone[mainIndex].facets[parentIndex].childrens.length\n ) {\n facetsClone[mainIndex].facets[parentIndex].childrens.forEach(child => {\n child.selected = false;\n if (\n selectedFacets[facetsClone[mainIndex].mainValue].includes(child.value)\n ) {\n selectedFacetsClone[facetsClone[mainIndex].mainValue].splice(\n selectedFacetsClone[facetsClone[mainIndex].mainValue].indexOf(\n child.value\n ),\n 1\n );\n }\n });\n }\n setSelectedFacets(selectedFacetsClone);\n };\n\n const handleRemoveChild = (\n facetValue,\n mainIndex,\n parentIndex,\n childIndex\n ) => {\n const facetsClone = [...facetsLists];\n const filteredChilds = facetsClone[mainIndex].facets\n .filter(x => x.selected)\n .map(\n parentSelected =>\n parentSelected.childrens &&\n parentSelected.childrens.filter(x => x.selected)\n );\n\n filteredChilds[parentIndex][childIndex].selected = false;\n\n setFacetsLists(facetsClone);\n\n const selectedFacetsClone = { ...selectedFacets };\n selectedFacetsClone[facetsClone[mainIndex].mainValue].splice(\n selectedFacetsClone[facetsClone[mainIndex].mainValue].indexOf(facetValue),\n 1\n );\n setSelectedFacets(selectedFacetsClone);\n };\n\n return facetsLists && facetsLists.length ? (\n
\n {facetsLists.map((dropdown, j) =>\n dropdown.facets\n .filter(x => x.selected)\n .map((parentFacet, i) => (\n \n {parentFacet.label}\n handleRemoveParent(parentFacet.value, j, i)}\n >\n X\n \n
\n ))\n )}\n\n {facetsLists.map((dropdown, j) =>\n dropdown.facets\n .filter(x => x.selected)\n .map(\n (parentSelected, index) =>\n parentSelected.childrens &&\n parentSelected.childrens\n .filter(x => x.selected)\n .map((childFacets, i) => (\n \n {childFacets.label}\n \n handleRemoveChild(childFacets.value, j, index, i)\n }\n >\n X\n \n \n ))\n )\n )}\n \n ) : (\n ''\n );\n};\n\nexport default CurrentSelection;\n","import React, { useContext } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { SearchContext } from '../Contexts';\n\nconst ClearButton = ({ label }) => {\n const {\n facetsLists,\n setFacetsLists,\n selectedFacets,\n setDateRange,\n dropdownValue,\n setQuery,\n setSelectedFacets\n } = useContext(SearchContext);\n\n const handleRemoveAll = () => {\n const facetsClone = [...facetsLists];\n // set all facets to false\n facetsClone.forEach(list => {\n // clean selectedFacet params for api call\n selectedFacets[list.mainValue] = [];\n list.facets.forEach(facet => {\n facet.selected = false;\n // clean all childrens if exists\n if (facet.childrens && facet.childrens.length) {\n facet.childrens.forEach(c => {\n c.selected = false;\n });\n }\n });\n });\n\n setSelectedFacets([]);\n\n setQuery('');\n\n setFacetsLists(facetsClone);\n\n setDateRange([\n { label: 'From', value: '', placeholder: 'Year' },\n { label: 'To', value: '', placeholder: 'Year' }\n ]);\n\n dropdownValue.forEach((_, i) => {\n dropdownValue[i] = 'Year';\n });\n };\n return (\n
\n handleRemoveAll()}\n >\n {label}\n \n
\n );\n};\n\nClearButton.propTypes = {\n label: PropTypes.string\n};\n\nexport default ClearButton;\n","import { useEffect, useMemo, useContext, useRef } from 'react';\nimport qs from 'qs';\nimport { SearchContext } from '../Contexts';\n\nconst QueryStringParams = ({ isLoaded, searchId, cleanQueryString, isTabsLoaded }) => {\n const {\n setQuery,\n query,\n setSelectedTab,\n selectedTab,\n tabs,\n selectedFacets,\n facetsLists,\n setFacetsLists,\n years,\n setDropdownValue,\n setDateRange,\n setExpandedOptions,\n setSelectedFacets\n } = useContext(SearchContext);\n\n const firstLoad = useRef(true);\n\n const firstLoadQuery = useMemo(() => {\n const qsParams = qs.parse(window.location.search, {\n ignoreQueryPrefix: true\n });\n return qsParams;\n }, []);\n\n const firstLoadFacets = useMemo(() => {\n const facets = {};\n Object.keys(firstLoadQuery).forEach(key => {\n if (facetsLists.find(facet => facet.mainValue === key)) {\n facets[key] = firstLoadQuery[key];\n }\n });\n return facets;\n }, []);\n\n const addingFields = (facetValue, mainValue) => {\n const selectedFacetsClone = { ...selectedFacets };\n if (mainValue in selectedFacets) {\n // adding the values after the first time\n selectedFacetsClone[mainValue].push(facetValue);\n } else {\n // adding the value for the first time\n Object.assign(selectedFacetsClone, { [mainValue]: [facetValue] });\n }\n\n setSelectedFacets(selectedFacetsClone);\n // localStorage.setItem(\"selectedFacets\", JSON.stringify(selectedFacetsClone));\n };\n\n const handleFilters = () => {\n const facetsListsClone = [...facetsLists];\n Object.keys(firstLoadQuery).forEach(key => {\n facetsListsClone.forEach(facetList => {\n if (facetList.mainValue === key) {\n facetList.facets.forEach(facet => {\n if (firstLoadQuery[key].includes(facet.value)) {\n facet.selected = true;\n addingFields(facet.value, facetList.mainValue);\n setExpandedOptions(true);\n }\n if (facet.childrens && facet.childrens.length) {\n facet.childrens.forEach(child => {\n if (firstLoadQuery[key].includes(child.value)) {\n child.selected = true;\n addingFields(child.value, facetList.mainValue);\n setExpandedOptions(true);\n }\n });\n }\n });\n }\n });\n });\n setFacetsLists(facetsListsClone);\n };\n\n useEffect(() => {\n const setQueryStringValues = () => {\n if (firstLoadQuery.tab) {\n tabs.forEach(tab => {\n if (tab.value === firstLoadQuery.tab) {\n setSelectedTab(tab);\n }\n });\n }\n\n if (firstLoadQuery.query) {\n setQuery(firstLoadQuery.query);\n }\n\n if (firstLoadQuery.query) {\n setQuery(firstLoadQuery.query);\n }\n\n if (firstLoadQuery.From || firstLoadQuery.To) {\n setDateRange([\n {\n label: 'From',\n value:\n years.includes(Number(firstLoadQuery.From)) && firstLoadQuery.From\n ? firstLoadQuery.From\n : '',\n placeholder: 'Year'\n },\n {\n label: 'To',\n value:\n years.includes(Number(firstLoadQuery.To)) && firstLoadQuery.To\n ? firstLoadQuery.To\n : '',\n placeholder: 'Year'\n }\n ]);\n\n setDropdownValue([\n years.includes(Number(firstLoadQuery.From)) && firstLoadQuery.From\n ? firstLoadQuery.From\n : 'Year',\n years.includes(Number(firstLoadQuery.To)) && firstLoadQuery.To\n ? firstLoadQuery.To\n : 'Year'\n ]);\n }\n\n handleFilters();\n };\n\n if (Object.keys(firstLoadFacets).length > 0) {\n setSelectedFacets(firstLoadFacets);\n }\n\n if (firstLoadQuery.searchId === searchId || !firstLoadQuery.searchId) {\n setQueryStringValues();\n }\n }, []);\n\n const buildQueryString = () => {\n const currentQsParams = qs.parse(window.location.search, {\n ignoreQueryPrefix: true\n });\n const qsParams = {};\n\n if (query) {\n qsParams.query = query;\n }\n\n if (selectedFacets) {\n Object.keys(selectedFacets).forEach(key => {\n qsParams[key] = selectedFacets[key];\n });\n }\n\n Object.keys(firstLoadQuery).forEach(key => {\n if (facetsLists.find(facet => facet.mainValue === key)) {\n qsParams[key] = firstLoadQuery[key];\n selectedFacets[key] = firstLoadQuery[key];\n }\n });\n\n if (searchId && !firstLoad.current) {\n qsParams.searchId = searchId;\n }\n\n if (currentQsParams.searchId !== searchId) {\n cleanQueryString();\n }\n\n if(firstLoad.current) {\n firstLoad.current = false;\n return;\n }\n\n const qsValue = qs.stringify(qsParams, { arrayFormat: 'brackets' });\n\n // add this before qsValue to test with storybook\n // ?id=templates-insights-page--insights-page&args=&viewMode=story&practice%5B%5D=valueParentFacetOne&searchId=academySearch&query=efe#/academy\n const newUrl = `${window.location.protocol}//${window.location.host}${\n window.location.pathname\n }${qsValue ? `?${qsValue}` : ''}${window.location.hash}`;\n window.history.pushState(qsParams, '', newUrl);\n };\n\n useEffect(() => {\n if (isLoaded || isTabsLoaded) {\n buildQueryString();\n }\n }, [selectedFacets, query, selectedTab]);\n};\n\nexport default QueryStringParams;\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { SearchContext } from '../Contexts';\nimport { useFetch } from '../hooks/useFetch';\nimport Results from './Results';\nimport FacetLists from './FacetLists';\nimport DateRange from './DateRange';\nimport CurrentSelection from './CurrentSelection';\nimport ClearButton from './ClearButton';\nimport QueryStringParams from './QueryStringParams';\n\nconst AdvancedSearch = ({\n advancedIndex,\n query,\n setQuery,\n mainSearchData,\n selectedTab,\n setSelectedTab,\n setTabs,\n tabs,\n tabsData,\n isModal,\n cleanQueryString,\n searchId,\n isTabsLoaded\n}) => {\n const root = mainSearchData[advancedIndex];\n const [facetsLists, setFacetsLists] = useState(root.facetsListData);\n const [selectedFacets, setSelectedFacets] = useState({});\n const [dateRange, setDateRange] = useState([\n { label: 'From', value: '', placeholder: 'Year' },\n { label: 'To', value: '', placeholder: 'Year' }\n ]);\n const [dropdownValue, setDropdownValue] = useState(['Year', 'Year']);\n const [expandedOptions, setExpandedOptions] = useState(false);\n const [activeSearch, setActiveSearch] = useState('');\n const years = root.dateRange;\n const isLoaded = useRef(false);\n\n const { results, loading, currentKeys } = useFetch(root.endpoint, {\n query,\n selectedFacets,\n facetsLists,\n dateRange,\n selectedTab,\n setSelectedTab,\n tabs,\n cleanQueryString,\n isLoaded\n });\n\n const handleAvailableTabs = () => {\n if (!results.tabsToShow) return;\n\n const commonValues = tabsData.filter(tab =>\n results.tabsToShow.includes(tab.value)\n );\n\n if (commonValues.length) setTabs(commonValues);\n };\n\n const dateRangeExists =\n dateRange && dateRange.length && (dateRange[0].value || dateRange[1].value);\n\n const check = Boolean(\n (query && query.length >= 3) || currentKeys.length || dateRangeExists\n );\n\n const tabSelectedLink = document.querySelector('.tab-button.is-active a');\n const mainContent = document.querySelector(\n `#${tabSelectedLink?.dataset?.panelId} .main-content`\n );\n\n useEffect(() => {\n if (results?.resultsList && results?.tabsToShow.length) {\n handleAvailableTabs();\n }\n if (check && mainContent) {\n mainContent.style.display = 'none';\n } else if (!check && mainContent) {\n mainContent.removeAttribute('style');\n }\n }, [query, selectedFacets, dateRange, results, check]);\n\n useEffect(() => {\n if (!isLoaded.current) {\n isLoaded.current = true;\n }\n }, []);\n\n const checkActiveSearch = e => {\n cleanQueryString();\n const { target } = e;\n let mainTarget;\n\n if (target.closest('[data-panel-id]')) {\n mainTarget = target.closest('[data-panel-id]');\n } else if (target.closest('.modal-close')) {\n mainTarget = target.closest('.modal-close');\n } else {\n mainTarget = target;\n }\n\n const modalSearch = document.querySelector(\n `.search-modal [data-search-id=${searchId}]`\n );\n const modalContainer = document.querySelector('.search-modal');\n\n let panelId;\n let currentTabSearch;\n if (mainTarget) {\n panelId = mainTarget.dataset?.panelId;\n currentTabSearch = document.querySelector(\n `#${panelId} [data-search-id=${searchId}]`\n );\n }\n\n if (\n !modalContainer.classList.contains('hide') &&\n !mainTarget.classList.contains('modal-close')\n ) {\n setActiveSearch(modalSearch);\n } else if (mainTarget.classList.contains('modal-close')) {\n const currentTab = document.querySelector('.tab-button.is-active a');\n if (currentTab) {\n panelId = currentTab.dataset?.panelId;\n currentTabSearch = document.querySelector(\n `#${panelId} [data-search-id=${searchId}]`\n );\n }\n\n setActiveSearch(currentTabSearch);\n } else {\n setActiveSearch(currentTabSearch);\n }\n };\n\n useEffect(() => {\n const onLoadActiveTab = document.querySelector('.tab-button.is-active a');\n let onLoadActiveSearch;\n\n if (onLoadActiveTab) {\n onLoadActiveSearch = document.querySelector(\n `#${onLoadActiveTab.dataset.panelId} [data-search-id=${searchId}] `\n );\n }\n\n const searchTriggers = document.querySelectorAll(\n `.tab-button,[data-open-modal=\"search\"], .search-modal .modal-close`\n );\n\n if (searchTriggers.length) {\n searchTriggers.forEach(trigger => {\n trigger.addEventListener('click', checkActiveSearch);\n });\n }\n\n if (onLoadActiveTab) setActiveSearch(onLoadActiveSearch);\n\n return () => {\n if (searchTriggers.length) {\n searchTriggers.forEach(trigger => {\n trigger.removeEventListener('click', checkActiveSearch);\n });\n }\n };\n }, []);\n\n return (\n \n {((activeSearch && activeSearch.dataset.searchId === searchId) ||\n isModal) && (\n \n )}\n\n {facetsLists && facetsLists.length ? (\n \n setExpandedOptions(!expandedOptions)}\n >\n {root.advancedSearchLabel}\n \n
\n {/* dropdown facets */}\n \n {/* date range */}\n {years.length ? (\n \n ) : (\n ''\n )}\n {/* selected categories */}\n\n \n\n {/* clear state button */}\n \n
\n \n ) : (\n ''\n )}\n {/* result items */}\n
\n {results?.resultsList?.length && !loading && check ? (\n \n ) : (\n ''\n )}\n {results &&\n !results?.resultsList?.length &&\n !loading &&\n query &&\n query.length >= 3 &&\n results.noResultsMessage && (\n
\n

\n {results.noResultsMessage.title &&\n results.noResultsMessage.title}\n

\n

\n {results.noResultsMessage.excerpt &&\n results.noResultsMessage.excerpt}\n

\n
\n )}\n
\n {loading ? (\n
\n
\n
\n ) : (\n ''\n )}\n \n );\n};\n\nAdvancedSearch.propTypes = {\n advancedIndex: PropTypes.number.isRequired,\n query: PropTypes.string,\n setQuery: PropTypes.func.isRequired,\n mainSearchData: PropTypes.array.isRequired,\n selectedTab: PropTypes.object.isRequired,\n setSelectedTab: PropTypes.func.isRequired,\n setTabs: PropTypes.func.isRequired,\n tabs: PropTypes.array.isRequired,\n tabsData: PropTypes.array.isRequired,\n isModal: PropTypes.string,\n searchId: PropTypes.string.isRequired,\n cleanQueryString: PropTypes.func.isRequired,\n isTabsLoaded: PropTypes.object.isRequired\n};\n\nexport default AdvancedSearch;\n","import React, { useEffect, useState, useRef } from 'react';\nimport qs from 'qs';\nimport { PropTypes } from 'prop-types';\nimport SearchBox from './components/SearchBox';\nimport Tabs from './components/Tabs';\nimport AdvancedSearch from './components/AdvancedSearch';\n\nconst AdvancedSearchMain = ({\n placeholder,\n initialAdvancedSearchData,\n tabsActive,\n isModal,\n searchId,\n}) => {\n const mainSearchData = JSON.parse(initialAdvancedSearchData);\n const tabsData = mainSearchData.map(tab => {\n if (tab.tabLabel && tab.tabValue) {\n const obj = { label: tab.tabLabel, value: tab.tabValue };\n return obj;\n }\n return [];\n });\n const isFirstLoad = useRef(true);\n const [query, setQuery] = useState();\n const [tabs, setTabs] = useState(tabsData);\n const [selectedTab, setSelectedTab] = useState(tabs[0]);\n\n const cleanQueryString = () => {\n const url = new URL(window.location.href);\n url.search = '';\n window.history.replaceState({}, '', url);\n };\n\n useEffect(() => {\n const qsParams = qs.parse(window.location.search, {\n ignoreQueryPrefix: true\n });\n if (isFirstLoad.current && qsParams.tab) {\n isFirstLoad.current = false;\n cleanQueryString();\n }\n }, []);\n\n return (\n <>\n \n {tabsActive && tabs && tabs.length && query && query.length >= 3 ? (\n \n ) : (\n ''\n )}\n {mainSearchData && mainSearchData.length\n ? mainSearchData.map((search, index) =>\n search.tabValue === selectedTab.value ? (\n
\n \n
\n ) : (\n ''\n )\n )\n : ''}\n \n );\n};\n\nAdvancedSearchMain.propTypes = {\n placeholder: PropTypes.string.isRequired,\n initialAdvancedSearchData: PropTypes.string.isRequired,\n tabsActive: PropTypes.string.isRequired,\n isModal: PropTypes.string,\n searchId: PropTypes.string.isRequired\n};\n\nexport default AdvancedSearchMain;\n"],"sourceRoot":""}