{"version":3,"file":"static/js/868.5a0779e6.chunk.js","mappings":"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","sources":["components/ProgressBar/ProgressBar.jsx","constants/Breakpoints.js","components/Question/Question.jsx","lib/analytic/trackQuiz.js","components/Answer/Answer.jsx","components/Quiz/Quiz.jsx","containers/QuizContainer.jsx","lib/analytic/dataLayerPush.js","lib/analytic/trackLink.js","lib/help/cleanHref.js","lib/help/printAttributes.js","lib/hooks/usePrevious.jsx","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst ProgressBar = ({ current, steps, classBar }) => {\n  // Set current step and all steps for create bar.\n  const completed = current === steps ? 100 : (current / steps) * 100;\n  const fillerStyles = {\n    height: \"100%\",\n    width: `${completed}%`,\n  };\n  return (\n    <div className={`progress-bar ${classBar}`}>\n      <div className=\"progress-bar__completed\" style={fillerStyles} />\n    </div>\n  );\n};\n\nProgressBar.defaultProps = {\n  classBar: \"\",\n};\n\nProgressBar.propTypes = {\n  current: PropTypes.number.isRequired,\n  steps: PropTypes.number.isRequired,\n  classBar: PropTypes.string,\n};\nexport default ProgressBar;\n","export const BREAKPOINT_MOBILE = 768;\nexport const BREAKPOINT_DESKTOP = 1110;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst Question = ({ question, tagId }) => {\n  return (\n    <h3 id={tagId} className=\"h4 mt-0 mb-48 mb-lg-24\">\n      {question.question}\n    </h3>\n  );\n};\n\nQuestion.propTypes = {\n  question: PropTypes.object.isRequired,\n  tagId: PropTypes.string.isRequired,\n};\nexport default Question;\n","/**\n * Analytics for quiz.\n */\n\nimport dataLayerPush from \"./dataLayerPush\";\n\n/**\n * Track in/out user to quiz.\n *\n * @param {string} title fo quiz.\n * @param {string} event name.\n * @param {string} eventAction.\n */\nexport function trackQuizEvent(title, event, eventAction) {\n  const eventLabel = `Quiz Title: ${title}`;\n  const eventVars = { quizTitle: title };\n  dataLayerPush(eventLabel, eventVars, event, eventAction, \"Quiz Interactions\");\n}\n\n/**\n * Track click answer in quiz.\n *\n * @param {string} title of quiz.\n * @param {string} titleQuestion.\n * @param {string} titleAnswer.\n */\nexport function trackQuizClick(title, titleQuestion, titleAnswer) {\n  const eventLabel = `Quiz Title: ${title} | Title of Question: ${titleQuestion} | Answer Title: ${titleAnswer}`;\n  const eventVars = {\n    quizTitle: title,\n    titleOfQuestion: titleQuestion,\n    answerTitle: titleAnswer,\n  };\n  dataLayerPush(\n    eventLabel,\n    eventVars,\n    \"quizEngaged\",\n    \"Engaged Quiz\",\n    \"Quiz Interactions\"\n  );\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { BREAKPOINT_MOBILE } from \"../../constants/Breakpoints\";\nimport printAttributes from \"../../lib/help/printAttributes\";\nimport { trackQuizEvent, trackQuizClick } from \"../../lib/analytic/trackQuiz\";\n\nconst Answer = ({\n  answer,\n  setAnswerId,\n  answerId,\n  setNextQuestion,\n  title,\n  titleQuestion,\n  positionOfQuestion,\n  quizDepth,\n}) => {\n  const trackAnalytic = () => {\n    trackQuizClick(title, titleQuestion, answer.title);\n    if (positionOfQuestion === 1) {\n      trackQuizEvent(title, \"quizStarted\", \"Started Quiz\");\n    }\n    if (positionOfQuestion === quizDepth) {\n      trackQuizEvent(title, \"quizCompleted\", \"Completed Quiz\");\n    }\n  };\n  // On click of answer get next answer.\n  const chooseAnswer = () => {\n    const nextQuestion = answer?.question || null;\n    trackAnalytic();\n    if (nextQuestion === null) return;\n    setNextQuestion(nextQuestion);\n    setAnswerId(answer.id);\n  };\n  const trackLink = () => {\n    trackAnalytic();\n  };\n  const mobileView = window.innerWidth <= BREAKPOINT_MOBILE - 1;\n  const isSelectedAnswer = answer.id === answerId;\n  const attributesLink =\n    answer?.linkAttributes && printAttributes(answer.linkAttributes);\n  const activeImage = answer?.images?.selected\n    ? answer?.images?.selected\n    : answer?.images?.default;\n  return (\n    <div className=\"quiz-question__variant grid__col mb-lg-28\">\n      {answer.link ? (\n        <a\n          href={answer.link}\n          {...attributesLink}\n          className=\"variant__link\"\n          onClick={trackLink}\n          role=\"radio\"\n          aria-checked=\"false\"\n        >\n          {answer.title}\n        </a>\n      ) : (\n        <>\n          <input\n            className=\"variant__radio\"\n            id={answer.id}\n            value={answer.id}\n            type=\"radio\"\n            onChange={chooseAnswer}\n          />\n          <label className=\"variant__label\" htmlFor={answer.id}>\n            {answer.title}\n          </label>\n        </>\n      )}\n      <div\n        className={`variant__inner d-flex flex-column justify-content-center p-20 pl-lg-0 pt-lg-28 pr-lg-16 pb-lg-44 ${\n          isSelectedAnswer && `variant__inner--checked`\n        }`}\n      >\n        <div className=\"variant__inner-help pl-lg-16 d-flex flex-column justify-content-start\">\n          <div className=\"variant__check\" />\n          {answer.images && (\n            <div\n              className=\"mb-24 mb-lg-32 variant__image\"\n              /* eslint-disable-next-line react/no-danger */\n              dangerouslySetInnerHTML={{\n                __html: isSelectedAnswer\n                  ? activeImage\n                  : answer?.images?.default,\n              }}\n            />\n          )}\n          <h4 className=\"h3 mt-0 mb-lg-20\">{answer?.title}</h4>\n          {answer?.body && !mobileView && <p>{answer.body}</p>}\n        </div>\n      </div>\n    </div>\n  );\n};\n\nAnswer.propTypes = {\n  answer: PropTypes.object.isRequired,\n  setNextQuestion: PropTypes.func.isRequired,\n  setAnswerId: PropTypes.func.isRequired,\n  answerId: PropTypes.number.isRequired,\n  title: PropTypes.string.isRequired,\n  titleQuestion: PropTypes.string.isRequired,\n  positionOfQuestion: PropTypes.number.isRequired,\n  quizDepth: PropTypes.number.isRequired,\n};\nexport default Answer;\n","import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Question from \"../Question/Question\";\nimport Answer from \"../Answer/Answer\";\nimport ProgressBar from \"../ProgressBar/ProgressBar\";\nimport usePrevious from \"../../lib/hooks/usePrevious\";\nimport printAttributes from \"../../lib/help/printAttributes\";\nimport trackLink from \"../../lib/analytic/trackLink\";\n\nconst Quiz = ({ quiz }) => {\n  const { questions, answers, settings, link, title } = quiz;\n  const { quizDepth } = settings;\n  const idRadioGroup = `radiogroup-${quiz.settings.id}`;\n  // Set initial question on load component.\n  const initialQuestion = quiz.settings.firstQuestion || 0;\n  // Get numb next question after choose answer.\n  const [nextQuestion, setNextQuestion] = useState(initialQuestion);\n  // Get numb prev question after choose answer.\n  const prevQuestion = usePrevious(nextQuestion);\n  // Get question from array of questions.\n  const currentQuestion = questions[nextQuestion];\n  // Get position of current question.\n  const positionOfQuestion = parseInt(currentQuestion.position, 10);\n  // Get answers from array for current questions.\n  const currentAnswers = currentQuestion.answers.map(\n    (answer) => Object.values(answers)[answer]\n  );\n  // Get answer.id\n  const [answerId, setAnswerId] = useState(-1);\n  // Set initial history for quiz.\n  const [questionsHistory, setQuestionsHistory] = useState([]);\n  // Crate a simple history of chosen answers.\n  useEffect(() => {\n    if (prevQuestion < nextQuestion && answerId) {\n      setQuestionsHistory((history) => [\n        ...history,\n        {\n          question: prevQuestion,\n          selected: answerId,\n        },\n      ]);\n    }\n  }, [answerId, currentQuestion, nextQuestion, prevQuestion, questionsHistory]);\n  // Set quiz to prev question.\n  const setPrevQuestion = () => {\n    const prevStep = questionsHistory.pop();\n    setNextQuestion(prevStep.question);\n    setAnswerId(prevStep.selected);\n  };\n  const attributesLink =\n    link?.linkAttributes && printAttributes(link.linkAttributes);\n  return (\n    <div role=\"presentation\">\n      <div role=\"radiogroup\" aria-labelledby={idRadioGroup}>\n        <Question question={currentQuestion} tagId={idRadioGroup} />\n        <div\n          className=\"quiz-question__variants grid grid--cols-sm-2 grid--cols-lg-3\"\n          aria-live=\"polite\"\n        >\n          {currentAnswers.map((answer) => {\n            return (\n              <Answer\n                key={answer.id}\n                answer={answer}\n                setNextQuestion={setNextQuestion}\n                setAnswerId={setAnswerId}\n                answerId={answerId}\n                title={title}\n                titleQuestion={currentQuestion.question}\n                positionOfQuestion={positionOfQuestion}\n                quizDepth={quizDepth}\n              />\n            );\n          })}\n        </div>\n      </div>\n      <div className=\"d-lg-flex justify-content-start align-items-center mt-32\">\n        {quizDepth > 1 && (\n          <div className=\"quiz-question__progress span--lg-3 pl-16 pr-20 pt-4 pb-8 d-flex justify-content-between justify-content-lg-start gutter--lg-right\">\n            <div className=\"progress__inner\">\n              <p className=\"mb-0 subtitle\">{`${\n                positionOfQuestion - 1\n              } of ${quizDepth} answered`}</p>\n              <ProgressBar current={positionOfQuestion - 1} steps={quizDepth} />\n            </div>\n            <button\n              disabled={nextQuestion === 0}\n              type=\"button\"\n              onClick={setPrevQuestion}\n              className={`button-arrow button-arrow--prev ml-20 ${\n                nextQuestion === 0 && `button-arrow--disabled`\n              }`}\n            >\n              move back to the previous question\n            </button>\n          </div>\n        )}\n        {link && (\n          <a\n            className=\"button mt-32 mt-lg-0 theme-default\"\n            {...attributesLink}\n            href={link.url}\n            onClick={() => trackLink(link.text, link.url, \"button\")}\n          >\n            {link.text}\n          </a>\n        )}\n      </div>\n    </div>\n  );\n};\n\nQuiz.propTypes = {\n  quiz: PropTypes.object.isRequired,\n};\nexport default Quiz;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\n// import PropTypes from \"prop-types\";\nimport Quiz from \"../components/Quiz/Quiz\";\n\n// TODO rebuild to real data.\nconst quizzes = window.drupalSettings?.quiz || [];\n\nconst QuizContainer = () => {\n  const quizComponent = Object.values(quizzes).map((quiz) => {\n    return ReactDOM.createPortal(\n      <Quiz quiz={quiz} />,\n      document.getElementById(`${quiz.settings.id}`)\n    );\n  });\n  return <>{quizComponent}</>;\n};\n\nexport default QuizContainer;\n","/**\n * Data layer template.\n * @param {string} label of data layer.\n * @param {object} vars of data what need to push.\n * @param {string} eventName.\n * @param {string} eventAction.\n * @param {string} eventCategory.\n */\nexport default function dataLayerPush(\n  label,\n  vars,\n  eventName,\n  eventAction,\n  eventCategory = \"Content Interactions\"\n) {\n  window.dataLayer = window.dataLayer || [];\n  window.dataLayer.push({\n    event: eventName,\n    eventCategory,\n    eventAction,\n    eventLabel: label,\n    eventValue: undefined,\n    eventOrigin: \"front-end\",\n    eventVars: vars,\n  });\n}\n","import dataLayerPush from \"./dataLayerPush\";\nimport cleanHref from \"../help/cleanHref\";\n/**\n * Analytics for CTA click.\n */\n\n/**\n * Track click on CTA button in react.\n *\n * @param {string} text.\n * @param {string} url.\n * @param {string} style of the button.\n */\nexport default function trackLink(text, url, style) {\n  const cleanURL = cleanHref(url);\n  const eventLabel = `CTA Title: ${text} | CTA Style: ${style} | Click URL: ${cleanURL}`;\n  const eventVars = { ctaTitle: text, ctaStyle: style, clickURL: cleanURL };\n  dataLayerPush(eventLabel, eventVars, \"ctaSelected\", \"Selected CTA\");\n}\n","// Helper function to clean query parameters from a url.\nconst clean = (href) => {\n\t// Create url object.\n\tlet url;\n\n    try {\n      url = new URL(href);\n    } catch (_) {\n      return href;\n    }\n\n\t// Array of query parameters to remove.\n    const paramBlacklist = ['_ga'];\n\n    paramBlacklist.forEach(function(param) {\n      url.searchParams.delete(param);\n    })\n\n    return url.href; \n};\n\nexport default clean;\n","const printAttributes = (arrayOfAttributes) => {\n  const attributes = {};\n  const arrayAttr =\n    arrayOfAttributes.constructor === Array ? arrayOfAttributes : [];\n  arrayAttr.forEach((attr) => {\n    Object.assign(attributes, attr);\n  });\n  return attributes;\n};\n\nexport default printAttributes;\n","import { useEffect, useRef } from \"react\";\n\nfunction usePrevious(value) {\n  const ref = useRef();\n  useEffect(() => {\n    ref.current = value;\n  });\n  return ref.current;\n}\n\nexport default usePrevious;\n","function _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nexport { _arrayLikeToArray as default };","function _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n  return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nexport { _iterableToArrayLimit as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n  return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n  }\n}\nexport { _unsupportedIterableToArray as default };"],"names":["ProgressBar","_ref","current","steps","classBar","fillerStyles","height","width","concat","React","className","style","defaultProps","BREAKPOINT_MOBILE","BREAKPOINT_DESKTOP","question","tagId","id","trackQuizEvent","title","event","eventAction","eventLabel","eventVars","quizTitle","dataLayerPush","_answer$images","_answer$images2","_answer$images3","_answer$images4","answer","setAnswerId","answerId","setNextQuestion","titleQuestion","positionOfQuestion","quizDepth","trackAnalytic","titleAnswer","titleOfQuestion","answerTitle","trackQuizClick","mobileView","window","innerWidth","isSelectedAnswer","attributesLink","linkAttributes","printAttributes","activeImage","images","selected","default","link","Object","assign","href","onClick","role","value","type","onChange","nextQuestion","htmlFor","dangerouslySetInnerHTML","__html","body","quiz","questions","answers","settings","idRadioGroup","initialQuestion","firstQuestion","_useState","useState","_useState2","_slicedToArray","prevQuestion","usePrevious","currentQuestion","parseInt","position","currentAnswers","map","values","_useState3","_useState4","_useState5","_useState6","questionsHistory","setQuestionsHistory","useEffect","history","_toConsumableArray","Question","Answer","key","disabled","prevStep","pop","url","trackLink","text","quizzes","_window$drupalSetting","drupalSettings","quizComponent","ReactDOM","Quiz","document","getElementById","label","vars","eventName","eventCategory","arguments","length","undefined","dataLayer","push","eventValue","eventOrigin","cleanURL","cleanHref","ctaTitle","ctaStyle","clickURL","URL","_","forEach","param","searchParams","delete","arrayOfAttributes","attributes","constructor","Array","attr","ref","useRef","_arrayLikeToArray","r","a","e","n","_arrayWithHoles","isArray","_iterableToArray","Symbol","iterator","from","_nonIterableRest","TypeError","arrayWithHoles","l","t","i","u","f","o","call","next","done","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","iterableToArray","_unsupportedIterableToArray","toString","slice","name","test"],"sourceRoot":""}