{"version":3,"file":"chunks/Components-Shared-FacetedSearch-FacetedSearch.js","mappings":"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","sources":["webpack:///./React/Components/Shared/FacetedSearch/FacetedSearch.jsx","webpack:///./React/Components/Shared/FacetedSearch/FacetedSearchReducer.jsx","webpack:///./React/Components/Shared/WebWorker.jsx"],"sourcesContent":[" import { useState, useReducer, useRef, useEffect } from 'react';\r\nimport { useWindowSize } from '@Components/Utilities/WindowSize';\r\nimport { getOuterHeight } from '@Components/Utilities/SandhillsUtility';\r\nimport { loadable } from '@Components/Utilities/SandhillsLoadable';\r\nimport usePassiveLayoutEffect from '@react-hook/passive-layout-effect';\r\nimport TranslationText from '@Components/Utilities/TranslationText';\r\nimport translator from '@Components/Utilities/Translator';\r\nimport facetedSearchReducer from '@Components/Shared/FacetedSearch/FacetedSearchReducer';\r\nimport ready from 'document-ready';\r\nimport WebSavedSearchesButton from '@Components/WebSavedSearches/WebSavedSearchesButton';\r\nimport atoms from '@Components/Utilities/SandhillsAtoms';\r\nimport { useRecoilValue } from 'recoil';\r\n\r\nconst FacetedSearchSelectedFacet = loadable(() => import('@Components/Shared/FacetedSearch/FacetedSearchSelectedFacet'));\r\nconst FacetedSearchModal = loadable(() => import('@Components/Shared/FacetedSearch/FacetedSearchModal'), true);\r\nconst FacetedSearchField = loadable(() => import('@Components/Shared/FacetedSearch/FacetedSearchField'));\r\n\r\nconst FacetedSearch = (props) => {\r\n\r\n const windowSize = useWindowSize();\r\n const selectedFacetsRef = useRef(null);\r\n const [facetedSearchModal, dispatchFacetedSearchModal] = useReducer(facetedSearchReducer, { Options: [], ShowLoadingSpinner: true });\r\n const [showFacetedSearchModal, setShowFacetedSearchModal] = useState(props.openFacetedModalOnLoad);\r\n const [showAllSelectedOptions, setShowAllSelectedOptions] = useState(false);\r\n const currentUser = useRecoilValue(atoms.currentUser);\r\n const currentWebsite = useRecoilValue(atoms.currentWebsite);\r\n\r\n useEffect(() => {\r\n if (props.openFacetedModalOnLoad) {\r\n FacetedSearchModal.preload();\r\n }\r\n }, []);\r\n\r\n usePassiveLayoutEffect(() => {\r\n ready(() => adjustCollapsedAppliedFacetHeight(!showAllSelectedOptions));\r\n }, [props.SearchFields, props.SelectedFacets]);\r\n\r\n const onFacetOpen = () => {\r\n FacetedSearchSelectedFacet.preload();\r\n };\r\n\r\n const toggleSelectedOptions = () => {\r\n adjustCollapsedAppliedFacetHeight(showAllSelectedOptions);\r\n setShowAllSelectedOptions(showAllSelectedOptions => !showAllSelectedOptions);\r\n };\r\n\r\n const getCollapsedAppliedFacetMaxHeight = () => {\r\n return FacetedSearchSelectedFacet.load().then((f) => {\r\n return (getOuterHeight(selectedFacetsRef.current.firstChild, true) * 2) + 5;\r\n });\r\n };\r\n\r\n const adjustCollapsedAppliedFacetHeight = (adjustMaxHeight) => {\r\n if (selectedFacetsRef.current && selectedFacetsRef.current.firstChild) {\r\n getCollapsedAppliedFacetMaxHeight().then(maxHeight => {\r\n if (adjustMaxHeight) {\r\n selectedFacetsRef.current.style.whiteSpace = 'nowrap';\r\n selectedFacetsRef.current.style.maxHeight = maxHeight + 'px';\r\n } else {\r\n selectedFacetsRef.current.style.whiteSpace = 'normal';\r\n selectedFacetsRef.current.style.maxHeight = '';\r\n }\r\n\r\n if (selectedFacetsRef.current.clientHeight < maxHeight) {\r\n document.getElementsByClassName('facets-toggle')?.[0]?.setAttribute('style', 'display: none;');\r\n } else {\r\n document.getElementsByClassName('facets-toggle')?.[0]?.setAttribute('style', '');\r\n }\r\n });\r\n }\r\n };\r\n\r\n const renderSelectedFacets = () => {\r\n let facets = props.SelectedFacets ? props.SelectedFacets : props.SearchFields;\r\n return (facets.map(field =>\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n

{translator.translate('sandhills.appliedfilters')}

\r\n {windowSize.isMobile &&\r\n
\r\n { if (e.key === \"Enter\" || e.key === ' ') { e.preventDefault(); props.toggleMobileFilter(); } }} onClick={props.toggleMobileFilter}>\r\n \r\n \r\n
}\r\n {(props.ListingsCount <= 0 && (props.renderError && typeof props.renderError === 'function')) && props.renderError()}\r\n {(!props.IsDefaultSearch || (props.ListingsCount <= 0 && !props.IsWatchList && !props.IsEventsPage) || (props.EnableWebSavedSearches && currentUser.IsAuthenticated && !windowSize.isMobile) || (currentWebsite?.Site?.IsBidcaller && props.IsAttachmentAjaxSearch)) &&\r\n
\r\n {windowSize.isMobile &&\r\n
\r\n :\r\n
}\r\n
\r\n {(!props.IsDefaultSearch || (props.ListingsCount <= 0 && !props.IsWatchList) || (currentWebsite?.Site?.IsBidcaller && props.IsDefaultSearch)) &&\r\n <>\r\n
\r\n \r\n \r\n
\r\n
\r\n {renderSelectedFacets()}\r\n
\r\n
\r\n { if (e.key === \"Enter\" || e.key === ' ') { e.preventDefault(); toggleSelectedOptions(); } }} onClick={toggleSelectedOptions}>\r\n {showAllSelectedOptions ?\r\n :\r\n }\r\n \r\n
\r\n \r\n }\r\n {((props.EnableWebSavedSearches && !props.TurnOffDefaultSaveThisSearch && props.savedSearchData && !windowSize.isMobile) || (!windowSize.isMobile && props.EnableWebSavedSearches && ((!props.IsDefaultSearch && !props.TurnOffDefaultSaveThisSearch) || currentUser.IsAuthenticated))) &&\r\n \r\n }\r\n
\r\n
}\r\n
\r\n {props.isAttachmentPage && props.SearchFields.filter(item => !item.IsFitsTo && !item.GroupName && item.Type !== 'Hidden' && (item.FieldName == 'keywords' || item.FieldName == 'LotNumber' || item.FieldName == 'InventoryType' || item.FieldName == 'WLID')).map(item =>\r\n 0 && props.SelectedFacets.some(facet => facet.FieldName === item.FieldName || facet.SpecGroupName === item.FieldName))}\r\n DispatchFacetedSearchModal={dispatchFacetedSearchModal}\r\n SetShowModal={setShowFacetedSearchModal}\r\n ShowModal={showFacetedSearchModal}\r\n IsEmptySearch={props.ListingsCount <= 0 && !((props.isDealerInventoryLandingPage && props?.EmptyDealerLandingPageEnabledFacets?.includes(item.FieldName)) || item.EnableOnEmptySearch)}\r\n ClearFacet={props.clearFacet}\r\n UseSEOHTagReorganization={props.UseSEOHTagReorganization}\r\n ClassificationToForceScope={props.ClassificationToForceScope}\r\n />)}\r\n {props.isAttachmentPage &&\r\n
\r\n \r\n
\r\n }\r\n {props.SearchFields.filter(item => !item.IsFitsTo && !item.GroupName && item.Type !== 'Hidden' && (!props.isAttachmentPage || (props.isAttachmentPage && item.FieldName !== 'keywords' && item.FieldName !== 'LotNumber' && item.FieldName !== 'InventoryType' && item.FieldName !== 'WLID'))).map(item =>\r\n 0 && props.SelectedFacets.some(facet => facet.FieldName === item.FieldName || facet.SpecGroupName === item.FieldName))}\r\n DispatchFacetedSearchModal={dispatchFacetedSearchModal}\r\n SetShowModal={setShowFacetedSearchModal}\r\n ShowModal={showFacetedSearchModal}\r\n IsEmptySearch={props.ListingsCount <= 0 && !((props.isDealerInventoryLandingPage && props?.EmptyDealerLandingPageEnabledFacets?.includes(item.FieldName)) || item.EnableOnEmptySearch)}\r\n ClearFacet={props.clearFacet}\r\n UseSEOHTagReorganization={props.UseSEOHTagReorganization}\r\n ClassificationToForceScope={props.ClassificationToForceScope}\r\n\r\n />)}\r\n {props.SearchFields.some(item => item.IsFitsTo) &&\r\n
\r\n \r\n
}\r\n {props.SearchFields.filter(item => item.IsFitsTo).map(item =>\r\n )}\r\n {props.SearchFields.some(item => !item.IsFitsTo && item.GroupName) &&\r\n
\r\n {props.isAttachmentPage ? : }\r\n
}\r\n {props.SearchFields.filter(item => !item.IsFitsTo && item.GroupName).map(item =>\r\n )}\r\n
\r\n
\r\n {showFacetedSearchModal &&\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default FacetedSearch;","import { useWorker } from '@Components/Shared/WebWorker';\r\n\r\nconst facetedSearchReducer = (state, action) => {\r\n switch (action.type) {\r\n case 'update':\r\n return {\r\n ...state,\r\n ...action.payload,\r\n SearchWorker: getFacetedSearchWorker(state.SearchWorker, action.payload.SearchDispatcher)\r\n };\r\n case 'destroy':\r\n return {\r\n Options: [],\r\n ShowLoadingSpinner: true,\r\n SearchWorker: state.SearchWorker\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst getFacetedSearchWorker = (worker, dispatcher) => {\r\n if (worker) {\r\n return worker;\r\n } else {\r\n return useWorker(() => {\r\n self.addEventListener('message', (e) => {\r\n if (e.data.nestedTree) {\r\n const search = (option, text, parentMatches, selectedFilterOptions, parentIsFilterBySelected, searchResult) => {\r\n searchResult.push(option);\r\n option.Visible = false;\r\n let addParent = false;\r\n let isFilterBySelected = false;\r\n let filterBySelectionsAreChecked = false;\r\n if (selectedFilterOptions && selectedFilterOptions.length > 0) {\r\n filterBySelectionsAreChecked = true;\r\n isFilterBySelected = selectedFilterOptions.some(item => item.Value == option.Value);\r\n }\r\n if (((!text || text === '') || anyMatches(option.Name, text)) &&\r\n (isFilterBySelected || !filterBySelectionsAreChecked || parentMatches || parentIsFilterBySelected)) {\r\n addParent = true;\r\n option.Visible = true;\r\n }\r\n if (option.Children && option.Children.length > 0) {\r\n let children = [];\r\n let childrenLength = option.Children.length;\r\n for (var i = 0; i < childrenLength; i++) {\r\n let child = search(option.Children[i], text, (parentMatches || addParent), selectedFilterOptions, (parentIsFilterBySelected || isFilterBySelected), searchResult);\r\n children.push(child);\r\n if (child.Visible) {\r\n option.Visible = true;\r\n }\r\n }\r\n option.Children = children;\r\n }\r\n return option;\r\n };\r\n let selectedFilterOptions = e.data.selectedFilterOptions;\r\n if (!selectedFilterOptions) {\r\n if (e.data.filterOptions.length > 0) {\r\n selectedFilterOptions = e.data.filterOptions.filter(option => option.Checked);\r\n }\r\n }\r\n let nestedTree = [];\r\n let searchResult = [];\r\n let searchText = e.data.text.toLowerCase();\r\n e.data.nestedTree.forEach(option => nestedTree.push(search(option, searchText, false, selectedFilterOptions, false, searchResult)));\r\n postMessage({\r\n searchResult: searchResult,\r\n nestedTreeResult: nestedTree\r\n });\r\n }\r\n\r\n function anyMatches(fullText, typed) {\r\n var text = fullText.toLowerCase();\r\n var typedText = typed.toLowerCase();\r\n var match = text.indexOf(typedText) !== -1;\r\n\r\n if (!match) {\r\n text = replaceSpecialCharacters(text);\r\n typedText = replaceSpecialCharacters(typedText);\r\n match = text.indexOf(typedText) !== -1\r\n }\r\n\r\n return match;\r\n };\r\n\r\n //Can't pass function/library into web workers so creating custom method\r\n function replaceSpecialCharacters(text) {\r\n return text\r\n .replace(/\\u00c0/g, 'a') //À\r\n .replace(/\\u00e0/g, 'a') //à\r\n .replace(/\\u00c1/g, 'a') //Á\r\n .replace(/\\u00e1/g, 'a') //á\r\n .replace(/\\u00c2/g, 'a') //Â\r\n .replace(/\\u00e2/g, 'a') //â\r\n .replace(/\\u00c3/g, 'a') //Ã\r\n .replace(/\\u00e3/g, 'a') //ã\r\n .replace(/\\u00c4/g, 'a') //Ä\r\n .replace(/\\u00c5/g, 'a') //Å\r\n .replace(/\\u00e5/g, 'a') //å\r\n .replace(/\\u00c8/g, 'e') //È\r\n .replace(/\\u00e8/g, 'e') //è\r\n .replace(/\\u00c9/g, 'e') //É\r\n .replace(/\\u00e9/g, 'e') //é\r\n .replace(/\\u00ca/g, 'e') //Ê\r\n .replace(/\\u00ea/g, 'e') //ê\r\n .replace(/\\u00cb/g, 'e') //Ë\r\n .replace(/\\u00eb/g, 'e') //ë\r\n .replace(/\\u00cc/g, 'i') //Ì\r\n .replace(/\\u00ec/g, 'i') //ì\r\n .replace(/\\u00cd/g, 'i') //Í\r\n .replace(/\\u00ed/g, 'i') //í\r\n .replace(/\\u00ce/g, 'i') //Î\r\n .replace(/\\u00ee/g, 'i') //î\r\n .replace(/\\u00cf/g, 'i') //Ï\r\n .replace(/\\u00ef/g, 'i') //ï\r\n .replace(/\\u00d1/g, 'n') //Ñ\r\n .replace(/\\u00f1/g, 'n') //ñ\r\n .replace(/\\u00d2/g, 'o') //Ò\r\n .replace(/\\u00f2/g, 'o') //ò\r\n .replace(/\\u00d3/g, 'o') //Ó\r\n .replace(/\\u00f3/g, 'o') //ó\r\n .replace(/\\u00d4/g, 'o') //Ô\r\n .replace(/\\u00f4/g, 'o') //ô\r\n .replace(/\\u00d5/g, 'o') //Õ\r\n .replace(/\\u00f5/g, 'o') //õ\r\n .replace(/\\u00d6/g, 'o') //Ö\r\n .replace(/\\u00f6/g, 'o') //ö\r\n .replace(/\\u00f6/g, 'o') //ö\r\n .replace(/\\u00df/g, 'ss') //ß\r\n .replace(/\\u00d9/g, 'u') //Ù\r\n .replace(/\\u00f9/g, 'u') //ù\r\n .replace(/\\u00da/g, 'u') //Ú\r\n .replace(/\\u00fa/g, 'u') //ú\r\n .replace(/\\u00db/g, 'u') //Û\r\n .replace(/\\u00fb/g, 'u') //û\r\n .replace(/\\u00dc/g, 'u') //Ü\r\n .replace(/\\u00fc/g, 'u') //ü\r\n .replace(/\\u00dd/g, 'y') //Ý\r\n .replace(/\\u00fd/g, 'y') //ý\r\n .replace(/\\u0178/g, 'y') //Ÿ\r\n .replace(/\\u00ff/g, 'y'); //ÿ\r\n }\r\n });\r\n }, dispatcher);\r\n }\r\n};\r\n\r\nconst buildNestedTree = (items, keepSpecLandingInGroup) => {\r\n let nestedTree = [];\r\n let options = [];\r\n if (items) {\r\n let [hasOptionsChecked, hasSpecLandingTermOptionsChecked] = [false, false];\r\n if (keepSpecLandingInGroup) {\r\n hasOptionsChecked = items.some(i => i.Checked);\r\n hasSpecLandingTermOptionsChecked = items.some(i => i.IsSpecLandingTerm && i.Checked);\r\n }\r\n items.forEach(option => {\r\n if (!option.ParentValue) {\r\n option.Visible = true;\r\n nestedTree.push(option);\r\n }\r\n if (keepSpecLandingInGroup && hasOptionsChecked) {\r\n if (hasSpecLandingTermOptionsChecked) {\r\n option.Disabled = !option.IsSpecLandingTerm;\r\n }\r\n else {\r\n option.Disabled = option.IsSpecLandingTerm;\r\n }\r\n }\r\n });\r\n }\r\n nestedTree.forEach(option => {\r\n options.push(option);\r\n let descendants = buildDescendants(items, option);\r\n option.Children = descendants.children;\r\n options = options.concat(descendants.options);\r\n });\r\n return {\r\n nestedTree: nestedTree,\r\n options: options\r\n };\r\n};\r\n\r\nconst buildDescendants = (items, parent) => {\r\n let children = [];\r\n let options = [];\r\n items.forEach(option => {\r\n if (option !== parent && parent.Value == option.ParentValue) {\r\n option.Visible = true;\r\n children.push(option);\r\n }\r\n });\r\n if (children.length > 0) {\r\n children.forEach(option => {\r\n options.push(option);\r\n if (option.IsGroup) {\r\n let childObject = buildDescendants(items, option);\r\n option.Children = childObject.children;\r\n options = options.concat(childObject.options);\r\n }\r\n });\r\n }\r\n return {\r\n children: children,\r\n options: options\r\n };\r\n};\r\n\r\nconst applyFacet = (selectedOption, isChecked, options, nestedTree, parentNameForSearch, isSpecLandingTermFacet, keepSpecLandingInGroup) => {\r\n let newOptions = [];\r\n let newNestedTree = [];\r\n let checkedValues = [];\r\n let uncheckedValues = [];\r\n let excludedCheckedValues = [];\r\n let oneMustBeSelectedIndividually = nestedTree.some(option => option.MustBeSelectedIndividually);\r\n const getChildrenValues = (currentOption, optionIsChecked) => {\r\n let children = options.filter(option => option.ParentValue == currentOption.Value);\r\n if (children.some(c => c.Checked)) {\r\n children.forEach(option => {\r\n if (optionIsChecked) {\r\n checkedValues.push(option);\r\n excludedCheckedValues.push(option.ReactKey);\r\n } else {\r\n uncheckedValues.push(option.ReactKey);\r\n }\r\n });\r\n } else {\r\n children.forEach(option => excludedCheckedValues.push(option.ReactKey));\r\n }\r\n if (children.some(c => c.IsGroup && c.Children && c.Children.length > 0)) {\r\n children.filter(c => c.IsGroup && c.Children && c.Children.length > 0).forEach(option => getChildrenValues(option, option.Checked));\r\n }\r\n };\r\n const getParentValues = (currentOption, optionIsChecked) => {\r\n let parent = options.filter(option => option.Value == currentOption.ParentValue)[0];\r\n if (parent) {\r\n let parentIsChecked = false;\r\n let childrendUnderParent = options.filter(option => option.ParentValue == parent.Value);\r\n // if any children are not checked, uncheck the parent:\r\n if (!optionIsChecked || childrendUnderParent.some(c => !c.Checked)) {\r\n uncheckedValues.push(parent.ReactKey);\r\n } else {\r\n // otherwise check the parent and uncheck all the children:\r\n parentIsChecked = true;\r\n checkedValues.push(parent);\r\n childrendUnderParent.forEach(c => excludedCheckedValues.push(c.ReactKey));\r\n }\r\n if (parent.ParentValue) {\r\n getParentValues(parent, parentIsChecked);\r\n }\r\n }\r\n };\r\n const checkOption = (option) => {\r\n let newOption = { ...option };\r\n if (newOption.ReactKey == selectedOption.ReactKey && ((newOption.IsGroup && selectedOption.IsGroup) || (!newOption.IsGroup && !selectedOption.IsGroup))) {\r\n newOption.Checked = isChecked;\r\n }\r\n if (isSpecLandingTermFacet && isChecked) {\r\n if (selectedOption.IsSpecLandingTerm) {\r\n //if spec landing term facet and last selection was spec landing term, uncheck any non-spec landing terms\r\n newOption.Checked = newOption.Checked && newOption.IsSpecLandingTerm;\r\n }\r\n else {\r\n //if spec landing term facet and last selection was non spec landing term, uncheck any spec landing terms\r\n newOption.Checked = newOption.Checked && !newOption.IsSpecLandingTerm;\r\n }\r\n }\r\n if (newOption.Checked && uncheckedValues.indexOf(newOption.ReactKey) < 0 && ((excludedCheckedValues.indexOf(newOption.ReactKey) < 0) || (parentNameForSearch && newOption.IsGroup))) {\r\n checkedValues.push(newOption);\r\n }\r\n if (uncheckedValues.length > 0) {\r\n let uncheckedIndex = uncheckedValues.indexOf(newOption.ReactKey);\r\n if (uncheckedIndex > -1) {\r\n uncheckedValues.splice(uncheckedIndex, 1);\r\n newOption.Checked = false;\r\n }\r\n }\r\n let checkedIndex = checkedValues.findIndex(facet => facet.ReactKey == newOption.ReactKey);\r\n if (checkedIndex > -1) {\r\n newOption.Checked = true;\r\n }\r\n\r\n if (keepSpecLandingInGroup) {\r\n let hasOptionsChecked = options.some(op => op.Checked && op.ReactKey != selectedOption.ReactKey);\r\n if (isChecked || hasOptionsChecked) {\r\n let hasSpecLandingTermOptionsChecked = options.some(op => op.IsSpecLandingTerm && op.Checked);\r\n if (selectedOption.IsSpecLandingTerm) {\r\n newOption.Disabled = !newOption.IsSpecLandingTerm && (isChecked || hasSpecLandingTermOptionsChecked);\r\n }\r\n else {\r\n newOption.Disabled = newOption.IsSpecLandingTerm && (isChecked || !hasSpecLandingTermOptionsChecked);\r\n }\r\n }\r\n else {\r\n newOption.Disabled = false;\r\n }\r\n }\r\n\r\n return newOption;\r\n };\r\n const rebuildChildren = (parent) => {\r\n let children = [];\r\n parent.Children.map(option => {\r\n let newOption = checkOption(option);\r\n newOptions.push(newOption);\r\n if (newOption.IsGroup) {\r\n newOption.Children = rebuildChildren(newOption);\r\n }\r\n children.push(newOption);\r\n });\r\n return children;\r\n };\r\n // checkbox click logic starts here:\r\n if (oneMustBeSelectedIndividually) {\r\n if (selectedOption.MustBeSelectedIndividually && isChecked) {\r\n // if selected option is MustBeSelectedIndividually and is checked then deselect other values:\r\n nestedTree.forEach(option => {\r\n if (option.Value != selectedOption.Value) {\r\n uncheckedValues.push(option.ReactKey);\r\n }\r\n });\r\n } else if (isChecked && nestedTree.some(option => option.MustBeSelectedIndividually && option.Checked)) {\r\n // if selected option is not MustBeSelectedIndividually then deselect any MustBeSelectedIndividually options if there are any checked:\r\n nestedTree.forEach(option => {\r\n if (option.MustBeSelectedIndividually) {\r\n uncheckedValues.push(option.ReactKey);\r\n }\r\n });\r\n }\r\n }\r\n // if selected option was just checked and has children, uncheck them all, otherwise ignore they would be unchecked anyways:\r\n if (selectedOption.IsGroup && selectedOption.Children && selectedOption.Children.length > 0) {\r\n getChildrenValues(selectedOption, isChecked);\r\n }\r\n // if selected option is a child itself, handle parent selections, \r\n // either we checked the last child to complete a parent selection, we checked child and need to deselect all parents, or no parents are selected anyways so we do nothing:\r\n if (selectedOption.ParentValue) {\r\n getParentValues(selectedOption, isChecked);\r\n }\r\n\r\n // update all option checkboxes and sync up the family tree:\r\n newNestedTree = [...nestedTree].map(option => {\r\n let newOption = checkOption(option);\r\n newOptions.push(newOption);\r\n if (newOption.IsGroup) {\r\n newOption.Children = rebuildChildren(newOption);\r\n }\r\n return newOption;\r\n });\r\n return {\r\n options: newOptions,\r\n nestedTree: newNestedTree,\r\n currentFilter: checkedValues\r\n };\r\n};\r\n\r\nexport default facetedSearchReducer;\r\nexport { buildNestedTree, applyFacet };","\r\nexport function useWorker(fn, successCallback) {\r\n const code = fn.toString();\r\n const blob = new Blob(['(' + code + ')()'], { type: 'text/javascript' });\r\n var worker = new Worker('' + URL.createObjectURL(blob)); //takes in an additional parameter 'options' that's an object. ex: {type: 'module'}\r\n worker.addEventListener('message', event => successCallback(event)); //event to handle data received from the worker\r\n return worker;\r\n}"],"names":["FacetedSearchSelectedFacet","loadable","resolved","chunkName","isReady","props","key","resolve","__webpack_modules__","importAsync","requireAsync","then","requireSync","id","__webpack_require__","FacetedSearchModal","FacetedSearchField","FacetedSearch","_currentWebsite$Site","_currentWebsite$Site2","windowSize","useWindowSize","selectedFacetsRef","useRef","facetedSearchModal","dispatchFacetedSearchModal","useReducer","facetedSearchReducer","Options","ShowLoadingSpinner","showFacetedSearchModal","setShowFacetedSearchModal","useState","openFacetedModalOnLoad","showAllSelectedOptions","setShowAllSelectedOptions","currentUser","useRecoilValue","atoms","currentWebsite","useEffect","preload","usePassiveLayoutEffect","ready","adjustCollapsedAppliedFacetHeight","SearchFields","SelectedFacets","onFacetOpen","toggleSelectedOptions","adjustMaxHeight","current","firstChild","load","f","getOuterHeight","maxHeight","_document$getElements","_document$getElements2","_document$getElements3","_document$getElements4","style","whiteSpace","clientHeight","document","getElementsByClassName","setAttribute","_jsxs","_Fragment","children","className","showMobileFilters","disabled","_jsx","translator","isMobile","role","tabIndex","onKeyDown","e","preventDefault","toggleMobileFilter","onClick","TranslationText","tKey","ListingsCount","renderError","IsDefaultSearch","IsWatchList","IsEventsPage","EnableWebSavedSearches","IsAuthenticated","Site","IsBidcaller","IsAttachmentAjaxSearch","clearAll","ref","map","field","_createElement","_objectSpread","FieldName","ClearFacet","clearFacet","SearchURL","SearchBaseURL","display","TurnOffDefaultSaveThisSearch","savedSearchData","WebSavedSearchesButton","openModal","openSavedSearchModal","closeModal","closeSavedSearchModal","getWebSavedSearches","removeWebSavedSearch","saveCurrentSearch","updateWebSavedSearch","setPendingSave","isAttachmentPage","filter","item","IsFitsTo","GroupName","Type","_props$EmptyDealerLan","SpecGroupName","RunSearch","runSearch","MobileSearch","mobileSearch","ShowMobileFilters","ToggleMobileFilter","HasOptionsSelected","length","some","facet","DispatchFacetedSearchModal","SetShowModal","ShowModal","IsEmptySearch","isDealerInventoryLandingPage","EmptyDealerLandingPageEnabledFacets","includes","EnableOnEmptySearch","UseSEOHTagReorganization","ClassificationToForceScope","_props$EmptyDealerLan2","UseNextUpFacets","useNextUpFacets","getFacetedSearchWorker","worker","dispatcher","useWorker","self","addEventListener","data","nestedTree","search","option","text","parentMatches","selectedFilterOptions","parentIsFilterBySelected","searchResult","push","Visible","addParent","isFilterBySelected","filterBySelectionsAreChecked","Value","fullText","typed","toLowerCase","typedText","match","indexOf","replaceSpecialCharacters","anyMatches","Name","Children","childrenLength","i","child","filterOptions","Checked","searchText","forEach","postMessage","nestedTreeResult","replace","buildNestedTree","items","keepSpecLandingInGroup","options","hasOptionsChecked","hasSpecLandingTermOptionsChecked","IsSpecLandingTerm","ParentValue","Disabled","descendants","buildDescendants","concat","parent","IsGroup","childObject","applyFacet","selectedOption","isChecked","parentNameForSearch","isSpecLandingTermFacet","newNestedTree","newOptions","checkedValues","uncheckedValues","excludedCheckedValues","oneMustBeSelectedIndividually","MustBeSelectedIndividually","getChildrenValues","currentOption","optionIsChecked","c","ReactKey","getParentValues","parentIsChecked","childrendUnderParent","checkOption","newOption","uncheckedIndex","splice","findIndex","op","rebuildChildren","currentFilter","state","action","type","payload","SearchWorker","SearchDispatcher","fn","successCallback","code","toString","blob","Blob","Worker","URL","createObjectURL","event"],"sourceRoot":""}