{"version":3,"file":"static/js/2848.1e9b0cbf.chunk.js","mappings":"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","sources":["helpers/accessibilityHelper.js","shared/practical-faq-container/practical-faq-container-module.jsx","shared/practical-faq-container/practical-faq-element.jsx","shared/practical-faq-container/practical-faq-container.jsx"],"sourcesContent":["export function accessibilityEnterCheck(e, cb) {\n if (e.key === \" \" || e.key === \"32\" || e.key === \"Enter\" || e.key === \"13\" || e.type === \"click\" || e.type === \"change\") {\n cb()\n }\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport PracticalFaqContainer from \"./practical-faq-container\"\n\nexport default class PracticalFaqContainerModule {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.modelJson = elem.dataset.modelJson && JSON.parse(elem.dataset.modelJson)\n self.init()\n return self\n }\n\n init() {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(<PracticalFaqContainer {...self.modelJson} />, self.elem)\n }\n}\n","import React, { useRef, useState } from \"react\"\nimport ReactHtmlParser from \"react-html-parser\"\nimport { accessibilityEnterCheck } from \"../../helpers/accessibilityHelper\"\n\nfunction PracticalFaqElement(props) {\n const accordionRef = useRef(null)\n\n const [isAccordionOpen, setIsAccordionOpen] = useState(false)\n\n const handleAccordion = (event, classname) => {\n let elem = event.currentTarget\n\n let node = event\n if (elem) {\n showHideContent(elem, classname)\n return\n }\n\n if (node) {\n showHideContent(node, classname)\n return\n }\n }\n\n const handleEnterKeyPress = (event, className) => {\n accessibilityEnterCheck(event, () => {\n const targetElement = event.target.childNodes[0]\n handleAccordion(targetElement, className)\n })\n }\n\n const showHideContent = (elem, classname) => {\n elem.__toggle = !elem.__toggle\n let target = elem.parentElement.querySelector(classname)\n if (elem.__toggle) {\n target.style.height = target.scrollHeight + \"px\"\n elem.classList.add(\"is-active\")\n setIsAccordionOpen(true)\n } else {\n target.style.height = 0 + \"px\"\n elem.classList.remove(\"is-active\")\n setIsAccordionOpen(false)\n }\n }\n\n const question = props.question\n const answer = props.answer\n\n const transform = (node) => {\n if (node.type === \"tag\" && node.name === \"a\") {\n // Set tabindex to -1 if the accordion is closed, otherwise keep it as is\n const tabindexValue = isAccordionOpen ? 0 : -1\n node.attribs.tabindex = tabindexValue\n }\n }\n\n const formattedAnswer = ReactHtmlParser(answer, { transform })\n\n return (\n <div\n tabIndex={0}\n role=\"button\"\n onKeyDown={(e) => handleEnterKeyPress(e, \".contentWrapper\")}\n aria-expanded={isAccordionOpen}\n ref={accordionRef}\n className=\"accordionitem\"\n id={question}\n >\n <h4 data-epi-property=\"Question\" aria-controls={question} className=\"accordion-trigger\" onClick={(e) => handleAccordion(e, \".contentWrapper\")}>\n {question}\n </h4>\n <div className=\"sand-break\">\n <div></div>\n </div>\n <div className=\"contentWrapper show-hide\" role=\"region\" aria-labelledby={question + \"-label\"}>\n <div data-epi-property=\"Answer\" className=\"faq-content\">\n {formattedAnswer}\n </div>\n </div>\n </div>\n )\n}\n\nexport default PracticalFaqElement\n","import React, { useRef, useState } from \"react\"\nimport FaqElement from \"./practical-faq-element\"\nimport \"./practical-faq-container.scss\"\nimport * as SelectionFactoryHelper from \"../helpers/SelectionFactoryHelper\"\n\nfunction PracticalFaqContainer({\n header,\n subHeader,\n faqElements,\n readMoreLabel,\n readLessLabel,\n iconUpload,\n hideIcon,\n backgroundColor,\n bottomPadding,\n topPadding,\n}) {\n const topRef = useRef()\n\n const [showMore, setShowMore] = useState(false)\n const bgColor = SelectionFactoryHelper.getFromSelectionFactory(backgroundColor, false) || undefined\n const tPadding = SelectionFactoryHelper.getFromSelectionFactory(bottomPadding, false) || undefined\n const bPadding = SelectionFactoryHelper.getFromSelectionFactory(topPadding, false) || undefined\n\n const scrollIntoView = () => {\n let element = topRef.current\n\n const siteHeader = document.getElementsByClassName(\"site-header\")[0]\n const headerOffset = siteHeader.clientHeight + 20\n const elementPosition = element.getBoundingClientRect().top\n const offsetPosition = elementPosition + window.pageYOffset - headerOffset\n\n window.scrollTo({ top: offsetPosition, behavior: \"smooth\" })\n }\n\n const toggleFaq = () => {\n scrollIntoView()\n setShowMore(!showMore)\n }\n\n return (\n <div className={`faq-container ${bgColor ? bgColor : \"c--sand\"} ${tPadding} ${bPadding}`}>\n <div ref={topRef} className={`handling-accordion`}>\n <div className=\"w--normal\">\n {hideIcon ? undefined : iconUpload ? (\n <img className=\"faq-icon\" data-epi-property=\"IconUpload\" src={iconUpload} />\n ) : (\n <div className=\"faq-icon\">\n <svg className=\"icon faq_3\">\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-faq_3\">\n \n </use>\n </svg>\n </div>\n )}\n <div className=\"faq-header-container\">\n <p data-epi-property=\"Header\" className=\"faq-header\">\n <strong>{header}</strong> {subHeader}\n </p>\n </div>\n <div className={faqElements.length > 6 ? `faq-elements more-questions ${showMore ? \"show-all\" : \"\"}` : \"faq-elements\"}>\n {faqElements.map((element, index) => {\n return <FaqElement key={index} question={element.question} answer={element.answer} />\n })}\n <div className=\"show-more-questions\">\n <button data-epi-property=\"ReadMoreLabel\" onClick={toggleFaq} className=\"button button--expander more\">\n {readMoreLabel}\n </button>\n <button data-epi-property=\"ReadLessLabel\" onClick={toggleFaq} className=\"button button--expander less\">\n {readLessLabel}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default PracticalFaqContainer\n"],"names":["accessibilityEnterCheck","e","cb","key","type","PracticalFaqContainerModule","_createClass","elem","_classCallCheck","self","this","modelJson","dataset","JSON","parse","init","value","ReactDOM","_jsx","PracticalFaqContainer","_objectSpread","props","accordionRef","useRef","_useState","useState","_useState2","_slicedToArray","isAccordionOpen","setIsAccordionOpen","handleAccordion","event","classname","currentTarget","node","showHideContent","__toggle","target","parentElement","querySelector","style","height","scrollHeight","classList","add","remove","question","answer","formattedAnswer","ReactHtmlParser","transform","name","tabindexValue","attribs","tabindex","_jsxs","tabIndex","role","onKeyDown","className","targetElement","childNodes","ref","id","children","onClick","_ref","header","subHeader","faqElements","readMoreLabel","readLessLabel","iconUpload","hideIcon","backgroundColor","bottomPadding","topPadding","topRef","showMore","setShowMore","bgColor","SelectionFactoryHelper","undefined","tPadding","bPadding","toggleFaq","element","current","headerOffset","document","getElementsByClassName","clientHeight","offsetPosition","getBoundingClientRect","top","window","pageYOffset","scrollTo","behavior","scrollIntoView","concat","src","xmlnsXlink","xlinkHref","length","map","index","FaqElement"],"sourceRoot":""}