{"version":3,"sources":["webpack:///./src/js/modules/coveo/engine.js","webpack:///./src/js/modules/coveo/controllers/controllers.js","webpack:///./src/js/modules/coveo/components/search-box-global.js","webpack:///./src/js/modules/coveo/modules/header-search/HeaderSearch.js","webpack:///./src/js/modules/coveo/modules/header-search/index.js"],"names":["wrapper","document","getElementsByClassName","dataset","coveoConfig","JSON","parse","coveo","originLevel3","referrer","config","organizationId","OrganizationId","accessToken","ApiKey","redirectionUrl","resultsPage","search","preprocessSearchResponseMiddleware","response","body","results","forEach","result","preprocessFacetSearchResponseMiddleware","preprocessQuerySuggestResponseMiddleware","preprocessRequest","request","clientOrigin","stringify","analytics","headlessEngine","buildSearchEngine","configuration","headlessSearchEngine","maxResultsPerPage","resultsPerPage","fieldsToInclude","searchFields","searchBox","buildSearchBox","options","highlightOptions","notMatchDelimiters","open","close","correctionDelimiters","resultList","buildResultList","sortController","buildSort","facetBreadcrumb","buildBreadcrumbManager","querySummary","buildResultsPerPage","initialState","numberOfResults","buildDateFilter","field","buildQuerySummary","pager","buildPager","numberOfPages","buildDidYouMean","SearchBoxGlobal","props","controller","controllerSearch","labels","searchURI","searchPage","window","location","toString","split","state","setState","useState","searchValue","setSearchValue","dataValue","setDataValue","useEffect","subscribe","value","addEventListener","handleClear","data","localStorage","getItem","removeEventListener","suggestionStyle","cursor","handleSuggestionClick","e","suggestion","preventDefault","selectSuggestion","handleSubmit","submit","clear","redirectTo","setItem","href","isLoading","React","className","modifier","onKeyDown","_a","key","suggestions","length","focusedElement","querySelector","firstSuggestion","lastSuggestion","focus","getElementById","nextSibling","previousSibling","autoComplete","aria-label","name","id","onChange","updateText","target","onFocus","placeholder","searchPlaceholder","htmlFor","disabled","onClick","type","viewBox","width","height","role","xlinkHref","map","style","rawValue","dangerouslySetInnerHTML","__html","highlightedValue","onMouseDown","CoveoListing","localization","searchBoxHeader","buildStandaloneSearchBox","setPipeline","loadPipelineActions","setSearchHub","loadSearchHubActions","dispatch","QuerySearchHubName","memo","HeaderSearch"],"mappings":"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","file":"43.92a08f1075e78e714903.js?v=cb66f84900d6b1797dd6","sourcesContent":["/* eslint-disable no-unused-vars */\nimport {\n buildSearchEngine,\n getSampleSearchEngineConfiguration\n} from '@coveo/headless';\n\nconst wrapper =\n document.getElementsByClassName('coveo-search-results__main-wrapper')[0] ||\n document.getElementsByClassName('coveo-search-results__global-search-box')[0];\n\nconst { dataset } = wrapper;\n\nconst coveoConfig = JSON.parse(dataset.coveo);\n\nconst originLevel3 = document.referrer || 'undefined';\n\nexport const config = {\n organizationId: coveoConfig.OrganizationId,\n accessToken: coveoConfig.ApiKey,\n redirectionUrl: dataset.resultsPage,\n search: {\n preprocessSearchResponseMiddleware: response => {\n response.body.results.forEach(result => result);\n return response;\n },\n preprocessFacetSearchResponseMiddleware: response => response,\n preprocessQuerySuggestResponseMiddleware: response => response\n },\n preprocessRequest: (request, clientOrigin) => {\n if (clientOrigin === 'searchApiFetch') {\n const body = JSON.parse(request.body);\n // E.g., modify facet requests\n // body.facets = [...];\n request.body = JSON.stringify(body);\n }\n\n if (clientOrigin === 'analyticsFetch') {\n // E.g., send data to a third party\n }\n },\n analytics: {\n originLevel3\n }\n};\n\nexport const headlessEngine = buildSearchEngine({\n configuration: config\n});\n\nexport const headlessSearchEngine = buildSearchEngine({\n configuration: config\n});\n","import {\n buildSearchBox,\n buildResultList,\n buildResultsPerPage,\n buildPager,\n buildBreadcrumbManager,\n buildQuerySummary,\n buildDateFilter,\n buildDidYouMean,\n buildSort\n} from '@coveo/headless';\nimport { headlessEngine } from '../engine';\n\nconst { dataset } =\n document.getElementsByClassName('coveo-search-results__main-wrapper')[0] ||\n document.getElementsByClassName('coveo-search-results__global-search-box')[0];\n\nexport const maxResultsPerPage = dataset.resultsPerPage\n ? JSON.parse(dataset.resultsPerPage)\n : 10;\nexport const fieldsToInclude = dataset.searchFields\n ? JSON.parse(dataset.searchFields)\n : '';\n\n/*\n Usage:\n import * as Controllers from '../../coveo/controllers/controllers';\n\n Then, in the component:\n*/\n\nexport const searchBox = buildSearchBox(headlessEngine, {\n options: {\n highlightOptions: {\n notMatchDelimiters: {\n open: '',\n close: ''\n },\n correctionDelimiters: {\n open: '',\n close: ''\n }\n }\n }\n});\n\nexport const resultList = buildResultList(headlessEngine, {\n options: {\n fieldsToInclude\n }\n});\n\nexport const sortController = buildSort(headlessEngine, {});\n\nexport const facetBreadcrumb = buildBreadcrumbManager(headlessEngine);\n\nexport const resultsPerPage = buildResultsPerPage(headlessEngine, {\n initialState: { numberOfResults: maxResultsPerPage }\n});\n\n/*\n Usage:\n \n*/\nexport const dateFilter = buildDateFilter(headlessEngine, {\n options: {\n field: 'date'\n }\n});\n\nexport const querySummary = buildQuerySummary(headlessEngine);\n\nexport const pager = buildPager(headlessEngine, {\n options: { numberOfPages: 3 }\n});\n\nexport const didYouMean = buildDidYouMean(headlessEngine);\n","import React, { useEffect, useState } from 'react';\n\nexport const SearchBoxGlobal = props => {\n const { controller, controllerSearch } = props;\n const { labels } = props;\n const searchURI = props.resultsPage;\n const searchPage = window.location.toString().split('#')[0] === searchURI;\n const [state, setState] = useState(controller.state);\n const [searchValue, setSearchValue] = useState('');\n const [dataValue, setDataValue] = useState('');\n const minQueryLengthForSuggestions = 3;\n\n useEffect(() => {\n if (!searchPage) {\n controller.subscribe(() => setState(controller.state));\n }\n }, [controller]);\n\n useEffect(() => {\n if (searchPage) {\n controllerSearch.subscribe(() => setState(controllerSearch.state));\n }\n }, [controllerSearch]);\n\n useEffect(() => {\n if (state.value === dataValue) {\n setSearchValue(dataValue);\n setDataValue(null);\n }\n }, [state]);\n\n useEffect(() => {\n window.addEventListener('clearSearchCoveo', handleClear);\n\n const data = localStorage.getItem('coveo_standalone_search_box_data');\n if (data) {\n setDataValue(JSON.parse(data).value);\n } else {\n setDataValue(null);\n }\n return () => {\n window.removeEventListener('clearSearchCoveo', handleClear);\n };\n }, []);\n\n const suggestionStyle = {\n cursor: 'pointer'\n };\n\n const handleSuggestionClick = (e, suggestion) => {\n e.preventDefault();\n if (searchPage) {\n controllerSearch.selectSuggestion(suggestion);\n } else {\n controller.selectSuggestion(suggestion);\n }\n };\n const handleSubmit = e => {\n e?.preventDefault();\n if (searchPage) {\n controllerSearch.submit();\n } else {\n controller.submit();\n }\n };\n\n const handleClear = () => {\n controllerSearch.clear();\n };\n\n if (state.redirectTo) {\n const { redirectTo, value, analytics } = state;\n const data = JSON.stringify({ value, analytics });\n localStorage.setItem('coveo_standalone_search_box_data', data);\n window.location.href = redirectTo;\n }\n\n if (state.isLoading && dataValue === null) {\n if (searchValue !== state.value) {\n setSearchValue(state.value);\n }\n }\n\n useEffect(() => {\n window.addEventListener('submitSearchCoveo', handleSubmit);\n\n return () => {\n window.removeEventListener('submitSearchCoveo', handleSubmit);\n };\n }, []);\n\n return (\n {\n if (\n e.key === 'ArrowDown' &&\n state.suggestions.length > 0 &&\n state.value?.length > minQueryLengthForSuggestions\n ) {\n e.preventDefault();\n const focusedElement = document.querySelector(\n '.coveo-search-results--header .coveo-search-results__search-box-suggestion:focus'\n );\n const firstSuggestion = document.querySelector(\n '.coveo-search-results--header .coveo-search-results__search-box-suggestion:first-child'\n );\n const lastSuggestion = document.querySelector(\n '.coveo-search-results--header .coveo-search-results__search-box-suggestion:last-child'\n );\n\n if (focusedElement === null) {\n firstSuggestion.focus();\n } else if (focusedElement === lastSuggestion) {\n // firstSuggestion.focus();\n document\n .getElementById('coveo-search-results-search-box-header')\n .focus();\n } else {\n focusedElement.nextSibling.focus();\n }\n }\n\n if (\n e.key === 'ArrowUp' &&\n state.suggestions.length > 0 &&\n state.value.length > minQueryLengthForSuggestions\n ) {\n e.preventDefault();\n const focusedElement = document.querySelector(\n '.coveo-search-results--header .coveo-search-results__search-box-suggestion:focus'\n );\n const firstSuggestion = document.querySelector(\n '.coveo-search-results--header .coveo-search-results__search-box-suggestion:first-child'\n );\n const lastSuggestion = document.querySelector(\n '.coveo-search-results--header .coveo-search-results__search-box-suggestion:last-child'\n );\n\n if (focusedElement === null) {\n lastSuggestion.focus();\n } else if (focusedElement === firstSuggestion) {\n // lastSuggestion.focus();\n document\n .getElementById('coveo-search-results-search-box-header')\n .focus();\n } else {\n focusedElement.previousSibling.focus();\n }\n }\n }}\n >\n {\n searchPage\n ? controllerSearch.updateText(e.target.value)\n : controller.updateText(e.target.value);\n setSearchValue(e.target.value);\n }}\n onFocus={() => setSearchValue(state.value)}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleSubmit(e);\n }\n }}\n placeholder={labels.searchPlaceholder}\n />\n \n {labels.search}\n \n {\n setSearchValue('');\n searchPage ? controllerSearch.clear() : controller.clear();\n }}\n className={`coveo-search-results__search-box-clear ${\n searchValue ? 'coveo-search-results__search-box-clear--active' : ''\n } form-input__icon-wrapper form-input__clear-btn`}\n type=\"button\"\n >\n \n \n \n \n {state.suggestions.length > 0 &&\n state.value.length > minQueryLengthForSuggestions && (\n
\n {state.suggestions.map(suggestion => (\n handleSuggestionClick(e, suggestion.rawValue)}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleSuggestionClick(e, suggestion.rawValue);\n }\n }}\n dangerouslySetInnerHTML={{\n __html: suggestion.highlightedValue\n }}\n onMouseDown={e => e.preventDefault()}\n >\n ))}\n
\n )}\n {\n if (searchValue?.length > 0) {\n handleSubmit();\n }\n }}\n className={`coveo-search-results__search-box-search ${\n state.value ? 'coveo-search-results__search-box-search--active' : ''\n } btn siplast--sg header-search__term-btn`}\n >\n \n \n \n \n \n );\n};\n","import React, { useEffect } from 'react';\nimport {\n buildStandaloneSearchBox,\n loadPipelineActions,\n loadSearchHubActions\n} from '@coveo/headless';\nimport { SearchBoxGlobal } from '../../components/search-box-global';\nimport { headlessSearchEngine } from '../../engine';\nimport { searchBox } from '../../controllers/controllers';\n\nfunction CoveoListing(props) {\n const localization = JSON.parse(props.localization);\n const searchFields = JSON.parse(props.searchFields);\n const coveoConfig = JSON.parse(props.coveo);\n const searchBoxHeader = buildStandaloneSearchBox(headlessSearchEngine, {\n options: {\n redirectionUrl: props.resultsPage,\n highlightOptions: {\n notMatchDelimiters: {\n open: '',\n close: ''\n },\n correctionDelimiters: {\n open: '',\n close: ''\n }\n }\n }\n });\n\n // Setting up the custom properties for the search engine (Pipeline, SearchHub, fields, etc.)\n useEffect(() => {\n const { setPipeline } = loadPipelineActions(headlessSearchEngine);\n const { setSearchHub } = loadSearchHubActions(headlessSearchEngine);\n headlessSearchEngine.dispatch(setSearchHub(coveoConfig.QuerySearchHubName));\n headlessSearchEngine.dispatch(setPipeline(coveoConfig.QuerySearchHubName));\n });\n\n return (\n
\n \n
\n );\n}\n\nexport default CoveoListing;\n","import React from 'react';\nimport HeaderSearch from './HeaderSearch';\n\nexport default React.memo(HeaderSearch);\n"],"sourceRoot":""}