{"version":3,"file":"FacetAccordion-Dt0lzcnu.js","sources":["../../src/scripts/modules/react-modules/Listings/Facets/FacetAccordion.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger\n} from '../../../../components/react-components/Accordion';\nimport { Checkbox } from '../../../../components/react-components/Checkbox';\nimport { FacetProps } from '../types';\n\ntype FacetDataItem = {\n name: string;\n count: number;\n};\n\nexport type FacetData = {\n [key: string]: {\n Categories: {\n IdTitle: FacetDataItem[];\n };\n };\n};\n\ntype OwnProps = {\n facets: FacetProps[];\n onSelectionChangeHandler: (selectedFacetID: string, value: string | null) => void;\n facetsData: FacetData | null;\n};\n\nconst FacetAccordion = ({ facets, facetsData, onSelectionChangeHandler }: OwnProps) => {\n const [value, setValue] = useState('');\n const [updatedFacets, setUpdatedFacets] = useState(facets);\n\n useEffect(() => {\n if (facets.length > 0) {\n setValue(facets[0].id);\n }\n }, [facets]);\n\n useEffect(() => {\n if (facetsData) {\n const newUpdatedFacets = facets.map(facet => {\n const updatedItems = facet.items.map(item => {\n const matchingFacet = facetsData[facet.id]?.Categories.IdTitle;\n const matchingItem = matchingFacet?.find(f => f.name.split('|')[1] === item.value);\n return {\n ...item,\n count: matchingItem ? matchingItem.count : 0 // Set count to 0 if no match\n };\n });\n\n return {\n ...facet,\n items: updatedItems\n };\n });\n\n setUpdatedFacets(newUpdatedFacets);\n }\n }, [facetsData, facets]);\n\n return (\n
\n \n {updatedFacets.map((facet, index) => {\n const { id, title, items: facetItems } = facet;\n\n if (!facetItems || facetItems.length === 0) {\n return null;\n }\n\n return (\n \n {title}\n \n {facetItems &&\n facetItems.map((item, index) => {\n const isChecked =\n facet.value && (facet.value as string[]).includes(item.id) ? true : false;\n\n return (\n
\n {\n onSelectionChangeHandler(id, item.id);\n }}\n aria-label={item.value}\n checked={isChecked}\n />\n
\n \n\n ({item.count})\n
\n
\n );\n })}\n
\n
\n );\n })}\n
\n
\n );\n};\n\nexport default FacetAccordion;\n"],"names":["FacetAccordion","facets","facetsData","onSelectionChangeHandler","value","setValue","useState","updatedFacets","setUpdatedFacets","useEffect","newUpdatedFacets","facet","updatedItems","item","matchingFacet","_a","matchingItem","f","React","Accordion","index","id","title","facetItems","AccordionItem","AccordionTrigger","AccordionContent","isChecked","Checkbox"],"mappings":"+GA6BA,MAAMA,EAAiB,CAAC,CAAE,OAAAC,EAAQ,WAAAC,EAAY,yBAAAC,KAAyC,CACrF,KAAM,CAACC,EAAOC,CAAQ,EAAIC,WAAS,EAAE,EAC/B,CAACC,EAAeC,CAAgB,EAAIF,WAASL,CAAM,EAEzDQ,OAAAA,EAAAA,UAAU,IAAM,CACVR,EAAO,OAAS,GACTI,EAAAJ,EAAO,CAAC,EAAE,EAAE,CACvB,EACC,CAACA,CAAM,CAAC,EAEXQ,EAAAA,UAAU,IAAM,CACd,GAAIP,EAAY,CACR,MAAAQ,EAAmBT,EAAO,IAAaU,GAAA,CAC3C,MAAMC,EAAeD,EAAM,MAAM,IAAYE,GAAA,OAC3C,MAAMC,GAAgBC,EAAAb,EAAWS,EAAM,EAAE,IAAnB,YAAAI,EAAsB,WAAW,QACjDC,EAAeF,GAAA,YAAAA,EAAe,KAAKG,GAAKA,EAAE,KAAK,MAAM,GAAG,EAAE,CAAC,IAAMJ,EAAK,OACrE,MAAA,CACL,GAAGA,EACH,MAAOG,EAAeA,EAAa,MAAQ,CAAA,CAC7C,CACD,EAEM,MAAA,CACL,GAAGL,EACH,MAAOC,CAAA,CACT,CACD,EAEDJ,EAAiBE,CAAgB,CACnC,CAAA,EACC,CAACR,EAAYD,CAAM,CAAC,kBAGpB,MAAI,CAAA,UAAU,oDACb,EAAAiB,EAAA,cAACC,GAAU,KAAK,SAAS,MAAAf,EAAc,cAAeC,EAAU,YAAW,IACxEE,EAAc,IAAI,CAACI,EAAOS,IAAU,CACnC,KAAM,CAAE,GAAAC,EAAI,MAAAC,EAAO,MAAOC,GAAeZ,EAEzC,MAAI,CAACY,GAAcA,EAAW,SAAW,EAChC,qBAINC,EAAc,CAAA,IAAKJ,EAAO,MAAOC,CAAA,kBAC/BI,EAAkB,KAAAH,CAAM,EACxBJ,EAAA,cAAAQ,EAAA,CAAiB,UAAW,oCAC1BH,GACCA,EAAW,IAAI,CAACV,EAAMO,IAAU,CACxB,MAAAO,EACJ,GAAAhB,EAAM,OAAUA,EAAM,MAAmB,SAASE,EAAK,EAAE,GAE3D,OACGK,EAAA,cAAA,MAAA,CAAI,UAAW,sBAAuB,IAAKE,CAC1C,EAAAF,EAAA,cAACU,EAAA,CACC,GAAIf,EAAK,GACT,gBAAiB,IAAM,CACIV,EAAAkB,EAAIR,EAAK,EAAE,CACtC,EACA,aAAYA,EAAK,MACjB,QAASc,CAAA,CACX,EACCT,EAAA,cAAA,MAAA,CAAI,UAAU,yBAAA,kBACZ,QAAM,CAAA,QAASL,EAAK,GAAI,UAAU,mBAChCA,EAAK,KACR,EAECK,EAAA,cAAA,OAAA,CAAK,UAAU,wBAAA,EAAyB,IAAEL,EAAK,MAAM,GAAC,CACzD,CACF,CAEH,CAAA,CACL,CACF,CAEH,CAAA,CACH,CACF,CAEJ"}