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