{"version":3,"file":"js/615-137bd9eaffe8f9a1f3fd.js","mappings":"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","sources":["webpack://jumpstart-app/./app/javascript/components/ sync ^\\.\\/.*$","webpack://jumpstart-app/./app/javascript/components/App.js","webpack://jumpstart-app/./app/javascript/components/Button.js","webpack://jumpstart-app/./app/javascript/components/Dashboard.js","webpack://jumpstart-app/./app/javascript/components/DateFormatter.jsx","webpack://jumpstart-app/./app/javascript/components/DebugPrinter.js","webpack://jumpstart-app/./app/javascript/components/InputDateTime.jsx","webpack://jumpstart-app/./app/javascript/components/ModalAddParticipant.js","webpack://jumpstart-app/./app/javascript/components/ModalAlert.js","webpack://jumpstart-app/./app/javascript/components/ModalLoading.js","webpack://jumpstart-app/./app/javascript/components/ModalQuizSettings.js","webpack://jumpstart-app/./app/javascript/components/ModalSendSurveyConfirmation.js","webpack://jumpstart-app/./app/javascript/components/ModalSurveyCheckout.js","webpack://jumpstart-app/./app/javascript/components/Notifications.js","webpack://jumpstart-app/./app/javascript/components/Pages.js","webpack://jumpstart-app/./app/javascript/components/Portal.js","webpack://jumpstart-app/./app/javascript/components/QuizEditor.js","webpack://jumpstart-app/./app/javascript/components/QuizFunctionsEditor.js","webpack://jumpstart-app/./app/javascript/components/Quizzes.js","webpack://jumpstart-app/./app/javascript/components/ResourcesDrawer.js","webpack://jumpstart-app/./app/javascript/components/Spinner.js","webpack://jumpstart-app/./app/javascript/components/Survey.js","webpack://jumpstart-app/./app/javascript/components/SurveyAssessments.js","webpack://jumpstart-app/./app/javascript/components/SurveyAssessmentsTable.js","webpack://jumpstart-app/./app/javascript/components/SurveyEndsOnRange.js","webpack://jumpstart-app/./app/javascript/components/SurveyNew.js","webpack://jumpstart-app/./app/javascript/components/SurveyTaker/index.js","webpack://jumpstart-app/./app/javascript/components/SurveyTypeBadge.js","webpack://jumpstart-app/./app/javascript/components/SwitchToggle.js","webpack://jumpstart-app/./app/javascript/components/TeamReportNew.js","webpack://jumpstart-app/./app/javascript/components/TeamReports.js","webpack://jumpstart-app/./app/javascript/components/contexts/ContextAssessments.js","webpack://jumpstart-app/./app/javascript/components/contexts/ContextNotification.js","webpack://jumpstart-app/./app/javascript/components/contexts/ContextSurvey.js","webpack://jumpstart-app/./app/javascript/components/contexts/ContextUser.js","webpack://jumpstart-app/./app/javascript/components/fetchers/index.js","webpack://jumpstart-app/./app/javascript/components/icons/CoinsIcon.js","webpack://jumpstart-app/./app/javascript/components/utils/classNames.js","webpack://jumpstart-app/./app/javascript/components/utils/fetch.js","webpack://jumpstart-app/./app/javascript/components/utils/state.js"],"sourcesContent":["var map = {\n\t\"./App\": 4590,\n\t\"./App.js\": 4590,\n\t\"./Button\": 739,\n\t\"./Button.js\": 739,\n\t\"./Dashboard\": 5435,\n\t\"./Dashboard.js\": 5435,\n\t\"./DateFormatter\": 6363,\n\t\"./DateFormatter.jsx\": 6363,\n\t\"./DebugPrinter\": 8387,\n\t\"./DebugPrinter.js\": 8387,\n\t\"./InputDateTime\": 3277,\n\t\"./InputDateTime.jsx\": 3277,\n\t\"./ModalAddParticipant\": 7953,\n\t\"./ModalAddParticipant.js\": 7953,\n\t\"./ModalAlert\": 1179,\n\t\"./ModalAlert.js\": 1179,\n\t\"./ModalEditAssessment\": 1350,\n\t\"./ModalEditAssessment.js\": 1350,\n\t\"./ModalLoading\": 9639,\n\t\"./ModalLoading.js\": 9639,\n\t\"./ModalQuizSettings\": 398,\n\t\"./ModalQuizSettings.js\": 398,\n\t\"./ModalSendSurveyConfirmation\": 4004,\n\t\"./ModalSendSurveyConfirmation.js\": 4004,\n\t\"./ModalSurveyCheckout\": 4552,\n\t\"./ModalSurveyCheckout.js\": 4552,\n\t\"./Notifications\": 7092,\n\t\"./Notifications.js\": 7092,\n\t\"./Pages\": 8397,\n\t\"./Pages.js\": 8397,\n\t\"./Portal\": 3252,\n\t\"./Portal.js\": 3252,\n\t\"./QuizEditor\": 8762,\n\t\"./QuizEditor.css\": 8939,\n\t\"./QuizEditor.js\": 8762,\n\t\"./QuizFunctionsEditor\": 9286,\n\t\"./QuizFunctionsEditor.js\": 9286,\n\t\"./Quizzes\": 4622,\n\t\"./Quizzes.js\": 4622,\n\t\"./ResourcesDrawer\": 8746,\n\t\"./ResourcesDrawer.js\": 8746,\n\t\"./Spinner\": 464,\n\t\"./Spinner.js\": 464,\n\t\"./Survey\": 465,\n\t\"./Survey.js\": 465,\n\t\"./SurveyAssessments\": 1737,\n\t\"./SurveyAssessments.js\": 1737,\n\t\"./SurveyAssessmentsTable\": 2794,\n\t\"./SurveyAssessmentsTable.js\": 2794,\n\t\"./SurveyEndsOnRange\": 9304,\n\t\"./SurveyEndsOnRange.js\": 9304,\n\t\"./SurveyNew\": 8912,\n\t\"./SurveyNew.js\": 8912,\n\t\"./SurveyTaker\": 3806,\n\t\"./SurveyTaker/\": 3806,\n\t\"./SurveyTaker/index\": 3806,\n\t\"./SurveyTaker/index.js\": 3806,\n\t\"./SurveyTaker/survey_js_custom.css\": 5808,\n\t\"./SurveyTypeBadge\": 597,\n\t\"./SurveyTypeBadge.js\": 597,\n\t\"./SwitchToggle\": 4887,\n\t\"./SwitchToggle.js\": 4887,\n\t\"./TeamReportNew\": 9110,\n\t\"./TeamReportNew.js\": 9110,\n\t\"./TeamReports\": 5407,\n\t\"./TeamReports.js\": 5407,\n\t\"./contexts/ContextAssessments\": 4754,\n\t\"./contexts/ContextAssessments.js\": 4754,\n\t\"./contexts/ContextNotification\": 5778,\n\t\"./contexts/ContextNotification.js\": 5778,\n\t\"./contexts/ContextSurvey\": 240,\n\t\"./contexts/ContextSurvey.js\": 240,\n\t\"./contexts/ContextUser\": 5869,\n\t\"./contexts/ContextUser.js\": 5869,\n\t\"./fetchers\": 6744,\n\t\"./fetchers/\": 6744,\n\t\"./fetchers/index\": 6744,\n\t\"./fetchers/index.js\": 6744,\n\t\"./icons/CoinsIcon\": 4558,\n\t\"./icons/CoinsIcon.js\": 4558,\n\t\"./utils/classNames\": 5501,\n\t\"./utils/classNames.js\": 5501,\n\t\"./utils/fetch\": 6242,\n\t\"./utils/fetch.js\": 6242,\n\t\"./utils/state\": 2235,\n\t\"./utils/state.js\": 2235\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 982;","import React, {useContext} from 'react';\nimport {\n createBrowserRouter,\n RouterProvider,\n} from \"react-router-dom\";\nimport Dashboard from './Dashboard';\nimport Survey from './Survey';\nimport {\n getSurveys,\n getSurveyAssessments,\n getSurvey,\n getMe,\n getNewSurvey,\n getTeamReports,\n getDocuments,\n getQuiz,\n getQuizzes,\n} from './fetchers';\nimport SurveyNew from './SurveyNew';\nimport Notifications from './Notifications';\nimport NotificationProvider from './contexts/ContextNotification';\nimport {useLoaderData} from 'react-router';\nimport SurveyProvider from './contexts/ContextSurvey';\nimport WhistlePng from '../../assets/images/whistle.png';\nimport UserProvider, {UserContext} from './contexts/ContextUser';\nimport {CalendarDaysIcon} from '@heroicons/react/24/solid';\nimport AssessmentsProvider from \"./contexts/ContextAssessments\";\nimport TeamReportNew from \"./TeamReportNew\";\nimport ResourcesDrawer from \"./ResourcesDrawer\";\nimport QuizEditor from \"./QuizEditor\";\nimport Quizzes from \"./Quizzes\";\n\nconst notDevelopment = process.env.NODE_ENV && process.env.NODE_ENV !== 'development';\n\nsetTimeout(() => {\n // we need to clean up flash messages from rails since we don't do any \"true\" reloads.\n const flash = document.querySelector('#flash');\n if (flash.children.length) {\n Array.from(flash.children).forEach((c) => flash.removeChild(c));\n }\n}, 10000);\n\nconst ErrorBoundary = () => {\n if (!notDevelopment) return null;\n\n return (\n
\n

Oh boy.

\n

That's not good

\n

Are you in the right account?

\n

Give it a refresh?

\n {\"Error\n
\n );\n};\n\nfunction Container({children}) {\n return (\n
{children}
\n )\n}\n\nconst router = () => createBrowserRouter([\n {\n path: \"/\",\n element: (\n \n \n \n ),\n errorElement: ,\n loader: async ( {request, params }) => {\n const url = new URL(request.url);\n\n const [user, surveys, teamReports] = await Promise.all([\n getMe(request.signal),\n getSurveys(request.signal, url.searchParams.get(\"sp\")),\n getTeamReports(request.signal, url.searchParams.get(\"trp\")),\n ]);\n\n return {user, surveys, teamReports};\n },\n },\n {\n path: \"/resources\",\n element: ,\n errorElement: ,\n loader: async({request}) => {\n const url = new URL(request.url);\n if (!url.searchParams.get('ctl')) return {documents: [], pages: {}, restricted: true};\n return await getDocuments(request.signal, url.searchParams.get('drp'), url.searchParams.get('ctl'))\n }\n },\n {\n path: \"/survey/new\",\n element: (\n \n \n \n ),\n errorElement: ,\n loader: async({request, params }) => {\n return getNewSurvey(request.signal);\n }\n },\n {\n path: \"/survey/:surveyId\",\n element: ,\n errorElement: ,\n loader: async({request, params}) => {\n const survey = await getSurvey(request.signal, params.surveyId);\n const assessments = await getSurveyAssessments(request.signal, params.surveyId);\n return {survey, assessments};\n },\n },\n {\n path: \"/team_reports/new\",\n element: (\n \n \n \n ),\n errorElement: ,\n loader: async({request, params }) => {\n const surveys = await getSurveys(request.signal);\n return {surveys};\n }\n },\n {\n path: '/quizzes',\n element: (\n \n \n \n \n \n ),\n errorElement: ,\n loader: async({request, params}) => {\n return await getQuizzes(request.signal);\n },\n },\n {\n path: '/quizzes/:quizId',\n element: (\n \n \n \n ),\n errorElement: ,\n loader: async({request, params}) => {\n return await getQuiz(request.signal, params.quizId)\n },\n }\n]);\n\nfunction SurveyHoc() {\n const {survey, assessments} = useLoaderData();\n\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport function AdminRequired({children}) {\n const {user} = useContext(UserContext);\n\n if (!user.admin) return null;\n\n return children;\n}\n\nexport default (props) => {\n return (\n
\n
\n \n \n \n \n \n \n \n \n
\n
\n )\n};\n","import React from 'react';\nimport {Spinner} from './Spinner';\n\nexport function Button({color='blue', onClick, additionalClasses, className, disabled, loading = false, children}) {\n return (\n !disabled && onClick()}\n >\n {loading &&
}\n {children}\n \n )\n}\n","import React, {useEffect} from 'react';\nimport {Link} from 'react-router-dom';\nimport {useLoaderData, useNavigate} from 'react-router';\nimport {\n CalendarDaysIcon,\n DocumentPlusIcon, ListBulletIcon,\n UserGroupIcon,\n UserIcon\n} from '@heroicons/react/24/outline';\nimport {ArrowRightIcon, DocumentDuplicateIcon} from '@heroicons/react/24/solid';\nimport CoinsIcon from \"./icons/CoinsIcon\";\nimport Pages from \"./Pages\";\nimport TeamReports from \"./TeamReports\";\nimport {AdminRequired} from \"./App\";\n\nexport default function Dashboard() {\n const {user = {}, surveys: { surveys, pages: surveyPages } = {pages: {}}} = useLoaderData();\n const navigate = useNavigate();\n\n useEffect(() => {\n // this is not a great solution but we want to softly navigate to the dashbaord when clicking the\n // CC logo as it is outside the react app context\n document.querySelector('#home').onclick = function(event) {\n event.preventDefault();\n navigate('/');\n }\n }, []);\n\n function renderStatusPill(status) {\n let color = null;\n\n status = status.split('_').join(' ');\n\n switch(status) {\n case 'active':\n color = 'bg-green-100 text-green-800';\n break;\n case 'paid':\n color = 'bg-blue-100 text-blue-800';\n break;\n case 'draft':\n color = 'bg-yellow-100 text-yellow-800'\n break;\n default:\n color = 'bg-gray-100 text-gray-800';\n break;\n }\n\n return (\n \n {status}\n \n );\n }\n\n return (\n <>\n
\n
\n

\n Welcome, {user.first_name}\n

\n \n \n \n \n \n\n
\n \n \n Resources\n \n
\n
\n
\n

Team Reports

\n

Your purchased team reports

\n
\n \n \n \n
\n \n
\n
\n
\n

Surveys

\n

All your surveys

\n
\n \n \n \n
\n {\n !surveys.length && (\n \n \n \n Create your first survey!\n \n \n )\n }\n\n
\n {\n surveys.map(({assess_count, name, created_at, created_by, status, id, used_tokens}) => {\n return (\n
  • \n
    \n
    \n
    \n
    \n

    \n {name}\n

    \n {renderStatusPill(status)}\n
    \n
    \n \n {new Intl.DateTimeFormat('en-US').format(new Date(created_at))}\n
    \n
    \n \n {created_by}\n
    \n
    \n
    \n
    \n \n
    \n {assess_count}\n
    \n
    \n
    \n \n
    \n {used_tokens}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n View\n \n \n
    \n
    \n
    \n
    \n
  • \n )\n })\n }\n
    \n
    \n \n
    \n \n )\n}\n","import React, {useEffect, useMemo} from 'react';\n\nexport default function DateFormatter({dateString}) {\n return useMemo(() => {\n return new Intl.DateTimeFormat(\"en-US\", {\n year: \"2-digit\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: 'numeric',\n minute: 'numeric',\n })\n .format(new Date(dateString));\n }, []);\n}","import React, {useState} from 'react';\n\nexport default function DebugPrinter ({initShow = false, json, children}) {\n const [show, setShow] = useState(initShow);\n\n if (window.localStorage.app_debug !== 'true') return null;\n\n return (\n
    \n
    setShow(!show)} className=\"cursor-pointer\">Toggle debug
    \n { show ? (\n <>\n
    \n              {JSON.stringify(json, null, 2)}\n            
    \n
    \n {children}\n \n )\n : null\n }\n
    \n );\n}\n","import React from \"react\";\n\nexport default function InputDateTime ({classes, ...props}) {\n return (\n \n );\n}\n","import React, {Fragment, useState} from 'react';\nimport {Dialog, Transition} from '@headlessui/react';\nimport {UserPlusIcon} from '@heroicons/react/24/outline';\nimport {fetchApi} from './utils/fetch';\nimport {Spinner} from './Spinner';\n\nexport default function ModalAddParticipant({surveyId, open, onClose, onSave}) {\n const [showError, setShowError] = useState(null);\n const [loading, setLoading] = useState(false);\n\n function onSubmit(event) {\n event.preventDefault();\n setLoading(true);\n const data = {};\n\n new FormData(event.target).forEach((value, key) => {\n data[key] = value;\n });\n\n fetchApi(`/api/v1/internal/surveys/${surveyId}/assessments`, {\n method: 'POST',\n body: JSON.stringify({\n participant: {first_name: data.first_name, last_name: data.last_name, email: data.email},\n assessment: { group_number: data.group_number, type: data.type }\n }),\n }).then(({error, success}) => {\n if (!success) {\n setShowError(error);\n } else {\n onSave();\n }\n }).finally(() => setLoading(false));\n }\n\n function close() {\n setShowError(null);\n onClose();\n }\n\n return (\n \n close()}>\n \n
    \n \n\n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n Add new participant\n \n
    \n {showError && (

    {showError}

    )}\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n close()}\n >\n Close\n \n \n {!loading ? : ()}\n Add Participant\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n )\n}\n","import React, { Fragment } from 'react'\nimport { Dialog, Transition } from '@headlessui/react'\nimport { CheckIcon } from '@heroicons/react/24/outline'\n\nexport default function ModalAlert({ headerIcon, alert, open = false, setOpen = () => {} }) {\n return (\n \n \n \n
    \n \n\n
    \n
    \n \n \n
    \n {\n headerIcon || (\n
    \n \n
    \n )\n }\n
    \n \n {alert.title}\n \n
    \n

    \n {alert.body}\n

    \n
    \n
    \n
    \n
    \n {\n setOpen(false);\n alert.onConfirm();\n }}\n >\n {alert.confirmButtonText}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n )\n}\n","import React, { Fragment } from 'react'\nimport { Dialog, Transition } from '@headlessui/react'\nimport { CheckIcon } from '@heroicons/react/24/outline'\n\nexport default function ModalLoading({ headerIcon, alert, open = false, setOpen = () => {} }) {\n return (\n \n \n \n
    \n \n\n
    \n
    \n \n \n
    \n {headerIcon}\n
    \n \n {alert.title}\n \n
    \n

    \n {alert.message}\n

    \n
    \n
    \n
    \n {alert.confirmButtonText && (\n
    \n {\n setOpen(false);\n alert.onConfirm();\n }}\n >\n {alert.confirmButtonText}\n \n
    \n )}\n
    \n \n
    \n
    \n
    \n
    \n )\n}\n","import React, {Fragment, useState} from 'react';\nimport {Dialog, Transition} from '@headlessui/react';\nimport {CheckIcon, NewspaperIcon} from '@heroicons/react/24/outline';\nimport {useLoaderData} from \"react-router\";\nimport {classNames} from './utils/classNames';\nimport SwitchToggle from \"./SwitchToggle\";\n\nexport default function ModalQuizSettings({onConfirm, quiz = {}, open = false, setOpen = () => {} }) {\n const {coachability_report_contents: coachabilityReportContents, report_contents_type: reportContentsType} = useLoaderData();\n const [isAvailable, setIsAvailable] = useState(quiz.is_available || false);\n const [isForFeedbackOnly, setIsForFeedbackOnly] = useState(quiz.is_for_feedback_only || false);\n const [isCoachabilityQuiz, setIsCoachabilityQuiz] = useState(quiz.is_coachability || false);\n const [isInternal, setIsInternal] = useState(quiz.is_internal);\n const [description, setDescription] = useState(quiz.description || null);\n const [surveyName, setSurveyName] = useState(quiz.name || null);\n const [surveyType, setSurveyType] = useState(quiz.type_name || null);\n const [reportTypeId, setReportTypeId] = useState(null);\n const [error, setError] = useState(null);\n\n function create() {\n if (!editMode && !window.confirm('Are you certain of your settings? Some cannot be changed after creation.')) return;\n\n const savePromise = onConfirm({\n surveyName: surveyName,\n surveyType,\n isAvailable,\n isInternal,\n isCoachabilityQuiz,\n isForFeedbackOnly,\n description,\n reportTypeId,\n });\n\n if (savePromise) {\n savePromise.then(({success, error}) => {\n if (error) return setError(error);\n setOpen(false);\n })\n } else {\n setOpen(false);\n }\n }\n\n const editMode = !!quiz.type_name;\n\n return (\n \n \n \n
    \n \n\n
    \n
    \n \n \n
    \n {/*
    {JSON.stringify({ description, surveyType, surveyName }, null, 2)}
    */}\n
    \n \n
    \n
    \n \n {editMode ? `Edit the ${quiz.type_name} quiz` : \"Create a new Quiz\"}\n \n\n
    \n
    \n

    Give this quiz a name

    \n
    A name must be unique and cannot be changed once created.
    \n setSurveyName(value)} type=\"text\" name=\"survey_name\" id=\"survey_name\" className={`${quiz.name ? 'text-gray-500' : 'text-gray-900'} block w-full rounded-md border-0 py-1.5 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-orange-600 sm:text-sm sm:leading-6 mt-4`} />\n
    \n
    \n
    \n

    Give this quiz a type

    \n
    A type must be unique and cannot be changed once created.
    \n setSurveyType(value)} type=\"text\" name=\"survey_name\" id=\"survey_name\" className={`${quiz.type_name ? 'text-gray-500' : 'text-gray-900'} block w-full rounded-md border-0 py-1.5 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-orange-600 sm:text-sm sm:leading-6 mt-4`} />\n
    \n
    \n
    \n

    Description

    \n
    This description will be visible to users selecting their survey type.
    \n \n
    \n
    \n
    \n

    Is this quiz a coachability quiz?

    \n {\n setIsCoachabilityQuiz(value);\n }} />\n
    \n {\n isCoachabilityQuiz && !editMode ? (\n <>\n
    \n
    \n

    Link a Coachability Report

    \n setReportTypeId(value)}\n >\n \n {\n coachabilityReportContents.map(report => {\n return \n })\n }\n \n
    \n \n ) : null\n }\n {isCoachabilityQuiz && editMode ? (\n <>\n
    \n
    \n

    Report Content Type

    \n

    {isCoachabilityQuiz && editMode ? reportContentsType : null}

    \n
    \n \n ) : null}\n
    \n
    \n

    Is this quiz for feedback only?

    \n {\n setIsForFeedbackOnly(value);\n setIsAvailable(value);\n if (isCoachabilityQuiz && !editMode && value) setIsCoachabilityQuiz(false);\n }} />\n
    \n
    \n
    \n

    Is this quiz available for use?

    \n {\n setIsAvailable(value);\n }} />\n
    \n
    \n
    \n

    Internal Only?

    \n {\n setIsInternal(value);\n }} />\n
    \n
    \n
    \n {error && (

    {error}

    )}\n
    \n
    \n {\n setOpen(false);\n }}\n >\n Cancel\n \n \n \n Save & Edit\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n )\n}\n","import Tippy from \"@tippyjs/react\";\nimport React, { Fragment } from 'react'\nimport { Dialog, Transition } from '@headlessui/react';\nimport {HandRaisedIcon, InformationCircleIcon, PaperAirplaneIcon} from '@heroicons/react/24/outline';\nimport InputDateTime from \"./InputDateTime\";\nimport SurveyEndsOnRange from './SurveyEndsOnRange';\nimport {useSurvey} from './contexts/ContextSurvey';\nimport {classNames} from './utils/classNames';\nimport SwitchToggle from './SwitchToggle';\n\nexport default function ModalSendSurveyConfirmation({onConfirm, onUpdate, open = false, setOpen = () => {} }) {\n const {survey} = useSurvey();\n\n function onSetEndsOnRange(value) {\n onUpdate({ends_on_range: value});\n }\n\n function onSetDeadline(value) {\n onUpdate({deadline: value});\n }\n\n function onSetAutoSendResults(value) {\n onUpdate({auto_send_results: value});\n }\n\n return (\n \n \n \n
    \n \n\n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n Are you ready?\n \n
    \n

    \n You're about to start the survey. After you start the survey you will NOT be able to add any participants or edit any of their details.\n

    \n

    \n Are you sure you would like to start?\n

    \n
    \n
    \n
    \n

    Select a time range to end the survey

    \n \n
    \n
    \n
    \n
    \n

    Set a deadline (Eastern)

    \n \n \n \n
    \n onSetDeadline(value)} />\n
    \n
    \n
    \n

    Automatically send results

    \n \n
    \n
    \n
    \n
    \n
    \n {\n setOpen(false);\n }}\n >\n Cancel\n \n {\n if (survey.ends_on_range) {\n setOpen(false);\n onConfirm();\n }\n }}\n >\n \n Save and Send\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n )\n}\n","import React, {Fragment, useMemo, useState} from 'react'\nimport { Dialog, Transition } from '@headlessui/react'\nimport {CurrencyDollarIcon, MinusIcon, PlusIcon} from '@heroicons/react/24/outline'\nimport {Button} from './Button';\nimport {fetchApi} from './utils/fetch';\nimport CoinsIcon from \"./icons/CoinsIcon\";\n\nexport default function ModalSurveyCheckout({onCheckoutComplete = () => {}, survey, availableTokens = 0, purchaseQuantity, open, setOpen, url, checkoutRequestBody = {}}) {\n const [loading, setLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState(null);\n const [tokensToUse, setTokensToUse] = useState(0);\n const maxAvailableTokens = useMemo(() => (\n Math.min(...[availableTokens, purchaseQuantity].map((i) => parseInt(i)))\n ), [availableTokens, purchaseQuantity]);\n\n function sendToCheckout() {\n setLoading(true);\n fetchApi(url || `/api/v1/internal/surveys/${survey.id}/checkout`, {\n method: 'POST',\n body: JSON.stringify({\n tokens_to_use: tokensToUse,\n ...checkoutRequestBody,\n }),\n })\n .then(({success, msg, checkout_url}) => {\n if (checkout_url) {\n window.open(checkout_url, '_self');\n } else if (!success) {\n setErrorMessage(msg);\n } else if (success && !checkout_url) {\n onCheckoutComplete(success);\n setOpen(false);\n }\n }).finally(() => setLoading(false));\n }\n\n return (\n \n {\n setErrorMessage(null);\n setTokensToUse(0);\n setOpen(false);\n }}>\n \n
    \n \n\n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n Just one more thing\n \n
    \n

    \n Would you like to be sent to our payment website?\n

    \n { errorMessage && (\n

    \n {errorMessage}\n

    \n )}\n
    \n {\n !!maxAvailableTokens && (\n <>\n
    \n \n
    \n tokensToUse > 0 && setTokensToUse(tokensToUse - 1)} className=\"active:ring-2 ring-gray-200 bg-gray-400 text-white font-bold rounded-l-md p-1 inline-flex items-center\">\n \n \n \n {tokensToUse} / {maxAvailableTokens}\n \n tokensToUse < maxAvailableTokens && setTokensToUse(tokensToUse + 1)} className=\"active:ring-2 ring-gray-200 bg-gray-400 text-white font-bold rounded-r-md p-1 inline-flex items-center\">\n \n \n
    \n
    \n
    You have tokens you can use.
    \n \n )\n }\n
    \n
    \n
    \n {\n tokensToUse === purchaseQuantity ? (\n \n ) : (\n \n )\n }\n
    \n
    \n \n
    \n
    \n
    \n
    \n )\n}\n","import React, { Fragment, useState } from 'react'\nimport { Transition } from '@headlessui/react'\nimport {CheckCircleIcon, ExclamationCircleIcon, XCircleIcon} from '@heroicons/react/24/outline'\nimport { XMarkIcon } from '@heroicons/react/20/solid'\nimport {useNotifications} from './contexts/ContextNotification';\n\nexport const NOTIFICATION_TYPES = {\n WARNING: 'warning',\n SUCCESS: 'success',\n FAILURE: 'failure',\n}\nexport default function Notifications() {\n const {notifications, removeNotification, addNotification} = useNotifications();\n\n return (\n <>\n \n
    \n {\n notifications.map((notification) => {\n const {type = 'success', title, body, id} = notification;\n\n let colors = {};\n let icon = ;\n\n switch (type) {\n case 'success':\n colors = { text: 'text-green-400' }\n icon = \n break;\n case 'warning':\n colors = { text: 'text-yellow-400' }\n icon = \n break;\n case 'failure':\n colors = { text: 'text-red-400' }\n icon = \n break;\n }\n\n return (\n \n
    \n
    \n
    \n
    \n {icon}\n
    \n
    \n

    {title}

    \n

    {body}

    \n
    \n
    \n {\n removeNotification(notification);\n }}\n >\n Close\n \n \n
    \n
    \n
    \n
    \n \n );\n })\n }\n
    \n \n \n )\n}\n","import React, {useEffect, useState} from 'react';\nimport {useSearchParams} from \"react-router-dom\";\nimport {ArrowLeftIcon} from \"@heroicons/react/24/outline\";\n\nexport default function Pages({maxPage, queryKey, additionalSearchParams}) {\n const [searchParams, setSearchParams] = useSearchParams();\n const [currentPage, setCurrentPage] = useState(searchParams[queryKey] || 1);\n\n useEffect(() => {\n if (currentPage > maxPage) return setCurrentPage(maxPage);\n if (currentPage < 1) return setCurrentPage(1);\n\n setSearchParams({...Object.fromEntries(searchParams), ...additionalSearchParams, [queryKey]: currentPage});\n }, [currentPage, additionalSearchParams]);\n\n return (\n
    \n setCurrentPage(currentPage - 1)}\n type=\"button\"\n className=\"inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\"\n >\n \n \n setCurrentPage(currentPage + 1)}\n type=\"button\"\n className=\"inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-base font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\"\n >\n \n \n
    \n )\n}","import React, { useState, useEffect } from 'react';\nimport {createPortal} from 'react-dom';\n\nexport default function Portal({ children }) {\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => setMounted(true), []);\n\n if (!mounted) return null;\n return createPortal(children, document.body);\n}\n","import React, {useEffect, useState} from 'react';\nimport {SurveyCreatorComponent, SurveyCreator} from \"survey-creator-react\";\nimport {useNotifications} from \"./contexts/ContextNotification\";\nimport {useLoaderData, useLocation, useNavigate, useParams} from \"react-router\";\nimport {\n ArrowUturnLeftIcon,\n ChevronLeftIcon,\n CogIcon,\n EyeIcon, LinkIcon,\n} from \"@heroicons/react/24/outline\";\nimport {Link} from \"react-router-dom\";\nimport {fetchApi} from \"./utils/fetch\";\nimport {Spinner} from \"./Spinner\";\nimport {classNames} from \"./utils/classNames\";\nimport ModalQuizSettings from \"./ModalQuizSettings\";\nimport {ReactElementFactory} from \"survey-react-ui\";\nimport AceEditor from \"react-ace\";\nimport QuizFunctionsEditor from \"./QuizFunctionsEditor\";\nimport {NOTIFICATION_TYPES} from \"./Notifications\";\nimport { Serializer } from \"survey-core\";\n\nimport \"survey-core/survey.i18n.js\";\nimport \"survey-creator-core/survey-creator-core.i18n.js\";\nimport \"survey-core/defaultV2.css\";\nimport \"survey-creator-core/survey-creator-core.fontless.min.css\";\nimport \"ace-builds/src-noconflict/theme-textmate\";\nimport \"ace-builds/src-noconflict/mode-json\";\nimport \"ace-builds/src-noconflict/ext-language_tools\";\nimport \"survey-core/survey.i18n.js\";\nimport \"survey-creator-core/survey-creator-core.i18n.js\";\nimport './QuizEditor.css';\nimport Tippy from \"@tippyjs/react\";\n\nSerializer.addProperty('survey', {\n name: \"randomizePages\",\n category: \"pages\",\n visibleIndex: 1,\n type: 'boolean',\n displayName: 'Randomize pages',\n visible: true,\n});\n\nSerializer.addProperty('page', {\n name: \"excludeFromRandom\",\n category: \"general\",\n visibleIndex: 1,\n type: 'boolean',\n displayName: 'Exclude from random [Keep current position]',\n visible: true,\n});\n\nexport default function QuizEditor() {\n const [creator, setCreator] = useState(null);\n const [saving, setSaving] = useState(false);\n const [show, setShow] = useState(false);\n const navigate = useNavigate();\n const {addNotification} = useNotifications()\n const {\n quiz: initQuiz,\n read_only: readOnly,\n draft,\n test_token_values: tokenValues,\n required_formulas: requiredFormulas\n } = useLoaderData();\n const {quizId} = useParams();\n const {state: locationState} = useLocation();\n const [showFormulaEditor, setShowFormulaEditor] = useState(false);\n const [showJSONEditor, setShowJSONEditor] = useState(false);\n const [showSettings, setShowSettings] = useState(false);\n const [formulaHasError, setFormulaHasError] = useState(false);\n\n useEffect(() => {\n if (locationState?.notificationState) addNotification(locationState.notificationState);\n }, [locationState]);\n\n useEffect(() => {\n if (draft) {\n hideExternalEditors();\n return navigate(`/quizzes/${draft.id}`);\n }\n\n setShow(true);\n\n const creator = new SurveyCreator({\n haveCommercialLicense: true,\n showTranslationTab: true,\n isAutoSave: true,\n readOnly,\n });\n\n ReactElementFactory.Instance.registerElement(\n \"formula-creator\",\n (props) => {\n // We have to render something here so we can get the active/deactivate callbacks\n return React.createElement(QuizFunctionsEditor, {\n ...props,\n initQuiz,\n requiredFormulas,\n quizId: initQuiz?.id,\n tokenValues: tokenValues,\n save: (formulas, tokenValues) => {\n save(creator, undefined, undefined, formulas, tokenValues);\n },\n onFormulaError: (hasError) => setFormulaHasError(hasError),\n });\n }\n );\n\n creator.addPluginTab(\"formula-creator\", {\n activate: () => { setShowFormulaEditor(true) },\n deactivate: () => {\n setShowFormulaEditor(false);\n return true;\n }\n }, \"Formulas\", \"formula-creator\", 3);\n\n creator.text = initQuiz.quiz ? JSON.stringify(initQuiz.quiz) : null;\n\n creator.saveSurveyFunc = (saveNo, callback) => save(creator, saveNo, callback);\n\n setCreator(creator);\n }, [draft, quizId]);\n\n function hideExternalEditors() {\n setShowJSONEditor(false);\n setShowFormulaEditor(false);\n }\n\n function save(creator, saveNo, callback, formulas, tokenValues) {\n if (creator.readOnly) return;\n\n setSaving(true);\n\n const body = {\n parent_id: initQuiz.id,\n save_number: saveNo,\n };\n\n if (tokenValues) body.token_values = tokenValues;\n if (formulas) body.formulas = formulas;\n if (creator.JSON) body.updated_quiz = creator.JSON;\n\n fetchApi(`/api/v1/internal/quizzes/${quizId ? quizId : ''}`, {\n method: quizId ? 'PATCH' : 'POST',\n body: JSON.stringify(body),\n }).then((resp) => {\n const {error} = resp;\n if (error) addNotification({ title: 'Cannot make change', body: error, type: NOTIFICATION_TYPES.FAILURE });\n if (!!callback) callback(saveNo, resp.success);\n if (!quizId) navigate(`/quizzes/${resp.quiz.id}`);\n if (resp.draft) {\n hideExternalEditors();\n navigate(`/quizzes/${resp.draft.id}`);\n }\n }).finally(() => setSaving(false));\n }\n\n function rollback() {\n if (initQuiz.is_published) {\n return window.alert('This quiz is already published and cannot be rolled back.');\n }\n\n if (!window.confirm('Are you sure you want to revert all your changes to the last published version of this quiz?')) {\n return;\n }\n\n fetchApi(`/api/v1/internal/quizzes/${quizId}`, {method: 'DELETE'})\n .then(({success, quiz, error}) => {\n if (success) {\n navigate(`/quizzes/${quiz.id}`, {\n state: {\n notificationState: {\n title: 'Quiz rolled back',\n body: `This quiz has been rolled back to the previously published version.`,\n }\n }\n });\n } else {\n addNotification({title: 'Could not rollback', body: error, type: NOTIFICATION_TYPES.FAILURE})\n }\n });\n }\n\n function updateQuizSettings({isAvailable, surveyType, isInternal, isCoachabilityQuiz, description}) {\n fetchApi(`/api/v1/internal/quizzes/${quizId}`, {\n method: 'PATCH',\n body: JSON.stringify({\n is_available: isAvailable,\n is_coachability: isCoachabilityQuiz,\n is_internal: isInternal,\n survey_type: surveyType,\n description,\n })\n }).then(({success}) => {\n if (success) {\n navigate(`/quizzes/${quizId}`, {\n state: {\n notificationState: {\n title: 'Quiz Settings updated',\n body: 'Quiz settings are up to date.'\n }\n }\n });\n }\n });\n }\n\n function publish() {\n if (!window.confirm(`Are you sure you want to publish this version?`)) return;\n\n fetchApi(`/api/v1/internal/quizzes/${quizId}/publish`, {\n method: 'POST',\n body: JSON.stringify({\n confirm: true,\n })\n })\n .then(({success, quiz}) => {\n if (success) {\n navigate(`/quizzes/${quizId}`, {\n state: {\n notificationState: {\n title: 'Quiz Published',\n body: `This quiz version will now be assigned to all new assessments.`,\n }\n }\n });\n }\n });\n }\n\n if (!show || !creator) return null;\n\n const cantPublish = saving || initQuiz.is_published || formulaHasError || readOnly;\n const canRollback = saving || initQuiz.is_published || readOnly;\n\n return (\n <>\n setShowSettings(val)} open={showSettings} quiz={initQuiz} onConfirm={updateQuizSettings} />\n
    \n
    \n \n
    \n \n All Quizzes\n
    \n \n \n {initQuiz.name}\n {initQuiz.type_name}\n \n
    \n {!readOnly && {initQuiz.is_published ? 'Published' : 'Not Published'}}\n {readOnly && Read Only}\n \n \n Publish\n \n \n \n Rollback\n \n { initQuiz.is_for_feedback_only &&\n (\n \n {\n navigator.clipboard.writeText(initQuiz.external_feedback_url).then(() => {\n addNotification({title: 'Copied', body: 'Link copied to clipboard.'})\n })\n }}\n className={`bg-gray-50 border border-gray-400 inline-flex items-center gap-x-1.5 rounded-md p-1 text-sm font-semibold shadow-sm hover:bg-gray-700 text-gray-700 hover:text-gray-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600`}\n >\n \n \n \n )\n }\n setShowSettings(true)}\n className={`bg-gray-50 border border-gray-400 inline-flex items-center gap-x-1.5 rounded-md p-1 text-sm font-semibold shadow-sm hover:bg-gray-700 text-gray-700 hover:text-gray-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600`}\n >\n \n \n
    \n
    \n
    \n \n \n )\n}\n","import React, {useEffect, useState} from \"react\";\nimport {CalculatorIcon} from \"@heroicons/react/24/outline\";\nimport {ExpressionRunner} from \"survey-core\";\n\nexport default function QuizFunctionsEditor(props) {\n const {save, initQuiz = {}, requiredFormulas, creator, tokenValues, onFormulaError} = props;\n const [expressionValue, setExpressionValue] = useState({});\n const [tokens, setTokens] = useState({});\n const [valuedTokens, setValuedTokens] = useState(tokenValues || {});\n const [errors, setErrors] = useState({});\n const [touched, setTouch] = useState(false);\n\n useEffect(() => {\n const modifiedCallback = () => {\n parseQuiz();\n };\n\n props.creator.onModified.add(modifiedCallback);\n\n return () => {\n props.creator.onModified.remove(modifiedCallback);\n }\n }, []);\n\n useEffect(() => {\n if (!Object.keys(expressionValue).length) return;\n const errors = calculateErrors();\n if (errors && Object.values(errors).filter((e) => !!e).length && touched) {\n console.log('Returned errors', errors);\n }\n }, [valuedTokens, expressionValue]);\n\n // let's get things started\n useEffect(() => {\n parseQuiz();\n }, [initQuiz.updated_at]);\n\n useEffect(() => {\n const updatedExpressionValues = {...expressionValue};\n\n Object.keys(expressionValue).map((expressKey) => {\n const expression = new ExpressionRunner(expressionValue[expressKey].expression);\n updatedExpressionValues[expressKey].value = expression.run(valuedTokens);\n });\n\n setExpressionValue({...initQuiz.formulas, ...updatedExpressionValues});\n }, [valuedTokens]);\n\n // save when expressions change\n useEffect(() => touched ? save(expressionValue, valuedTokens) : undefined, [expressionValue]);\n\n function parseQuiz() {\n const qualifiedTokens = questionPreview(creator.JSON).reduce((acc, q) => {\n if (!q?.choices) return acc;\n acc[q.name] = q.choices.map((c) => c.value);\n return acc;\n }, {});\n\n setTokens(qualifiedTokens);\n\n const newValuedTokens = Object.keys(qualifiedTokens).reduce((acc, token) => {\n acc[token] = valuedTokens[token] || qualifiedTokens[token][0] || 1;\n return acc;\n }, {});\n\n setValuedTokens(newValuedTokens);\n }\n\n function questionPreview(quiz) {\n const previewQuiz = {...quiz};\n\n const questions = previewQuiz?.pages?.map((page) => {\n return page.elements;\n }) || [];\n\n previewQuiz.pages = [{name: \"page1\", elements: questions.flat()}];\n\n return questions.flat();\n }\n\n function checkForErrors(expression) {\n const runner = new ExpressionRunner(expression);\n\n let error;\n const missingVars = runner.getVariables().filter((v) => !tokens[v]);\n if (missingVars.length > 0) {\n error = `Missing variables found: ${missingVars.join(', ')}`;\n } else if (!isValid(expression) && expression?.length) {\n error = 'The expression is invalid.';\n } else {\n error = null;\n }\n\n return error;\n }\n\n function isValid(expression) {\n const runner = new ExpressionRunner(expression);\n return !isNaN(runner.run(valuedTokens)) && runner.canRun();\n }\n\n function calculateErrors(values = expressionValue) {\n const errors = requiredFormulas.reduce((acc, formulaName) => {\n acc[formulaName] = checkForErrors(values[formulaName]?.expression);\n return acc;\n }, {});\n\n if (Object.values(errors).filter((e) => !!e).length > 0) {\n onFormulaError(true);\n creator.tabs[3].title = 'Formulas - ERROR';\n } else {\n onFormulaError(false);\n creator.tabs[3].title = 'Formulas';\n }\n\n setErrors(errors);\n return errors;\n }\n\n return (\n
    \n
    \n
    \n
    \n

    Formulas

    \n

    \n Formulas are how individual Factor scores are calculated. You can use the same syntax that is supported by SurveyJS as described in their documentation.\n

    \n
    \n
    \n
    \n
    \n Calculations\n
    \n
    \n Test Values\n
    \n
    \n
    \n
    \n
    \n {\n requiredFormulas.map((formulaName) => {\n return (\n
    \n
    \n

    {formulaName}

    \n

    \n \n {expressionValue[formulaName]?.value || 'N/A'}\n

    \n
    \n
    \n {\n const runner = new ExpressionRunner(value);\n const result = runner.run(valuedTokens);\n const updatedExpressionValue = {...expressionValue, [formulaName]: {expression: value, value: result}};\n const error = calculateErrors(updatedExpressionValue)[formulaName];\n if (!error) setExpressionValue(updatedExpressionValue);\n setTouch(true);\n }}\n >\n \n {errors[formulaName] && (

    {errors[formulaName]}

    )}\n
    \n
    \n )\n })\n }\n
    \n
    \n
    \n {\n Object.keys(tokens).map((tokenKey) => {\n const token = tokens[tokenKey];\n\n return (\n
    \n
    {tokenKey}
    \n setTouch(true)}\n onChange={({target: {value}}) => {\n setValuedTokens({...valuedTokens, [tokenKey]: value});\n }}\n type=\"number\"\n min={Math.min(...token)}\n defaultValue={valuedTokens[tokenKey]}\n max={Math.max(...token)}\n />\n
    \n )\n })\n }\n
    \n
    \n
    \n
    \n );\n}\n","import React, {Fragment, useEffect, useState} from 'react';\nimport {\n CalendarDaysIcon,\n CalendarIcon, ExclamationTriangleIcon,\n PlusIcon, UserIcon,\n} from \"@heroicons/react/24/outline\";\nimport {\n CheckBadgeIcon\n} from \"@heroicons/react/24/solid\";\nimport {useLoaderData} from \"react-router\";\nimport DateFormatter from \"./DateFormatter\";\nimport {Link, useNavigate} from \"react-router-dom\";\nimport {fetchApi} from \"./utils/fetch\";\nimport ModalQuizSettings from \"./ModalQuizSettings\";\nimport Tippy from \"@tippyjs/react\";\nimport {classNames} from \"./utils/classNames\";\nimport {useNotifications} from \"./contexts/ContextNotification\";\nimport {NOTIFICATION_TYPES} from \"./Notifications\";\n\nexport default function Quizzes() {\n const navigate = useNavigate();\n const {quizzes, latest_available_version_by_type: latestAvailableVersionByType} = useLoaderData();\n const [showNewQuiz, setShowNewQuiz] = useState(false);\n const [sortedQuizzes, setSortedQuizzes] = useState({});\n const [sortedQuizTypes, setSortedQuizTypes] = useState([]);\n const {addNotification} = useNotifications();\n\n useEffect(() => {\n if (!quizzes) return;\n\n const sorted = {};\n quizzes.forEach((q) => {\n const type = q.type_name;\n const version = q.version;\n\n sorted[type] ||= [];\n sorted[type].push(q);\n });\n\n setSortedQuizzes(sorted);\n setSortedQuizTypes(Object.keys(sorted));\n }, [quizzes]);\n\n function createNewQuizType({surveyName, reportTypeId, surveyType, isInternal, isAvailable, isCoachabilityQuiz, isForFeedbackOnly, description, newVersion = false}) {\n return fetchApi(`/api/v1/internal/quizzes`, {\n method: 'POST',\n body: JSON.stringify({\n name: surveyName,\n description,\n survey_type: surveyType,\n new_version: newVersion,\n is_available: isAvailable,\n is_internal: isInternal,\n is_coachability: isCoachabilityQuiz,\n is_for_feedback_only: isForFeedbackOnly,\n report_content_type_id: reportTypeId,\n }),\n }).then((resp) => {\n const {success, quiz, redirect, error} = resp;\n\n if (redirect) {\n addNotification({title: 'No need to create', body: 'An version already exists, no need to create a new version', type: NOTIFICATION_TYPES.WARNING});\n }\n\n if (error) {\n addNotification({title: 'Error', body: error, type: NOTIFICATION_TYPES.ERROR});\n return resp;\n }\n\n if (success) {\n navigate(`/quizzes/${quiz.id}`);\n } else {\n addNotification({title: 'Error', body: 'Failed to create quiz', type: NOTIFICATION_TYPES.ERROR});\n }\n\n return resp;\n }).catch(err => {\n console.error('Quiz creation error:', err);\n addNotification({title: 'Error', body: 'Failed to create quiz', type: NOTIFICATION_TYPES.ERROR});\n return {success: false, error: err.message};\n })\n }\n\n return (\n <>\n \n
    \n

    Quizzes

    \n setShowNewQuiz(true)}\n type=\"button\"\n className=\"w-full mt-4 sm:mt-0 sm:w-auto flex justify-center items-center space-x-2 rounded-md border border-transparent bg-orange-500 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-orange-600 focus:outline-none focus:ring-2 focus:ring-orange-400 focus:ring-offset-2\"\n >\n \n New Quiz Type\n \n
    \n
    \n {sortedQuizTypes.map((quizType) => {\n return (\n \n
    \n

    {quizType}

    \n\n {\n createNewQuizType({newVersion: true, surveyType: quizType});\n }}\n >\n \n New Version\n \n
    \n
      \n {\n sortedQuizzes[quizType].map((quiz, eventIdx) => {\n delete quiz.quiz\n const isPrimary = latestAvailableVersionByType[quizType]?.id === quiz.id;\n return (\n
    • \n \n
      \n {eventIdx !== sortedQuizzes.length - 1 ? (\n \n ) : null}\n
      \n <>\n
      \n
      \n { isPrimary && (\n
      \n \n
      \n ) }\n \n v{quiz.version}\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n {quiz.name}\n
      \n {quiz.is_for_feedback_only &&
      Feedback Only
      }\n
      {quiz.is_internal ? 'Internal' : 'Public'}
      \n
      \n
      \n
      \n \n
      {quiz.created_by}
      \n
      \n
      \n
      \n
      \n {quiz.is_published && !quiz.is_available && isPrimary && (\n \n \n \n )}\n {quiz.is_available &&
      Available
      }\n {!quiz.is_available &&
      Not Available
      }\n {quiz.is_published &&
      Published
      }\n {!quiz.is_published &&
      Draft
      }\n {quiz.read_only &&
      Read Only
      }\n {!quiz.read_only &&
      Editable
      }\n
      \n \n
      \n \n {quiz.published_at ? : 'Never published' }\n
      \n
      \n
      \n
      \n
      \n \n
      \n {/*
      {JSON.stringify(quiz, null, 2)}
      */}\n
    \n \n \n )\n })\n }\n \n \n )\n })}\n \n \n )\n}\n","import React, {useEffect, useState} from 'react';\nimport {Bars4Icon, ExclamationTriangleIcon, Squares2X2Icon, XMarkIcon} from \"@heroicons/react/24/outline\";\nimport {classNames} from \"./utils/classNames\";\nimport {useLoaderData} from \"react-router\";\nimport {useUser} from \"./contexts/ContextUser\";\nimport DebugPrinter from \"./DebugPrinter\";\nimport Pages from \"./Pages\";\nimport {HeartIcon} from \"@heroicons/react/24/solid\";\nimport {Button} from \"./Button\";\n\nconst tabs = [{display: 'Gold', name: 'gold', color: 'border-yellow-400 text-yellow-400'}, {display: 'Silver', name: 'silver', color: 'text-gray-400 border-gray-400'}, {display: 'Bronze', name: 'bronze', color: 'text-orange-700 border-orange-700'}];\n\nexport default function ResourcesDrawer() {\n const {documents: activeDocuments, pages: activePages, restricted} = useLoaderData();\n const {user} = useUser();\n const [activeTab, setActiveTab] = useState(findInitActiveTab() || tabs[0]);\n const [currentFile, setCurrentFile] = useState(null);\n const [categorized, setCategorized] = useState({});\n const [pagesSearchParams, setPagesSearchParams] = useState({});\n\n useEffect(() => findInitActiveTab() && setActiveTab(findInitActiveTab()), [user]);\n\n useEffect(() => {\n const categorized = {};\n\n activeDocuments.forEach((doc) => {\n const category = doc.category || 'uncategorized';\n categorized[category] ||= []\n categorized[category].push(doc);\n });\n\n setCategorized(categorized);\n }, [activeDocuments]);\n\n useEffect(() => {\n setPagesSearchParams({ctl: activeTab?.name});\n }, [activeTab?.name]);\n\n function findInitActiveTab() {\n return tabs.find((t) => t.name === user.certification_level);\n }\n\n function getFileType(filename) {\n switch (filename.split('.').pop()) {\n case 'pdf':\n return 'PDF';\n case 'pptx':\n return 'PowerPoint';\n case 'doc':\n case 'docx':\n return 'Word';\n default:\n return null;\n }\n }\n\n function getSizeInMb(size) {\n return Math.ceil(size / 1024 / 1024 * 100) / 100;\n }\n\n function renderCurrentDocumentSlideout(currentFile) {\n if (!currentFile) return;\n\n return (\n \n );\n }\n\n return (\n <>\n \n
    \n
    \n
    \n
    \n

    Resources

    \n
    \n \n \n Use list view\n \n \n \n Use grid view\n \n
    \n
    \n
    \n
    \n \n setActiveTab(tabs.find((t) => t.name === value.toLowerCase()))}\n className=\"block w-full rounded-md border-gray-300 py-2 pl-3 pr-10 text-base focus:border-orange-500 focus:outline-none focus:ring-orange-500 sm:text-sm\"\n >\n {\n tabs.map((tab) => {\n return ()\n })\n }\n \n
    \n
    \n
    \n
    \n ))}\n \n \n
    \n
    \n
    \n\n
    \n {\n restricted && (\n
    \n
    \n
    \n \n
    \n
    \n

    \n {\n user.certification_level ?\n (\n Your certification level is {user.certification_level} so you cannot use any of the documents shown below.\n ) : (\n You currently aren't certified.\n )\n }\n {' '}\n \n Please contact us about upgrading your certification!\n \n

    \n
    \n
    \n
    \n )\n }\n {\n !activeDocuments.length && (\n
    \n \n \n \n

    There are no files with this certification level yet!

    \n
    \n )\n }\n {Object.keys(categorized).map((cat) => {\n const documents = categorized[cat];\n\n return (\n
    \n
    {cat}
    \n \n {\n documents.map((file) => {\n return (\n
  • \n {\n setCurrentFile(file);\n }}\n className={classNames(\n file.id === currentFile?.id\n ? 'ring-2 ring-offset-2 ring-orange-500'\n : 'focus-within:ring-2 focus-within:ring-offset-2 focus-within:ring-offset-gray-100 focus-within:ring-orange-500',\n 'group block w-full aspect-w-10 aspect-h-7 rounded-lg bg-gray-100 overflow-hidden'\n )}\n >\n \n \n
  • \n

    \n {file.name}\n

    \n
    \n {getSizeInMb(file.doc.metadata.size)} MB

    \n {getFileType(file.doc.metadata.filename)}

    \n
    \n \n );\n })\n }\n \n
    \n )})\n }\n \n \n \n \n {renderCurrentDocumentSlideout(currentFile)}\n \n \n )\n}","import React from 'react';\nimport {MinusIcon} from '@heroicons/react/24/solid';\n\nexport function Spinner({textColor='text-white'}) {\n return (\n \n \n \n )\n}\n","import React, {Fragment, useEffect, useRef, useState} from 'react';\nimport {fetchApi} from './utils/fetch';\nimport {ClockIcon} from '@heroicons/react/20/solid';\nimport SurveyAssessments from './SurveyAssessments';\nimport {\n CheckIcon, CircleStackIcon,\n Cog6ToothIcon, InformationCircleIcon,\n LockClosedIcon,\n PaperAirplaneIcon,\n PencilIcon,\n ShoppingCartIcon\n} from '@heroicons/react/24/outline';\nimport ModalSurveyCheckout from './ModalSurveyCheckout';\nimport ModalAlert from './ModalAlert';\nimport { Menu, Transition } from '@headlessui/react';\nimport {classNames} from './utils/classNames';\nimport {\n ArchiveBoxIcon,\n ArrowRightCircleIcon,\n DocumentDuplicateIcon, ExclamationTriangleIcon, HeartIcon, MinusIcon,\n PencilSquareIcon, TrashIcon,\n UserPlusIcon\n} from '@heroicons/react/24/solid';\nimport {useTimer} from 'use-timer';\nimport ModalSendSurveyConfirmation from './ModalSendSurveyConfirmation';\nimport {useSurvey} from './contexts/ContextSurvey';\nimport ModalLoading from './ModalLoading';\nimport {useAssessments} from \"./contexts/ContextAssessments\";\nimport {useUser} from \"./contexts/ContextUser\";\nimport Tippy from \"@tippyjs/react\";\nimport SurveyTypeBadge from \"./SurveyTypeBadge\";\n\nexport default function Survey() {\n const {user} = useUser();\n const {account: {tokens_available: tokens}} = user;\n const {assessments, unpaidAssessments, loadAssessments} = useAssessments();\n const {survey, surveyState, loadSurvey, updateSurvey} = useSurvey();\n const [showCheckoutModal, setShowCheckoutModal] = useState(false);\n const [modalAlert, setModalAlert] = useState({title: null, body: null, buttonText: 'Close', open: false});\n const [sendingInvites, setSendingInvites] = useState({open: false, msg: null});\n const [sendSurveyConfirmationModal, setSendSurveyConfirmationModal] = useState(false);\n const [editName, setEditName] = useState(false);\n const nameInputRef = useRef(null);\n\n const { start: startAssessmentReloader, pause: pauseAssessmentReloader } = useTimer({\n interval: 15000,\n onTimeUpdate: loadSurvey,\n });\n\n useEffect(() => {\n if (survey.status === 'active') pauseAssessmentReloader();\n loadAssessments()\n }, [survey.status]);\n\n useEffect(() => {\n const search = window.location.search;\n const params = new URLSearchParams(search);\n const stripeSessionId = params.get('session_id');\n const isTeamReport = params.get('team_report') === 'true';\n if (!stripeSessionId || params.get('cancel') === 'true') return;\n\n const uri = `checkout${isTeamReport ? '_team_report_' : '_'}confirmation`;\n\n fetchApi(`/api/v1/internal/surveys/${survey.id}/${uri}`, {\n method: 'POST',\n body: JSON.stringify({session_id: stripeSessionId}),\n }).then(({error}) => {\n loadSurvey();\n });\n }, []);\n\n function closeSurvey() {\n if (window.confirm('Are you sure you want to close this survey? Doing so will disallow anyone from completing the survey further.')) {\n fetchApi(`/api/v1/internal/surveys/${survey.id}/close`, {method: 'POST'})\n .catch(console.error)\n .finally(loadSurvey);\n }\n }\n\n function sendInvites() {\n setSendingInvites({open: true, loading: true, message: 'Starting the survey. Please wait...'});\n fetchApi(`/api/v1/internal/surveys/${survey.id}/send_invites`, {method: 'POST'})\n .then(({success, msg}) => {\n if (success) {\n loadSurvey();\n startAssessmentReloader();\n setSendingInvites({open: true, loading: false, message: msg, sent: success});\n setTimeout(() => setSendingInvites({open: false, message: msg, loading: false, sent: success}), 3000);\n } else {\n setSendingInvites({open: true, loading: false, message: msg, sent: success});\n }\n });\n }\n\n function startSurvey() {\n fetchApi(`/api/v1/internal/surveys/${survey.id}/start`, {method: 'POST'})\n .then(({error, tokens, unpaid=[]}) => {\n if (unpaid.length) {\n setShowCheckoutModal(true);\n } else {\n setSendSurveyConfirmationModal(true);\n }\n })\n .catch(console.error)\n }\n\n function renderStartStatus() {\n if (survey['expired?']) {\n return (\n <>\n This survey is complete.\n \n );\n }\n\n if (surveyState.hasStarted) {\n return (\n <>\n \n Started {survey.starts_on_in} ago\n \n );\n } else {\n if (surveyState.hasPaid) {\n if (surveyState.isScheduledToAutoStart && surveyState.showCountdown) {\n return (\n <>\n \n Starting in {survey.starts_on_in}\n \n );\n }\n\n return (\n <>\n \n Ready to start\n \n );\n } else {\n return (\n
    \n
    \n
    Payment required
    \n
    \n );\n }\n }\n }\n\n function renderSurveyStartWarning() {\n if (surveyState.isScheduledToAutoStart && !surveyState.hasPaid) {\n return (\n
    \n
    \n
    \n \n
    \n
    \n

    Attention needed

    \n
    \n

    Your survey is scheduled to start automatically in {survey.starts_on_in}. You must first checkout before the assessments can be sent.

    \n
    \n
    \n
    \n
    \n );\n }\n }\n\n function reclaimTokens() {\n if (window.confirm(`Are you sure you would like to reclaim your ${survey.used_tokens} used tokens? This is only possible before you've purchased the rest of the assessments at checkout.`))\n fetchApi(`/api/v1/internal/surveys/${survey.id}/reclaim`, {method: 'PATCH'})\n .then(({error, msg, success}) => {\n if (success) {\n loadSurvey();\n loadAssessments();\n } else {\n window.alert('Something went wrong :(');\n }\n })\n .catch(console.error)\n }\n\n return (\n <>\n setSendSurveyConfirmationModal(open)} />\n setModalAlert({...modalAlert, open})} />\n setSendingInvites({...sendingInvites, open})} headerIcon={(\n
    \n { sendingInvites.sent && }\n { !sendingInvites.sent && sendingInvites.loading && }\n { !sendingInvites.sent && !sendingInvites.loading && }\n
    \n )} />\n setShowCheckoutModal(open)} open={showCheckoutModal} />\n
    \n { renderSurveyStartWarning() }\n
    \n
    \n { !editName ? (\n

    \n {survey.name}\n setEditName(true)} />\n

    \n ) : (\n
    \n \n updateSurvey({ name: nameInputRef.current.value }).then(() => setEditName(false))} />\n
    \n )}\n
    \n
    \n { renderStartStatus() }\n
    \n { survey['started?'] && !survey['expired?'] && (\n
    \n \n Ends in {survey['ends_on_in']}\n
    \n )}\n
    \n \n
    \n
    \n
    \n
    \n { surveyState.canStartSurvey && (\n \n \n \n )}\n\n { surveyState.mustCheckoutSurvey && (\n \n \n {\n surveyState.hasUsedTokens && (\n \n )\n }\n \n )}\n\n { surveyState.isPaymentPending && (\n \n \n \n )}\n\n { surveyState.canCloseSurvey && (\n \n \n \n )}\n\n \n \n
    \n \n \n \n
    \n\n \n \n
    \n \n {({ active }) => (\n \n \n Edit\n \n )}\n \n \n {({ active }) => (\n \n \n Duplicate\n \n )}\n \n
    \n
    \n \n {({ active }) => (\n \n \n Archive\n \n )}\n \n \n {({ active }) => (\n \n \n Move\n \n )}\n \n
    \n
    \n \n {({ active }) => (\n \n \n Share\n \n )}\n \n \n {({ active }) => (\n \n \n Add to favorites\n \n )}\n \n
    \n
    \n \n {({ active }) => (\n \n \n Delete\n \n )}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n )\n}\n","import React, {Fragment, useEffect, useState} from 'react';\nimport { Menu, Transition } from '@headlessui/react';\nimport {getSurveyAssessments} from './fetchers';\nimport {fetchApi, getHeaders} from './utils/fetch';\nimport {classNames} from './utils/classNames';\nimport {ChevronDownIcon} from '@heroicons/react/20/solid';\nimport {\n ArrowDownCircleIcon,\n ArrowDownTrayIcon, ArrowPathIcon, HandRaisedIcon, LinkIcon,\n NoSymbolIcon,\n PaperAirplaneIcon, PencilSquareIcon,\n UserPlusIcon\n} from '@heroicons/react/24/outline';\nimport {parseSurveyState} from './utils/state';\nimport {useNotifications} from './contexts/ContextNotification';\nimport {Spinner} from './Spinner';\nimport {Button} from './Button';\nimport SwitchToggle from './SwitchToggle';\nimport {useSurvey} from './contexts/ContextSurvey';\nimport ModalAddParticipant from './ModalAddParticipant';\nimport ModalSurveyCheckout from './ModalSurveyCheckout';\nimport ModalAlert from './ModalAlert';\nimport CoinsIcon from \"./icons/CoinsIcon\";\nimport {BanknotesIcon} from \"@heroicons/react/24/solid\";\nimport Tippy from \"@tippyjs/react\";\nimport {useUser} from \"./contexts/ContextUser\";\nimport {AdminRequired} from \"./App\";\n\nlet liveReloadAssessmentsInt;\n\nexport default function SurveyAssessments({assessments, liveReload, minimizedView = false}) {\n const {user: {admin: isUserAdmin, account: {tokens_available: tokens}}} = useUser();\n const [editAssessment, setEditAssessment] = useState({});\n const [updatedAssessments, setUpdatedAssessments] = useState(null);\n const [showParticipant, setShowParticipant] = useState(false);\n const [modalAlert, setModalAlert] = useState({title: 'Your Report isn\\'t ready yet.', body: 'Please try again in a few seconds!', confirmButtonText: 'Close', open: false});\n const [showCheckoutModal, setShowCheckoutModal] = useState(false);\n const [downloadingTeamReport] = useState(false);\n const {addNotification} = useNotifications();\n const {survey, updateSurvey, loadSurvey} = useSurvey();\n\n assessments = updatedAssessments || assessments;\n\n useEffect(() => {\n if (liveReload) {\n liveReloadAssessmentsInt = setInterval(loadAssessments, 5000);\n } else if (!liveReload) {\n clearInterval(liveReloadAssessmentsInt);\n }\n }, [liveReload]);\n\n function loadAssessments() {\n return getSurveyAssessments(null, survey.id)\n .then((response) => {\n setUpdatedAssessments(response);\n });\n }\n\n async function updateParticipant(id, event) {\n await fetchApi(`/api/v1/internal/participants/${id}`, { method: 'PATCH', body: JSON.stringify({[event.target.name]: event.target.value})})\n loadAssessments();\n }\n\n async function updateAssessment(id, key, {target}) {\n await fetchApi(`/api/v1/internal/surveys/${survey.id}/assessments/${id}`, {\n method: 'PATCH',\n body: JSON.stringify({\n [key]: target.value,\n }),\n });\n\n loadAssessments();\n }\n\n function disableAssessment(assessment) {\n const {id, disabled, participant} = assessment;\n fetchApi(`/api/v1/internal/surveys/${survey.id}/assessments/${id}/disable`, {method: 'PATCH', body: JSON.stringify({\n disable: !disabled,\n })})\n .then(() => addNotification({title: 'Assessment updated!', body: `Assessment for ${participant.first_name} ${participant.last_name} has been ${!disabled ? 'disabled' : 'enabled'}.`}))\n .finally(loadAssessments);\n }\n\n function syncAssessment(assessment) {\n const {id} = assessment;\n\n fetchApi(`/api/v1/internal/surveys/${survey.id}/assessments/${id}/sync`, {method: 'POST'})\n .then(({success}) => {\n if (success) {\n addNotification({\n title: 'Assessment has been synced',\n body: 'Please wait a few seconds for the assessment status to be reflected below.'\n });\n } else {\n addNotification({\n title: 'Assessment did NOT sync',\n type: 'failure',\n body: 'This is likely because the assessment was not in the correct state of \"completion_pending\" so we did not proceed with the sync.'\n });\n }\n })\n .finally(loadAssessments);\n }\n\n function removeAssessment(assessment) {\n const {id, participant} = assessment;\n fetchApi(`/api/v1/internal/surveys/${survey.id}/assessments/${id}`, {method: 'DELETE'})\n .then(({success, msg}) => {\n if (success) {\n addNotification({\n title: 'Assessment removed.',\n body: `Assessment for ${participant.email} has been removed from this survey.`\n });\n } else {\n addNotification({\n title: 'Assessment was not removed',\n type: 'failure',\n body: msg,\n })\n }\n })\n .finally(loadAssessments);\n }\n\n function createNewParticipant() {\n loadAssessments();\n setShowParticipant(false);\n }\n\n function resentInvitationEmail(assessmentId) {\n fetchApi(`/api/v1/internal/surveys/${survey.id}/assessments/${assessmentId}/resend_invite`, {\n method: 'POST',\n }).then(loadAssessments);\n }\n\n function downloadReport(assessment) {\n window.open(assessment.download_results, '_self')\n addNotification({title: 'Downloading results...', body: `Downloading results for ${assessment.participant.first_name} ${assessment.participant.last_name}.`})\n }\n\n function sendResults({id, participant}) {\n fetchApi(`/api/v1/internal/surveys/${survey.id}/assessments/${id}/send_results`, {method: 'POST'})\n .then(() => addNotification({title: 'Sending results', body: `Sending results to participant: ${participant.email}.`}))\n }\n\n const surveyState = parseSurveyState(survey);\n\n return (\n <>\n \n \n
    \n )} alert={modalAlert} setOpen={(open) => setModalAlert({...modalAlert, open})} open={modalAlert.open} />\n {\n loadSurvey();\n loadAssessments();\n }} purchaseQuantity={1} availableTokens={tokens.team_report} survey={survey} setOpen={(open) => setShowCheckoutModal(open)} open={showCheckoutModal} url={`/api/v1/internal/surveys/${survey.id}/checkout_team_report`} />\n
    \n
    \n
    \n
    \n

    Assessments

    \n

    \n A list of all assessments attached to this survey.\n

    \n
    \n
    \n\n { surveyState.canAddParticipants && (\n
    \n
    \n setShowParticipant(true))}\n className={classNames(\n 'inline-flex items-center justify-center rounded-md border border-transparent px-4 py-2 text-sm font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 sm:w-auto',\n 'bg-blue-600 text-white hover:bg-blue-700'\n )}\n >\n \n Add Participant\n \n
    \n setShowParticipant(false)} open={showParticipant} onSave={createNewParticipant} />\n
    \n ) }\n
    \n
    \n
    \n { surveyState.shouldLiveReload && (\n <>\n Live\n \n \n ) }\n
    \n
    \n
    Auto Send Results
    \n updateSurvey({ auto_send_results })} defaultChecked={survey.auto_send_results} />\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n {\n surveyState.showDetailedAssessmentsView ? (\n <>\n \n \n \n \n \n ) : null\n }\n \n \n \n \n {assessments.map((assessment, personIdx) => {\n const {id, group_number, participant, invite_sent, link_view_count, invite_reminders_sent, disabled, completed, assessment_type} = assessment;\n\n if (id === editAssessment.id) {\n return (\n \n \n \n \n \n \n \n \n )\n }\n\n return (\n \n \n \n \n \n \n \n \n \n {\n surveyState.showDetailedAssessmentsView && (\n <>\n \n \n \n \n \n )\n }\n\n \n \n );\n })}\n \n
    \n ID\n \n First Name\n \n Last Name\n \n Email\n \n Group\n \n Type\n \n Invite Sent\n \n Reminder Sent\n \n Opened\n \n Complete?\n \n Edit\n
    \n updateParticipant(participant.id, event)} type=\"text\" name=\"first_name\" placeholder=\"first name\" defaultValue={participant.first_name} />\n \n updateParticipant(participant.id, event)} type=\"text\" name=\"last_name\" placeholder=\"Last name\" defaultValue={participant.last_name} />\n \n updateParticipant(participant.id, event)} type=\"email\" name=\"email\" placeholder=\"Email address\" defaultValue={participant.email} />\n \n updateAssessment(id, 'group_number', event)} type=\"number\" name=\"group_number\" placeholder=\"Group number\" defaultValue={group_number} />\n \n
    \n updateAssessment(id, 'assessment_type', event)}\n id=\"assessment_type\"\n name=\"assessment_type\"\n className=\"mt-1 block w-full rounded-md border-gray-300 py-2 pl-3 pr-10 text-base focus:border-blue-500 focus:outline-none focus:ring-blue-500 sm:text-sm\"\n defaultValue={assessment_type}\n >\n \n \n \n
    \n
    \n setEditAssessment({})} className=\"cursor-pointer text-blue-600 hover:text-blue-900\">\n Save\n \n
    \n {assessment.id}\n \n
    \n {\n assessment['paid?'] && (\n !!assessment.token\n ?\n (\n \n
    \n \n
    \n
    \n )\n :\n (\n \n \n \n )\n )\n }\n {participant.first_name}\n
    \n
    {participant.last_name}{participant.email}{group_number}{assessment_type}{invite_sent} ago{invite_reminders_sent}{link_view_count}\n {completed ? 'Yes' : 'No'}\n \n \n
    \n \n \n \n
    \n\n \n \n
    \n \n {({ active, disabled}) => (\n setEditAssessment(assessment)}\n className={classNames(\n active ? 'bg-gray-100 text-gray-900' : 'text-gray-700',\n !disabled ? 'cursor-pointer' : 'cursor-not-allowed',\n 'block px-4 py-2 text-sm flex space-x-2 items-center'\n )}\n >\n \n Edit\n
    \n )}\n \n \n {({ active, disabled }) => (\n resentInvitationEmail(id)}\n className={classNames(\n active ? 'bg-gray-100 text-gray-900' : 'text-gray-700',\n !disabled ? 'cursor-pointer' : 'cursor-not-allowed',\n 'block px-4 py-2 text-sm flex space-x-2 items-center'\n )}\n >\n \n Resend invite email\n \n )}\n \n \n {({ active, disabled }) => (\n downloadReport(assessment)}\n className={classNames(\n active ? 'bg-gray-100 text-gray-900' : 'text-gray-700',\n !disabled ? 'cursor-pointer' : 'cursor-not-allowed',\n 'block px-4 py-2 text-sm flex space-x-2 items-center'\n )}\n >\n \n Download Results\n \n )}\n \n \n {({ active, disabled }) => (\n completed && sendResults(assessment) }\n className={classNames(\n active ? 'bg-gray-100 text-gray-900' : 'text-gray-700',\n !disabled ? 'cursor-pointer' : 'cursor-not-allowed',\n 'block px-4 py-2 text-sm flex space-x-2 items-center'\n )}\n >\n \n Send Results\n \n )}\n \n \n {({ active, optionDisabled }) => (\n surveyState.canDisableAssessment ? disableAssessment(assessment) : removeAssessment(assessment) }\n className={classNames(\n active ? 'bg-gray-100 text-gray-900' : 'text-gray-700',\n !optionDisabled ? 'cursor-pointer' : 'cursor-not-allowed',\n 'block px-4 py-2 text-sm flex space-x-2 items-center'\n )}\n >\n \n { surveyState.canDisableAssessment ? disabled ? 'Enable' : 'Disable' : 'Remove' }\n \n )}\n \n \n \n {({ active }) => (\n {\n navigator.clipboard.writeText(assessment.assessment_link).then(() => {\n addNotification({title: 'Copied', body: 'Assessment link copied to clipboard.'})\n })\n }}\n className={classNames(\n active ? 'bg-gray-100 text-gray-900 cursor-pointer' : 'text-gray-700',\n 'block px-4 py-2 text-sm flex space-x-2 items-center'\n )}\n >\n \n
    \n
    Copy Assessment Link
    \n
    Admin only
    \n
    \n \n )}\n
    \n
    \n {\n assessment.is_pointerpro && (\n \n \n {({ active }) => (\n syncAssessment(assessment)}\n className={classNames(\n active ? 'bg-gray-100 text-gray-900 cursor-pointer' : 'text-gray-700',\n 'block px-4 py-2 text-sm flex space-x-2 items-center'\n )}\n >\n \n
    \n
    Sync w/ PointerPro
    \n
    Admin only
    \n
    \n \n )}\n
    \n
    \n )\n }\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n )\n}\n","import React, {useEffect, useState} from 'react';\n\nexport default function SurveyAssessmentsTable(props) {\n const {csvRows, currentSurveyRows} = props;\n\n console.log(csvRows, currentSurveyRows);\n\n const [data, setData] = useState([]);\n\n useEffect(() => {\n setData(csvRows.reduce((acc, row) => {\n const [_firstName, _lastName, email, group, type] = row;\n console.log(acc, acc[group])\n if (!group) return acc;\n acc[group] = acc[group] || {leaders: {}, employees: {}, raw: []};\n acc[group][type][email] = row;\n acc[group]['raw'].push(row);\n return acc;\n }, {}));\n }, [csvRows]);\n\n function renderRows(rows) {\n return (\n
    \n
    \n
    \n
    \n \n \n \n \n First Name\n \n \n \n \n \n \n \n \n { rows.map((row) => {\n return (\n \n \n \n \n \n \n )\n })}\n \n
    \n Last Name\n \n Email\n \n Group\n \n Edit\n
    \n {row[0]}\n {row[1]}{row[2]}{row[3]}
    \n
    \n
    \n
    \n
    \n )\n }\n\n if (csvRows.length && currentSurveyRows.length) return ('You can only provide CSV data or Current Survey Data');\n\n const groups = Object.keys(data);\n\n // return (
    {JSON.stringify(data, null, 2)}
    )\n\n return (\n
    \n {\n groups.map((group) => (\n <>\n

    Group {group}

    \n {renderRows(data[group].raw)}\n \n ))\n }\n
    \n )\n}\n","import React from 'react';\nimport {RadioGroup} from '@headlessui/react';\nimport {classNames} from './utils/classNames';\nimport {useSurvey} from './contexts/ContextSurvey';\n\nexport default function SurveyEndsOnRange(props) {\n const {onChange} = props;\n const {survey} = useSurvey();\n\n return (\n onChange(value)} className=\"mt-2\" defaultValue={survey.ends_on_range}>\n
    \n {[30, 60, 90].map((option) => (\n \n classNames(\n active ? 'ring-2 ring-offset-2 ring-blue-500' : '',\n checked\n ? 'bg-blue-600 border-transparent text-white hover:bg-blue-700'\n : 'bg-white border-gray-200 text-gray-900 hover:bg-gray-50',\n 'border rounded-md py-3 px-3 space-x-2 cursor-pointer flex items-center justify-center text-sm font-medium sm:flex-1'\n )\n }\n >\n {option} days\n \n ))}\n
    \n
    \n )\n}\n","import React, {useEffect, useRef, useState} from 'react';\nimport {useLoaderData, useNavigate} from 'react-router';\nimport {getSurveyAssessments} from './fetchers';\nimport InputDateTime from \"./InputDateTime\";\nimport {fetchApi} from './utils/fetch';\nimport {RadioGroup} from '@headlessui/react';\nimport {\n CalculatorIcon,\n ChartBarSquareIcon,\n DocumentPlusIcon,\n InformationCircleIcon,\n UserPlusIcon\n} from '@heroicons/react/24/outline';\nimport {CheckCircleIcon} from '@heroicons/react/24/solid';\nimport {FileUploader} from 'react-drag-drop-files';\nimport dateFormat from 'dateformat';\nimport SurveyEndsOnRange from './SurveyEndsOnRange';\nimport SwitchToggle from './SwitchToggle';\nimport SurveyProvider from './contexts/ContextSurvey';\nimport {Spinner} from './Spinner';\nimport {classNames} from \"./utils/classNames\";\nimport {useUser} from \"./contexts/ContextUser\";\nimport SurveyTypeBadge from \"./SurveyTypeBadge\";\nimport Tippy from \"@tippyjs/react\";\nimport {AdminRequired} from \"./App\";\n\nexport default function SurveyNew() {\n const {user} = useUser();\n const [csvData, setCsvData] = useState({header: [], rows: []});\n const [pastSurveyAssessments, setPastSurveyAssessments] = useState([]);\n const [surveySource, setSurveySource] = useState('surveyjs');\n const [surveyStartsOn, setSurveyStartsOn] = useState(null);\n const [deadline, setDeadline] = useState(null);\n const [surveyEndsOn, setSurveyEndsOn] = useState(null);\n const [surveyAutoSendResults, setSurveyAutoSendResults] = useState(null);\n const [participantsFileData, setParticipantsFileData] = useState(null);\n const {past_surveys: pastSurveys, types: surveyJsSurveyTypes = []} = useLoaderData();\n const [participantsBySurvey, setParticipantsBySurvey] = useState(null);\n const [adhocParticipants, setAdhocParticipants] = useState([]);\n const fileUploaderRef = useRef(null);\n const [selected, setSelected] = useState(null);\n const [fileOrFiles, setFile] = useState(null);\n const [csvFile, setCsvFile] = useState(null);\n const [savingSurvey, setSavingSurvey] = useState(false);\n const [startsOnMinDate, setStartsOnMinDate] = useState(null);\n const [formErrors, setFormErrors] = useState({});\n const [participants, setParticipants] = useState({adhoc: [], csv: [], past: []});\n const [participantDups, setParticipantDups] = useState({});\n const [surveyName, setSurveyName] = useState(null);\n const [surveyType, setSurveyType] = useState(surveyJsSurveyTypes[0]?.type_name);\n const [selectedSurveyName, setSelectedSurveyName] = useState(surveyJsSurveyTypes[0]?.name);\n\n const navigate = useNavigate();\n\n useEffect(() => {\n if (!participantsBySurvey) return;\n getSurveyAssessments(null, participantsBySurvey.id).then((assessments) => {\n setParticipants({\n ...participants,\n past: assessments.map((assessment) => ({...assessment.participant, assessment_id: assessment.id, type: assessment.assessment_type, group: assessment.group_number})),\n });\n setPastSurveyAssessments(assessments);\n });\n }, [participantsBySurvey]);\n\n useEffect(() => {\n const dups = getAllParticipants().reduce((acc, participant) => {\n acc[participant.email] ||= 0;\n acc[participant.email] += 1;\n\n return acc;\n }, {});\n\n // We need to remove reference to the \"uploaded\" file from the UI\n if (!participants.csv.length) setCsvFile(null);\n\n // We need to unset the selected survey from the UI\n if (!participants.past.length) setParticipantsBySurvey(null);\n\n setParticipantDups(dups);\n }, [participants.csv, participants.adhoc, participants.past]);\n\n useEffect(() => {\n if (Object.keys(formErrors).length) validateSteps();\n }, [participantsBySurvey, participantsBySurvey, surveyName, surveyEndsOn]);\n\n function getAllParticipants() {\n return [...participants.csv, ...participants.adhoc, ...participants.past]\n }\n\n function validateSteps() {\n const newFormErrors = {};\n\n if (!getAllParticipants().length) {\n newFormErrors.step2 = 'You must select participants for this survey.';\n }\n\n if (participantsFileData && !formErrors.step2) {\n if (csvData.rows.find((row) => !!row[5].error)) newFormErrors.step2 = 'You have errors with the CSV file you uploaded.';\n }\n\n if (!surveyName) {\n newFormErrors.step3 = 'You must name this survey.';\n }\n\n if (!surveyEndsOn) {\n newFormErrors.step4 = 'You must select a time range for the survey to expire.';\n }\n\n setFormErrors(newFormErrors);\n return newFormErrors;\n }\n\n function saveSurvey() {\n const errors = validateSteps();\n if (Object.values(participantDups).findIndex((d) => d > 1) > -1) return;\n if (Object.keys(errors).length) return errors;\n\n setSavingSurvey(true);\n\n fetchApi(`/api/v1/internal/surveys`, {method: 'POST', body: JSON.stringify({\n name: surveyName,\n deadline,\n survey_type: surveyType,\n survey_source: surveySource,\n starts_on: surveyStartsOn,\n ends_on_range: surveyEndsOn,\n auto_send_results: surveyAutoSendResults,\n participants_file_data: participantsFileData,\n participants_by_survey_id: participantsBySurvey?.id,\n past_survey_assessments: pastSurveyAssessments.map((a) => a.id),\n adhoc_participants: adhocParticipants,\n participants,\n })})\n .then(({success, error, survey}) => {\n if (!success) {\n setFormErrors({submitError: error});\n return;\n }\n\n navigate(`/survey/${survey.id}`);\n })\n .finally(() => setSavingSurvey(false));\n }\n\n function updateParticipantsList(file) {\n const reader = new FileReader();\n\n reader.addEventListener('load', (event) => {\n setParticipantsFileData(event.target.result);\n const data = event.target.result.split('\\n');\n const header = data[0].trim();\n const emailCounts = {};\n const rows = data.splice(1).map((row) => {\n row = row.trim();\n if (!row) return null;\n return row.split(',');\n }).filter((row) => !!row).sort((a, b) => {\n if (a[3] === b[3]) return 0;\n return a[3] < b[3] ? -1 : 1;\n }).map((row) => {\n emailCounts[row[2]] ||= 0\n emailCounts[row[2]]++;\n return row;\n }).map((row) => {\n const email = row[2];\n row = [row[0], row[1], row[2], row[3], row[4]];\n if (!row[0] || !row[1] || !row[2] || !row[3] || !row[4]) {\n row.push({error: 'You are missing data.'});\n } else {\n row.push({error: emailCounts[email] > 1 ? 'Duplicate email address.' : null});\n }\n return row;\n });\n\n setParticipants({...participants, csv: rows.map(( row) => {\n return {\n first_name: row[0],\n last_name: row[1],\n email: row[2],\n group: row[3],\n type: row[4],\n }\n })});\n });\n\n setCsvFile(file);\n\n reader.readAsText(file);\n }\n\n function formatDate(date) {\n return `${dateFormat(date, 'yyyy-mm-dd')}T${dateFormat(date, 'hh:mm')}`;\n }\n\n function removeParticipant(key, idx) {\n const newRows = [...participants[key]];\n newRows.splice(idx, 1);\n setParticipants({...participants, [key]: newRows});\n }\n\n function addAdhocParticipant(e) {\n e.preventDefault();\n\n const [first_name, last_name, email, group_number, assessment_type] = e.target;\n\n setParticipants({\n ...participants,\n adhoc: [\n ...participants.adhoc,\n {\n first_name: first_name.value,\n last_name: last_name.value,\n email: email.value,\n group_number: group_number.value,\n assessment_type: assessment_type.value\n }\n ]\n });\n\n // Reset form input elements\n Array.from(e.target).forEach((input) => input.value = '');\n }\n\n const hasParticipants = !!getAllParticipants().length;\n\n return (\n \n
    \n

    Create a new survey

    \n
    \n
    \n

    Step 1

    \n

    Choose from one of our many great assessments.

    \n
    \n
    \n
    \n {\n surveyJsSurveyTypes.map(({id, description, is_internal, name, version, type_name: title, updated_at}) => {\n const selected = selectedSurveyName === name;\n const canSelect = true;\n\n return (\n \n Admin only\n
    ID: {id}
    \n
    Version: {version}
    \n
    Internal: {is_internal ? 'Internal Only' : 'PUBLIC'}
    \n
    Updated: {dateFormat(updated_at, 'yyyy-mm-dd hh:mm Z')}
    \n \n )}>\n \n
    \n )\n })\n }\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    Step 2

    \n { formErrors.step2 }\n
    \n

    Upload or add participants to your assessment.

    \n
    \n
    \n
    \n
    \n
    \n

    \n Upload CSV list\n CSV\n

    \n

    window.open('/api/v1/internal/surveys/download_sample.csv', '_target')}>\n Download a sample CSV\n

    \n
    \n console.log('type error', ev)}\n name=\"csv_file\"\n onDrop={updateParticipantsList}\n onSelect={updateParticipantsList}\n hoverTitle=\"\"\n dropMessageStyle={{backgroundColor: 'rgb(59, 130, 246)'}}\n >\n
    \n
    \n
    \n \n
    \n { csvFile ? (\n <>\n

    Selected file {csvFile.name}

    \n \n \n ) : (\n <>\n \n \n \n )}\n \n
    \n

    CSV up to 10MB

    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n {\n !pastSurveys.length && (\n
    \n \n No other surveys\n
    \n )\n }\n
    \n
    \n \n Past surveys \n
    \n {pastSurveys.map((survey) => (\n setParticipantsBySurvey(survey)}\n key={`${survey.name}_${survey.id}`}\n value={survey}\n className={({ checked, active }) =>\n classNames(\n checked ? 'border-transparent' : 'border-gray-300',\n active && participantsBySurvey?.id === survey.id ? 'border-blue-500 ring-2 ring-inset ring-blue-500' : '',\n 'relative block cursor-pointer rounded-lg border bg-white px-2 py-1 md:px-3 sm:py-2 shadow-sm focus:outline-none flex justify-between'\n )\n }\n >\n {({ active, checked }) => (\n <>\n \n \n \n {survey.name}\n \n \n \n
    \n \n {survey.assess_count}\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n )}\n \n ))}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n
    \n
    \n \n \n Add Participant\n \n
    \n
    \n
    \n \n
    \n
    \n {\n hasParticipants && (\n
    \n
    \n
    \n
    \n \n \n \n \n First Name\n \n \n \n \n \n \n \n \n \n \n { participants.csv.map((row, idx) => {\n const {first_name, last_name, email, group, type} = row;\n const error = row[5]?.error;\n const isDup = participantDups[email] > 1;\n\n return (\n \n \n \n \n \n \n \n \n \n )\n })}\n { participants.past.map(({id, group, email, first_name, last_name, type}, idx) => {\n const isDup = participantDups[email] > 1;\n\n return (\n \n \n \n \n \n \n \n \n \n )\n })}\n {\n participants.adhoc.map(({first_name, last_name, email, group_number, assessment_type}, idx) => {\n const isDup = participantDups[email] > 1;\n\n return (\n \n \n \n \n \n \n \n \n \n )\n })\n }\n \n
    \n Last Name\n \n Email\n \n Group\n \n Type\n \n Source\n
    \n {first_name || 'MISSING'}\n {last_name || 'MISSING'}{email || 'MISSING'}{group || 'MISSING'}{type || 'MISSING'}CSV\n \n
    \n {first_name}\n \n {last_name}\n \n {email}\n \n {group}\n \n {type}\n \n {participantsBySurvey.name}\n \n \n
    \n {first_name}\n \n {last_name}\n \n {email}\n \n {group_number}\n \n {assessment_type}\n \n Manual\n \n \n
    \n
    \n
    \n
    \n
    \n )\n }\n
    \n
    \n\n
    \n
    \n
    \n

    Step 3

    \n { formErrors.step3 }\n
    \n

    Assessment details

    \n
    \n\n
    \n \n
    \n setSurveyName(target.value)} type=\"text\" name=\"survey_name\" id=\"survey_name\" className=\"block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm sm:w-1/4\" placeholder=\"Name of your survey...\" />\n
    \n
    \n\n
    \n\n
    \n
    \n
    \n

    Step 4

    \n { formErrors.step4 }\n
    \n

    Schedule a time for your assessment to go live

    \n
    \n\n
    \n
    \n

    Start the survey

    \n
    \n
    \n setSurveyStartsOn(null)} className=\"h-4 w-4 border-gray-300 text-blue-600 focus:ring-blue-500\" />\n \n
    \n\n
    \n setSurveyStartsOn(new Date())} className=\"h-4 w-4 border-gray-300 text-blue-600 focus:ring-blue-500\" />\n \n
    \n
    \n\n {\n surveyStartsOn && (\n
    \n setSurveyStartsOn(value) }\n onFocus={() => setStartsOnMinDate(formatDate(new Date()))}\n min={startsOnMinDate}\n value={surveyStartsOn}\n type=\"datetime-local\"\n name=\"start_on\"\n className=\"block w-3/4 sm:w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm\"\n />\n
    \n )\n }\n
    \n
    \n

    When to end the survey

    \n setSurveyEndsOn(value)} />\n
    \n
    \n

    \n Add a deadline (Eastern)\n \n \n \n

    \n setDeadline(value)} />\n
    \n
    \n
    \n\n
    \n
    \n
    \n

    Step 5

    \n
    \n

    Would you like to automatically send results to participants when they complete the assessment?

    \n
    \n \n
    \n\n \n { formErrors.submitError }\n
    \n !savingSurvey && saveSurvey()}\n className={\n classNames(\n savingSurvey ? 'hover:bg-gray-700 focus:ring-gray-500 bg-gray-500 cursor-not-allowed' : 'hover:bg-blue-700 focus:ring-blue-500 bg-blue-500',\n 'w-full sm:w-auto inline-flex justify-center rounded-md border border-transparent py-2 px-4 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2'\n )\n }>\n
    \n {savingSurvey && ()}\n Create Survey\n
    \n \n
    \n
    \n
    \n )\n}\n","import React, {useEffect, useState} from 'react';\nimport { Model } from \"survey-core\";\nimport { Survey } from \"survey-react-ui\";\nimport {fetchApi} from \"../utils/fetch\";\nimport \"survey-core/defaultV2.min.css\";\nimport './survey_js_custom.css';\nimport '../QuizEditor.css';\n\nfunction warnBeforeClosing(e) {\n e.preventDefault();\n e.returnValue = '';\n}\n\nexport default function SurveyTaker({assessment, quiz: {uuid: quizId, quiz}, feedback = false}) {\n const [showSurvey, setShowSurvey] = useState(feedback);\n\n const {uuid: assessmentId} = assessment || {};\n const survey = new Model(quiz);\n\n useEffect(() => {\n if (showSurvey && !feedback) window.addEventListener('beforeunload', warnBeforeClosing);\n }, [showSurvey]);\n\n survey.onCompleting.add((sender, _options) => {\n window.removeEventListener('beforeunload', warnBeforeClosing);\n });\n\n survey.onComplete.add((sender, {showSaveError, showSaveInProgress, showSaveSuccess}) => {\n const url = assessmentId ? `/take/${assessmentId}/complete` : '/take/complete';\n showSaveInProgress('Saving your assessment, please wait...');\n fetchApi(url, {\n method: 'PATCH',\n body: JSON.stringify({\n results: sender.data,\n quiz_id: quizId,\n feedback,\n }),\n }).then(({success}) => {\n if (success) {\n showSaveSuccess('Saved!');\n if (!!quiz.nativateToUrl) setTimeout(() => window.location.href = quiz.nativateToUrl, 3000);\n } else {\n showSaveError('There was an issue saving your results...');\n }\n })\n .catch(() => {\n showSaveError('Request error: There was an issue saving your results, please click, \"Try again\"...');\n });\n });\n\n return (\n <>\n { showSurvey\n ?\n \n : (\n
    \n
    \n
    \n

    \n Coachability@Work®\n Before you begin...\n

    \n

    Please try to complete this assessment in one\n sitting.

    \n

    Also, note that if you leave this page\n before completing the Assessment, your answers will not be saved and you'll have\n to start over.

    \n setShowSurvey(true)}>Begin Assessment\n \n
    \n
    \n
    \n ) }\n \n );\n}\n","import React from 'react';\n\nexport default function SurveyTypeBadge({survey}) {\n return (\n {survey.survey_type}\n )\n}\n","import React, {useEffect, useState} from 'react';\nimport {Switch} from '@headlessui/react';\nimport {classNames} from './utils/classNames';\n\nexport default function SwitchToggle({disabled, onChange, description, checked, defaultChecked}) {\n const [enabled, setEnabled] = useState(defaultChecked);\n\n useEffect(() => {\n if (checked !== undefined) setEnabled(checked);\n }, [checked]);\n\n return (\n \n \n \n {description}\n \n \n {\n onChange(value);\n setEnabled(value);\n }}\n className={classNames(\n enabled && !disabled ? 'bg-blue-600' : 'bg-gray-200',\n 'relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2'\n )}\n >\n \n \n \n )\n}\n","import React, {Fragment, useEffect, useState} from 'react';\nimport {\n CalendarIcon,\n UserIcon,\n DocumentDuplicateIcon,\n UsersIcon, ClipboardDocumentCheckIcon, PencilIcon, CheckIcon, DocumentIcon\n} from '@heroicons/react/24/outline'\nimport {Button} from './Button';\nimport {fetchApi} from './utils/fetch';\nimport {classNames} from \"./utils/classNames\";\nimport ModalSurveyCheckout from \"./ModalSurveyCheckout\";\nimport {getTeamReportSurveySearch} from \"./fetchers\";\nimport {MinusIcon, PlusIcon} from \"@heroicons/react/24/solid\";\nimport Tippy from \"@tippyjs/react\";\nimport {useNavigate} from \"react-router\";\nimport * as PropTypes from \"prop-types\";\n\nlet controller = null;\nlet signal = null;\n\nfunction SurveySearchBar({onSearch}) {\n const [searchTerm, setSearchTerm] = useState('');\n const [searchType, setSearchType] = useState('survey');\n useEffect(() => {\n onSearch(searchTerm, searchType);\n }, [searchTerm, searchType]);\n\n function toggleSearch() {\n setSearchType(searchType === 'survey' ? 'participant' : 'survey');\n setSearchTerm('');\n }\n\n return (\n
    \n
    \n
    \n setSearchTerm(value)}\n />\n
    \n \n {searchType === 'survey' ? () : }\n {searchType}\n \n
    \n
    \n );\n}\n\nSurveySearchBar.propTypes = {onSearch: PropTypes.func};\n\nexport default function TeamReportNew() {\n const [currentPage, setCurrentPage] = useState(1);\n const [surveys, setSurveys] = useState([]);\n const [allLoaded, setAllLoaded] = useState(false);\n const [surveyAssessments, setSurveyAssessments] = useState({});\n const [hasNamedReport, setHasNamedReport] = useState(false);\n const [editTitle, setEditTitle] = useState(false);\n const [selectedAssessments, setSelectedAssessments] = useState({});\n const [loadingAssessments, setLoadingAssessments] = useState(null);\n const [searchTerms, setSearchTerms] = useState({term: undefined, type: undefined});\n const [showCheckoutModal, setShowCheckoutModal] = useState(false);\n const [selectedAssessmentIds, setSelectedAssessmentIds] = useState([]);\n const [teamReportTitle, setTeamReportTitle] = useState('');\n const [selectedQuizType, setSelectedQuizType] = useState(null);\n const navigate = useNavigate();\n\n useEffect(() => {\n const surveyIds = Object.keys(selectedAssessments);\n\n if (!surveyIds.length) {\n setSelectedQuizType(null);\n } else {\n const assessmentIds = Object.keys(selectedAssessments[surveyIds[0]].assessments);\n setSelectedQuizType(selectedAssessments[surveyIds[0]].assessments[assessmentIds[0]].quiz);\n }\n }, [selectedAssessments]);\n\n useEffect( () => {\n loadSurveys(true);\n }, [currentPage]);\n\n useEffect( () => {\n loadSurveys(false);\n }, [searchTerms]);\n\n function loadSurveys(append=false) {\n if (signal) controller.abort();\n controller = new AbortController();\n signal = controller.signal;\n\n return getTeamReportSurveySearch(signal, currentPage, searchTerms.term, searchTerms.type).then(({surveys: newSurveys, pages: {page, pages}}) => {\n // append results\n if (append) {\n setSurveys([...surveys, ...newSurveys]);\n } else {\n setSurveys(newSurveys);\n }\n\n setAllLoaded(pages === page);\n });\n }\n\n function loadSurveyAssessments(survey) {\n setLoadingAssessments(survey.id);\n fetchApi(`/api/v1/internal/surveys/${survey.id}/assessments`, {method: 'GET'})\n .then((assessments) => {\n setSurveyAssessments({...surveyAssessments, [survey.id]: assessments});\n }).finally(() => setLoadingAssessments(null));\n }\n\n function generateSelectedAssessments(survey, assessments) {\n const newSelectedAssessments = {\n ...selectedAssessments,\n [survey.id]: {\n id: survey.id,\n name: survey.name,\n assessments: {\n ...(selectedAssessments[survey.id]?.assessments || {}),\n },\n }\n };\n\n assessments.filter((a) => a.completed).forEach((assessment) => {\n newSelectedAssessments[survey.id].assessments[assessment.id] = {\n id: assessment.id,\n completed: assessment.completed,\n type: assessment.assessment_type,\n group: assessment.group_number,\n participant: assessment.participant,\n quiz: assessment.quiz,\n };\n });\n\n return newSelectedAssessments;\n }\n\n function removeAssessment(surveyId, assessment) {\n const newSelectedAssessments = {...selectedAssessments};\n\n delete newSelectedAssessments[surveyId].assessments[assessment.id]\n\n if (!Object.keys(newSelectedAssessments[surveyId].assessments).length) {\n delete newSelectedAssessments[surveyId];\n }\n\n setSelectedAssessments(newSelectedAssessments);\n }\n\n function addAssessment(survey, assessment) {\n if (!Object.keys(selectedAssessments).length) {\n setSelectedQuizType(assessment.quiz);\n }\n\n if (assessment.completed) {\n setSelectedAssessments(generateSelectedAssessments(survey, [assessment]));\n }\n }\n\n function isDifferentQuizType(assessment) {\n return !!selectedQuizType && (selectedQuizType?.type_name !== assessment.quiz.type_name || selectedQuizType?.version !== assessment.quiz.version);\n }\n\n function canAddAssessment(assessment) {\n if (isDifferentQuizType(assessment)) return false;\n\n return assessment.completed;\n }\n\n function getAssessmentQuizTypeName(assessment) {\n return `${assessment.quiz.type_name}${assessment.quiz.version}`;\n }\n\n return (\n
    \n {\n hasNamedReport ? (\n
    \n
    \n
    \n { editTitle ? (\n
    \n setTeamReportTitle(target.value)} type=\"text\" name=\"team_report_name\" id=\"survey_name\" className=\"block w-full rounded-md border-gray-300 shadow-sm focus:border-orange-500 focus:ring-orange-500 sm:text-sm\" placeholder=\"Title of your Team Report...\" />\n setEditTitle(false)} />\n
    \n ) : (\n

    \n {teamReportTitle}\n setEditTitle(true)} />\n

    \n )}\n
    \n
    \n \n
    \n
    \n

    Welcome to Team Reports Builder. Here you can compile a team report consisting of any completed assessment from any survey.

    \n\n
    \n {\n setShowCheckoutModal(false);\n navigate('/');\n }}\n purchaseQuantity={1}\n availableTokens={1}\n setOpen={(open) => setShowCheckoutModal(open)}\n open={showCheckoutModal}\n url='/api/v1/internal/team_reports'\n checkoutRequestBody={{\n title: teamReportTitle,\n assessment_ids: selectedAssessmentIds,\n quiz_type_name: selectedQuizType?.type_name,\n quiz_version: selectedQuizType?.version,\n }}\n />\n {/*

    Note: This title will be shown in the downloaded Team Report

    */}\n
    \n
    \n
    \n
    \n
    \n \n )\n })}\n
  • !allLoaded && setCurrentPage(currentPage + 1)}>\n { allLoaded ? 'All surveys loaded' : 'Load More...' }\n
  • \n \n
    \n \n {\n !Object.keys(selectedAssessments).length ? (\n
    \n
    \n
    \n \n

    Add survey assessments from the list on the left to create a new Team Report

    \n
    \n
    \n
    \n ) : (\n
    \n
    \n
    \n { !!selectedQuizType &&
    You have selected an assessment with the quiz type of {selectedQuizType.type_name}{selectedQuizType.version ? ` v${selectedQuizType}` : ''}. You may only select assessments of this type.
    }\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n {\n Object.values(selectedAssessments).map((survey) => {\n return (\n \n \n \n
    \n {survey.name}\n {\n const newSelectedAssessments = {...selectedAssessments};\n delete newSelectedAssessments[survey.id];\n setSelectedAssessments(newSelectedAssessments);\n }} className=\"text-red-500\">Remove All\n
    \n \n
    \n {\n Object.values(survey.assessments).map((assessment) => {\n const participant = assessment.participant;\n\n return (\n \n \n {participant.first_name}\n \n {assessment.type}\n {participant.email}\n {assessment.group}\n \n \n \n \n )\n })\n }\n \n )\n })}\n \n
    \n Name\n \n Type\n \n Email\n \n Group\n \n
    \n
    \n
    \n
    \n
    \n
    \n )\n }\n
    \n \n \n \n ) : (\n
    \n
    \n

    Title your team report...

    \n
    \n setTeamReportTitle(target.value)} type=\"text\" name=\"team_report_name\" id=\"survey_name\" className=\"block w-full rounded-md border-gray-300 shadow-sm focus:border-orange-500 focus:ring-orange-500 sm:text-sm\" autoFocus placeholder=\"Title of your Team Report...\" />\n \n
    \n
    \n
    \n )\n }\n \n )\n}\n","import React, {useState} from \"react\";\nimport {useLoaderData} from \"react-router\";\nimport {useNotifications} from \"./contexts/ContextNotification\";\nimport {NOTIFICATION_TYPES} from \"./Notifications\";\nimport {fetchApi} from \"./utils/fetch\";\nimport {CalendarDaysIcon} from \"@heroicons/react/24/solid\";\nimport {\n ArrowDownTrayIcon,\n CurrencyDollarIcon,\n DocumentMagnifyingGlassIcon,\n UserIcon\n} from \"@heroicons/react/24/outline\";\nimport CoinsIcon from \"./icons/CoinsIcon\";\nimport {Spinner} from \"./Spinner\";\nimport Pages from \"./Pages\";\nimport {classNames} from \"./utils/classNames\";\nimport Tippy from \"@tippyjs/react\";\n\nexport default function TeamReports() {\n const {teamReports: {team_reports: teamReports, pages: teamReportPages}} = useLoaderData();\n const {addNotification} = useNotifications();\n const [downloadingTeamReport, setDownloadingTeamReport] = useState(false);\n\n function fetchTeamReport(event, teamReport, type) {\n console.log('Fetching team report')\n event.preventDefault();\n\n if (downloadingTeamReport) {\n addNotification({title: 'Another download in progress', type: NOTIFICATION_TYPES.WARNING, body: 'Please wait for the previous report to be downloaded.' })\n return;\n }\n\n setDownloadingTeamReport(teamReport.id);\n fetchApi(`/api/v1/internal/team_reports/${teamReport.id}/generate_team_report?type=${type}`)\n .then(({url}) => {\n addNotification({type: NOTIFICATION_TYPES.SUCCESS, title: 'Downloading!', body: 'Your team report is being downloaded!'})\n window.open(url, '_blank');\n })\n .catch(() => {\n addNotification({type: NOTIFICATION_TYPES.FAILURE, title: 'Could not download', body: 'We were not able to download the team report. We\\'re looking into it.'})\n })\n .finally(() => setDownloadingTeamReport(null));\n }\n\n return (\n <>\n
    \n {\n teamReports.map((teamReport) => {\n const {id, payment, title, assessments, created_by, created_at, recent} = teamReport;\n\n return (\n
  • \n \n
  • \n )\n })\n }\n
    \n
    \n \n \n )\n}\n","import React, {useState} from 'react';\nimport {fetchApi} from '../utils/fetch';\nimport {useTimer} from 'use-timer';\nimport {getSurveyAssessments} from \"../fetchers\";\nimport {useSurvey} from \"./ContextSurvey\";\n\nexport const AssessmentsContext = React.createContext({\n assessments: [],\n unpaidAssessments: [],\n});\n\nexport function useAssessments() {\n return React.useContext(AssessmentsContext);\n}\n\nexport default function AssessmentsProvider({children, assessments: defaultAssessments}) {\n const {survey} = useSurvey();\n const [assessments, setAssessments] = useState(defaultAssessments);\n const [unpaidAssessments, setUnpaidAssessments] = useState([]);\n\n function loadAssessments() {\n return getSurveyAssessments(null, survey.id).then((assessments) => {\n setAssessments(assessments);\n setUnpaidAssessments(assessments.filter((a) => !a['paid?']));\n });\n }\n\n function updateAssessments(updates) {\n return fetchApi(`/api/v1/internal/surveys/${survey.id}`, {method: 'PATCH', body: JSON.stringify({survey: updates})})\n .then(loadAssessments);\n }\n\n return (\n \n {children}\n \n );\n}\n\n","import React, {useCallback, useEffect, useState} from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport const NotificationContext = React.createContext({\n notifications: [],\n addNotification: () => {},\n removeNotification: () => {},\n});\n\nexport default function NotificationProvider({ children }) {\n const [notifications, setNotifications] = useState([]);\n const [removes, setRemoves] = useState({});\n\n useEffect(() => {\n const notificationsToSet = notifications.map((note) => {\n if (!note.show) return false;\n if (removes[note.id]) note.show = false;\n return note;\n }).filter((n) => !!n);\n\n setNotifications(notificationsToSet);\n }, [removes]);\n\n const addNotification = useCallback((notification) => {\n const uuid = uuidv4();\n const notes = notifications.filter((n) => n.show);\n\n setNotifications([...notes, {\n ...notification,\n createdAt: new Date(),\n show: true,\n id: uuid,\n }]);\n\n setTimeout(() => {\n setRemoves({...removes, [uuid]: true});\n }, 5000);\n }, [notifications, setNotifications]);\n\n const removeNotification = useCallback((notification) => {\n const idxToRemove = notifications.findIndex(({id}) => notification.id === id);\n const newNotifications = [...notifications];\n newNotifications[idxToRemove].show = false\n setNotifications(newNotifications);\n });\n\n return (\n \n {children}\n \n )\n}\n\nexport function useNotifications() {\n return React.useContext(NotificationContext);\n}\n","import React, {useState} from 'react';\nimport {parseSurveyState} from '../utils/state';\nimport {fetchApi} from '../utils/fetch';\nimport {useTimer} from 'use-timer';\n\nexport const SurveyContext = React.createContext({\n survey: {},\n surveyState: {},\n});\n\nexport function useSurvey() {\n return React.useContext(SurveyContext);\n}\n\nexport default function SurveyProvider({children, survey: defaultSurvey}) {\n const [survey, setSurvey] = useState(defaultSurvey);\n\n const { pause: pauseSurveyWatcher } = useTimer({\n interval: 10000,\n autostart: true,\n onTimeUpdate: () => {\n if (surveyState.showCountdown) {\n getSurvey().then((survey) => {\n const {hasStarted} = parseSurveyState(survey);\n if (hasStarted) pauseSurveyWatcher();\n setSurvey(survey);\n });\n }\n },\n });\n\n const surveyState = parseSurveyState(survey);\n\n function getSurvey() {\n return fetchApi(`/api/v1/internal/surveys/${survey.id}`)\n }\n\n function loadSurvey() {\n return getSurvey().then(setSurvey);\n }\n\n function updateSurvey(updates) {\n return fetchApi(`/api/v1/internal/surveys/${survey.id}`, {method: 'PATCH', body: JSON.stringify({survey: updates})})\n .then(loadSurvey);\n }\n\n return (\n \n {children}\n \n );\n}\n\n","import React, {useEffect, useState} from 'react';\nimport {getMe} from '../fetchers';\n\nexport const UserContext = React.createContext({account: {tokens_available: {}}});\n\nexport function useUser() {\n return React.useContext(UserContext);\n}\n\nexport default function UserProvider({children, defaultUser = {account: {tokens_available: {}}}}) {\n const [user, setUser] = useState(defaultUser);\n\n useEffect(() => {\n loadUser();\n }, []);\n\n function loadUser() {\n return getMe().then(setUser);\n }\n\n return (\n \n {children}\n \n );\n}\n\n","import {fetchApi} from '../utils/fetch';\n\nexport const getMe = async (signal) => fetchApi(`/api/v1/internal/users/me.json`, { signal });\nexport const getSurveyAssessments = async (signal, surveyId) => fetchApi(`/api/v1/internal/surveys/${surveyId}/assessments`, {signal});\nexport const getSurveys = async (signal, page, search='') => fetchApi(`/api/v1/internal/surveys?sp=${page || 1}&t=${search}`, {signal});\nexport const getTeamReportSurveySearch = async (signal, page = 1, search='', searchTarget='survey') => fetchApi(`/api/v1/internal/team_reports/search?sp=${page}&t=${search}&target=${searchTarget}&type=coachability`, {signal, method: 'POST'});\nexport const getTeamReports = async (signal, page) => fetchApi(`/api/v1/internal/team_reports?trp=${page || 1}`, {signal});\nexport const getDocuments = async (signal, page, certificationLevel = '') => fetchApi(`/api/v1/internal/documents?ctl=${certificationLevel}&drp=${page || 1}`, {signal});\nexport const getSurvey = async (signal, surveyId) => fetchApi(`/api/v1/internal/surveys/${surveyId}`, {signal});\nexport const getNewSurvey = async (signal) => fetchApi(`/api/v1/internal/surveys/new`, {signal})\nexport const getQuizzes = async (signal) => fetchApi(`/api/v1/internal/quizzes`, {signal});\nexport const getQuiz = async (signal, quizId) => fetchApi(`/api/v1/internal/quizzes/${quizId}`, {signal});\n","import React from 'react';\n\nexport default function CoinsIcon({color='', className}) {\n return (\n \n \n \n )\n}\n","export function classNames(...classes) {\n return classes.filter(Boolean).join(' ')\n}\n","export function fetchApi(path, args={}, autoLogout=true) {\n return fetch(path, {...args, headers: getHeaders(args.headers)})\n .then((resp) => {\n if (resp.status === 401 && autoLogout) {\n console.error('User was logged out.', resp.status);\n window.location = '/users/sign_in';\n return;\n }\n\n return resp.json();\n });\n}\n\nexport function getHeaders(overwriteHeaders = {}) {\n const csrfToken = document.getElementsByName('csrf-token')[0].content;\n const csrfHeaders = { 'X-CSRF-Token': csrfToken, 'Content-Type': 'application/json' };\n return {...csrfHeaders, ...overwriteHeaders}\n}\n","export function parseSurveyState(survey) {\n const hasStarted = survey['started?'];\n const hasPaid = survey['all_paid?'];\n const hasClosed = survey['expired?'];\n const isPaymentPending = survey.status === 'payment_pending';\n\n return {\n hasPaid,\n hasStarted,\n hasClosed,\n isPaymentPending,\n showCountdown: (survey.starts_on_in_minutes < 60 && survey.starts_on_in_minutes > -1) || isPaymentPending,\n canEditParticipant: !hasStarted && !hasClosed,\n canResendInvitation: hasStarted,\n canRemoveAssessment: !hasStarted && !hasClosed,\n canDisableAssessment: hasStarted,\n canAddParticipants: !hasPaid && !hasStarted && !hasClosed,\n mustCheckoutSurvey: !hasPaid && !hasClosed && !isPaymentPending,\n canStartSurvey: hasPaid && !hasStarted && !hasClosed,\n showDetailedAssessmentsView: hasStarted || hasClosed,\n isScheduledToAutoStart: survey['starts_on'] && !hasStarted && !hasClosed && survey.starts_on_in_minutes > -1,\n canCloseSurvey: hasStarted && !hasClosed,\n shouldLiveReload: hasStarted && !hasClosed,\n hasPurchasedTeamReport: survey.team_report?.purchased,\n hasGeneratedTeamReport: survey.team_report?.status === 'paid',\n hasAttachedTeamReport: survey.team_report?.attached,\n hasUsedTokens: survey.used_tokens > 0,\n resultDownloadsEnabled: survey.is_coachability,\n }\n}\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","i","setTimeout","flash","document","querySelector","children","length","Array","from","forEach","c","removeChild","ErrorBoundary","className","src","WhistlePng","alt","Container","SurveyHoc","useLoaderData","survey","assessments","Survey","AdminRequired","useContext","UserContext","user","admin","props","style","height","Notifications","notifications","href","CalendarDaysIcon","router","createBrowserRouter","path","element","Dashboard","errorElement","loader","request","params","url","URL","Promise","all","getMe","signal","getSurveys","searchParams","get","getTeamReports","surveys","teamReports","ResourcesDrawer","documents","pages","restricted","getDocuments","SurveyNew","getNewSurvey","getSurvey","surveyId","getSurveyAssessments","TeamReportNew","Quizzes","getQuizzes","QuizEditor","getQuiz","quizId","Button","color","onClick","additionalClasses","disabled","loading","role","Spinner","surveyPages","navigate","useNavigate","useEffect","onclick","event","preventDefault","first_name","to","type","assess_count","name","created_at","created_by","status","used_tokens","key","split","join","renderStatusPill","Intl","DateTimeFormat","format","Date","playable","queryKey","maxPage","DateFormatter","dateString","useMemo","year","month","day","hour","minute","DebugPrinter","initShow","json","useState","show","setShow","window","localStorage","app_debug","JSON","stringify","InputDateTime","classes","ModalAddParticipant","open","onClose","onSave","showError","setShowError","setLoading","close","as","Fragment","enter","enterFrom","enterTo","leave","leaveFrom","leaveTo","onSubmit","data","FormData","target","value","fetchApi","method","body","participant","last_name","email","assessment","group_number","then","error","success","htmlFor","required","defaultChecked","ModalAlert","headerIcon","alert","setOpen","title","onConfirm","confirmButtonText","ModalLoading","message","ModalQuizSettings","quiz","coachabilityReportContents","coachability_report_contents","reportContentsType","report_contents_type","is_available","isAvailable","setIsAvailable","is_for_feedback_only","isForFeedbackOnly","setIsForFeedbackOnly","is_coachability","isCoachabilityQuiz","setIsCoachabilityQuiz","is_internal","isInternal","setIsInternal","description","setDescription","surveyName","setSurveyName","type_name","surveyType","setSurveyType","reportTypeId","setReportTypeId","setError","editMode","defaultValue","placeholder","onChange","checked","selected","report","classNames","confirm","savePromise","ModalSendSurveyConfirmation","onUpdate","useSurvey","ends_on_range","content","placement","deadline","onSetDeadline","auto_send_results","ModalSurveyCheckout","onCheckoutComplete","availableTokens","purchaseQuantity","checkoutRequestBody","errorMessage","setErrorMessage","tokensToUse","setTokensToUse","maxAvailableTokens","Math","min","parseInt","sendToCheckout","tokens_to_use","msg","checkout_url","NOTIFICATION_TYPES","WARNING","SUCCESS","FAILURE","useNotifications","removeNotification","addNotification","notification","colors","icon","text","Pages","additionalSearchParams","useSearchParams","setSearchParams","currentPage","setCurrentPage","fromEntries","Portal","mounted","setMounted","createPortal","creator","setCreator","saving","setSaving","initQuiz","readOnly","read_only","draft","tokenValues","test_token_values","requiredFormulas","required_formulas","useParams","locationState","useLocation","state","setShowFormulaEditor","setShowJSONEditor","showSettings","setShowSettings","formulaHasError","setFormulaHasError","hideExternalEditors","save","saveNo","callback","formulas","parent_id","save_number","token_values","updated_quiz","resp","notificationState","SurveyCreator","haveCommercialLicense","showTranslationTab","isAutoSave","ReactElementFactory","React","QuizFunctionsEditor","undefined","onFormulaError","hasError","addPluginTab","activate","deactivate","saveSurveyFunc","cantPublish","is_published","canRollback","val","survey_type","external_feedback_url","navigator","clipboard","writeText","SurveyCreatorComponent","Serializer","category","visibleIndex","displayName","visible","expressionValue","setExpressionValue","tokens","setTokens","valuedTokens","setValuedTokens","errors","setErrors","touched","setTouch","parseQuiz","previewQuiz","questions","qualifiedTokens","page","elements","flat","reduce","acc","q","choices","newValuedTokens","token","checkForErrors","expression","missingVars","ExpressionRunner","getVariables","filter","v","runner","isNaN","run","canRun","isValid","calculateErrors","values","formulaName","tabs","modifiedCallback","onModified","add","remove","console","log","updated_at","updatedExpressionValues","expressKey","rows","onBlur","result","updatedExpressionValue","tokenKey","onFocus","max","quizzes","latestAvailableVersionByType","latest_available_version_by_type","showNewQuiz","setShowNewQuiz","sortedQuizzes","setSortedQuizzes","sortedQuizTypes","setSortedQuizTypes","createNewQuizType","newVersion","new_version","report_content_type_id","redirect","err","sorted","version","push","quizType","eventIdx","isPrimary","zIndex","marginTop","width","published_at","display","activeDocuments","activePages","useUser","findInitActiveTab","activeTab","setActiveTab","currentFile","setCurrentFile","categorized","setCategorized","pagesSearchParams","setPagesSearchParams","find","t","certification_level","getFileType","filename","pop","getSizeInMb","size","ceil","doc","ctl","toLowerCase","tab","xmlns","fill","viewBox","strokeWidth","stroke","strokeLinecap","strokeLinejoin","d","cat","file","preview","metadata","dangerouslySetInnerHTML","__html","download","renderCurrentDocumentSlideout","textColor","account","tokens_available","useAssessments","unpaidAssessments","loadAssessments","surveyState","loadSurvey","updateSurvey","showCheckoutModal","setShowCheckoutModal","buttonText","modalAlert","setModalAlert","sendingInvites","setSendingInvites","sendSurveyConfirmationModal","setSendSurveyConfirmationModal","editName","setEditName","nameInputRef","useRef","useTimer","interval","onTimeUpdate","startAssessmentReloader","start","pauseAssessmentReloader","pause","startSurvey","unpaid","search","location","URLSearchParams","stripeSessionId","isTeamReport","uri","session_id","sent","isScheduledToAutoStart","hasPaid","starts_on_in","renderSurveyStartWarning","ref","current","hasStarted","showCountdown","canStartSurvey","mustCheckoutSurvey","hasUsedTokens","isPaymentPending","canCloseSurvey","active","liveReload","shouldLiveReload","liveReloadAssessmentsInt","SurveyAssessments","minimizedView","editAssessment","setEditAssessment","updatedAssessments","setUpdatedAssessments","showParticipant","setShowParticipant","response","updateParticipant","updateAssessment","setInterval","clearInterval","parseSurveyState","team_report","canAddParticipants","scope","showDetailedAssessmentsView","personIdx","invite_sent","link_view_count","invite_reminders_sent","completed","assessment_type","canEditParticipant","canResendInvitation","assessmentId","resultDownloadsEnabled","download_results","downloadReport","sendResults","canRemoveAssessment","canDisableAssessment","optionDisabled","disable","disableAssessment","removeAssessment","assessment_link","is_pointerpro","syncAssessment","SurveyAssessmentsTable","csvRows","currentSurveyRows","setData","row","group","leaders","employees","raw","groups","SurveyEndsOnRange","option","header","csvData","pastSurveyAssessments","setPastSurveyAssessments","surveySource","setSurveySource","surveyStartsOn","setSurveyStartsOn","setDeadline","surveyEndsOn","setSurveyEndsOn","surveyAutoSendResults","setSurveyAutoSendResults","participantsFileData","setParticipantsFileData","pastSurveys","past_surveys","types","surveyJsSurveyTypes","participantsBySurvey","setParticipantsBySurvey","adhocParticipants","fileUploaderRef","setSelected","fileOrFiles","csvFile","setCsvFile","savingSurvey","setSavingSurvey","startsOnMinDate","setStartsOnMinDate","formErrors","setFormErrors","adhoc","csv","past","participants","setParticipants","participantDups","setParticipantDups","selectedSurveyName","setSelectedSurveyName","getAllParticipants","validateSteps","newFormErrors","step2","step3","step4","updateParticipantsList","reader","FileReader","addEventListener","emailCounts","trim","splice","sort","a","b","readAsText","removeParticipant","idx","newRows","assessment_id","dups","hasParticipants","dateFormat","onTypeError","ev","onDrop","onSelect","hoverTitle","dropMessageStyle","backgroundColor","hidden","autoComplete","input","isDup","step","date","submitError","findIndex","survey_source","starts_on","participants_file_data","participants_by_survey_id","past_survey_assessments","adhoc_participants","saveSurvey","warnBeforeClosing","returnValue","SurveyTaker","uuid","feedback","showSurvey","setShowSurvey","Model","onCompleting","sender","_options","removeEventListener","onComplete","showSaveError","showSaveInProgress","showSaveSuccess","results","quiz_id","nativateToUrl","model","SurveyTypeBadge","SwitchToggle","enabled","setEnabled","controller","SurveySearchBar","onSearch","searchTerm","setSearchTerm","searchType","setSearchType","setSurveys","allLoaded","setAllLoaded","surveyAssessments","setSurveyAssessments","hasNamedReport","setHasNamedReport","editTitle","setEditTitle","selectedAssessments","setSelectedAssessments","setLoadingAssessments","term","searchTerms","setSearchTerms","selectedAssessmentIds","setSelectedAssessmentIds","teamReportTitle","setTeamReportTitle","selectedQuizType","setSelectedQuizType","loadSurveys","append","abort","AbortController","getTeamReportSurveySearch","newSurveys","generateSelectedAssessments","newSelectedAssessments","isDifferentQuizType","canAddAssessment","surveyIds","assessmentIds","assessment_ids","quiz_type_name","quiz_version","moreThanOneType","eligibleAssessments","getAssessmentQuizTypeName","canAddAll","loadSurveyAssessments","created_ago","canRemove","selectedSurvey","tippyAddContent","addAssessment","colSpan","autoFocus","propTypes","PropTypes","TeamReports","team_reports","teamReportPages","downloadingTeamReport","setDownloadingTeamReport","fetchTeamReport","teamReport","payment","recent","AssessmentsContext","AssessmentsProvider","defaultAssessments","setAssessments","setUnpaidAssessments","Provider","updateAssessments","updates","NotificationContext","NotificationProvider","setNotifications","removes","setRemoves","notificationsToSet","note","n","useCallback","uuidv4","notes","createdAt","idxToRemove","newNotifications","SurveyContext","SurveyProvider","defaultSurvey","setSurvey","autostart","pauseSurveyWatcher","UserProvider","defaultUser","setUser","loadUser","reloadUser","searchTarget","certificationLevel","CoinsIcon","Boolean","args","autoLogout","fetch","headers","getHeaders","overwriteHeaders","csrfToken","getElementsByName","csrfHeaders","hasClosed","starts_on_in_minutes","hasPurchasedTeamReport","purchased","hasGeneratedTeamReport","hasAttachedTeamReport","attached"],"sourceRoot":""}