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