{"version":3,"file":"FacetAccordion-DQ2x_-_t.js","sources":["../../src/scripts/modules/react-modules/Listings/Facets/FacetAccordion.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\r\nimport {\r\n Accordion,\r\n AccordionContent,\r\n AccordionItem,\r\n AccordionTrigger\r\n} from '../../../../components/react-components/Accordion';\r\nimport { Checkbox } from '../../../../components/react-components/Checkbox';\r\nimport { FacetProps } from '../types';\r\n\r\ntype FacetDataItem = {\r\n name: string;\r\n count: number;\r\n};\r\n\r\nexport type FacetData = {\r\n [key: string]: {\r\n Categories: {\r\n IdTitle: FacetDataItem[];\r\n };\r\n };\r\n};\r\n\r\ntype OwnProps = {\r\n facets: FacetProps[];\r\n onSelectionChangeHandler: (selectedFacetID: string, value: string | null) => void;\r\n facetsData: FacetData | null;\r\n};\r\n\r\nconst FacetAccordion = ({ facets, facetsData, onSelectionChangeHandler }: OwnProps) => {\r\n const [value, setValue] = useState('');\r\n const [updatedFacets, setUpdatedFacets] = useState(facets);\r\n\r\n useEffect(() => {\r\n if (facets.length > 0) {\r\n setValue(facets[0].id);\r\n }\r\n }, [facets]);\r\n\r\n useEffect(() => {\r\n if (facetsData) {\r\n const newUpdatedFacets = facets.map(facet => {\r\n const updatedItems = facet.items.map(item => {\r\n const matchingFacet = facetsData[facet.id]?.Categories.IdTitle;\r\n const matchingItem = matchingFacet?.find(f => f.name.split('|')[1] === item.value);\r\n return {\r\n ...item,\r\n count: matchingItem ? matchingItem.count : 0 // Set count to 0 if no match\r\n };\r\n });\r\n\r\n return {\r\n ...facet,\r\n items: updatedItems\r\n };\r\n });\r\n\r\n setUpdatedFacets(newUpdatedFacets);\r\n }\r\n }, [facetsData, facets]);\r\n\r\n return (\r\n <div className=\"listing__facet listing__facet--accordion accordion\">\r\n <Accordion type=\"single\" value={value} onValueChange={setValue} collapsible>\r\n {updatedFacets.map((facet, index) => {\r\n const { id, title, items: facetItems } = facet;\r\n\r\n if (!facetItems || facetItems.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <AccordionItem key={index} value={id}>\r\n <AccordionTrigger>{title}</AccordionTrigger>\r\n <AccordionContent className={'listing__facet-accordion-content'}>\r\n {facetItems &&\r\n facetItems.map((item, index) => {\r\n const isChecked =\r\n facet.value && (facet.value as string[]).includes(item.id) ? true : false;\r\n\r\n return (\r\n <div className={`checkbox__container`} key={index}>\r\n <Checkbox\r\n id={item.id}\r\n onCheckedChange={() => {\r\n onSelectionChangeHandler(id, item.id);\r\n }}\r\n aria-label={item.value}\r\n checked={isChecked}\r\n />\r\n <div className=\"checkbox__label-wrapper\">\r\n <label htmlFor={item.id} className=\"checkbox__label\">\r\n {item.value}\r\n </label>\r\n\r\n <span className=\"checkbox__label-number\">({item.count})</span>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </AccordionContent>\r\n </AccordionItem>\r\n );\r\n })}\r\n </Accordion>\r\n </div>\r\n );\r\n};\r\n\r\nexport default FacetAccordion;\r\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,EAAAA,SAAS,EAAE,EAC/B,CAACC,EAAeC,CAAgB,EAAIF,EAAAA,SAASL,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,CAC7C,CAAA,CACD,EAEM,MAAA,CACL,GAAGL,EACH,MAAOC,CACT,CAAA,CACD,EAEDJ,EAAiBE,CAAgB,CAAA,CACnC,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,CAAe,EAAAZ,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,iBAAA,EAChCA,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"}