{"version":3,"sources":["webpack:///./Scripts/Components/CustomAccordion.js","webpack:///./Scripts/Components/FooterLinks.js","webpack:///./Scripts/Hooks/UseToggleExpand.js"],"names":["CustomAccordion","header","content","children","icon","className","elementRef","useRef","expanded","expand","recalculateHeight","useToggleExpand","useEffect","handleResize","window","addEventListener","removeEventListener","clearTimeout","resizeTimer","Fragment","onClick","ref","links","map","x","index","key","sectionTitle","xmlns","width","height","viewBox","fill","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","sectionLinkList","link","linkIndex","href","text","sectionText","value","dangerouslySetInnerHTML","__html","mobile","initialState","externalRef","setIsExpanded","useState","prevExpanded","current","element","style","Array","prototype","reduce","call","childNodes","acc","child","offsetHeight","closeExpand"],"mappings":"4HAGO,MAEMA,EAAkB,EAAGC,SAAQC,UAASC,WAAUC,OAAMC,gBAC/D,MAAMC,GAAaC,YAAO,OAEpB,SAAEC,EAAF,OAAYC,EAAZ,kBAAoBC,IAAsBC,QAAgB,GAsBhE,OApBAC,gBAAU,KAGN,MAAMC,EAAe,KACdL,GACCE,EAAkBJ,IAQ1B,OAHAQ,OAAOC,iBAAiB,SAAUF,GAG3B,KACHC,OAAOE,oBAAoB,SAAUH,GACrCI,aAdAC,cAgBL,CAACV,IAIA,gBAAC,EAAAW,SAAD,KACI,0BAAQd,UAAU,2BAA2Be,QAAS,IAAMX,EAAOH,IAC9DL,EAED,wBAAMI,UAAW,2BAA6BG,EAAW,iCAAmC,KACvFJ,GAAQA,IAIjB,uBAAKC,UAAU,4BAA4BgB,IAAKf,GAC3CJ,M,4FCrCjB,MA6DA,EA7DoB,EAAGoB,WAEf,uBAAKjB,UAAU,mBAEPiB,EAAMC,KAAI,CAACC,EAAGC,IACF,2BAASpB,UAAU,eAAeqB,IAAKD,GACvC,uBAAKpB,UAAU,0BACX,gBAAC,IAAD,CACIJ,OAAQ,sBAAII,UAAU,mCAAmCmB,EAAEG,cAC3DvB,KACI,uBAAKwB,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KACrDC,QAAQ,YAAYC,KAAK,QAC1B,wBAAMC,EAAE,mCAAmCC,OAAO,UAAUC,YAAY,IAClEC,cAAc,QAAQC,eAAe,WAGnDnC,QACI,uBAAKG,UAAU,qBAEPmB,EAAEc,gBAAgBf,KAAI,CAACgB,EAAMC,IAErB,qBAAGnC,UAAU,eAAeoC,KAAMF,EAAKE,KACpCf,IAAKc,GAAYD,EAAKG,QAKpClB,EAAEmB,aAAaC,OAAS,uBACrBC,wBAAyB,CAAEC,OAAQtB,EAAEmB,YAAYC,aAMrE,uBAAKvC,UAAU,wBACX,sBAAIA,UAAU,mCAAmCmB,EAAEG,cACnD,uBAAKtB,UAAU,qBAEPmB,EAAEc,gBAAgBf,KAAI,CAACgB,EAAMC,IAErB,qBAAGnC,UAAU,eAAeoC,KAAMF,EAAKE,KACpCf,IAAKc,GAAYD,EAAKG,QAKpClB,EAAEmB,aAAaC,OAAS,uBACrBC,wBAAyB,CAAEC,OAAQtB,EAAEmB,YAAYC,UAE9C,IAAVnB,GAAe,gBAAC,IAAD,UAOpC,gBAAC,IAAD,CAAwBsB,QAAM,M,2DC1D3B,SAASpC,EAAgBqC,GAAe,EAAOC,EAAc,MACxE,MAAOzC,EAAU0C,IAAiBC,cAASH,GAuC3C,MAAO,CAAExC,WAAUC,OAtCHY,IAGZ,GAFA6B,GAAcE,IAAiBA,IAE3B/B,EAAIgC,QAAS,CACb,MAAMC,EAAUjC,EAAIgC,QACfC,EAAQC,MAAMzB,QAAmC,QAAzBwB,EAAQC,MAAMzB,OAOvCwB,EAAQC,MAAMzB,OAAS,MANvBwB,EAAQC,MAAMzB,OAAS0B,MAAMC,UAAUC,OAAOC,KAC1CL,EAAQM,YACR,CAACC,EAAKC,IAAUD,GAAOC,EAAMC,cAAgB,IAC7C,GACA,OA4BWC,YARN3C,IACjB,GAAIA,EAAIgC,QAAS,CACGhC,EAAIgC,QAEZE,MAAMzB,OAAS,QAISoB,gBAAexC,kBArB5BW,IACvB,GAAIA,EAAIgC,QAAS,CACb,MAAMC,EAAUjC,EAAIgC,SAChBC,EAAQC,MAAMzB,QAAmC,QAAzBwB,EAAQC,MAAMzB,UACtCwB,EAAQC,MAAMzB,OAAS0B,MAAMC,UAAUC,OAAOC,KAC1CL,EAAQM,YACR,CAACC,EAAKC,IAAUD,GAAOC,EAAMC,cAAgB,IAC7C,GACA","file":"400.00b2600bcc29154600d2.js","sourcesContent":["import React, { useState, useMemo, Fragment, useRef, useLayoutEffect, useEffect } from 'react';\nimport useToggleExpand from \"../Hooks/UseToggleExpand\";\n\nexport const AccordionPanel = (props) => props;\n\nexport const CustomAccordion = ({ header, content, children, icon, className }) => {\n    const elementRef = useRef(null);\n\n    const { expanded, expand, recalculateHeight } = useToggleExpand(false);\n\n    useEffect(() => {\n        let resizeTimer;\n\n        const handleResize = () => {\n            if(expanded){\n                recalculateHeight(elementRef);\n            }\n        };\n\n        // Add event listener for window resize start\n        window.addEventListener('resize', handleResize);\n\n        // Clean up the event listener and timer on component unmount\n        return () => {\n            window.removeEventListener('resize', handleResize);\n            clearTimeout(resizeTimer);\n        };\n    }, [expanded]);\n\n\n    return (\n        <Fragment>\n            <button className=\"custom-accordion__button\" onClick={() => expand(elementRef)}>\n                {header}\n\n                <span className={\"custom-accordion__icon \" + (expanded ? \"custom-accordion__icon--active\" : \"\")}>\n                    {icon && icon}\n                </span>\n            </button>\n\n            <div className=\"custom-accordion__content\" ref={elementRef}>\n                {content}\n            </div>\n        </Fragment>\n    )\n};\n","import React from 'react';\nimport LanguageSelectorFooter from \"./LanguageSelectorFooter\";\nimport { CustomAccordion } from \"./CustomAccordion\";\n\nconst FooterLinks = ({ links }) => {\n    return (\n        <div className=\"footer__content\">\n            {\n                links.map((x, index) => {\n                    return (<section className=\"footer__list\" key={index}>\n                            <div className=\"footer__accordion-list\">\n                                <CustomAccordion\n                                    header={<h2 className=\"footer__header accordion-toggle\">{x.sectionTitle}</h2>}\n                                    icon={\n                                        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\n                                             viewBox=\"0 0 20 21\" fill=\"none\">\n                                            <path d=\"M5 8.06836L10 13.0684L15 8.06836\" stroke=\"#373D41\" strokeWidth=\"2\"\n                                                  strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n                                        </svg>\n                                    }\n                                    content={\n                                        <div className=\"accordion-content\">\n                                            {\n                                                x.sectionLinkList.map((link, linkIndex) => {\n                                                    return (\n                                                        <a className=\"footer__link\" href={link.href}\n                                                           key={linkIndex}>{link.text}</a>\n                                                    );\n                                                })\n                                            }\n\n                                            {x.sectionText?.value && <div\n                                                dangerouslySetInnerHTML={{ __html: x.sectionText.value }}></div>}\n                                        </div>\n                                    }\n                                >\n                                </CustomAccordion>\n                            </div>\n                            <div className=\"footer__desktop-list\">\n                                <h2 className=\"footer__header accordion-toggle\">{x.sectionTitle}</h2>\n                                <div className=\"accordion-content\">\n                                    {\n                                        x.sectionLinkList.map((link, linkIndex) => {\n                                            return (\n                                                <a className=\"footer__link\" href={link.href}\n                                                   key={linkIndex}>{link.text}</a>\n                                            );\n                                        })\n                                    }\n\n                                    {x.sectionText?.value && <div\n                                        dangerouslySetInnerHTML={{ __html: x.sectionText.value }}></div>}\n                                </div>\n                                {index === 0 && <LanguageSelectorFooter/>}\n                            </div>\n                        </section>\n                    )\n                })\n            }\n            \n            <LanguageSelectorFooter mobile/>\n        </div>\n    );\n};\n\nexport default FooterLinks;\n","import React, { useState } from \"react\";\n\nexport default function useToggleExpand(initialState = false, externalRef = null) {\n    const [expanded, setIsExpanded] = useState(initialState);\n    const expand = (ref) => {\n        setIsExpanded(prevExpanded => !prevExpanded);\n\n        if (ref.current) {\n            const element = ref.current;\n            if (!element.style.height || element.style.height === '0px') {\n                element.style.height = Array.prototype.reduce.call(\n                    element.childNodes,\n                    (acc, child) => acc + (child.offsetHeight || 0),\n                    0\n                ) + 'px';\n            } else {\n                element.style.height = '0px';\n            }\n        }\n    };\n\n    const recalculateHeight = (ref) => {\n        if (ref.current) {\n            const element = ref.current;\n            if (element.style.height || element.style.height !== '0px') {\n                element.style.height = Array.prototype.reduce.call(\n                    element.childNodes,\n                    (acc, child) => acc + (child.offsetHeight || 0),\n                    0\n                ) + 'px';\n            }\n        }\n    }\n\n    const closeExpand = (ref) => {\n        if (ref.current) {\n            const element = ref.current;\n\n            element.style.height = '0px';\n        }\n    };\n\n    return { expanded, expand, closeExpand, setIsExpanded, recalculateHeight };\n}\n"],"sourceRoot":""}