{"version":3,"sources":["webpack:///./src/js/react-components/filtered-listing-new/card-list.js","webpack:///./src/js/react-components/filtered-listing-new/index.js"],"names":["CardsList","cards","limit","slice","map","card","className","key","Id","src","Image","width","height","alt","Heading","loading","href","Url","Summary","FilteredListing","showFilter","content","filters","buttonLabel","noResultsMessage","heading","labelSet","sortedItems","items","sort","a","b","ha","toLowerCase","trim","hb","sortItems","JSON","parse","Items","setItems","useState","filter","setFilter","activeItems","setActiveItems","filtersData","filterValues","setFilterValues","setLimit","length","filterData","index","onChange","e","value","id","tempValues","clearedValues","val","item","every","Tags","includes","setOption","target","defaultValue","Options","FilterLabel","option","Child","childOption","Children","grandChildren","onClick","prev"],"mappings":"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","file":"102.bundle.js","sourcesContent":["import React from 'react'\n\nfunction CardsList({ cards, limit }) {\n return (\n <>\n {cards\n ? cards.slice(0, limit).map((card) => (\n
\n \n\n
\n

\n \n {card.Heading}\n \n

\n

{card.Summary}

\n
\n
\n ))\n : null}\n \n )\n}\n\nexport default CardsList\n","/* eslint-disable indent */\nimport React, { useRef, useState } from 'react'\nimport CardsList from './card-list'\n\nconst MAX_ITEMS = 8\n\nconst sortItems = (items) => {\n return items.sort((a, b) => {\n const ha = a.Heading.toLowerCase().trim()\n const hb = b.Heading.toLowerCase().trim()\n\n if (ha < hb) {\n return -1\n }\n if (ha > hb) {\n return 1\n }\n return 0\n })\n}\n\nfunction FilteredListing({\n showFilter,\n content,\n filters,\n buttonLabel,\n noResultsMessage,\n heading,\n labelSet\n}) {\n const sortedItems = sortItems(JSON.parse(content).Items)\n const [items, setItems] = useState(sortedItems|| null)\n const [filter, setFilter] = useState(showFilter === 'true' ? true : false)\n const [activeItems, setActiveItems] = useState(sortedItems || null)\n const [filtersData] = useState(JSON.parse(filters) || null)\n const [filterValues, setFilterValues] = useState(['', '', ''])\n\n const [limit, setLimit] = useState(MAX_ITEMS)\n const loadMore = () => setLimit((prev) => prev + MAX_ITEMS)\n const setOption = (value, id) => {\n const tempValues = filterValues\n\n tempValues[id] = value\n\n const clearedValues = tempValues.filter((val) => val !== '')\n\n setLimit(MAX_ITEMS)\n\n if (clearedValues.length > 0) {\n setActiveItems(items.filter((item) => clearedValues.every((val) => item.Tags?.includes(val))))\n } else {\n setActiveItems(items)\n }\n\n setFilterValues(tempValues)\n }\n\n const labels = JSON.parse(labelSet)\n\n return (\n
\n
\n

{heading}

\n {filtersData?.length > 0 && filter ? (\n
\n {filtersData.map((filterData, index) => (\n setOption(e.target.value, index)}\n defaultValue={filterData.Options?.[0] || null}\n >\n \n {filterData.Options.length > 0 &&\n filterData.Options.map((option, index) =>\n option.Child.map((childOption, index) => (\n <>\n \n {childOption.Children?.length > 0 ? (\n <>\n {childOption.Children?.map((grandChildren, index) => (\n \n    {grandChildren.Heading}\n \n ))}\n \n ) : null}\n \n ))\n )}\n \n ))}\n
\n ) : null}\n
\n
\n {activeItems?.length > 0 ? (\n \n ) : (\n

{noResultsMessage}

\n )}\n
\n {activeItems?.length > limit ? (\n loadMore()}\n className=\"btn btn--yellow btn--small filter-content__btn\"\n >\n {buttonLabel}\n \n ) : null}\n
\n )\n}\n\nexport default FilteredListing\n"],"sourceRoot":""}