{"version":3,"file":"static/js/9760.02b648a8.chunk.js","mappings":"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","sources":["helpers/keys.js","shared/number-cards-container/number-cards-container-component.jsx","shared/number-cards-container/number-cards-container-module.jsx"],"sourcesContent":["export const generateRandomString = () => {\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\"\n let randomString = \"\"\n\n for (let i = 0; i < 5; i++) {\n const randomIndex = Math.floor(Math.random() * characters.length)\n randomString += characters[randomIndex]\n }\n\n return randomString\n}\n","import React from \"react\"\nimport Slider from \"react-slick\"\nimport Svg from \"../_svgs/svg\"\nimport CountUp from \"react-countup\"\nimport { getFromSelectionFactory } from \"../helpers/SelectionFactoryHelper\"\nimport VisibilitySensor from \"react-visibility-sensor\"\nimport { generateRandomString } from \"../../helpers/keys\"\nimport useWindowWidth from \"../../hooks/useWindowWidth\"\n\nexport default function NumberCardsContainer({ numberCards, lang }) {\n const windowWidth = useWindowWidth()\n\n var settings = {\n dots: true,\n arrows: false,\n infinite: false,\n slidesToShow: 2,\n slidesToScroll: 1,\n swipe: true,\n variableWidth: false,\n centerMode: false,\n responsive: [\n {\n breakpoint: 640,\n settings: {\n slidesToShow: 1,\n centerMode: true,\n centerPadding: \"5%\",\n },\n },\n ],\n }\n\n const htmlNumberCards =\n numberCards.length > 0\n ? numberCards.map((card) => {\n return (\n <NumberCard\n key={generateRandomString()}\n icon={card.icon[0] || null}\n number={card.precisionNumber}\n description={card.description}\n displayPercent={card.displayPercent}\n displayMillions={card.displayMillions}\n additionalPrefixes={card.additionalPrefixes}\n additionalSuffixes={card.additionalSuffixes}\n lang={lang}\n />\n )\n })\n : null\n\n return (\n <section className=\"number-cards-container\">\n <div className={`${!!htmlNumberCards && htmlNumberCards.length === 4 ? \"w--wider\" : \"w--normal\"}`}>\n <div className=\"flex\">{windowWidth >= 1024 ? htmlNumberCards : <Slider {...settings}>{htmlNumberCards}</Slider>}</div>\n </div>\n </section>\n )\n}\n\nexport function NumberCard({ icon, number, description, displayPercent, displayMillions, lang, additionalPrefixes, additionalSuffixes }) {\n const svg = icon?.value || undefined\n let hasDecimal = false\n\n if (number) hasDecimal = number % 1 !== 0 ? true : false\n\n let suffix = displayMillions ? \" mio\" : \"\"\n suffix += displayPercent ? \"%\" : \"\"\n\n const additionalSuffix = getFromSelectionFactory(additionalSuffixes, false)\n const additionalPrefix = getFromSelectionFactory(additionalPrefixes, false)\n\n let prefix = additionalPrefix\n suffix = suffix || additionalSuffix\n\n let decimal = lang === \"da\" ? \",\" : \".\"\n let seperator = lang === \"da\" ? \".\" : \",\"\n //' Years' is a constant value from epi.\n //Reason for this implementation is so epi writers wouldnt have to annotate in both english & danish for culture specificity reasons.\n suffix = suffix === \" Years\" && lang === \"da\" ? \" Ã…r\" : suffix\n\n return (\n <div data-epi-property=\"\" className=\"card-container\">\n <article className=\"number-card\">\n {svg ? <Svg iconName={svg} fillColor={\"transparent\"} stroke={\"#000\"} key={svg}></Svg> : \"\"}\n <VisibilitySensor partialVisibility offset={{ bottom: 50 }}>\n {({ isVisible }) => (\n <div data-epi-property=\"Number\" aria-hidden=\"true\" className=\"counter\">\n {/* https://github.com/glennreyes/react-countup/blob/master/LICENSE */}\n {isVisible ? (\n <CountUp\n start={0}\n end={number}\n duration={3}\n prefix={prefix}\n suffix={suffix}\n decimal={decimal}\n decimals={hasDecimal ? 1 : 0}\n separator={seperator}\n />\n ) : null}\n </div>\n )}\n </VisibilitySensor>\n <p data-epi-property=\"Description\" className=\"infotext\">\n {description}\n </p>\n </article>\n </div>\n )\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport NumberCardsContainer from \"./number-cards-container-component\"\n\nexport default class NumberCardsContainerModule {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.modelJson = elem.dataset.modelJson && JSON.parse(elem.dataset.modelJson)\n this.init()\n return self\n }\n\n init() {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(<NumberCardsContainer {...self.modelJson} lang={document.body && document.body.dataset.language} />, self.elem)\n }\n}\n"],"names":["generateRandomString","characters","randomString","i","Math","floor","random","NumberCardsContainer","_ref","numberCards","lang","windowWidth","useWindowWidth","htmlNumberCards","length","map","card","_jsx","NumberCard","icon","number","precisionNumber","description","displayPercent","displayMillions","additionalPrefixes","additionalSuffixes","className","children","concat","Slider","_objectSpread","dots","arrows","infinite","slidesToShow","slidesToScroll","swipe","variableWidth","centerMode","responsive","breakpoint","settings","centerPadding","_ref2","svg","value","undefined","hasDecimal","suffix","additionalSuffix","getFromSelectionFactory","prefix","decimal","seperator","_jsxs","Svg","iconName","fillColor","stroke","VisibilitySensor","partialVisibility","offset","bottom","_ref3","isVisible","CountUp","start","end","duration","decimals","separator","NumberCardsContainerModule","_createClass","elem","_classCallCheck","self","this","modelJson","dataset","JSON","parse","init","key","ReactDOM","document","body","language"],"sourceRoot":""}