{"version":3,"file":"static/js/740.c7da79a3.chunk.js","mappings":"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","sources":["components/articleTemplate/ArticleSocialsContainer.js","components/articleTemplate/ArticleWrongSocialsContainer.js","components/articleTemplate/ArticleAnswers.js","components/articleTemplate/ArticleQuestionUI.js","components/articleTemplate/ArticleWeekQuiz.js","components/articleTemplate/ArticleQuiz.js","AppArticle.js"],"sourcesContent":["import React from \"react\";\nimport facebook from \"../../assets/facebook.svg\";\nimport linkedIn from \"../../assets/linked-in.svg\";\nimport email from \"../../assets/email.svg\";\nimport twitter from \"../../assets/twitter.svg\";\nimport \"../SocialsContainer.scss\";\n\nconst SocialsContainer = ({ quiz }) => {\n\n const callAnalytics = (text) => {\n window.appEventData.push({\n event: \"UI Item Clicked\",\n linkInfo: {\n category: \"interactive\",\n text,\n },\n });\n };\n\n const socialClick = (e, social) => {\n // eslint-disable-next-line no-restricted-globals\n // const url = encodeURIComponent(window.location.href);\n //const url = encodeURIComponent(`https://mckinsey.com/featured-insights/data-points?cid=soc-web#quiz-${quiz.id}`)\n const url = encodeURIComponent(`${window.location.origin}${window.location.pathname}?cid=soc-web#quiz-${quiz.id}`);\n\n const twitterText = encodeURIComponent(\n `Hey, I got this question correct in the pop quiz I took in the #McKinsey Explainers series. Take the quiz and learn more here: `\n );\n\n const emailSubject = `From McKinsey.com: Pop quiz from McKinsey Explainers`;\n // eslint-disable-next-line no-restricted-globals\n const emailBody = `Hey, I got this question correct in the pop quiz I took in the #McKinsey Explainers series. Take the quiz and learn more here: %0d%0a ${url}`;\n\n switch (social) {\n case \"twitter\":\n callAnalytics(\n `${quiz.title}-call-to-twitter`\n );\n window.open(\n `https://twitter.com/intent/tweet?text=${twitterText}&url=${url}`,\n \"_blank\",\n \"location=yes,height=570,width=570,scrollbars=yes,status=yes\"\n );\n break;\n case \"facebook\":\n callAnalytics(\n `${quiz.title}-call-to-facebook`\n );\n window.open(\n // eslint-disable-next-line no-restricted-globals\n `https://www.facebook.com/sharer/sharer.php?u=${url}`,\n \"_blank\",\n \"location=yes,height=570,width=570,scrollbars=yes,status=yes\"\n );\n break;\n case \"linkedIn\":\n callAnalytics(\n `${quiz.title}-call-to-linkedin`\n );\n window.open(\n `https://www.linkedin.com/shareArticle?mini=true&url=${url}&summary=${twitterText}`,\n \"_blank\",\n \"location=yes,height=570,width=570,scrollbars=yes,status=yes\"\n );\n break;\n case \"email\":\n callAnalytics(\n `${quiz.title}-call-to-email`\n );\n window.open(\n // `${\"mailto:\" + \"\" + \"?cc=\" + \"\" + \"&subject=\"\n // }${emailSubject}&body=${emailBody}`,\n // \"_self\"\n `mailto:${\"\"}?subject=${emailSubject}&body=${emailBody}`\n );\n break;\n\n default:\n break;\n }\n };\n\n return (\n <div className=\"socials-container\">\n <button\n type=\"button\"\n className=\"socials-button\"\n onClick={(e) => socialClick(e, \"linkedIn\")}\n >\n <span className=\"mck-linkedin-icon socials-icon\" aria-label=\"LinkedIn icon\">\n \n </span>\n </button>\n\n <button\n type=\"button\"\n className=\"socials-button\"\n onClick={(e) => socialClick(e, \"twitter\")}\n >\n <span className=\"mck-twitter-icon socials-icon\" aria-label=\"Twitter icon\">\n \n </span>\n </button>\n\n <button\n type=\"button\"\n className=\"socials-button\"\n onClick={(e) => socialClick(e, \"facebook\")}\n >\n <span className=\"mck-facebook-icon socials-icon\" aria-label=\"Facebook icon\">\n \n </span>\n </button>\n <button\n type=\"button\"\n className=\"socials-button\"\n onClick={(e) => socialClick(e, \"email\")}\n >\n <span className=\"mck-email-icon socials-icon\">\n \n </span>\n </button>\n </div>\n );\n};\n\nexport default SocialsContainer;","import React from \"react\";\nimport facebook from \"../../assets/facebook.svg\";\nimport linkedIn from \"../../assets/linked-in.svg\";\nimport email from \"../../assets/email.svg\";\nimport twitter from \"../../assets/twitter.svg\";\nimport \"../SocialsContainer.scss\";\n\nconst WrongSocialsContainer = ({ quiz }) => {\n\n const callAnalytics = (text) => {\n window.appEventData.push({\n event: \"UI Item Clicked\",\n linkInfo: {\n category: \"interactive\",\n text,\n },\n });\n };\n\n const socialClick = (e, social) => {\n // eslint-disable-next-line no-restricted-globals\n // const url = encodeURIComponent(window.location.href);\n //const url = encodeURIComponent(`https://mckinsey.com/featured-insights/data-points?cid=soc-web#quiz-${quiz.id}`)\n const url = encodeURIComponent(`${window.location.origin}${window.location.pathname}?cid=soc-web#quiz-${quiz.id}`);\n const twitterText = encodeURIComponent(\n `Here’s an interesting question I missed from the pop quiz I took in the #McKinsey Explainers series. Take the quiz and learn more here: `\n );\n\n const emailSubject = `From McKinsey.com: Pop quiz from McKinsey Explainers`;\n // eslint-disable-next-line no-restricted-globals\n const emailBody = `Here’s an interesting question I missed from the pop quiz I took in the #McKinsey Explainers series. Take the quiz and learn more here: %0d%0a ${url}`;\n\n switch (social) {\n case \"twitter\":\n callAnalytics(\n `${quiz.title}-call-to-twitter`\n );\n window.open(\n `https://twitter.com/intent/tweet?text=${twitterText}&url=${url}`,\n \"_blank\",\n \"location=yes,height=570,width=570,scrollbars=yes,status=yes\"\n );\n break;\n case \"facebook\":\n callAnalytics(\n `${quiz.title}-call-to-facebook`\n );\n window.open(\n // eslint-disable-next-line no-restricted-globals\n `https://www.facebook.com/sharer/sharer.php?u=${url}`,\n \"_blank\",\n \"location=yes,height=570,width=570,scrollbars=yes,status=yes\"\n );\n break;\n case \"linkedIn\":\n callAnalytics(\n `${quiz.title}-call-to-linkedin`\n );\n window.open(\n `https://www.linkedin.com/shareArticle?mini=true&url=${url}`,\n \"_blank\",\n \"location=yes,height=570,width=570,scrollbars=yes,status=yes\"\n );\n break;\n case \"email\":\n callAnalytics(\n `${quiz.title}-call-to-email`\n );\n window.open(\n // `${\"mailto:\" + \"\" + \"?cc=\" + \"\" + \"&subject=\"\n // }${emailSubject}&body=${emailBody}`,\n // \"_self\"\n `mailto:${\"\"}?subject=${emailSubject}&body=${emailBody}`\n );\n break;\n\n default:\n break;\n }\n };\n\n return (\n <div className=\"socials-container\">\n <button\n type=\"button\"\n className=\"socials-button\"\n onClick={(e) => socialClick(e, \"linkedIn\")}\n >\n <span className=\"mck-linkedin-icon socials-icon\" aria-label=\"LinkedIn icon\">\n \n </span>\n </button>\n\n <button\n type=\"button\"\n className=\"socials-button\"\n onClick={(e) => socialClick(e, \"twitter\")}\n >\n <span className=\"mck-twitter-icon socials-icon\" aria-label=\"Twitter icon\">\n \n </span>\n </button>\n\n <button\n type=\"button\"\n className=\"socials-button\"\n onClick={(e) => socialClick(e, \"facebook\")}\n >\n <span className=\"mck-facebook-icon socials-icon\" aria-label=\"Facebook icon\">\n \n </span>\n </button>\n <button\n type=\"button\"\n className=\"socials-button\"\n onClick={(e) => socialClick(e, \"email\")}\n >\n <span className=\"mck-email-icon socials-icon\">\n \n </span>\n </button>\n </div>\n );\n};\n\nexport default WrongSocialsContainer;","import { queries } from \"@testing-library/react\";\nimport React, { useRef } from \"react\";\nimport { useState } from \"react\";\nimport { useEffect } from \"react\";\nimport SocialsContainer from \"./ArticleSocialsContainer\";\nimport WrongSocialsContainer from \"./ArticleWrongSocialsContainer\";\n\n\nconst IMG_HEIGHT = 150;\n\nfunction getElementRealHeight(element, maxHeight, addPadding) {\n let height = 0;\n for (let i = 0; i < element.childElementCount; i++) {\n const el = element.childNodes[i];\n if (el.classList.contains(\"cup\") && el.clientHeight === 0 && window.innerWidth < 700) {\n height += 150;\n }\n else height += el.clientHeight;\n }\n var quizHeadlineHeight = document.querySelector('.ArticleQuiz').offsetHeight;\n return Math.max(height, maxHeight ? maxHeight : quizHeadlineHeight + (addPadding ? 150 : 0));\n\n //return Math.max(height, maxHeight ? maxHeight : 720);\n}\n\nfunction CheckCircle({ }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z\" />\n </svg>\n );\n}\n\nfunction XCircle({ }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z\" />\n </svg>\n );\n}\nfunction focusOnFirstElement(modalSelector) {\n const focusableElements =\n 'button, [href], input, select, textarea, [tabIndex]:not([tabIndex=\"-1\"])';\n const modal = document.querySelector(modalSelector); // select the modal by it's id\n const firstFocusableElement = modal.querySelectorAll(focusableElements)[0]; // get first element to be focused inside modal \n firstFocusableElement.focus();\n}\nexport function FirstTryIncorrect({ quiz, handleTryAgain }) {\n\n const holderRef = useRef(null);\n const handleResize = (e) => {\n const holderElement = holderRef.current;\n var quizHeadlineHeight = document.querySelector('.WeekQuiz').offsetHeight;\n holderElement.parentNode.style.height = getElementRealHeight(holderElement.firstElementChild, quizHeadlineHeight) + \"px\";\n }\n\n useEffect(() => {\n handleResize();\n //window.addEventListener(\"resize\", handleResize);\n return () => {\n //window.removeEventListener(\"resize\", handleResize);\n const quizElement = document.querySelector(\"#quiz-\" + quiz.id);\n const quis = quizElement?.querySelectorAll(\".QuestionUI\");\n quis?.forEach(Q => {\n Q.style.removeProperty(\"height\");\n });\n }\n }, []);\n\n useEffect(() => {\n focusOnFirstElement('.FirstTryIncorrect');\n }, []);\n\n return (\n\n <div className=\"Answer FirstTryIncorrect\" ref={holderRef} data-layer-region=\"First Incorrect Answer\" aria-modal=\"true\" aria-live=\"polite\" aria-describedby=\"header\">\n <span className=\"mck-close-icon close-overlay\" onClick={handleTryAgain}></span>\n <div className=\"wrapper\">\n <h3 aria-label=\"Nice try, but not quite right.\" id=\"header\" tabIndex=\"0\">\n <span>Nice try, but not quite right.</span>\n </h3>\n <div className=\"cup\">\n <img src=\"/spContent/bespoke/qotw/images/cupincorrect-sorry.gif\" alt=\"Incorrect Icon\" />\n </div>\n <button className=\"btn\" onClick={handleTryAgain} data-layer-event-prefix=\"Navigation Link\" data-layer-action=\"click\" data-layer-category=\"Click here to try again!\" data-layer-text=\"Click here to try again!\" role=\"button\">\n Click here to try again!\n </button>\n </div>\n </div>\n );\n}\n\nexport function IncorrectAnswer({ quiz, article, answerDetail, handleAnotherQuestion, close, showNextQuestion }) {\n const { title, image, link, id } = article;\n\n const holderRef = useRef(null);\n\n const handleResize = (e) => {\n const holderElement = holderRef.current;\n //holderElement.parentNode.style.height = getElementRealHeight(holderElement.firstElementChild) + \"px\";\n holderElement.parentNode.style.height = getElementRealHeight(holderElement.firstElementChild, 0, showNextQuestion) + \"px\";\n }\n\n useEffect(() => {\n handleResize();\n //window.addEventListener(\"resize\", handleResize);\n return () => {\n //window.removeEventListener(\"resize\", handleResize);\n const quizElement = document.querySelector(\"#quiz-\" + quiz.id);\n const quis = quizElement?.querySelectorAll(\".QuestionUI\");\n quis?.forEach(Q => {\n Q.style.removeProperty(\"height\");\n });\n }\n }, []);\n useEffect(() => {\n focusOnFirstElement('.IncorrectAnswer');\n }, []);\n\n return (\n <div className=\"Answer IncorrectAnswer\" ref={holderRef} data-layer-region=\"Second Incorrect Answer\" aria-modal=\"true\" aria-live=\"polite\">\n <span className=\"mck-close-icon close-overlay\" onClick={(e) => close()}></span>\n\n <div className=\"wrapper\">\n <div className=\"text-center\">\n <div className=\"cup top-right\">\n <img src=\"/spContent/bespoke/qotw/images/cupincorrect-sorry.gif\" alt=\"Incorrect icon\" />\n </div>\n <div>\n <h3 tabIndex=\"0\" aria-label=\"Sorry, that’s not it.\">\n Sorry, that’s not it.\n </h3>\n <p className=\"title\" tabIndex=\"0\" dangerouslySetInnerHTML={{ __html: title }} />\n\n </div>\n </div>\n <div className=\"dive-in\">\n <div className=\"col2\">\n <div className=\"img-wrapper\">\n <img src=\"https://www.mckinsey.com/~/media/mckinsey/Featured%20Insights/Data%20points/Data-hero-bottom-align-new\" alt=\"Sorry, that’s not it icon.\" />\n </div>\n <div className=\"content-wrapper\">\n <div className=\"more\">Like quizzes?</div>\n <p>Check out Data Points, our weekly quiz feature, to find out how well you know your numbers.</p>\n\n\n <div className=\"cta-container\">\n <a href=\"https://www.mckinsey.com/featured-insights/data-points\" className=\"-arrow\" target=\"_blank\" data-layer-event-prefix=\"UI Item\" data-layer-action=\"click\" data-layer-category=\"Answer\" data-layer-subcategory=\"Sorry, that's not it\" data-layer-text={answerDetail.replace(/(<([^>]+)>)/ig, '')} rel=\"noreferrer\">\n Test yourself\n </a>\n </div>\n </div>\n </div>\n </div>\n {showNextQuestion &&\n <div className=\"another-question\">\n <button className=\"btn\" onClick={(e) => handleAnotherQuestion()}>\n Try next question\n </button>\n </div>\n }\n <WrongSocialsContainer quiz={quiz} />\n\n </div>\n </div>\n );\n}\n\nexport function CorrectAnswer({ quiz, article, answerDetail, handleAnotherQuestion, close, showNextQuestion }) {\n const { title, image, link } = article;\n\n const holderRef = useRef(null);\n\n const handleResize = (e) => {\n const holderElement = holderRef.current;\n holderElement.parentNode.style.height = getElementRealHeight(holderElement.firstElementChild, 0, showNextQuestion) + \"px\";\n }\n\n useEffect(() => {\n handleResize();\n //window.addEventListener(\"resize\", handleResize);\n return () => {\n //window.removeEventListener(\"resize\", handleResize);\n const quizElement = document.querySelector(\"#quiz-\" + quiz.id);\n const quis = quizElement?.querySelectorAll(\".QuestionUI\");\n quis?.forEach(Q => {\n Q.style.removeProperty(\"height\");\n });\n }\n }, []);\n useEffect(() => {\n focusOnFirstElement('.CorrectAnswer');\n }, []);\n\n return (\n <div className=\"Answer CorrectAnswer\" ref={holderRef} data-layer-region=\"Correct Answer\" aria-modal=\"true\" aria-live=\"polite\">\n <span className=\"mck-close-icon close-overlay\" onClick={(e) => close()}></span>\n\n <div className=\"wrapper\">\n <div className=\"cup\">\n <img src=\"/spContent/bespoke/qotw/images/cupcorrect-new.gif\" alt=\"Correct icon\" />\n </div>\n <div className=\"text-center\">\n <h3 aria-label=\"Great job!\" tabIndex=\"0\">\n Great job!\n </h3>\n <p className=\"title\" tabIndex=\"0\" dangerouslySetInnerHTML={{ __html: title }} />\n </div>\n <div className=\"dive-in\">\n\n <div className=\"col2\">\n <div className=\"img-wrapper\">\n <img src=\"https://www.mckinsey.com/~/media/mckinsey/Featured%20Insights/Data%20points/Data-hero-bottom-align-new\" alt=\"Correct Icon\" />\n </div>\n <div className=\"content-wrapper\">\n <div className=\"more\">Like quizzes?</div>\n <p tabIndex=\"0\">Check out Data Points, our weekly quiz feature, to find out how well you know your numbers.</p>\n <div className=\"cta-container\">\n <a href=\"https://www.mckinsey.com/featured-insights/data-points\" className=\"-arrow\" target=\"_blank\" data-layer-event-prefix=\"UI Item\" data-layer-action=\"click\" data-layer-category=\"Answer\" data-layer-subcategory=\"Sorry, that's not it\" data-layer-text={answerDetail.replace(/(<([^>]+)>)/ig, '')} rel=\"noreferrer\">\n Test yourself\n </a>\n </div>\n </div>\n </div>\n </div>\n {showNextQuestion &&\n <div className=\"another-question\">\n <button className=\"btn\" onClick={(e) => handleAnotherQuestion()} data-layer-event-prefix=\"Navigation Link\" data-layer-action=\"click\" data-layer-category=\"Try next question\" data-layer-text=\"Try another question\" role=\"button\">\n Try next question\n </button>\n </div>\n }\n <SocialsContainer quiz={quiz} />\n </div>\n </div>\n );\n}\n","import React, { useRef, useState } from \"react\";\nimport { useMachine } from \"@xstate/react\";\nimport questionMachine from \"../machine\";\nimport ResponsesListUI from \"../ResponsesListUI\";\nimport { CorrectAnswer, IncorrectAnswer, FirstTryIncorrect } from \"./ArticleAnswers\";\nimport { useEffect } from \"react\";\nimport { resolveSend } from \"xstate/lib/actions\";\n\n\nexport default function QuestionUI({ quiz, Q, qIndex, visible, setIsAnswerState, goNextQuestion, responseId, showNextQuestion, answerState }) {\n const holderRef = useRef(null);\n const { question, paragraph, responses, answerDetail } = Q;\n const [machine, send] = useMachine(questionMachine);\n const [resp, setResp] = useState(null);\n\n const handleFirstTry = (response) => {\n setResp(response);\n send(\"FIRST_ANSWER\", { correct: response.correct });\n setIsAnswerState(false);\n holderRef.current.focus();\n };\n\n const handleSecondTry = (response) => {\n setResp(response);\n send(\"SECOND_ANSWER\", { correct: response.correct });\n setIsAnswerState(false);\n };\n\n const handleTryAgain = () => {\n setResp(null);\n send(\"SECOND_TRY\");\n\n setIsAnswerState(true);\n };\n const close = () => {\n setResp(null);\n setIsAnswerState(true);\n send(\"RESTART\");\n // goNextQuestion();\n };\n\n const handleAnotherQuestion = () => {\n setResp(null);\n setIsAnswerState(true);\n send(\"RESTART\");\n goNextQuestion();\n };\n\n const handleHashResponse = (response) => {\n console.log(\"Resp==>\", response);\n setResp(response);\n // send(\"FIRST_ANSWER\", { correct: response.correct });\n // if (!response.correct) {\n // send(\"SECOND_TRY\");\n // send(\"SECOND_ANSWER\", { correct: response.correct });\n // }\n send(\"HASH_ANSWER\", { correct: response.correct })\n setIsAnswerState(false);\n }\n\n useEffect(() => {\n if (responseId) {\n const [response] = responses.filter(r => r.id === responseId);\n handleHashResponse(response);\n handleFirstTry(response);\n }\n }, [responseId]);\n\n return (\n <div className={visible ? \"QuestionUI Visible\" : \"QuestionUI\"} data-quiz-id={quiz.id} ref={holderRef} aria-live=\"polite\">\n {machine.value === \"correct\" && (\n <>\n <CorrectAnswer\n handleAnotherQuestion={handleAnotherQuestion}\n showNextQuestion={showNextQuestion}\n close={close}\n answerDetail={answerDetail}\n quiz={quiz}\n article={quiz.articles[parseInt(qIndex)]}\n />\n <h3 tabIndex=\"-1\" className=\"question\" dangerouslySetInnerHTML={{ __html: question }} />\n <p tabIndex=\"-1\" className=\"description\" dangerouslySetInnerHTML={{ __html: paragraph }} />\n <ResponsesListUI\n quiz={quiz}\n question={Q}\n responses={responses}\n handleAnswerQuestion={handleSecondTry}\n hasOverlay={true}\n tabIndexNum={-1}\n selectedResponse={resp}\n />\n </>\n )}\n {machine.value === \"incorrect\" && (\n <>\n <IncorrectAnswer\n handleTryAgain={handleTryAgain}\n showNextQuestion={showNextQuestion}\n answerDetail={answerDetail}\n quiz={quiz}\n handleAnotherQuestion={handleAnotherQuestion}\n close={close}\n article={quiz.articles[parseInt(qIndex)]}\n />\n <h3 tabIndex=\"-1\" className=\"question\" dangerouslySetInnerHTML={{ __html: question }} />\n <p tabIndex=\"-1\" className=\"description\" dangerouslySetInnerHTML={{ __html: paragraph }} />\n <ResponsesListUI\n question={Q}\n quiz={quiz}\n responses={responses}\n handleAnswerQuestion={handleSecondTry}\n hasOverlay={true}\n tabIndexNum={-1}\n selectedResponse={resp}\n />\n </>\n\n )}\n {machine.value === \"firsttryincorrect\" && (\n <>\n <FirstTryIncorrect quiz={quiz} handleTryAgain={handleTryAgain} />\n <div className=\"content\">\n <h3 tabIndex=\"-1\" className=\"question\" dangerouslySetInnerHTML={{ __html: question }} />\n <p tabIndex=\"-1\" className=\"description\" dangerouslySetInnerHTML={{ __html: paragraph }} />\n <ResponsesListUI\n question={Q}\n quiz={quiz}\n responses={responses}\n handleAnswerQuestion={handleSecondTry}\n hasOverlay={true}\n tabIndexNum={-1}\n selectedResponse={resp}\n />\n </div>\n </>\n )}\n {machine.value === \"idle\" && (\n <>\n <h3 tabIndex=\"0\" className=\"question\" dangerouslySetInnerHTML={{ __html: question }} />\n <p tabIndex=\"0\" className=\"description\" dangerouslySetInnerHTML={{ __html: paragraph }} />\n <ResponsesListUI\n question={Q}\n quiz={quiz}\n responses={responses}\n handleAnswerQuestion={handleFirstTry}\n hasOverlay={false}\n tabIndexNum={0}\n />\n </>\n )}\n {machine.value === \"secondtry\" && (\n <>\n <h3 tabIndex=\"0\" className=\"question\" dangerouslySetInnerHTML={{ __html: question }} />\n <p tabIndex=\"0\" className=\"description\" dangerouslySetInnerHTML={{ __html: paragraph }} />\n <ResponsesListUI\n question={Q}\n quiz={quiz}\n responses={responses}\n handleAnswerQuestion={handleSecondTry}\n hasOverlay={false}\n tabIndexNum={0}\n selectedResponse={resp}\n />\n </>\n )}\n </div>\n );\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport { useRef } from 'react'\nimport PageContext from '../../pages/context'\nimport QuestionUI from './ArticleQuestionUI'\nimport '../WeekQuiz.scss'\nimport { scrollToElement } from '../../util/scrollutil'\n\nfunction SelectButton({ Q, active, handleChangeCurrent }) {\n return (\n <div\n className={active ? 'SelectButton Active' : 'SelectButton'}\n onClick={(e) => handleChangeCurrent(Q)}\n ></div>\n )\n}\n\nfunction Pager({ current, questions, handleChangeCurrent, isAnswerState }) {\n return questions.length <= 1 ? null : (\n <div className={'page-numbers' + (isAnswerState ? '' : ' active')}>\n <div className=\"current\">\n {current.substring(1)} of {questions.length}\n </div>\n <div className=\"buttons\">\n {questions.map((Q) => (\n <SelectButton\n key={Q.id}\n active={Q.id === current}\n Q={Q}\n handleChangeCurrent={handleChangeCurrent}\n />\n ))}\n </div>\n </div>\n )\n}\n\nexport default function WeekQuiz({ quiz, responseId }) {\n const { questions, title, id, answerDetail } = quiz\n const [currentQuestionId, setCurrentQuestionId] = useState(questions[0].id)\n const [isAnswerState, setIsAnswerState] = useState(true)\n const [defaultHeight, setDefaultHeight] = useState(0)\n const holderRef = useRef(null)\n const [respId, setRespId] = useState(null)\n\n const handleChangeCurrent = (Q) => {\n setCurrentQuestionId(Q.id)\n }\n\n useEffect(() => {\n if (responseId) setRespId(responseId)\n let elHeight = holderRef.current.offsetHeight\n elHeight += parseInt(\n window.getComputedStyle(holderRef.current).getPropertyValue('margin-top'),\n )\n elHeight += parseInt(\n window\n .getComputedStyle(holderRef.current)\n .getPropertyValue('margin-bottom'),\n )\n\n console.log(id, Math.ceil(elHeight))\n setDefaultHeight(Math.ceil(elHeight))\n }, [])\n\n const goNextQuestion = (index, qid) => () => {\n setRespId(null)\n if (index + 1 < questions.length) {\n setCurrentQuestionId(questions[index + 1].id)\n const elem = document.querySelector('#quiz-' + qid)\n if (elem) {\n scrollToElement(elem)\n }\n return\n }\n }\n\n return (\n <div\n className=\"WeekQuiz\"\n id={`quiz-${id}`}\n ref={holderRef}\n data-layer-region={title}\n aria-live=\"polite\"\n role=\"group\"\n aria-labelledby={title}\n tabIndex=\"0\"\n >\n {/* <h3>{title}</h3> */}\n {questions.map((Q, index) => (\n <QuestionUI\n key={Q.id}\n Q={Q}\n quiz={quiz}\n answerDetail={answerDetail}\n visible={Q.id === currentQuestionId}\n setIsAnswerState={setIsAnswerState}\n qIndex={index}\n responseId={Q.id === currentQuestionId && respId}\n goNextQuestion={goNextQuestion(index, id)}\n answerState={isAnswerState}\n showNextQuestion={index < questions.length - 1}\n />\n ))}\n {isAnswerState && (\n <Pager\n current={currentQuestionId}\n questions={questions}\n handleChangeCurrent={handleChangeCurrent}\n isAnswerState={isAnswerState}\n />\n )}\n </div>\n )\n}","import React, { useEffect, useState } from \"react\";\nimport WeekArticleQuiz from \"./ArticleWeekQuiz\";\nimport { fetchQuizByLink } from \"../../pages/fetchQuizs\";\n\n\n\nexport default function ArticleQuiz() {\n const [quiz, setQuiz] = useState(null);\n const [responseId, setResponseId] = useState(null);\n\n const handleHashChange = (e) => {\n const hash = document.location.hash;\n if (hash && hash.startsWith('#quiz-')) {\n if (hash.split('-').length > 2) {\n const _responseId = parseInt(hash.split(('-')).pop());\n if (_responseId > 1) {\n const quizElement = document.querySelector('.ArticleQuiz');\n const yOffset = -200; // adjust the offset as needed\n const y = quizElement.getBoundingClientRect().top + window.pageYOffset + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n\n }\n //const _responseId = parseInt(hash.substring('#r'.length));\n setResponseId(_responseId);\n }\n const quizElement = document.querySelector('.ArticleQuiz');\n const yOffset = -100; // adjust the offset as needed\n const y = quizElement.getBoundingClientRect().top + window.pageYOffset + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n }\n }\n\n useEffect(() => {\n handleHashChange();\n window.addEventListener(\"hashchange\", handleHashChange, false);\n return () => {\n window.removeEventListener(\"hashchange\", handleHashChange, false);\n }\n }, [])\n\n\n\n useEffect(() => {\n async function fetching() {\n const link = window.location.pathname;\n const quiz = await fetchQuizByLink(link);\n setQuiz(quiz);\n }\n fetching();\n }, []);\n\n return (\n <div className=\"ArticleQuiz\">\n <h2 className=\"headline quizHeadline\">Pop Quiz</h2>\n {quiz != null ? (responseId === null ? <WeekArticleQuiz quiz={quiz} /> : <WeekArticleQuiz quiz={quiz} responseId={responseId} />) : <div>quiz not found</div>}\n </div>\n );\n}\n","import { useEffect } from 'react';\nimport { useState } from 'react';\nimport './App.scss';\nimport ArticleQuiz from './components/articleTemplate/ArticleQuiz';\nimport \"./components/articleTemplate/ArticleWeekQuiz.scss\";\nimport './pages/page.css'\n\nfunction AppArticle() {\n const [start, setStart] = useState(false);\n\n\n useEffect(() => {\n\n const onPageLoad = () => {\n setStart(true);\n };\n\n if (document.readyState === \"complete\") {\n onPageLoad();\n } else {\n window.addEventListener(\"load\", onPageLoad);\n return () => window.removeEventListener(\"load\", onPageLoad);\n }\n }, []);\n\n return (\n <div className=\"App\" aria-live=\"polite\" >\n {start && <ArticleQuiz />}\n </div>\n );\n}\n\nexport default AppArticle;\n"],"names":["quiz","callAnalytics","text","window","appEventData","push","event","linkInfo","category","socialClick","e","social","url","encodeURIComponent","location","origin","pathname","id","twitterText","emailBody","title","open","className","type","onClick","getElementRealHeight","element","maxHeight","addPadding","height","i","childElementCount","el","childNodes","classList","contains","clientHeight","innerWidth","quizHeadlineHeight","document","querySelector","offsetHeight","Math","max","focusOnFirstElement","modalSelector","querySelectorAll","focus","FirstTryIncorrect","handleTryAgain","holderRef","useRef","useEffect","holderElement","current","parentNode","style","firstElementChild","handleResize","quizElement","quis","forEach","Q","removeProperty","ref","tabIndex","src","alt","role","IncorrectAnswer","article","answerDetail","handleAnotherQuestion","close","showNextQuestion","image","link","dangerouslySetInnerHTML","__html","href","target","replace","rel","CorrectAnswer","QuestionUI","qIndex","visible","setIsAnswerState","goNextQuestion","responseId","answerState","question","paragraph","responses","useMachine","questionMachine","machine","send","useState","resp","setResp","handleFirstTry","response","correct","handleSecondTry","filter","r","console","log","handleHashResponse","value","articles","parseInt","ResponsesListUI","handleAnswerQuestion","hasOverlay","tabIndexNum","selectedResponse","SelectButton","active","handleChangeCurrent","Pager","questions","isAnswerState","length","substring","map","WeekQuiz","currentQuestionId","setCurrentQuestionId","setDefaultHeight","respId","setRespId","elHeight","getComputedStyle","getPropertyValue","ceil","index","qid","elem","scrollToElement","ArticleQuiz","setQuiz","setResponseId","handleHashChange","hash","startsWith","split","_responseId","pop","y","getBoundingClientRect","top","pageYOffset","scrollTo","behavior","addEventListener","removeEventListener","fetchQuizByLink","fetching","start","setStart","onPageLoad","readyState"],"sourceRoot":""}