{"version":3,"file":"chunks/4d569d9bc696ef.js","mappings":"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","sources":["webpack:///./resources/js/components/specific/health-monitor.ts"],"sourcesContent":["import tracking from '../../utils/tracking';\n\nexport default class HealthMonitor {\n params: any;\n firstPages: any;\n lastPages: any;\n categories: any;\n ratingTypes: any;\n labels: any;\n monthMap: any;\n countdownInitialScreen: any;\n countdownFinalScreen: any;\n urlParams: { n: number; };\n prevPage: number;\n prevHash: string;\n sequence: any[];\n resultsInfo: any;\n modalMonitor: HTMLDivElement;\n typingTimeoutId: any;\n additionalTrackingProperties: any;\n additionalTrackingSchema: any;\n\n constructor(_domRoot: HTMLElement, params: any) {\n this.params = params;\n this.firstPages = params.firstPages;\n this.lastPages = params.lastPages;\n this.categories = params.categories;\n this.ratingTypes = params.ratingTypes;\n this.labels = params.labels;\n this.monthMap = params.monthMap;\n this.countdownInitialScreen = params.countdownInitialScreen;\n this.countdownFinalScreen = params.countdownFinalScreen;\n this.urlParams = {n: -1};\n this.prevPage = -1;\n this.prevHash = \"\";\n this.sequence = [];\n this.resultsInfo = {};\n this.modalMonitor = document.createElement(\"div\");\n this.typingTimeoutId;\n this.additionalTrackingProperties = {}; \n this.additionalTrackingSchema = {\n 'schemaVersion': '1',\n 'eventType' : 'Track',\n 'eventContainer' : 'page',\n 'eventColumn' : null,\n 'eventComponent' : 'button',\n 'magnoliaComponentId' : null,\n 'event' : 'clicked',\n 'inputValue' : null,\n 'parentLabel' : 'Health Monitor',\n 'label' : null,\n 'productKey' : null,\n 'productVersion' : null,\n 'productEdition' : null,\n 'productPlatform': null,\n };\n this.init();\n }\n\n init() {\n var self = this;\n document.body.appendChild(this.modalMonitor);\n this.resultsInfo = {};\n self.renderPage();\n \n window.onhashchange = function() {\n self.renderPage();\n }\n window.addEventListener(\"click\", function(e) {\n if (e.target.id === \"copy-link\") {\n let shareURL = document.getElementById(\"copy-text\");\n shareURL.select();\n document.execCommand(\"copy\");\n e.target.className += \" copy-success\";\n } else if (e.target.className.indexOf(\"start-countdown\") > -1) {\n self.startCountdown();\n } else if (e.target.className.indexOf(\"stop-countdown\") > -1) {\n var voteContainer = document.getElementById(\"count-vote\");\n self.modalMonitor.removeChild(voteContainer);\n } else if (e.target.className.indexOf(\"prev-link\") > -1) {\n window.location.hash = self.getHashURL({increment: -1});\n } else if (e.target.className.indexOf(\"next-link\") > -1) {\n window.location.hash = self.getHashURL({increment: 1});\n } else if (e.target.className.indexOf(\"retreat\") > -1) {\n self.resultsInfo.sumPage = self.urlParams.n;\n\n } else if (e.target.className.indexOf(\"question-link\") > -1) {\n if (self.resultsInfo.sumPage) {\n setTimeout(function() {\n window.location.hash = self.getHashURL({toPage: self.resultsInfo.sumPage});\n }, 100);\n }\n \n }\n\n if (e.target.hasAttribute(\"data-track-event\")) {\n const dataTrackEventAttributeName = e.target.getAttribute(\"data-track-event\");\n tracking.trackEvent(dataTrackEventAttributeName, tracking.sanitizeEventProperties(self.additionalTrackingProperties[dataTrackEventAttributeName]));\n }\n\n });\n window.addEventListener(\"change\", function(e) {\n if (e.target.hasAttribute(\"data-results\")) {\n self.resultsInfo[e.target.getAttribute(\"data-results\")] = e.target.checked;\n self.renderPage();\n }\n });\n window.addEventListener(\"keyup\", function(e) {\n if (e.target.hasAttribute && e.target.hasAttribute(\"data-text\")) {\n var textKey = e.target.getAttribute(\"data-text\");\n var cleanedString = self.cleanString(e.target.value);\n self.urlParams[textKey] = encodeURIComponent(cleanedString);\n e.target.value = cleanedString;\n window.history.pushState({}, null, self.getHashURL({}));\n if (e.target.hasAttribute(\"data-track-event\")) {\n const dataTrackEventAttributeName = e.target.getAttribute(\"data-track-event\");\n // Track user entered data\n clearTimeout(self.typingTimeoutId);\n self.typingTimeoutId = setTimeout(function(){\n const additionalTrackingProp = { ...self.additionalTrackingProperties[dataTrackEventAttributeName], ...{'event': 'keyup', 'inputValue': self.urlParams[textKey]}};\n tracking.trackEvent(dataTrackEventAttributeName,tracking.sanitizeEventProperties(additionalTrackingProp));\n }, 500);\n }\n }\n }, true)\n }\n\n isNumber(num) {\n return !isNaN(num);\n }\n\n getHashURL(options) {\n /*\n c = category\n n = page number\n tn = team name\n q[i] = question[index] answer\n t[i] = question[index] action item\n */\n var urlString = \"#m\";\n var increment = 0;\n var pageNum = this.urlParams.n;\n \n var stringHash = JSON.parse(JSON.stringify(this.urlParams))\n if (options.questions) {\n for (var o in options.questions) {\n stringHash[o] = options.questions[o];\n }\n }\n if (this.isNumber(options.category)) {\n stringHash.c = Number(options.category);\n }\n if (this.isNumber(options.increment)) {\n increment = options.increment;\n }\n if (this.isNumber(options.toPage)) {\n pageNum = Number(options.toPage);\n }\n \n for (var k in stringHash) {\n urlString += \";\" + k + \":\";\n if (k.indexOf(\"q\") === 0) {\n urlString += Number(stringHash[k]);\n } else if (k === \"n\"){\n urlString += (pageNum + increment);\n } else {\n urlString += stringHash[k];\n }\n }\n\n return urlString;\n }\n\n cleanString(string) {\n return string\n .replace(/[^\\w\\s\\-\\.,'’]/g, '')\n .replace(/'/g, \"’\")\n .substring(0, 140);\n }\n\n setURLtoObject() {\n this.prevPage = this.urlParams.n;\n\n var params = window.location.hash.replace(\"#m\", \"\").split(\";\");\n for (var i in params) {\n var param = params[i].split(\":\");\n if (param[1] && param[1].length) {\n this.urlParams[param[0]] = param[0].indexOf(\"t\") === -1 ? Number(param[1]) : this.cleanString(decodeURIComponent(param[1]));\n }\n }\n if (!this.urlParams.td) {\n var newDate = new Date();\n this.urlParams.td = newDate.getFullYear() + \"-\" + (newDate.getMonth() + 1) + \"-\" + newDate.getDate();\n }\n }\n\n startCountdown() {\n if (document.getElementById(\"count-vote\") === null) {\n var countdownContainer = document.createElement(\"div\");\n var secondsTilVoteScreenDisappears = 3;\n var countDownFromX = this.params.countdownInitialScreen.counts.length;\n \n this.modalMonitor.appendChild(countdownContainer);\n countdownContainer.id = \"count-vote\";\n var self = this;\n\n const stopVoteCountDownDataTrackEvent = \"Health Monitor - Vote - StopCountdown\";\n this.additionalTrackingProperties[stopVoteCountDownDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'eventContainer' : 'countDown',\n 'eventComponent' : 'closeButton',\n } };\n\n const delayTimeout = function(s, countDownFromX, secondsTilVoteScreenDisappears) {\n setTimeout(function() {\n if (s === countDownFromX) {\n countdownContainer.innerHTML = `<button class=\"close-button-link stop-countdown\" data-track-event=\"${stopVoteCountDownDataTrackEvent}\">×</button> ${self.params.countdownFinalScreen}`;\n } else if (s < countDownFromX) {\n countdownContainer.innerHTML = `<button class=\"close-button-link stop-countdown\" data-track-event=\"${stopVoteCountDownDataTrackEvent}\">×</button>\n ${self.params.countdownInitialScreen.preContent}\n ${self.params.countdownInitialScreen.counts[s]}\n ${self.params.countdownInitialScreen.postContent}`;\n } else if (s === countDownFromX + secondsTilVoteScreenDisappears) {\n self.modalMonitor.removeChild(countdownContainer);\n }\n }, 1000 * s);\n }\n\n for (var s = 0; s <= countDownFromX + secondsTilVoteScreenDisappears; s++) {\n delayTimeout(s, countDownFromX, secondsTilVoteScreenDisappears)\n }\n }\n }\n\n renderPage() {\n this.setURLtoObject();\n this.sequence = [];\n var sequenceQuestionsIndex = this.urlParams.c;\n if (isNaN(this.urlParams.c)) {\n sequenceQuestionsIndex = 0;\n }\n\n this.sequence = this.sequence.concat(this.firstPages, this.categories[sequenceQuestionsIndex].questions, this.lastPages);\n\n\n\n if (window.location.hash.indexOf(\"#m\") === 0 && this.sequence[this.urlParams.n] && this.sequence[this.urlParams.n].pageIdentifier) {\n var thisContent = this.sequence[this.urlParams.n];\n\n const previousButtonDataTracking = thisContent.previousDataTrackEvent ? thisContent.previousDataTrackEvent : \"Health Monitor - Previous\";\n const nextButtonDataTracking = thisContent.nextDataTrackEvent ? thisContent.nextDataTrackEvent : \"Health Monitor - Next\";\n\n // Adding to tracking dictionary for look up later.\n this.additionalTrackingProperties[previousButtonDataTracking] = { ...this.additionalTrackingSchema, ...{\n 'label' : this.labels.previous\n } };\n\n this.additionalTrackingProperties[nextButtonDataTracking] = { ...this.additionalTrackingSchema, ...{\n 'label' : thisContent.nextLabel\n } };\n\n var htmls = `<a class=\"close-button-link close-all\" href=\"#\">×</a><div class=\"intra-flex\">`;\n if (thisContent.content) {\n htmls += thisContent.content.replace(/{{teamLabel}}/g, this.urlParams.tn ? decodeURIComponent(this.urlParams.tn) : \"\");\n }\n\n if (thisContent.pageIdentifier !== \"default\" && this[thisContent.pageIdentifier] ) {\n htmls += `<div class=\"container\"><div class=\"row reduced-row flex-container md-none-top\">${this[thisContent.pageIdentifier]()}</div></div>`;\n }\n \n htmls += `</div>\n <div class=\"container nav-fixed\">\n <div class=\"navigation row reduced-row\">\n <div class=\"column inner\">`;\n\n if (this.urlParams.n < this.sequence.length - 1) {\n var buttonClass = \"secondary\";\n if (thisContent.pageIdentifier === \"question\") {\n var questionId = this.urlParams.n - this.firstPages.length;\n if (this.isNumber(this.urlParams[\"q\" + questionId])) {\n buttonClass = \"primary\";\n }\n }\n htmls += `\n <button class=\"prev-link button--one button--small button--secondary\" data-track-event='${previousButtonDataTracking}'>\n ${this.labels.previous}\n </button>\n <div class=\"progress-bar\">\n <div class=\"progress\" style=\"width: ${((this.urlParams.n + 1) / this.sequence.length) * 100}%;\"></div>\n </div>\n <button class=\"next-link button button--one button--small button--${buttonClass}\" ${thisContent.pageIdentifier === \"choose\" && isNaN(this.urlParams.c) ? ` disabled` : ``} data-track-event='${nextButtonDataTracking}'>\n ${thisContent.nextLabel}\n </button>`;\n }\n\n htmls += `</div></div></div>`;\n \n document.body.style.overflow = \"hidden\";\n this.modalMonitor.className = \"n0 component--modal-monitor\";\n this.modalMonitor.innerHTML = htmls;\n\n // For the very last page. Assume this is the very last page\n // Doing this because of data tracking requirements\n if(this.urlParams.n === this.sequence.length - 1 ) {\n let index;\n const closeAndExplorePlaysInnerText = ['close', 'explore plays'];\n const finalDataTrackEventLabel = (value) => `Health Monitor - last page - ${value.trim().toLowerCase()}`;\n const addfinalDataTrackingEvent = (dataTrackEventName, label) => (\n this.additionalTrackingProperties[dataTrackEventName] = { ...this.additionalTrackingSchema, ...{\n 'label': label,\n 'eventContainer' : 'final',\n 'eventComponent' : 'button',\n }}\n );\n\n // get a list of buttons on page. we want specifically the close and explore plays button\n const listOfButtons = document.getElementsByClassName('button');\n for (index = 0; index < listOfButtons.length; index++) {\n const elementInnerText = listOfButtons[index].innerText.trim().toLowerCase();\n if (closeAndExplorePlaysInnerText.includes(elementInnerText)) {\n if (listOfButtons[index].hasAttribute(\"data-track-event\")) {\n addfinalDataTrackingEvent(listOfButtons[index].getAttribute(\"data-track-event\"), elementInnerText);\n } else {\n const trackingEventLabel = finalDataTrackEventLabel(elementInnerText);\n // add event to tracking look up\n addfinalDataTrackingEvent(trackingEventLabel, elementInnerText);\n // add tracking event to button\n listOfButtons[index].setAttribute('data-track-event', trackingEventLabel);\n }\n }\n }\n }\n\n } else {\n this.urlParams = {n: -1};\n this.resultsInfo = {};\n document.body.style.overflow = \"auto\";\n this.modalMonitor.className = \"\";\n this.modalMonitor.innerHTML = \"\";\n }\n if (this.urlParams.n !== this.prevPage) {\n this.modalMonitor.scrollTop = 0;\n }\n }\n\n /* the below functions are named for page identifiers specified in the \"pageIdentifier\" field dialog */\n /* these are used if that particular health monitor page requires custom behavior beyond what is inputtable in magnolia */\n\n results() {\n let dateBits = this.urlParams.td.split('-');\n let dateYear = Number(dateBits[0]);\n let dateMonth = Number(dateBits[1]) - 1;\n let dateDay = Number(dateBits[2]);\n var date = new Date(dateYear, dateMonth, dateDay);\n var resultsHTML = `\n ${this.urlParams.tn ? `<div class=\"column-md-6 text-right\">\n <p><span class=\"heading h5\">\n ${this.labels.teamName}</span> ${decodeURIComponent(this.urlParams.tn)}\n </p></div>` : \"\"}\n \n <div class=\"column-md-6 ${this.urlParams.tn ? \"\" : \"column-md-offset-3 text-center\"}\">\n <p><span class=\"heading h5\">${this.labels.completedOn}</span>\n ${this.monthMap[date.getMonth()]} ${date.getDate()}, ${date.getFullYear()}\n </p>\n </div>\n </div>\n <div class=\"row reduced-row\"> \n <div class=\"column\">\n\n <div class=\"labels-row hide-sm hide-xs border-row ${this.resultsInfo[\"q\" + r + \"highlighted\"] ? \"highlighted\" : \"\"} \">\n <div class=\"column column-md-1\">\n <h5>${this.labels.select}</h5>\n </div>\n <div class=\"column column-md-5\">\n <h5>${this.labels.attribute}</h5>\n </div>\n <div class=\"column column-md-3\">\n <h5>${this.labels.teamRating}</h5>\n </div>\n <div class=\"column column-md-3 text-right\">\n <h5>${this.labels.details}</h5>\n </div>\n </div>`;\n if (this.isNumber(this.urlParams.c)) {\n for (var r in this.categories[this.urlParams.c].questions) {\n var thisQuestion = this.categories[this.urlParams.c].questions[r];\n var rating = `<div class=\"rating\">`;\n if (isNaN(this.urlParams[\"q\" + r])) {\n const unansweredDataTrackEvent = `Health Monitor - ${this.labels.unanswered.trim()} - ${thisQuestion.title.trim()}`;\n this.additionalTrackingProperties[unansweredDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'label': this.labels.unanswered,\n 'eventContainer' : 'resultsSummary',\n 'eventComponent' : 'link',\n 'parentLabel': thisQuestion.title,\n } };\n\n\n rating += `<a class=\"retreat\" href=\"${this.getHashURL({toPage: Number(r) + this.firstPages.length})}\" data-track-event='${unansweredDataTrackEvent}'}>\n ${this.labels.unanswered}\n </a>`;\n } else {\n rating += `<img class=\"align-center\" src=\"${this.ratingTypes[this.urlParams[\"q\" + r]].smallImage}\">\n <span>${this.ratingTypes[this.urlParams[\"q\" + r]].shortDescription}</span>`;\n }\n rating += \"</div>\"\n\n var suggestedPlays = ``;\n for (var p = 0; p < thisQuestion.plays.length; p++) {\n const suggestedPlayDataTrackEvent = `Health Monitor - suggested plays - ${thisQuestion.title.trim()} - ${thisQuestion.plays[p].title.trim()}`;\n this.additionalTrackingProperties[suggestedPlayDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'label': thisQuestion.plays[p].title,\n 'magnoliaComponentId': thisQuestion.plays[p].uuid,\n 'eventContainer' : 'suggestedPlay',\n 'eventComponent' : 'link',\n 'parentLabel': thisQuestion.title,\n } };\n suggestedPlays += `<div class=\"sugg-play\"><a href=\"${thisQuestion.plays[p].url}\" data-track-event='${suggestedPlayDataTrackEvent}'>${thisQuestion.plays[p].title}</a></div>`;\n }\n\n const nextStepPlayDataTrackEvent = `Health Monitor - next steps - ${thisQuestion.title.trim()}`;\n this.additionalTrackingProperties[nextStepPlayDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'label': this.labels.nextSteps,\n 'eventContainer' : 'resultsSummary',\n 'eventComponent' : 'link',\n 'parentLabel': thisQuestion.title,\n } };\n\n resultsHTML += `<div class=\"${this.resultsInfo[\"q\" + r + \"maxed\"] ? \"no-\" : \"\"}border-row flex-container ${this.resultsInfo[\"q\" + r + \"highlighted\"] ? \"highlighted\" : \"\"} md-compact-top xs-compact-bottom\">\n <div class=\"column column-md-1 hide-sm hide-xs \">\n <input type=\"checkbox\" class=\"desk-check\" data-results=\"q${r}highlighted\" ${this.resultsInfo[\"q\" + r + \"highlighted\"] ? \"checked\" : \"\"}>\n </div>\n <div class=\"column column-md-5 xs-none-bottom sm-none-bottom\">\n <h3>\n <input class=\"highlight-check hide-md hide-lg hide-xl\" type=\"checkbox\" data-results=\"q${r}highlighted\" ${this.resultsInfo[\"q\" + r + \"highlighted\"] ? \"checked\" : \"\"}>\n\n ${thisQuestion.title}\n <label class=\"maxer hide-md hide-lg hide-xl\" for=\"maxed${r}\">\n <span>${this.resultsInfo[\"q\" + r + \"maxed\"] ? \"-\" : \"+\"}</span>\n </label>\n </h3>\n </div>\n <div class=\"column column-md-3 xs-none sm-none\">\n ${rating}\n </div>\n <div class=\"column column-md-3 hide-sm hide-xs text-right\">\n <input type=\"checkbox\" class=\"next-step\" id=\"maxed${r}\" class=\"link\"\n data-results=\"q${r}maxed\" ${this.resultsInfo[\"q\" + r + \"maxed\"] ? \"checked\" : \"\"}\n data-track-event='${nextStepPlayDataTrackEvent}'\n >\n <label for=\"maxed${r}\">\n ${this.labels.nextSteps}\n <span>${this.resultsInfo[\"q\" + r + \"maxed\"] ? \"-\" : \"+\"}</span>\n </label>\n </div>\n </div>`;\n\n const actionItemDataTrackEvent = `Health Monitor - action item - ${thisQuestion.title.trim()}`;\n this.additionalTrackingProperties[actionItemDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'label': this.labels.actionItems,\n 'eventContainer' : 'actionItem',\n 'eventComponent' : 'textBox',\n }};\n\n if (this.resultsInfo[\"q\" + r + \"maxed\"]) {\n resultsHTML += `<div class=\"border-row flex-container ${this.resultsInfo[\"q\" + r + \"highlighted\"] ? \"highlighted\" : \"\"} xs-compact-bottom\">\n <div class=\"column column-md-1 hide-sm hide-xs\"></div>\n <div class=\"column column-md-5 xs-none sm-none\">\n <h4>${this.labels.attributeDefinition}</h4>\n <p>${thisQuestion.description}</p>\n </div>\n <div class=\"column column-md-3 xs-none sm-none\">\n <h4>${this.labels.suggestedPlays}</h4>\n ${suggestedPlays}\n </div>\n <div class=\"column column-md-3 xs-none sm-none\">\n <h4>${this.labels.actionItems}</h4>\n <textarea placeholder=\"${this.labels.addActionItems}\" maxlength=\"100\" data-text=\"t${r}\" data-track-event=\"${actionItemDataTrackEvent}\">${this.urlParams[\"t\" + r] ? decodeURIComponent(this.urlParams[\"t\" + r]) : \"\"}</textarea>\n </div>\n </div>`\n }\n }\n }\n resultsHTML += `</div>`;\n return resultsHTML;\n }\n\n question() {\n var numQuestions = this.categories[this.urlParams.c].questions.length;\n var thisQuestionIndex = this.urlParams.n - this.firstPages.length;\n var thisQuestion = this.categories[this.urlParams.c].questions[thisQuestionIndex];\n\n const voteCountDownDataTrackEvent = thisQuestion.voteCountdownDataTrackEvent ? thisQuestion.voteCountdownDataTrackEvent : \"Health Monitor - Vote - Countdown\";\n this.additionalTrackingProperties[voteCountDownDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'label': this.labels.voteCountDown,\n 'eventContainer' : 'question',\n 'eventComponent' : 'link',\n } };\n\n var urlOptions = {};\n var questionHTML = `<div class=\"column column-md-7 column-md-offset-1 text-oversized\">\n <h5 class=\"heading\">\n ${this.labels.readQuestionOutLoud}\n (${this.labels.question} ${thisQuestionIndex + 1} ${this.labels.of} ${numQuestions})</h5>\n <h2 class=\"heading\">${thisQuestion.title}</h2>\n <p>${thisQuestion.description}</p>\n <strong class=\"heading\"><a class=\"heading start-countdown\" href=\"javascript: void(0)\" data-track-event='${voteCountDownDataTrackEvent}'>\n ${this.labels.voteCountDown}\n </a></strong>\n </div>\n <div class=\"column column-md-3\">\n <h5>\n ${this.labels.teamRating}\n </h5>\n <h4>\n ${this.labels.selectConsensus}\n </h4>\n <p>\n ${this.labels.keepDiscussionBrief}\n </p>`;\n for (var c in this.ratingTypes) {\n const ratingDataTrackEventimg = `Health Monitor - Vote - ${this.ratingTypes[c].shortDescription} - img`;\n const ratingDataTrackEventButton = `Health Monitor - Vote - ${this.ratingTypes[c].shortDescription} - button`;\n\n this.additionalTrackingProperties[ratingDataTrackEventimg] = { ...this.additionalTrackingSchema, ...{\n 'label': `image for ${this.ratingTypes[c].shortDescription}`,\n 'eventContainer' : 'question',\n 'eventComponent' : 'image',\n } };\n\n this.additionalTrackingProperties[ratingDataTrackEventButton] = { ...this.additionalTrackingSchema, ...{\n 'label': this.ratingTypes[c].shortDescription,\n 'eventContainer' : 'question',\n 'eventComponent' : 'button',\n } };\n\n urlOptions[\"q\" + thisQuestionIndex] = c;\n questionHTML += `<div class=\"chooser ${this.urlParams[\"q\" + thisQuestionIndex] === c ? \"activated\" : \"\"}\">\n <a class=\"image-link\" href=\"${this.getHashURL({questions: urlOptions})}\">\n <img class=\"align-center\" src=\"${this.ratingTypes[c].smallImage}\" data-track-event='${ratingDataTrackEventimg}'>\n </a>\n <a href=\"${this.getHashURL({questions: urlOptions})}\" class=\"question-link component__link button button--one button--small button--secondary\" style=\"border-color: ${this.ratingTypes[c].color}; ${this.urlParams[\"q\" + thisQuestionIndex] == c ? ` background-color: ${this.ratingTypes[c].color}` : ``};\" data-track-event='${ratingDataTrackEventButton}'>\n ${this.ratingTypes[c].shortDescription}\n </a>\n </div>`;\n }\n questionHTML += `</div> `;\n return questionHTML;\n }\n\n choose() {\n var categories = ``;\n \n var colWidth = this.categories.length > 3 || this.categories.length < 3 ? 6 : 4;\n for (var cat = 0; cat < this.categories.length; cat++) {\n const buttonDataTrackEvent = this.categories[cat].dataTrackEvent ? this.categories[cat].dataTrackEvent : `Health Monitor - category - ${this.categories[cat].categoryType}`;\n this.additionalTrackingProperties[buttonDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'label': this.categories[cat].categoryType,\n 'magnoliaComponentId': this.categories[cat].uuid,\n 'eventContainer' : 'category',\n 'eventComponent' : 'button',\n } };\n\n var teamName = ``;\n const teamNameDataTrackEvent = `Health Monitor - category - ${this.categories[cat].categoryType} - team name`;\n this.additionalTrackingProperties[teamNameDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'label': this.labels.teamName,\n 'eventContainer' : 'category',\n 'eventComponent' : 'textBox',\n }};\n\n\n if (this.isNumber(this.urlParams.c)) {\n teamName = `<div class=\"team-name\">\n <label>${this.labels.teamName}</label>\n <input data-text=\"tn\" data-track-event=\"${teamNameDataTrackEvent}\" maxlength=\"30\" value=\"${this.urlParams.tn ? decodeURIComponent(this.urlParams.tn) : \"\"}\"> \n </div>`;\n }\n categories += `<div class=\"column column-lg-${colWidth} column-lg-offset-0 column-md-10 column-md-offset-1 ${this.isNumber(this.urlParams.c) && this.urlParams.c != cat ? \"inactive\" : \"\"}\">\n <div class=\"block-theme-one category-block\">\n ${this.categories[cat].imageEmbed}\n <h5>${this.categories[cat].label ? this.categories[cat].label : \" \"}</h5>\n <h3>${this.categories[cat].categoryType}</h3>\n <p class=\"description\">${this.categories[cat].description}</p>\n <a class=\"component__link button button--one button--small button--${this.urlParams.c === cat ? \"primary\" : \"secondary\"}\"\n href=\"${this.getHashURL({category: cat})}\"\n data-track-event='${buttonDataTrackEvent}'\n >\n ${this.categories[cat].teamCTA}\n </a>\n ${teamName}\n </div>\n </div>`;\n }\n return categories;\n }\n\n instructions() {\n var ratingTypes = ``;\n for (var c in this.ratingTypes) {\n ratingTypes += `<div class=\"column column-md-4 text-center\">\n ${this.ratingTypes[c].image}\n <h5 class=\"no-marg\">${this.ratingTypes[c].label}</h5>\n <h2>“${this.ratingTypes[c].ratingType}”</h2>\n </div>`;\n }\n return ratingTypes;\n }\n\n share() {\n let dateBits = this.urlParams.td.split('-');\n let dateYear = Number(dateBits[0]);\n let dateMonth = Number(dateBits[1]) - 1;\n let dateDay = Number(dateBits[2]);\n var nextDate = new Date(dateYear, dateMonth, dateDay);\n nextDate.setDate(nextDate.getDate() + 28);\n\n const copyLinkDataTrackEvent = \"Health Monitor - Copy Link\";\n const emailDataTrackEvent = \"Health Monitor - Email\";\n\n this.additionalTrackingProperties[copyLinkDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'label': this.labels.copyLink,\n 'eventContainer' : 'share',\n 'eventComponent' : 'button',\n }};\n this.additionalTrackingProperties[emailDataTrackEvent] = { ...this.additionalTrackingSchema, ...{\n 'label': this.labels.emailLink,\n 'eventContainer' : 'share',\n 'eventComponent' : 'button',\n }};\n\n return `<div class=\"column column-md-6 column-md-offset-3 text-center\">\n <div class=\"block-theme-one share-block\">\n <h3>${this.labels.shareResults}</h3>\n <div>\n <input class=\"copy-this\" id=\"copy-text\" value=\"${window.location.origin + window.location.pathname + this.getHashURL({increment: -1})}\">\n </div>\n <a id=\"copy-link\" class=\"button button--one button--small button--primary\" data-track-event=\"${copyLinkDataTrackEvent}\">\n ${this.labels.copyLink}\n </a>\n <a id=\"email-link\" href=\"mailto:?body=${encodeURIComponent(this.labels.emailBody)}%0D%0D${window.location.origin + window.location.pathname + this.getHashURL({increment: -1})}\" class=\"button button--one button--small button--primary\" data-track-event=\"${emailDataTrackEvent}\">\n ${this.labels.emailLink}\n </a>\n </div>\n </div>\n </div>\n <div class=\"row\"><div class=\"column text-center\">\n\n <h4>${this.labels.scheduleYourNext}</h4>\n <p>${this.labels.yourNextHealthMonitor}</p>\n\n <h5 class=\"text-b400\">${this.monthMap[nextDate.getMonth()]} ${nextDate.getDate()}, ${nextDate.getFullYear()}</h5>\n </div>\n </div>`;\n }\n}\n"],"names":["HealthMonitor","_domRoot","params","_classCallCheck","this","firstPages","lastPages","categories","ratingTypes","labels","monthMap","countdownInitialScreen","countdownFinalScreen","urlParams","n","prevPage","prevHash","sequence","resultsInfo","modalMonitor","document","createElement","typingTimeoutId","additionalTrackingProperties","additionalTrackingSchema","init","key","value","self","body","appendChild","renderPage","window","onhashchange","addEventListener","e","target","id","getElementById","select","execCommand","className","indexOf","startCountdown","voteContainer","removeChild","location","hash","getHashURL","increment","sumPage","setTimeout","toPage","hasAttribute","dataTrackEventAttributeName","getAttribute","tracking","checked","textKey","cleanedString","cleanString","encodeURIComponent","history","pushState","clearTimeout","additionalTrackingProp","_objectSpread","num","isNaN","options","urlString","pageNum","stringHash","JSON","parse","stringify","questions","o","k","isNumber","category","c","Number","string","replace","substring","split","i","param","length","decodeURIComponent","td","newDate","Date","getFullYear","getMonth","getDate","countdownContainer","countDownFromX","counts","stopVoteCountDownDataTrackEvent","delayTimeout","s","secondsTilVoteScreenDisappears","innerHTML","concat","preContent","postContent","_this","setURLtoObject","sequenceQuestionsIndex","pageIdentifier","thisContent","previousButtonDataTracking","previousDataTrackEvent","nextButtonDataTracking","nextDataTrackEvent","previous","nextLabel","htmls","content","tn","buttonClass","questionId","style","overflow","index","closeAndExplorePlaysInnerText","addfinalDataTrackingEvent","dataTrackEventName","label","listOfButtons","getElementsByClassName","elementInnerText","innerText","trim","toLowerCase","includes","trackingEventLabel","setAttribute","scrollTop","dateBits","dateYear","dateMonth","dateDay","date","resultsHTML","teamName","completedOn","r","attribute","teamRating","details","thisQuestion","rating","unansweredDataTrackEvent","unanswered","title","smallImage","shortDescription","suggestedPlays","p","plays","suggestedPlayDataTrackEvent","uuid","url","nextStepPlayDataTrackEvent","nextSteps","actionItemDataTrackEvent","actionItems","attributeDefinition","description","addActionItems","numQuestions","thisQuestionIndex","voteCountDownDataTrackEvent","voteCountdownDataTrackEvent","voteCountDown","urlOptions","questionHTML","readQuestionOutLoud","question","of","selectConsensus","keepDiscussionBrief","ratingDataTrackEventimg","ratingDataTrackEventButton","color","colWidth","cat","buttonDataTrackEvent","dataTrackEvent","categoryType","teamNameDataTrackEvent","imageEmbed","teamCTA","image","ratingType","nextDate","setDate","copyLinkDataTrackEvent","emailDataTrackEvent","copyLink","emailLink","shareResults","origin","pathname","emailBody","scheduleYourNext","yourNextHealthMonitor"],"sourceRoot":""}