{"version":3,"sources":["webpack:///./app/javascript/bundles/App/components/map-tools/facetsAccordion/FacetsSelector.jsx"],"names":["getfacetByName","facets","searchName","filter","facet","name","SelectFacetName","_ref","dispatch","onFacetChange","useDispatch","React","createElement","className","id","onChange","ev","value","target","selectedFacet","category","label","options","setFacetOptions","defaultValue","disabled","map","key","SelectedFacetNameDisplay","_ref2","selectedFacetData","onResetFacets","Fragment","htmlFor","onClick","CategoryOptions","_ref3","activeFacetName","activeFacetOptions","activeFacetLabel","activeFacetData","isEmpty","values","Autocomplete","multiple","size","getOptionLabel","option","filterSelectedOptions","facetIsReady","_ref4","length","isFacetReadyToFilter","renderInput","params","TextField","Object","assign","hiddenLabel","placeholder","FacetsSelector","_useSelector","useSelector","facetsListSelector","facetsData","mapConfig","pageData","mainClass","handleResetFacets","resetFacets","handleFacetChange","forceEmptyFacetFetch","zoom","mapBounds","fetchLocations","NoResults"],"mappings":"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","file":"js/8-c58162fec6e8f913a088.chunk.js","sourcesContent":["import React from 'react';\nimport { useDispatch, useSelector, useState } from 'react-redux';\nimport { isEmpty, slice } from 'lodash';\nimport TextField from '@mui/material/TextField'; \nimport Autocomplete from '@mui/material/Autocomplete'; \n\nimport { setFacetOptions, resetFacets, facetsListSelector } from '../../../reducers/facetsReducer';\nimport { fetchLocations } from '../../../actions/locationActions';\nimport NoResults from './NoResults';\n\nconst getfacetByName = (facets, searchName) => {\n return facets.filter((facet) => facet.name === searchName)[0];\n};\n\nconst SelectFacetName = ({ facets, onFacetChange }) => {\n const dispatch = useDispatch();\n\n const handleFacetNameChange = (ev) => {\n const { value } = ev.target;\n const selectedFacetData = getfacetByName(facets, value);\n const selectedFacet = {\n category: value,\n label: selectedFacetData.label,\n options: [],\n };\n dispatch(setFacetOptions(selectedFacet));\n };\n\n return (\n
\n \n \n { facets.map((facet) =>\n ())\n }\n \n
\n );\n};\n\nconst SelectedFacetNameDisplay = ({ selectedFacetData, onResetFacets, onFacetChange }) => {\n const handleResetFacets = () => {\n onResetFacets();\n onFacetChange({}, true); // force fetch locations with not facet filter if the facet is not complete.\n };\n return (<>\n \n \n {selectedFacetData.label}\n \n \n \n \n );\n};\n\nconst CategoryOptions = ({ facets, activeFacetName, activeFacetOptions, activeFacetLabel, onFacetChange }) => {\n const activeFacetData = facets.filter((facet) => facet.name === activeFacetName)[0];\n\n if(isEmpty(activeFacetName) || isEmpty(activeFacetData)) {\n return (<>);\n }\n\n const { values: options } = activeFacetData;\n const dispatch = useDispatch();\n\n const isFacetReadyToFilter = ({ category, options }) => {\n if (!category || category === '') {\n return false;\n }\n\n if (!options || options.length < 1) {\n return false;\n }\n\n return true;\n };\n\n const handleCategoryOptionChange = (ev, values) => {\n const selectedFacet = {\n category: activeFacetName,\n label: activeFacetLabel,\n options: values,\n };\n\n const facetIsReady = isFacetReadyToFilter(selectedFacet);\n\n if(facetIsReady) {\n onFacetChange(selectedFacet);\n } else {\n onFacetChange(selectedFacet, true); // force fetch locations with not facet filter if the facet is not complete.\n }\n\n dispatch(setFacetOptions(selectedFacet));\n };\n\n return (\n
\n \n option}\n defaultValue={activeFacetOptions || []}\n filterSelectedOptions\n onChange={handleCategoryOptionChange}\n renderInput={(params) => (\n )\n }\n />\n
\n );\n};\n\nfunction FacetsSelector() {\n const { facetsData, selectedFacet, mapConfig, pageData } = useSelector(facetsListSelector);\n const { category: activeFacetName, options: activeFacetOptions, label: activeFacetLabel } = selectedFacet;\n const selectedFacetData = getfacetByName(facetsData, activeFacetName);\n const mainClass = 'facets-selector';\n\n const dispatch = useDispatch();\n const handleResetFacets = () => {\n dispatch(resetFacets());\n };\n\n const handleFacetChange = (selectedFacet, forceEmptyFacetFetch) => {\n const { zoom, mapBounds } = mapConfig;\n const { options } = selectedFacet;\n if (forceEmptyFacetFetch) {\n dispatch(fetchLocations({ pageData, zoom, mapBounds, selectedFacet: {} })); // force fetch locations with not facet filter if the facet is not complete.\n return;\n }\n dispatch(fetchLocations({ pageData, zoom, mapBounds, selectedFacet }));\n };\n\n return isEmpty(facetsData) ? \n (\n
\n \n
\n ) : (\n
\n { isEmpty(selectedFacetData) ?\n () :\n ()\n }\n {\n isEmpty(activeFacetName) ? (<>) :\n \n }\n
\n );\n}\n\nexport default FacetsSelector;"],"sourceRoot":""}