{"version":3,"file":"chunks/97c7206171a2aa.js","mappings":"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","sources":["webpack:///./resources/js/components/specific/conditional-quiz.ts"],"sourcesContent":["import tracking from '../../utils/tracking';\n\ntype State = {\n  step: number,\n  score: number,\n  currentTreePosition?: {\n    expanded: false,\n    selected: [],\n    cardType?: any,\n  },\n  answers?: {}\n}\n\nclass ConditionalQuiz {\n  domRoot: HTMLElement;\n  mainRoot: any;\n  scoreRoot: any;\n  params: any;\n  labels: any;\n  firstChoice: string;\n  currentState: State;\n  previousState: State;\n  scores: any;\n  questions: any;\n  cardContainer: any;\n  uniqueAnswers: any[];\n  stepsHistory: any[];\n\n  constructor(domRoot: HTMLElement, params: any) {\n    this.domRoot = domRoot;\n    this.mainRoot = this.domRoot.querySelector('.parent-quiz');\n    this.scoreRoot = this.domRoot.querySelector('.scores-area');\n    this.params = params;\n    this.labels = params.labels;\n    this.firstChoice = Object.keys(params.choices)[0];\n    this.currentState = {\n      step: 0,\n      score: 0\n    };\n    this.previousState = {\n      step: 0,\n      score: 0\n    };\n    this.scores = params.scores;\n    this.questions = params.questions;\n    this.cardContainer;\n    this.uniqueAnswers = [];\n    this.stepsHistory = [];\n    this.init();\n  }\n\n  init() {\n    this.scoreRoot.addEventListener('click', (e) => {\n      tracking.trackLateRenderedEvent(\"clicked\", e.target);\n    });\n    this.checkQuizAndAdvance(true);\n  }\n\n  checkQuizAndAdvance(startFromZero, startOver) {\n    this.previousState = JSON.parse(JSON.stringify(this.currentState));\n    if (startFromZero) {\n      this.currentState = {\n        step: -1,\n        score: 0,\n        currentTreePosition: {\n          expanded: false,\n          selected: []\n        },\n        answers: {}\n      };\n    }\n    let clicked = this.currentState.currentTreePosition?.selected;\n    let cardType = this.currentState.currentTreePosition?.cardType;\n    let shouldShowErrors = cardType == \"radio\" && clicked.length == 0;\n\n    if (shouldShowErrors && this.currentState.step > 0) {\n      this.renderQuiz(true);\n    } else {\n      const choiceSelected = clicked[0];\n      const choiceVal = this.domRoot.querySelector('#' + choiceSelected) ? Number(this.domRoot.querySelector('#' + choiceSelected).value) : 0;\n      const choiceSlug = clicked.length > 0 ? clicked : this.firstChoice;\n      if (this.currentState.step > 0 && this.domRoot.querySelector('#' + choiceSelected)) {\n        clicked.forEach((ans, index) => {\n          this.currentState.answers[this.currentState.step + '-choice-' + index] = {\n            question: document.querySelector('.card-question-title').innerText,\n            answer: this.domRoot.querySelector('#' + ans).innerText,\n            openEndedAnswer: this.domRoot.querySelector(\"#\" + ans + '-open') ? this.domRoot.querySelector(\"#\" + ans + '-open').value : undefined\n          }\n        })\n      }\n\n      let thisUnique = [];\n      clicked.forEach(click => {\n        thisUnique.push(this.currentState.currentTreePosition.choices[click].choiceSlug);\n      })\n      this.uniqueAnswers.push(thisUnique);\n      this.currentState.step += 1;\n      if (startOver) {\n        this.uniqueAnswers = [];\n        this.previousState.step = 1;\n      }\n      this.currentState.score += choiceVal;\n      var newPosition;\n\n      if (this.currentState.step < 2) {\n        newPosition = JSON.parse(JSON.stringify(this.params.choices[this.firstChoice]));\n      } else if (this.currentState.currentTreePosition.card) {\n        newPosition = this.currentState.currentTreePosition.card;\n      } else if (this.currentState.currentTreePosition.choices[choiceSlug[0]] && this.currentState.currentTreePosition.choices[choiceSlug[0]].card) {\n        newPosition = this.currentState.currentTreePosition.choices[choiceSlug[0]].card;\n      }\n      if (newPosition) {\n        newPosition.selected = [];\n      }\n\n      this.stepsHistory.push(this.previousState);\n\n      this.currentState.currentTreePosition = newPosition;\n      this.renderQuiz();\n\n      if (!startFromZero) {\n        window.scrollTo({\n          left: 0,\n          top: this.domRoot.offsetTop,\n          behavior: 'smooth'\n        });\n      }\n    }\n  }\n\n  renderQuiz(withErrors?: boolean) {\n    const prevStep = this.previousState.step;\n    const thisStep = this.currentState.step;\n    let animateClass = thisStep < prevStep ? \" adding\" : \" subtracting\";\n    let tossedCard = this.mainRoot.lastElementChild;\n\n    if (thisStep < prevStep || withErrors || thisStep == 0) {\n      // no need to animate if re-checking or if starting from zero\n    } else {\n      tossedCard.className += \" tossdown\";\n      this.mainRoot.removeChild(tossedCard);\n      this.domRoot.appendChild(tossedCard);\n      setTimeout(() => {\n        this.domRoot.removeChild(tossedCard);\n      }, 500);\n    }\n    this.scoreRoot.innerHTML = \"\";\n    this.mainRoot.className = \"parent-quiz\" + (withErrors || thisStep == prevStep ? \"\" : animateClass);\n    this.mainRoot.innerHTML = this.topper();\n    const cardContainer = this.el(\"div\", {\n      className: \"card narrow\"\n    });\n    this.mainRoot.appendChild(cardContainer);\n\n    if (thisStep > 1 && this.currentState.currentTreePosition == undefined) {\n      this.renderLastCard();\n    } else if (thisStep > 0) {\n      this.renderQuestionCard(withErrors);\n    } else {\n      this.renderFirstCard();\n    }\n  }\n\n  renderQuestionCard(withErrors?: boolean) {\n    const cardContainer = this.mainRoot.lastElementChild;\n    let totalCards = this.params.choices[this.firstChoice].totalCards;\n\n    let cardPosition = this.currentState.currentTreePosition;\n    let currentStep = cardPosition.customStep ? cardPosition.customStep : this.currentState.step;\n    cardContainer.innerHTML += `\n    <h5 class=\"eyebrows\">\n      <span class=\"current-step\">${currentStep}</span>\n      ${totalCards > 0 ? `<span class=\"remaining\">/ ${totalCards}</span>` : ``}\n    </h5>\n    <h3 class=\"card-question-title\">${cardPosition.title}</h3>`;\n\n    if (cardPosition.expandCollapseLabel) {\n      cardContainer.appendChild(this.el(\"button\", {\n        className: `expander ${cardPosition.expanded ? 'toggled' : ''}`,\n        innerHTML: cardPosition.expandCollapseLabel,\n        onclick: () => {\n          tracking.trackEvent(\"clicked\", {\n            label: cardPosition.expandCollapseLabel,\n            expanding: !cardPosition.expanded,\n            event: \"clicked\",\n            eventComponent: \"linkButton\"\n          });\n          cardPosition.expanded = !cardPosition.expanded;\n          this.renderQuiz(true);\n        }\n      }));\n    }\n    cardContainer.appendChild(this.el(\"div\", {\n      className: `extra-content ${cardPosition.expandCollapse ? 'expandable' : ''} ${cardPosition.expanded ? 'expanded' : ''}`,\n      innerHTML: cardPosition.extraContent,\n      onclick: (e) => {\n        tracking.trackLateRenderedEvent(\"clicked\", e.target);\n      }\n    }));\n    for (let option in cardPosition.choices) {\n      let cardChoice = cardPosition.choices[option];\n      cardContainer.appendChild(this.el(\"button\", {\n        className: `card-choice wide-button ${cardPosition.cardType}` + (cardPosition.selected.includes(option) ? \" checked\" : \" unchecked\"),\n        value: cardChoice.value,\n        id: option,\n        innerHTML: cardChoice.title,\n        onclick: (e) => {\n          let newArray = cardPosition.selected;\n          if (e.target.classList.contains(\"radio\")) {\n            newArray = [e.target.id];\n          } else if (e.target.classList.contains(\"checkbox\")) {\n            if (!e.target.classList.contains(\"checked\")) {\n              newArray.push(e.target.id)\n            } else if (e.target.classList.contains(\"checked\") && newArray.includes(e.target.id)) {\n              let newIndex = newArray.indexOf(e.target.id);\n              newArray.splice(newIndex, 1);\n            }\n          }\n          tracking.trackEvent(\"clickQuizChoice\", {\n            label: cardPosition.choices[option].title,\n            event: \"clicked\",\n            eventComponent: \"linkButton\"\n          });\n          cardPosition.selected = newArray;\n          this.renderQuiz(true);\n        }\n      }));\n\n      if (cardChoice.openEnded && cardPosition.selected.includes(option)) {\n        let textInput = this.el(\"input\", {\n          className: \"open-ended\" + (cardPosition.selected.includes(option) ? \" shown\" : \" hidden\"),\n          type: \"text\",\n          id: option + \"-open\",\n          placeholder: cardChoice.openEndedPlaceholder ? cardChoice.openEndedPlaceholder : \"\",\n          value: cardChoice.openValue ? cardChoice.openValue : \"\",\n          onkeyup: (e) => {\n            cardChoice.openValue = e.target.value;\n          }\n        });\n        cardContainer.appendChild(textInput);\n      }\n    }\n\n    var shouldShowErrors = cardPosition.cardType == \"radio\" && this.currentState.currentTreePosition.selected.length == 0;\n    cardContainer.appendChild(this.el(\"div\", {\n      className: \"error grow-box\",\n      innerHTML: withErrors && shouldShowErrors ? this.labels.error : \"\"\n    }));\n    const buttonContainer = this.el(\"div\", {\n      className: \"buttons\"\n    });\n    buttonContainer.appendChild(this.el(\"button\", {\n      innerHTML: this.labels.back,\n      className: \"button--secondary button--small\",\n      onclick: () => {\n        this.uniqueAnswers.pop();\n        tracking.trackEvent('goBack', {\n          label: this.labels.back,\n          event: \"clicked\",\n          eventComponent: \"linkButton\",\n          parentLabel: cardPosition.title\n        });\n        this.currentState = this.stepsHistory.pop();\n        this.renderQuiz();\n      }\n    }));\n    buttonContainer.appendChild(this.el(\"button\", {\n      innerHTML: this.labels.next,\n      className: \"button--orange button--small right\",\n      onclick: () => {\n        tracking.trackEvent('clickQuizForward', {\n          label: this.labels.next,\n          event: \"clicked\",\n          eventComponent: \"linkButton\",\n          parentLabel: cardPosition.title\n        });\n        this.checkQuizAndAdvance();\n      }\n    }));\n    cardContainer.appendChild(buttonContainer)\n  }\n\n  renderFirstCard() {\n    const cardContainer = this.mainRoot.lastElementChild;\n    const selectOptions = this.el(\"select\", {\n      className: \"wide-button\"\n    });\n    selectOptions.addEventListener('change', (e) => this.firstChoice = e.target.value);\n\n    for (var firstChoice in this.params.choices) {\n      selectOptions.innerHTML += `<option value=\"${firstChoice}\" ${firstChoice == this.firstChoice ? \"selected\" : \"\"}>\n        ${this.params.choices[firstChoice].firstChoiceTitle}\n      </option>`;\n    }\n\n    const startButton = this.el(\"button\", {\n      innerHTML: this.labels.start,\n      className: \"wide-button button--orange\"\n    });\n    startButton.addEventListener('click', () => {\n      this.checkQuizAndAdvance();\n      tracking.trackEvent('startQuiz', {\n        label: this.labels.start,\n        event: \"clicked\",\n        eventComponent: \"linkButton\",\n      });\n    });\n    cardContainer.innerHTML = this.params.firstCard;\n\n    this.questions.forEach(question => {\n      cardContainer.appendChild(this.el(\"label\", {\n        innerHTML: question.title\n      }));\n\n      if (question.questionType == \"select\") {\n        let selector = this.el(\"select\", {\n          value: question.answer,\n          onchange: (e) => {\n            question.answer = e.target.value;\n          }\n        });\n        question.options.forEach(option => {\n          selector.appendChild(this.el(\"option\", {\n            value: option,\n            innerText: option\n          }))\n        })\n        cardContainer.appendChild(selector);\n      } else {\n        cardContainer.appendChild(this.el(\"input\", {\n          type: \"text\",\n          value: question.answer,\n          onkeyup: (e) => {\n            question.answer = e.target.value;\n          }\n        }));\n      }\n\n    });\n\n    cardContainer.appendChild(this.el(\"label\", {\n      innerHTML: this.labels.firstQuestion\n    }));\n    cardContainer.appendChild(selectOptions);\n    cardContainer.appendChild(startButton);\n  }\n\n  renderLastCard() {\n    tracking.trackEvent('Completed Quiz', {\n      event: \"clicked\",\n      eventComponent: \"linkButton\",\n      questions: this.questions,\n      score: this.currentState.score,\n      productChosen: this.firstChoice,\n      quizQuestionsAndAnswers: this.currentState.answers\n    });\n\n    const cardContainer = this.mainRoot.lastElementChild;\n    cardContainer.innerHTML += this.params.lastCard;\n    const lastButton = this.el(\"button\", {\n      innerHTML: this.labels.startOver,\n      className: \"button--small button--outline\"\n    });\n    lastButton.addEventListener('click', () => {\n      this.checkQuizAndAdvance(true, true);\n      tracking.trackEvent(\"clicked\", {\n        event: \"clicked\",\n        eventComponent: \"linkButton\",\n        label: this.labels.startOver\n      });\n    });\n    cardContainer.appendChild(lastButton);\n    cardContainer.appendChild(this.el(\"div\", {\n      className: \"grow-box\"\n    }));\n    const finalScore = this.currentState.score;\n    const indScores = this.params.choices[this.firstChoice].scores.length ? this.params.choices[this.firstChoice].scores : this.scores;\n    for (let score in indScores) {\n      let indScore = indScores[score];\n      let isMatchingScore = finalScore >= indScore.minVal && finalScore < indScore.maxVal;\n      let scoreContainer = this.el(\"div\", {\n        className: `score-container  ${isMatchingScore ? \" visible-score\" : \"hidden-score\"}`\n      });\n      let scoreHeader = this.el(\"button\", {\n        className: `${indScore.bgColor} wide-button header ${indScore.textColor}`,\n        innerHTML: (isMatchingScore ? \"\" : \"<span>+</span>\") + indScore.title,\n        onclick: function (e) {\n          const contentNode = e.target.nextElementSibling;\n          contentNode.style.display = contentNode.style.display == \"block\" && contentNode.className == \"content hidden\" ? \"none\" : \"block\";\n          const plusIndicator = e.target.children[0];\n          if (plusIndicator) {\n            plusIndicator.innerHTML = plusIndicator.innerHTML === \"+\" ? \"-\" : \"+\";\n          }\n          tracking.trackEvent(\"clicked\", {\n            event: \"clicked\",\n            eventComponent: \"linkButton\",\n            label: indScore.title,\n          });\n        }\n      });\n      scoreContainer.appendChild(scoreHeader);\n      scoreContainer.appendChild(this.el(\"div\", {\n        className: \"content \" + (isMatchingScore ? \"\" : \"hidden\"),\n        innerHTML: indScore.content\n      }));\n      if (isMatchingScore) {\n        this.scoreRoot.insertBefore(scoreContainer, this.scoreRoot.firstChild);\n      } else {\n        this.scoreRoot.appendChild(scoreContainer);\n      }\n    }\n    this.smoothScroll(this.scoreRoot);\n\n    /* show results for unique questions answered */\n    this.uniqueAnswers.flat().forEach(question => {\n\n      let correspondingElements = this.domRoot.querySelectorAll('.' + question);\n      if (correspondingElements.length) {\n        correspondingElements.forEach(elem => {\n          elem.classList.remove('hide-all')\n        });\n      }\n    });\n  }\n\n  el(type: string, parameters: { [name: string]: string }) {\n    const newEl = document.createElement(type) as HTMLElement;\n    for (let parameter in parameters) {\n      // @ts-ignore\n      newEl[parameter] = parameters[parameter];\n    }\n    return newEl;\n  }\n\n  topper() {\n    return `<div class=\"toppers\">\n      <div class=\"topper last\"></div>\n      <div class=\"topper mid\"></div>\n      <div class=\"topper front\"></div>\n    </div>`;\n  }\n\n  smoothScroll(item: any) {\n    let initialScroll = window.scrollY;\n    let itemPosition = this.offsetTopFind(item);\n    let increment = (initialScroll - itemPosition) * 0.02;\n    let delay = 1000 / increment;\n    let scrollInterval = setInterval(winScroll, delay);\n\n    function winScroll() {\n      if (Math.abs(initialScroll - itemPosition) > 100) {\n        initialScroll = initialScroll - increment;\n        window.scrollTo(0, initialScroll);\n      } else {\n        clearInterval(scrollInterval);\n        window.scrollTo(0, itemPosition);\n      }\n    }\n  }\n\n  offsetTopFind(el, withHeight = 0) {\n    var yPosition = withHeight;\n    while (el.parentNode !== null) {\n      yPosition += el.offsetTop;\n      el = el.parentNode;\n    }\n    return yPosition;\n  }\n}\n\nexport default ConditionalQuiz;"],"names":["ConditionalQuiz","domRoot","params","_classCallCheck","this","mainRoot","querySelector","scoreRoot","labels","firstChoice","Object","keys","choices","currentState","step","score","previousState","scores","questions","cardContainer","uniqueAnswers","stepsHistory","init","key","value","addEventListener","e","tracking","target","checkQuizAndAdvance","startFromZero","startOver","_this$currentState$cu","_this$currentState$cu2","_this","JSON","parse","stringify","currentTreePosition","expanded","selected","answers","clicked","cardType","length","renderQuiz","choiceSelected","choiceVal","Number","choiceSlug","forEach","ans","index","question","document","innerText","answer","openEndedAnswer","undefined","newPosition","thisUnique","click","push","card","window","scrollTo","left","top","offsetTop","behavior","withErrors","_this2","prevStep","thisStep","animateClass","tossedCard","lastElementChild","className","removeChild","appendChild","setTimeout","innerHTML","topper","el","renderLastCard","renderQuestionCard","renderFirstCard","_this3","totalCards","cardPosition","currentStep","customStep","concat","title","expandCollapseLabel","onclick","label","expanding","event","eventComponent","expandCollapse","extraContent","_loop","option","cardChoice","includes","id","newArray","classList","contains","newIndex","indexOf","splice","openEnded","textInput","type","placeholder","openEndedPlaceholder","openValue","onkeyup","shouldShowErrors","error","buttonContainer","back","pop","parentLabel","next","_this4","selectOptions","firstChoiceTitle","startButton","start","firstCard","questionType","selector","onchange","options","firstQuestion","_this5","productChosen","quizQuestionsAndAnswers","lastCard","lastButton","finalScore","indScores","_loop2","indScore","isMatchingScore","minVal","maxVal","scoreContainer","scoreHeader","bgColor","textColor","contentNode","nextElementSibling","style","display","plusIndicator","children","content","insertBefore","firstChild","smoothScroll","flat","correspondingElements","querySelectorAll","elem","remove","parameters","newEl","createElement","parameter","item","initialScroll","scrollY","itemPosition","offsetTopFind","increment","scrollInterval","setInterval","Math","abs","clearInterval","yPosition","arguments","parentNode"],"sourceRoot":""}