{"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":""}