{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/helpers/index.js","webpack://@verndale/toolkit/./src/js/modules/MultiPageContainer/PageSubTabs.js","webpack://@verndale/toolkit/./src/js/modules/MultiPageContainer/PageTabs.js","webpack://@verndale/toolkit/./src/js/modules/MultiPageContainer/index.js","webpack://@verndale/toolkit/./src/js/modules/SocialShare.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/584.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';\n\nclass PageSubTabs extends Component {\n constructor(el, options) {\n super(el, options);\n this.pageLevel = options.pageLevel;\n\n this.initTabs();\n }\n\n setupDefaults() {\n this.dom = {\n tabLinks: [...this.el.querySelectorAll('.inpage-list-menu a')],\n tabInitialPanel: this.el.querySelectorAll('.tabs-panel__panel'),\n tabPanels: [...this.el.querySelectorAll('.tabs-panel__panel')]\n };\n }\n\n addListeners() {\n window.addEventListener('popstate', this.handlePopState.bind(this));\n this.dom.tabLinks.forEach(tab =>\n tab.addEventListener('click', this.handleTabClick.bind(this))\n );\n\n this.el.addEventListener('panelReset', this.resetTabs.bind(this));\n }\n\n handlePopState(e) {\n const { state } = e;\n if (state && state.subpanelId) {\n const selectedLink = this.dom.tabLinks.find(\n link => link && link.dataset.panelId === state.subpanelId\n );\n if (selectedLink) {\n this.selectTab(selectedLink);\n }\n }\n }\n\n initTabs() {\n this.setTabs(window.location.hash);\n }\n\n setTabs(url) {\n const hash = url.slice(1);\n\n if (hash) {\n const parts = hash.split('/');\n const selectedLink = this.dom.tabLinks.find(\n link => link && link.dataset.panelId === parts[this.pageLevel]\n );\n\n if (selectedLink) {\n this.selectTab(selectedLink);\n } else {\n this.selectTab(this.dom.tabLinks[0]);\n }\n }\n }\n\n resetTabs() {\n this.selectTab(this.dom.tabLinks[0]);\n }\n\n handleTabClick(e) {\n e.preventDefault();\n this.selectTab(e.target, true);\n }\n\n selectTab(link, updateUrl) {\n this.setActiveTab(link);\n\n if (updateUrl) {\n window.history.pushState(\n {\n subpanelId: link.dataset.panelId\n },\n '',\n link.getAttribute('href')\n );\n }\n }\n\n setActiveTab(selectedTab) {\n this.dom.tabLinks.forEach(tab => {\n if (tab === selectedTab) {\n tab.parentNode.classList.add('is-active');\n } else {\n tab.parentNode.classList.remove('is-active');\n }\n });\n\n this.dom.tabPanels.forEach(panel => {\n if (panel.id === selectedTab.dataset.panelId) {\n panel.style.display = 'block';\n } else {\n panel.style.display = 'none';\n }\n });\n }\n}\n\nexport default PageSubTabs;\n","import { Component } from '@verndale/core';\nimport PageSubTabs from './PageSubTabs';\nimport { loadLazyModules } from '../../helpers';\n\nclass PageTabs extends Component {\n constructor(el, options) {\n super(el, options);\n this.pageLevel = options.pageLevel;\n this.isMobileOpen = false;\n\n this.initTabs();\n this.initSubTabs();\n }\n\n setupDefaults() {\n this.dom = {\n tabLinks: [...this.el.querySelectorAll('.tabs-title a')],\n tabPanels: [...this.el.querySelectorAll('.tabs-panel')],\n mobileContainer: this.el.querySelector('.mobile-subnav')\n };\n this.isMobileOpen = false;\n\n this.createMobileDropdown();\n }\n\n addListeners() {\n window.addEventListener('popstate', this.handlePopState.bind(this));\n this.dom.tabLinks.forEach(tab =>\n tab.addEventListener('click', this.handleTabClick.bind(this))\n );\n this.dom.dropdownButton.addEventListener(\n 'click',\n this.toggleDropdown.bind(this)\n );\n this.dom.mobileLinks.forEach(item =>\n item.addEventListener('click', this.handleDropdownChange.bind(this))\n );\n }\n\n initTabs() {\n this.setTabs(window.location.hash);\n }\n\n setTabs(url) {\n const hash = url.slice(1);\n\n if (hash) {\n const parts = hash.split('/');\n\n const selectedLink = this.dom.tabLinks.find(\n link => link && link.dataset.panelId === parts[this.pageLevel]\n );\n\n const selectedMobileLink = this.dom.mobileLinks.find(\n link => link && link.dataset.panelId === parts[this.pageLevel]\n );\n\n if (selectedLink) {\n this.selectTab(selectedLink);\n this.selectMobileTab(selectedMobileLink);\n } else {\n this.selectTab(this.dom.tabLinks[0]);\n this.selectMobileTab(this.dom.mobileLinks[0]);\n }\n } else {\n this.selectTab(this.dom.tabLinks[0], true);\n this.selectMobileTab(this.dom.mobileLinks[0]);\n }\n\n if (this.subTabs) {\n this.subTabs.setTabs(url);\n }\n }\n\n initSubTabs() {\n this.dom.tabPanels.forEach(panel => {\n const subtabs = panel.querySelector('.inpage-list-menu');\n\n if (subtabs) {\n this.subTabs = new PageSubTabs(panel, {\n pageLevel: this.pageLevel + 1\n });\n }\n });\n }\n\n createMobileDropdown() {\n if (!this.dom.mobileContainer) return;\n\n const dropdownTemplate = `\n
  • \n \n \n
  • \n `;\n this.dom.mobileContainer.innerHTML = dropdownTemplate;\n this.dom.dropdownList = this.dom.mobileContainer.querySelector('.submenu');\n this.dom.dropdownButton = this.dom.mobileContainer.querySelector(\n '.toggle-mobile-subnav'\n );\n this.dom.mobileLinks = [\n ...this.dom.mobileContainer.querySelectorAll('.is-submenu-item a')\n ];\n }\n\n handleTabClick(e) {\n e.preventDefault();\n this.selectTab(e.target, true);\n\n // Update mobile tabs\n const selectedTab = this.dom.mobileLinks.find(\n tab => tab.dataset.panelId === e.target.dataset.panelId\n );\n this.selectMobileTab(selectedTab);\n }\n\n handleDropdownChange(e) {\n e.preventDefault();\n e.stopPropagation();\n\n const target = e.currentTarget;\n this.selectMobileTab(target);\n\n // Update desktop tabs\n const selectedTab = this.dom.tabLinks.find(\n tab => tab.dataset.panelId === target.dataset.panelId\n );\n this.selectTab(selectedTab, true);\n }\n\n handlePopState(e) {\n const { state } = e;\n e.preventDefault();\n if (state && Object.keys(state).length > 0) {\n if (state.panelId) {\n const selectedTab = this.dom.tabLinks.find(\n tab => tab.dataset.panelId === e.state.panelId\n );\n if (selectedTab) {\n this.selectTab(selectedTab);\n }\n } else {\n this.selectTab(this.dom.tabLinks[0]);\n }\n } else {\n this.selectTab(this.dom.tabLinks[0]);\n }\n }\n\n selectTab(link, updateUrl) {\n this.setActiveTab(link);\n if (link.dataset.panelId) {\n loadLazyModules(document.getElementById(link.dataset.panelId));\n }\n if (updateUrl) {\n window.history.pushState(\n {\n panelId: link.dataset.panelId,\n pageLevel: this.pageLevel\n },\n '',\n link.getAttribute('href')\n );\n }\n }\n\n selectTabById(id) {\n const selectedTab = this.dom.tabLinks.find(\n tab => tab.dataset.panelId === id\n );\n\n if (selectedTab) {\n this.selectTab(selectedTab);\n }\n }\n\n selectMobileTab(selectedTab) {\n this.dom.dropdownButton.innerText = selectedTab.innerText.trim();\n\n this.dom.mobileLinks.forEach(item => {\n if (item === selectedTab) {\n item.setAttribute('aria-selected', true);\n item.style.display = 'none';\n } else {\n item.setAttribute('aria-selected', false);\n item.style.display = 'block';\n }\n });\n\n if (this.isMobileOpen) {\n this.toggleDropdown();\n }\n }\n\n setActiveTab(selectedTab) {\n this.dom.tabLinks.forEach(tab => {\n if (tab === selectedTab) {\n tab.parentNode.classList.add('is-active');\n } else {\n tab.parentNode.classList.remove('is-active');\n }\n });\n\n this.dom.tabPanels.forEach(panel => {\n if (panel.id === selectedTab.dataset.panelId) {\n panel.style.display = 'block';\n this.trigerPanelResetEvent(panel);\n } else {\n panel.style.display = 'none';\n }\n });\n }\n\n trigerPanelResetEvent(panel) {\n const event = new CustomEvent('panelReset', {\n bubbles: true,\n detail: {\n panel\n }\n });\n panel.dispatchEvent(event);\n }\n\n toggleDropdown() {\n this.isMobileOpen = !this.isMobileOpen;\n if (this.isMobileOpen) {\n this.dom.dropdownList.removeAttribute('hidden');\n } else {\n this.dom.dropdownList.setAttribute('hidden', true);\n }\n }\n}\n\nexport default PageTabs;\n","import { Component } from '@verndale/core';\nimport PageTabs from './PageTabs';\nimport SocialShare from '../SocialShare';\n\nclass MultipageContainer extends Component {\n constructor(el, options) {\n super(el, options);\n\n this.isDrawerOpen = false;\n\n this.handleLoad();\n\n if (this.dom.tabsContainer) {\n this.mainTabs = new PageTabs(this.dom.tabsContainer, {\n pageLevel: 1\n });\n }\n }\n\n setupDefaults() {\n this.dom = {\n backBar: this.el.querySelector('.back-to-left-side'),\n tabsContainer: this.el.querySelector('.drawer-tabs'),\n drawer: this.el.querySelector('.page-slider__container'),\n drawerContent: this.el.querySelector(\n '.page-slider__secondary-page .page-slider__content'\n )\n };\n }\n\n addListeners() {\n window.addEventListener('popstate', this.handlePopState.bind(this));\n this.dom.backBar.addEventListener('click', this.handleBackClick.bind(this));\n this.el.addEventListener('click', this.handleDrawerLinkClick.bind(this));\n }\n\n handleLoad() {\n const { hash, pathname } = window.location;\n if (hash) {\n if (hash.startsWith('#/article')) {\n const drawerUrl = hash.replace('#/article', 'insights');\n const pageTypeParts = pathname.split('/');\n const pageType = pageTypeParts[pageTypeParts.length - 1].toLowerCase();\n\n this.fetchData(`${drawerUrl}?mode=slide&pageType=${pageType}`, true);\n } else if (hash.startsWith('#/academy') && hash !== '#/academy') {\n const drawerUrl = hash.replace(\n '#/academy',\n 'davies-academy-session-manager'\n );\n\n this.fetchData(`${drawerUrl}?mode=slide`, true);\n } else {\n const link = this.el.querySelector(`[href=\"${window.location.hash}\"]`);\n\n if (link && link.dataset.drawer) {\n this.fetchData(link.dataset.drawer, true);\n }\n }\n }\n }\n\n handlePopState(e) {\n const { state } = e;\n e.preventDefault();\n\n if (state && Object.keys(state).length > 0) {\n if (state.drawerUrl && state.drawerUrl !== this.drawerURL) {\n this.fetchData(state.drawerUrl);\n } else if (\n state.pageLevel &&\n state.pageLevel === 1 &&\n this.isDrawerOpen\n ) {\n this.closeDrawer();\n }\n } else if (this.isDrawerOpen) {\n this.closeDrawer();\n }\n }\n\n handleBackClick() {\n this.closeDrawer();\n }\n\n handleDrawerLinkClick(e) {\n if (e.target.dataset.drawer) {\n this.fetchDrawerContent(e);\n }\n }\n\n async fetchDrawerContent(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n await this.fetchData(e.target.dataset.drawer);\n\n const href = e.target.getAttribute('href');\n\n if (this.innerTabs) {\n this.innerTabs.setTabs(href);\n }\n\n // Update URL\n window.history.pushState(\n {\n drawerUrl: e.target.dataset.drawer,\n panelId: href.slice(1).split('/')[3],\n subpanelId: href.slice(1).split('/')[4]\n },\n '',\n href\n );\n }\n\n async fetchData(url, replaceUrl = false) {\n // eslint-disable-next-line no-restricted-globals\n let baseUrl = '';\n this.drawerURL = url;\n\n // eslint-disable-next-line no-restricted-globals\n if (location.hostname === 'localhost') {\n baseUrl = 'https://private-89ef0c-davieswardpages.apiary-mock.com/';\n }\n\n try {\n const response = await fetch(`${baseUrl}${url}`);\n const html = await response.text();\n if (html) {\n this.dom.drawerContent.innerHTML = html;\n this.openDrawer();\n this.attachModules();\n }\n\n const { href, hash } = window.location;\n\n if (replaceUrl) {\n // Replace URL\n window.history.replaceState(\n {\n drawerUrl: url,\n panelId: hash.slice(1).split('/')[3],\n subpanelId: hash.slice(1).split('/')[4]\n },\n '',\n href\n );\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n attachModules() {\n const closeDrawer = this.dom.drawerContent.querySelector('.back-button');\n const innerContainer =\n this.dom.drawerContent.querySelector('.drawer-container');\n const innerTabs = this.dom.drawerContent.querySelector(\n '.drawer-container .tabs'\n );\n const shareModules = this.dom.drawerContent.querySelectorAll(\n '[data-module=\"SocialShare\"]'\n );\n\n const backToTabButtons =\n this.dom.drawerContent.querySelectorAll('[data-close-to]');\n\n closeDrawer.addEventListener('click', e => {\n e.preventDefault();\n this.closeDrawer(e.target.getAttribute('href'));\n });\n\n if (innerTabs) {\n this.innerTabs = new PageTabs(innerContainer, {\n pageLevel: 3\n });\n }\n\n if (shareModules.length) {\n shareModules.forEach(shareModule => {\n new SocialShare(shareModule);\n });\n }\n\n backToTabButtons.forEach(button => {\n button.addEventListener('click', e => {\n e.preventDefault();\n if (this.mainTabs) {\n this.mainTabs.selectTabById(e.currentTarget.dataset.closeTo);\n }\n this.closeDrawer(e.currentTarget.getAttribute('href'));\n });\n });\n }\n\n openDrawer() {\n this.dom.drawerContent.scrollIntoView();\n this.dom.drawer.classList.add('slide-page-open');\n this.isDrawerOpen = true;\n }\n\n closeDrawer(url) {\n this.dom.drawer.classList.remove('slide-page-open');\n this.isDrawerOpen = false;\n this.drawerURL = null;\n\n if (url) {\n const activeTab = url.replace('#/', '').split('/')[0];\n\n if (this.mainTabs && activeTab) {\n this.mainTabs.selectTabById(activeTab);\n }\n\n window.history.pushState(null, '', url);\n }\n }\n}\n\nexport default MultipageContainer;\n","import { Component } from '@verndale/core';\n\nclass SocialShare extends Component {\n setupDefaults() {\n this.dom = {\n trigger: this.el.querySelector('[data-toggle]')\n };\n }\n\n addListeners() {\n this.dom.trigger.addEventListener('click', this.toggleDropdown.bind(this));\n }\n\n toggleDropdown() {\n const elId = this.dom.trigger.dataset.toggle;\n const el = document.getElementById(elId);\n\n if (el.hidden) {\n el.removeAttribute('hidden');\n } else {\n el.setAttribute('hidden', 'true');\n }\n }\n}\n\nexport default SocialShare;\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":""}