{"version":3,"file":"static/js/3607.fdac7ebe.chunk.js","mappings":"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","sources":["helpers/keys.js","shared/number-cards-container/number-cards-container-component.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"],"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"],"sourceRoot":""}