{"version":3,"sources":["bootoast/bootoast.js","services/dataService.js","components/Home/RecipientSelection.js","components/Home/UserHomeNav.js","components/Home/FormCard.js","components/Common/ModalDialog.js","components/Home/PeriodicFormCard.js","components/Home/FormList.js","components/Home/AddFormModal.js","services/equalityCheckerService.js","components/Common/SaveResultConstants.js","services/helpers.js","components/Common/QuestionnaireForm.js","components/Home/QuestionnaireFormUILoad.js","components/Common/SaveAndNavigate.js","components/Home/UserHomePage.js","components/Code/QuestionnaireFormCodeEntry.js","components/Common/CommonConstants.js","components/Code/CodeEntryBase.js","components/Common/BaseMainPageLayout.js","components/Code/CodeEntryPDF.js","components/DevelopmentLogin/DevRecipientSelection.js","components/DevelopmentLogin/Login.js","components/Analytics/SurveyTitle.js","components/Analytics/QuestionTypes/AqUtilities.js","components/Analytics/QuestionTypes/AqBoolean.js","components/Analytics/QuestionTypes/AqComment.js","components/Analytics/QuestionTypes/AqChoice.js","components/Analytics/BarBuilder.js","components/Analytics/QuestionTypes/AqMatrix.js","components/Analytics/AnalyticsQuestion.js","components/Analytics/AnalyticsPage.js","components/Analytics/AnalyticsPagesContainer.js","components/Analytics/SurveyAnalyticsRoot.js","components/Analytics/SurveyAnalytics.js","components/Common/MainLayoutPage.js","components/Common/NavControls.js","components/Common/RenderDoneDialog.js","components/Code/QuestionnaireCodeContext.js","components/Code/KeyEntryDialog.js","components/Code/CompCode.js","components/Direct/QuestionnaireFormDirectLoad.js","components/Direct/QuestionnaireDirectContext.js","components/Direct/CompExternalDirect.js","components/Direct/CompInternalDirect.js","components/Code/CodePortal.js","App.js","registerServiceWorker.js","index.js"],"names":["root","factory","this","exports","$","console","error","pluginName","Bootoast","options","message","settings","extend","defaults","content","text","timeoutProgress","position","positionFor","split","icon","icons","type","containerClass","containerSelector","join","length","class","appendTo","$el","typeFor","init","prototype","timeout","animationDuration","dismissible","warning","success","danger","info","types","typeSinonym","warn","positions","positionSinonym","bottom","leftBottom","rightBottom","top","rightTop","leftTop","plugin","addClass","prepend","on","e","preventDefault","hide","animate","opacity","secondsTimeout","parseInt","setTimeoutProgress","timerId","setTimeout","remove","hover","clearTimeout","bind","window","progressPosition","positionOptions","$progress","html","role","aria-valuemin","aria-valuenow","aria-valuemax","putMethod","positionCamel","camelCase","moveProgressbar","elem","qty","width","id","setInterval","clearInterval","style","toast","nodeName","require","bootoast","jQuery","axios","interceptors","response","use","status","url","request","responseURL","config","endsWith","location","concat","process","href","Promise","reject","headers","getLoggedInUserInfo","_ref","Object","asyncToGenerator","regenerator_default","a","mark","_callee","temp","wrap","_context","prev","next","get","withCredentials","sent","abrupt","data","stop","apply","arguments","login","_ref2","_callee2","userName","_context2","post","_x","getRecipientFormsList","_ref3","_callee3","recipientId","adminRequestedType","_context3","_x2","_x3","getInstance","_ref5","_callee5","_context5","_x5","addInstance","_ref6","_callee6","selectedRecipientId","formId","_context6","log","_x6","_x7","getUsers","_ref7","_callee7","searchText","lookupType","_context7","_x8","_x9","getEmployerOrCarrierRecipients","_ref8","_callee8","_context8","_x10","_x11","getAllForms","_ref10","_callee10","_context10","_x13","refreshCookie","_ref11","_callee11","_context11","putFormData","_ref14","_callee14","json","_context14","put","t0","_x16","getInternalDirect","_ref15","_callee15","key","_context15","_x17","getExternalDirect","_ref16","_callee16","_context16","_x18","getDataByCode","_ref17","_callee17","key1","key2","_context17","Key1","Key2","_x19","_x20","getFormListByCode","_ref18","_callee18","_context18","_x21","_x22","putFormDataForCode","_ref19","_callee19","_context19","_x23","getAnalyticsData","_ref20","_callee20","_context20","_x24","RecipientSelection","handleUserSelected","returnUrl","_useState","useState","_useState2","slicedToArray","isLoading","setIsLoading","_useState3","_useState4","setOptions","_useState5","_useState6","setLookupType","handleSearch","query","items","map","i","name","focusControl","useEffect","focus","react_default","createElement","value","onClick","checked","className","for","es","ref","ctl","labelKey","option","minLength","onSearch","onChange","handleChange","useCache","placeholder","buildPlaceholderText","renderToken","index","react","UserHomeNav","_ref$userInfo","userInfo","userType","recipients","loggedInFlag","handleRecipientChange","renderLoginMessage","renderRecipientSection","renderAdminRecipientSelection","renderCarrierOrEmployerRecipientSection","Home_RecipientSelection","recipient","_","Form","Group","Label","Control","as","f","target","item","FormCard","handleRefresh","history","instances","addProps","objectWithoutProperties","defaultTableHeader","defaultTableBody","startedDate","moment","format","lastUpdatedDate","lastUpdatedBy","completedDate","defaultCardHeader","fontWeight","cardHeader","tableHeader","instance","tableBody","ModalDialog","props","Modal","show","onHide","size","dialogClassName","Header","closeButton","title","Title","body","Body","Footer","footer","PeriodicFormCard","assign","showAddModal","periodicityText","FormList","_Component","_getPrototypeOf2","_this","classCallCheck","_len","args","Array","_key","possibleConstructorReturn","getPrototypeOf","call","state","deleteModalVisible","addModalVisible","selectedItem","renderProperCard","periodicity","instanceList","formName","setState","inherits","createClass","renderList","_this2","forms","Fragment","Button","variant","Component","AddFormModal","renderOptions","availableForms","label","addForm","selectedForm","showMenu","showAddError","prevProps","marginRight","disabled","React","equals","x","y","constructor","p","hasOwnProperty","SAVED_INCOMPLETE","COMPLETED","CANCELLED","convertToLocalDateTimeString","dateToConvert","Date","toLocaleString","widgets","Survey","QuestionnaireForm","intervalId","performAutoSave","objectsAreEqual","originalData","model","JSON","parse","stringify","saveData","clearIntervalIfNecessary","onComplete","survey","saveError","isLastPage","complete","isComplete","SaveResult","validationIssues","m","makeErrorList","errors","doesItRender","sender","input","htmlElement","querySelector","setAttribute","onPanelAdded","question","panelCount","_step","_iterator","_createForOfIteratorHelper","panels","questions","s","n","done","err","onTableRowAdded","setRowValue","row","rowIndex","resizeInputBox","inputWidth","doMarkdown","fixedHtml","fixHtmlMarkdownIssueWithSpaces","str","converter","makeHtml","indexOf","substring","beforeAndAfterDecimal","isNaN","substr","completed","autosave","newInstanceInfo","_args3","undefined","saveDataToOverride","instanceInfo","lastUpdated","lastUpdatedByUserId","alert","buildAlertMessage","_ref4","_callee4","_context4","instanceId","currentInstanceId","responseCollection","_x4","lastUpdatedNyUserName","formattedDate","loading","showdown","Converter","addProperty","default","formAndResponses","keys","responses","lastStatus","readOnlyMode","mode","defaultThemeColorsSurvey","ThemeColors","applyTheme","survey_react","onDynamicPanelAdded","onMatrixRowAdded","onAfterRenderQuestion","onMatrixAfterCellRender","onAfterRenderQuestionInput","onTextMarkdown","onServerValidateQuestions","AUTO_SAVE_INTERVAL","QuestionnaireFormUILoad","loadPage","form","setFormData","lastInstanceId","match","params","SaveAndNavigate","getDataHandler","navigateAway","cancelText","current","QuestionnaireFormCodeEntry","populateDirectLoadedData","directLoadedForm","formInfo","ENTER_KEY_MODE","DONE_MODE","READ_ONLY_MODE","CodeEntryBase","formState","Constants","renderContentArea","renderDoneMessage","renderKeyEntryDialog","Code_QuestionnaireFormCodeEntry","questionnaireRef","formData","setCompleteState","doneMessage","doneSubMessage","margin","renderKeyEntryControl","justifyContent","autoFocus","evt","renderButton","saveResult","createRef","renderSaveAndNavigate","CodeEntryPDF","buildPDF","renderButtonText","aria-hidden","result","generatePDF","surveyPDF","SurveyPDF","fontSize","commercial","margins","left","right","bot","pages","getPanels","description","formWCIOStateCode","logoWidth","logoHeight","logoFit","logo","getAllQuestions","obj","getType","newQuestion","replace","hideNumber","panel","parent","elements","removeElement","addElement","add","onRenderQuestion","plainBricks","bricks","unfold","lastBrick","createPoint","xRight","Math","min","xLeft","yBot","yTop","save","DevRecipientSelection","handleLoggedIn","Login","urlParamFind","search","DevelopmentLogin_DevRecipientSelection","SurveyTitle","dangerouslySetInnerHTML","__html","cleanHtml","parseHTML","cleanTitle","AqBoolean","total","true","false","colors","shapedData","itemizedChoices","fill","ResponsiveContainer","height","BarChart","layout","XAxis","axisLine","padding","YAxis","dataKey","tickLine","Bar","isAnimationActive","LabelList","AqComment","showText","setShowText","display","AqChoice","nonZeroCount","choices","reduce","accumulator","dx","BarBuilder","prefix","bars","itemValue","push","AqMatrix","rows","values","accum","legendPayload","columns","color","Legend","wrapperStyle","payload","verticalAlign","domain","AnalyticsQuestion","_ref$data","singleResult","nestedResult","AnalyticsPage","page","element","AnalyticsPagesContainer","sectionId","SurveyAnalyticsRoot","questionnaireInfo","surveyInfo","setSurveyInfo","encryptedParam","encodeURIComponent","fetchData","SurveyAnalyticsPage","MainLayoutPage","navControls","contentArea","NavControls","updateFormState","readOnlyText","retVal","RenderDoneDialog","renderCloseMessage","childControls","subMessage","QuestionnaireCodeContext","createContext","QuestionnaireCodeProvider","setFormState","setDoneMessage","setKey1","_useState7","_useState8","setKey2","_useState9","_useState10","setError","_useState11","_useState12","setLoading","_useState13","_useState14","_useState15","_useState16","formList","setFormList","openForm","errorObj","finish","openPortal","Provider","formWasSaved","children","KeyEntryDialog","KeyEntryControl","afterCodeConfirmationAction","buttonText","_useContext","useContext","_useContext3","CompCode","useRef","QuestionnaireCodeContext_QuestionnaireCodeProvider","CompCode_BuildNavControls","CompCode_ContentArea","BuildNavControls","NavControls_NavControls","ContentArea","_useContext2","ReEnterKeyMode","addOptionText","QuestionnaireFormDirectLoad","jumpToPage","setupFormState","pageCount","newPage","currentPage","completeButtonText","completeText","QuestionnaireDirectContext","QuestionnaireDirectProvider","setInitialState","getData","callback","enterErrorMode","getKey","param","CompExternalDirect","QuestionnaireDirectContext_QuestionnaireDirectProvider","CompExternalDirect_BuildNavControls","CompExternalDirect_ContentArea","Direct_QuestionnaireFormDirectLoad","CompInternalDirect","CompInternalDirect_ContentArea","renderSuccessMessage","CodePortal_BuildNavControls","CodePortal_ContentArea","FormList_FormList","App","displayName","react_router","path","component","CodePortal","exact","Boolean","hostname","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","react_router_dom","basename","App_App"],"mappings":"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","file":"static/js/main.be75ca10.chunk.js","sourcesContent":["/**\n * AMD adapter!\n * \n * @see https://github.com/umdjs/umd\n * \n * @author Luiz Machado \n */\n(function (root, factory) {\n\n\tif (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\n\n\t\t// CommonJS\n\t\tfactory(exports, require('jquery'));\n\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory((root.bootoast = {}), root.jQuery);\n\n\t}\n\n}(this, function (exports, $) {\n\t// Use bootoast, bootbox in some fashion.\n\n\n\tif (!$) {\n\t\tconsole.error('jQuery não encontrado, seu plugin jQuery não irá funcionar.');\n\t\treturn false;\n\t}\n\n\t/**\n\t * Store the plugin name in a variable. It helps you if later decide to change the plugin's name\n\t * @var {string} pluginName\n\t */\n\tvar pluginName = 'bootoast';\n\n\t/**\n\t * The plugin constructor.\n\t */\n\tfunction Bootoast(options) {\n\n\t\tif (typeof options === 'string') {\n\t\t\toptions = {\n\t\t\t\tmessage: options\n\t\t\t};\n\t\t}\n\n\t\tif (typeof options !== 'object') return;\n\n\t\t// define as opções interpretadas\n\t\tthis.settings = $.extend({}, this.defaults, options);\n\t\t// define o conteúdo\n\t\tthis.content = this.settings.content || this.settings.text || this.settings.message;\n\t\t// define o elemento de progress como nulo\n\t\tthis.timeoutProgress = null;\n\t\t// define uma posição aceitável pro elemento\n\t\tthis.position = this.positionFor(this.settings.position).split('-');\n\t\t// Define o .glyphicon com base no .alert-\n\t\tthis.settings.icon = this.settings.icon || this.icons[this.settings.type];\n\n\t\tvar containerClass = pluginName + '-container';\n\n\t\tthis.containerSelector = '.' + containerClass + '.' + this.position.join('.');\n\n\t\t// Checa se já tem container, se não cria um.\n\t\tif ($('body > ' + this.containerSelector).length === 0) {\n\t\t\t$('
', {\n\t\t\t\tclass: containerClass + ' ' + this.position.join(' ')\n\t\t\t}).appendTo('body');\n\t\t}\n\n\t\t// Adiciona o .alert ao .container conforme seu posicionamento.\n\t\tthis.$el = $('
' + this.content + '
');\n\n\t\tthis.init();\n\t}\n\n\t$.extend(Bootoast.prototype, {\n\t\t/**\n\t\t * Default options\n\t\t *\n\t\t * @var {Object} defaults\n\t\t */\n\t\tdefaults: {\n\t\t\t/**\n\t\t\t * Any HTML string.\n\t\t\t * @var {string}\n\t\t\t */\n\t\t\tmessage: 'Bootoast!',\n\t\t\t/**\n\t\t\t * ['warning', 'success', 'danger', 'info']\n\t\t\t * @var {string}\n\t\t\t */\n\t\t\ttype: 'info',\n\t\t\t/**\n\t\t\t * ['top-left', 'top-center', 'top-right', 'bottom-left', 'bottom-center', 'bottom-right']\n\t\t\t * @var {string}\n\t\t\t */\n\t\t\tposition: 'bottom-center',\n\t\t\t/**\n\t\t\t * @var {string}\n\t\t\t */\n\t\t\ticon: null,\n\t\t\t/**\n\t\t\t * Seconds, use null to disable timeout hiding.\n\t\t\t * @var {int}\n\t\t\t */\n\t\t\ttimeout: 3,\n\t\t\t/** \n\t\t\t * [false, 'top', 'bottom', 'background']\n\t\t\t * \n\t\t\t * @var {string|bool}\n\t\t\t */\n\t\t\ttimeoutProgress: false,\n\t\t\t/**\n\t\t\t * Animation duration in miliseconds.\n\t\t\t * \n\t\t\t * @var {int}\n\t\t\t */\n\t\t\tanimationDuration: 300,\n\t\t\t/**\n\t\t\t * @var {bool}\n\t\t\t */\n\t\t\tdismissible: true,\n\t\t},\n\t\t/**\n\t\t * Default icons\n\t\t *\n\t\t * @var {Object} icons\n\t\t */\n\t\ticons: {\n\t\t\twarning: 'exclamation-sign',\n\t\t\tsuccess: 'ok-sign',\n\t\t\tdanger: 'remove-sign',\n\t\t\tinfo: 'info-sign'\n\t\t},\n\t\t/**\n\t\t * Types\n\t\t *\n\t\t * @var {Object} types\n\t\t */\n\t\ttypes: [\n\t\t\t'primary',\n\t\t\t'secondary',\n\t\t\t'info',\n\t\t\t'success',\n\t\t\t'warning',\n\t\t\t'danger'\n\t\t],\n\t\t/**\n\t\t * Type Sinonymus\n\t\t *\n\t\t * @var {Object} typeSinonym\n\t\t */\n\t\ttypeSinonym: {\n\t\t\twarn: 'warning',\n\t\t\terror: 'danger',\n\t\t},\n\t\t/**\n\t\t * Position Supported\n\t\t *\n\t\t * @var {array} positions\n\t\t */\n\t\tpositions: [\n\t\t\t'top-left',\n\t\t\t'top-center',\n\t\t\t'top-right',\n\t\t\t'bottom-left',\n\t\t\t'bottom-center',\n\t\t\t'bottom-right'\n\t\t],\n\t\t/**\n\t\t * Position Sinonymus\n\t\t *\n\t\t * @var {Object} positionSinonym\n\t\t */\n\t\tpositionSinonym: {\n\t\t\tbottom: 'bottom-center',\n\t\t\tleftBottom: 'bottom-left',\n\t\t\trightBottom: 'bottom-right',\n\t\t\ttop: 'top-center',\n\t\t\trightTop: 'top-right',\n\t\t\tleftTop: 'top-left'\n\t\t},\n\t\t/**\n\t\t * Initializes the plugin functionality\n\t\t */\n\t\tinit: function () {\n\n\t\t\t// Define se o novo .alert deve ser inserido por primeiro ou último no container.\n\t\t\tthis.$el[(this.position[0] === 'bottom' ? 'append' : 'prepend') + 'To'](this.containerSelector);\n\n\t\t\tvar plugin = this;\n\n\t\t\tif (this.settings.dismissible === true) {\n\t\t\t\tthis.$el\n\t\t\t\t\t.addClass('alert-dismissible')\n\t\t\t\t\t.prepend('')\n\t\t\t\t\t.on('click', 'button.close', function (e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tplugin.hide();\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Exibe o .alert\n\t\t\tthis.$el.animate({\n\t\t\t\topacity: 1,\n\t\t\t}, this.settings.animationDuration);\n\n\t\t\t// Se o .alert tem tempo de expiração\n\t\t\tif (this.settings.timeout) {\n\n\t\t\t\tvar secondsTimeout = parseInt(this.settings.timeout * 1000);\n\n\t\t\t\tthis.hide(secondsTimeout);\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * @method hide\n\t\t *\n\t\t * @param {int} timeout\n\t\t *\n\t\t * @return {int} The setTimeout ID.\n\t\t */\n\t\thide: function (timeout) {\n\t\t\tvar plugin = this;\n\n\t\t\tif (this.settings.timeoutProgress) {\n\t\t\t\tthis.setTimeoutProgress(this.settings.timeoutProgress);\n\t\t\t}\n\n\t\t\tvar timerId = setTimeout(function () {\n\t\t\t\tplugin.$el.animate({\n\t\t\t\t\topacity: 0,\n\t\t\t\t}, plugin.settings.animationDuration, function () {\n\t\t\t\t\tplugin.$el.remove();\n\t\t\t\t});\n\t\t\t}, timeout || 0);\n\n\t\t\t// Pausa o timeout baseado no hover\n\t\t\tthis.$el.hover(\n\t\t\t\tclearTimeout.bind(window, timerId),\n\t\t\t\tfunction () {\n\t\t\t\t\ttimerId = plugin.hide(timeout);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\treturn timerId;\n\t\t},\n\t\t/**\n\t\t * @param {string} progressPosition\n\t\t * \n\t\t * @return {number}\n\t\t */\n\t\tsetTimeoutProgress: function (progressPosition) {\n\n\t\t\tif (this.timeoutProgress !== null) {\n\t\t\t\tthis.timeoutProgress.remove();\n\t\t\t}\n\n\t\t\tvar positionOptions = {\n\t\t\t\ttop: 'prepend',\n\t\t\t\tbottom: 'append',\n\t\t\t};\n\n\t\t\tvar $progress = $('
', {\n\t\t\t\tclass: 'progress',\n\t\t\t\thtml: $('
', {\n\t\t\t\t\tclass: 'progress-bar progress-bar-striped active',\n\t\t\t\t\trole: 'progressbar',\n\t\t\t\t\t'aria-valuemin': 0,\n\t\t\t\t\t'aria-valuenow': 0,\n\t\t\t\t\t'aria-valuemax': 100,\n\t\t\t\t})\n\t\t\t});\n\n\t\t\tvar putMethod = positionOptions[progressPosition] || 'append';\n\t\t\tvar position = typeof positionOptions[progressPosition] === 'string' ? progressPosition : 'background';\n\n\t\t\tthis.timeoutProgress = $progress.addClass('progress-' + position)[putMethod + 'To'](this.$el)\n\n\t\t\treturn this.timeoutProgress;\n\t\t},\n\t\t/**\n\t\t * @param {string} type\n\t\t *\n\t\t * @return {string} Gets the correct type-name for the given value or null.\n\t\t */\n\t\ttypeFor: function (type) {\n\n\t\t\t// se esta type é padrão\n\t\t\tif (this.types[type]) {\n\t\t\t\treturn type;\n\t\t\t}\n\n\t\t\tif (!type) {\n\t\t\t\treturn 'default';\n\t\t\t}\n\n\t\t\tvar sinonym = this.typeSinonym[type];\n\n\t\t\treturn sinonym || type;\n\t\t},\n\t\t/**\n\t\t * @param {string} position\n\t\t *\n\t\t * @return {string} The correct position-name for the given value or ''.\n\t\t */\n\t\tpositionFor: function (position) {\n\n\t\t\t// se esta posição é padrão\n\t\t\tif (this.positions[position]) return position;\n\n\t\t\tvar positionCamel = $.camelCase(position);\n\n\t\t\t// Tenta encontrar um sinônimo\n\t\t\treturn this.positionSinonym[positionCamel] || 'bottom-center';\n\t\t},\n\n\t\t/**\n\t\t *\n\t\t * @param {HTMLElement} elem\n\t\t * @param {int} qty\n\t\t * \n\t\t * @return {int} The interval ID, so you can cancel the movement bro.\n\t\t */\n\t\tmoveProgressbar: function(elem, qty) {\n\n\t\t\tvar that = this;\n\t\t\tvar width = 100;\n\t\t\t\n\t\t\tvar id = setInterval(function () {\n\t\t\t\tif (width <= 0) {\n\t\t\t\t\tclearInterval(id);\n\t\t\t\t} else {\n\t\t\t\t\twidth--;\n\t\t\t\t\telem.style.width = width + '%';\n\t\t\t\t}\n\t\t\t}, 100 / qty);\n\n\t\t\treturn id;\n\t\t}\n\t});\n\n\t// attach properties to the exports object to define\n\t// the exported module properties.\n\texports.toast = function (options) {\n\t\treturn new Bootoast(options);\n\t};\n\n\treturn exports;\n}));","import axios from 'axios';\r\n\r\naxios.interceptors.response.use((response) => {\r\n\r\n return response;\r\n }, error => {\r\n \r\n if(error.response && error.response.status ==401){\r\n var url = error.request.responseURL ? error.request.responseURL : error.response.config.url;\r\n if (!url.endsWith(\"/Code\") && !url.endsWith(\"/CodePDF\")) { \r\n //Authenticated request redirected but \"Code\" based calls pass thru\r\n window.location= `${process.env.REACT_APP_LOGIN_URL}?ReturnUrl=${window.location.href}`; \r\n }\r\n } \r\n return Promise.reject(error);\r\n });\r\n\r\naxios.interceptors.request.use(\r\n request=> {\r\n request.headers[\"X-Application-Name\"] = \"Correspondence Manager\";\r\n return request;\r\n },\r\n error=> {\r\n return Promise.reject(error);\r\n }\r\n);\r\n \r\n\r\nexport const getLoggedInUserInfo = async () => {\r\n var temp = await axios.get(`${ process.env.REACT_APP_API_URL }/api/Login/LoggedInUserInfo`, {withCredentials: true} );\r\n return temp.data; \r\n}\r\n\r\n\r\nexport const login = async (userName) => {\r\n var temp = await axios.post(`${process.env.REACT_APP_API_URL}/api/Login`, {userName}, {withCredentials: true} );\r\n return temp.data; \r\n}\r\n\r\nexport const getRecipientFormsList = async (recipientId,adminRequestedType) => {\r\n var url = `${ process.env.REACT_APP_API_URL }/api/FormInstance/RecipientFormInstanceList/${recipientId}`;\r\n if(adminRequestedType)\r\n url+=`?adminRequestedType=${adminRequestedType}`;\r\n var temp = await axios.get( url , {withCredentials: true} );\r\n return temp.data;\r\n};\r\n\r\nexport const deleteInstance = async (id) => {\r\n var temp = await axios.delete(`${ process.env.REACT_APP_API_URL }/api/FormInstance/${id}`, {withCredentials: true} );\r\n return temp.data;\r\n};\r\n\r\nexport const getInstance = async id => {\r\n var temp = await axios.get(`${ process.env.REACT_APP_API_URL }/api/FormInstance/${id}`, {withCredentials: true});\r\n return temp.data;\r\n};\r\n\r\nexport const addInstance = async (selectedRecipientId, formId)=> {\r\n\r\n console.log(formId);\r\n await axios.post(`${process.env.REACT_APP_API_URL}/api/FormInstance`, {formId, selectedRecipientId } , {withCredentials: true});\r\n};\r\n\r\nexport const getUsers = async (searchText,lookupType) => {\r\n var temp = await axios.get(`${ process.env.REACT_APP_API_URL }/api/Login/CarrierOrEmployerUsers/${lookupType}/?searchText=${searchText}&maxNumber=25`);\r\n return temp.data;\r\n};\r\n\r\nexport const getEmployerOrCarrierRecipients = async(searchText,lookupType) => {\r\n var temp = await axios.get(`${process.env.REACT_APP_API_URL}/api/Login/EmployerOrCarrierRecipients/${lookupType}/?searchText=${searchText}&maxNumber=25`, { withCredentials: true });\r\n return temp.data;\r\n};\r\n\r\nexport const getForm = async id => {\r\n var temp = await axios.get(`${ process.env.REACT_APP_API_URL }/api/Form/${id}`, {withCredentials: true});\r\n return temp.data;\r\n};\r\n\r\nexport const getAllForms = async recipientId => {\r\n var temp = await axios.get(`${process.env.REACT_APP_API_URL}/api/Form/User/${recipientId}`, {withCredentials: true}); //should remove and use cookie\r\n return temp.data;\r\n};\r\n\r\nexport const refreshCookie = async() => {\r\n var temp = await axios.post(`${process.env.REACT_APP_API_URL}/api/TicketRefresh/`, {withCredentials: true}); //should remove and use cookie\r\n return temp.data;\r\n};\r\n\r\n\r\nexport const postForm = async json => {\r\n try {\r\n var data = await axios.post(`${process.env.REACT_APP_API_URL}/api/Form`, json, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n console.log(data);\r\n } catch (error) {\r\n console.log(error);\r\n throw(error);\r\n }\r\n}\r\n\r\nexport const postFormInstance = async json => {\r\n try {\r\n var data = await axios.post(`${process.env.REACT_APP_API_URL}/api/FormInstance`, json, {withCredentials: true});\r\n console.log(data);\r\n } catch (error) {\r\n console.log(error);\r\n throw(error);\r\n }\r\n}\r\nexport const putFormData = async json => {\r\n try {\r\n var data = await axios.put(`${process.env.REACT_APP_API_URL}/api/FormInstance`, json, {withCredentials: true});\r\n return data;\r\n } catch (error) {\r\n throw(error); \r\n }\r\n}\r\n\r\n\r\nexport const getInternalDirect = async key => {\r\n try {\r\n var data = await axios.post(`${process.env.REACT_APP_API_URL}/api/FormInstance/InternalDirect`,{\"key\":key}, {withCredentials: true});\r\n return data;\r\n } catch (error) {\r\n throw(error); \r\n }\r\n}\r\n\r\nexport const getExternalDirect = async key => {\r\n try {\r\n var data = await axios.post(`${process.env.REACT_APP_API_URL}/api/FormInstance/ExternalDirect`,{\"key\":key}, {withCredentials: true});\r\n return data;\r\n } catch (error) {\r\n throw(error); \r\n }\r\n}\r\n\r\nexport const getDataByCode = async (key1,key2) => {\r\n try {\r\n var data = await axios.post(`${process.env.REACT_APP_API_URL}/api/FormInstance/Code`,{\"Key1\":key1,\"Key2\":key2 }, {withCredentials: true});\r\n return data;\r\n } catch (error) {\r\n throw(error); \r\n }\r\n}\r\n\r\nexport const getFormListByCode = async (key1,key2) => {\r\n try {\r\n var data = await axios.post(`${process.env.REACT_APP_API_URL}/api/FormInstance/RecipientFormInstanceListForCode`,{\"Key1\":key1,\"Key2\":key2 }, {withCredentials: true});\r\n return data;\r\n } catch (error) {\r\n throw(error); \r\n }\r\n}\r\n\r\nexport const putFormDataForCode = async json => {\r\n try {\r\n var data = await axios.put(`${process.env.REACT_APP_API_URL}/api/FormInstance/Code`, json, {withCredentials: true});\r\n return data;\r\n } catch (error) {\r\n throw(error); \r\n }\r\n}\r\n\r\nexport const getAnalyticsData = async (key) => {\r\n try {\r\n var data = await axios.get(`${process.env.REACT_APP_API_URL}/api/Analytics?k=${key}`);\r\n return data;\r\n } catch (error) {\r\n throw(error); \r\n }\r\n}\r\n","import React, { Token, useEffect, useState, Fragment } from 'react'\r\n\r\nimport { AsyncTypeahead } from 'react-bootstrap-typeahead';\r\nimport { getEmployerOrCarrierRecipients } from '../../services/dataService';\r\n\r\n\r\nconst RecipientSelection = ({ handleUserSelected, returnUrl }) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [lookupType, setLookupType] = useState(\"Carrier\");\r\n\r\n const handleSearch = async (query) => {\r\n setIsLoading(true);\r\n\r\n const items = await getEmployerOrCarrierRecipients(query, lookupType);\r\n\r\n const options = items.map((i) => ({\r\n id: i.id,\r\n name: i.name,\r\n }));\r\n\r\n setOptions(options);\r\n setIsLoading(false);\r\n };\r\n\r\n const handleChange = (value) => {\r\n setIsLoading(false);\r\n handleUserSelected(value, returnUrl, lookupType);\r\n };\r\n\r\n let focusControl = null;\r\n useEffect(() => {\r\n focusControl && focusControl.focus();\r\n })\r\n\r\n const buildPlaceholderText = ()=>{\r\n switch (lookupType) {\r\n case \"Carrier\":\r\n return \"Search by carrier name\"\r\n case \"Employer\":\r\n return \"Search by employer name\"\r\n }\r\n }\r\n\r\n\r\n return (\r\n
\r\n\r\n
\r\n setLookupType(\"Carrier\")} checked={lookupType === \"Carrier\"} />\r\n \r\n setLookupType(\"Employer\")} checked={lookupType === \"Employer\"} />\r\n \r\n\r\n
\r\n { focusControl = ctl; }}\r\n isLoading={isLoading}\r\n labelKey={(option) => `${option.name}`}\r\n minLength={3}\r\n onSearch={handleSearch}\r\n onChange={(value) => handleChange(value[0])}\r\n useCache={false}\r\n options={options}\r\n placeholder = {buildPlaceholderText()}\r\n renderToken={(option, index) => (\r\n \r\n )}\r\n \r\n /> \r\n
\r\n );\r\n\r\n \r\n};\r\n\r\n\r\n\r\nexport default RecipientSelection;","import React, { Fragment } from 'react'\r\nimport RecipientSelection from './RecipientSelection'\r\nimport { Form } from 'react-bootstrap';\r\n\r\n\r\nexport default function UserHomeNav({userInfo:{userName,userType,recipients}, loggedInFlag, selectedRecipientId, handleRecipientChange}) {\r\n return (\r\n \r\n
Welcome to the PCRB/DCRB\r\n
\r\n Correspondence Manager\r\n
\r\n {renderLoginMessage(userName, loggedInFlag)}\r\n
\r\n {renderRecipientSection(recipients,selectedRecipientId,handleRecipientChange, userType)}\r\n\r\n
\r\n\r\n )\r\n}\r\n\r\n\r\n\r\n\r\nconst renderLoginMessage=(userName, loggedInFlag)=>{\r\n\r\n if(loggedInFlag)\r\n return(\r\n
\r\n Welcome {userName} !\r\n
\r\n );\r\n}\r\n\r\n\r\n\r\nconst renderRecipientSection=(recipients,selectedRecipientId,handleRecipientChange, userType)=>{\r\n\r\n if(userType==\"PCRBAdmin\") \r\n return renderAdminRecipientSelection(recipients,selectedRecipientId,handleRecipientChange, userType);\r\n else\r\n return renderCarrierOrEmployerRecipientSection(recipients,selectedRecipientId,handleRecipientChange);\r\n}\r\n\r\n\r\nconst renderAdminRecipientSelection=(recipients,selectedRecipientId,handleRecipientChange, userType)=>{\r\n return(\r\n recipient && handleRecipientChange(recipient.id,userType)} returnUrl={\"\"}> \r\n \r\n )\r\n}\r\n\r\n\r\n\r\nconst renderCarrierOrEmployerRecipientSection=(recipients,selectedRecipientId,handleRecipientChange)=>{\r\n if(recipients && selectedRecipientId){\r\n if(recipients.length===1) \r\n return
;\r\n else \r\n return(\r\n \r\n View forms for: \r\n handleRecipientChange(e.target.value)}>{\r\n recipients.map((item) => {\r\n return () \r\n })\r\n } \r\n \r\n )\r\n }\r\n}\r\n\r\n","import React,{Fragment} from 'react'\r\nimport * as moment from 'moment'\r\nimport {deleteInstance} from '../../services/dataService';\r\nimport { useState } from 'react';\r\n\r\n\r\nexport default function FormCard( {handleRefresh, history, name, instances, ...addProps} ) {\r\n\r\n const [deleteMode, setDeleteMode] = useState(false);\r\n\r\n console.log(addProps);\r\n const defaultTableHeader = \r\n \r\n \r\n Status\r\n Created On\r\n Last Updated On\r\n Last Updated By\r\n Completed On \r\n \r\n\r\n\r\n const defaultTableBody = (data) =>\r\n \r\n
\r\n {data.status}\r\n {data.startedDate && moment(data.startedDate+\"Z\").format('MM/DD/YYYY')}\r\n {data.lastUpdatedDate && moment(data.lastUpdatedDate+\"Z\").format('MM/DD/YYYY')} \r\n {data.lastUpdatedBy}\r\n {data.completedDate && moment(data.completedDate+\"Z\").format('MM/DD/YYYY')} \r\n \r\n\r\nconst defaultCardHeader = (name) =>\r\n
\r\n
{name}
\r\n
\r\n\r\n\r\n const viewOrEditModeButtons=(data)=>{\r\n \r\n return(\r\n \r\n {true ?\r\n \r\n :\r\n history.push(`/home/form/${true}`)} value=\"Edit\"/>\r\n }\r\n {data.userCreatedFlag &&\r\n setDeleteMode(true)}/> \r\n }\r\n \r\n );\r\n }\r\n\r\n\r\n const deleteModeButtons=(data)=>{\r\n \r\n return(\r\n \r\n \r\n \r\n deleteForm(data.formId)}/> \r\n \r\n setDeleteMode(false)}/> \r\n \r\n );\r\n }\r\n\r\n const deleteForm = async (formId) => {\r\n await deleteInstance(formId);\r\n handleRefresh();\r\n }\r\n\r\n return (\r\n
\r\n \r\n { addProps.cardHeader && addProps.cardHeader(name) || defaultCardHeader && defaultCardHeader(name)}\r\n \r\n
\r\n \r\n \r\n {addProps.tableHeader || defaultTableHeader}\r\n \r\n \r\n {\r\n instances.map(instance => \r\n addProps.tableBody && addProps.tableBody(instance) || defaultTableBody && defaultTableBody(instance))\r\n } \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n","import React from 'react'\r\nimport { Modal } from 'react-bootstrap';\r\n\r\n\r\n\r\n\r\nexport default function ModalDialog(props) {\r\n return (\r\n\r\n props.onHide()}\r\n size=\"lg\" dialogClassName=\"addFormModal\" >\r\n \r\n {props.title && {props.title}} \r\n \r\n {props.body && {props.body}} \r\n \r\n {props.footer && {props.footer}} \r\n \r\n)\r\n};","import React from 'react'\r\nimport * as moment from 'moment'\r\nimport FormCard from './FormCard';\r\n\r\nexport default function PeriodicFormCard(props) {\r\n\r\n\r\n const cardHeader = (name) =>\r\n\r\n
\r\n
{name}
\r\n
props.showAddModal(name)} />
\r\n
\r\n\r\n const tableHeader =\r\n \r\n \r\n Period\r\n Status\r\n Created On\r\n Last Updated On\r\n Last Updated By\r\n Completed On\r\n \r\n\r\n const tableBody = (data) =>\r\n \r\n
\r\n {data.periodicityText}\r\n {data.status}\r\n {data.startedDate && moment(data.startedDate + \"Z\").format('MM/DD/YYYY')}\r\n {data.lastUpdatedDate && moment(data.lastUpdatedDate + \"Z\").format('MM/DD/YYYY')}\r\n {data.lastUpdatedBy}\r\n {data.completedDate && moment(data.completedDate + \"Z\").format('MM/DD/YYYY')}\r\n \r\n\r\n\r\n return \r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport FormCard from './FormCard';\r\nimport ModalDialog from '../Common/ModalDialog';\r\nimport { Button } from 'react-bootstrap';\r\nimport PeriodicFormCard from './PeriodicFormCard';\r\n\r\n\r\nexport class FormList extends Component {\r\n\r\n\r\n state = { deleteModalVisible: false, addModalVisible:false, selectedItem: null };\r\n render() {\r\n let renderList;\r\n if (this.props.forms.length > 0) \r\n renderList = this.props.forms.map(item =>\r\n this.renderProperCard(item)) \r\n else\r\n renderList =

There are currently no documents in the system

\r\n\r\n return (\r\n <>\r\n
\r\n {renderList}\r\n this.setState({addModalVisible:false})}\r\n title={this.state.selectedItem && \"Add \" + this.state.selectedItem.name +\" form\"}\r\n\r\n footer={\r\n <>\r\n \r\n \r\n } \r\n \r\n >\r\n \r\n
\r\n \r\n )\r\n }\r\n\r\n renderProperCard=(item)=>{\r\n {\r\n if(item.periodicity)\r\n return this.props.handleRefresh()}\r\n name = {item.formName}\r\n showAddModal = {()=>this.showAddModal(item)}\r\n >\r\n \r\n else\r\n return this.props.handleRefresh()}\r\n name = {item.formName}\r\n >\r\n \r\n }\r\n }\r\n\r\n showAddModal=(item)=>{\r\n \r\n this.setState({selectedItem:item, addModalVisible:true})\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\nexport default FormList\r\n","import React, { Fragment } from \"react\";\r\nimport { Button, Form } from 'react-bootstrap';\r\nimport {addInstance} from '../../services/dataService';\r\nimport bootoast from '../../bootoast/bootoast';\r\n\r\n\r\nexport default class AddFormModal extends React.Component {\r\n\r\n constructor(props){\r\n super(props);\r\n this.state = {showMenu:false, showAddError:false, selectedForm:null};\r\n \r\n }\r\n\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.availableForms !== this.props.availableForms && this.props.availableForms!= null && this.props.availableForms.length > 0) {\r\n this.setState({selectedForm:this.props.availableForms[0].value})\r\n }\r\n\r\n }\r\n\r\n\r\n render() {\r\n \r\n return (\r\n \r\n { !this.state.showMenu && this.props.availableForms && this.props.availableForms.length > 0 &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n Select a form to add\r\n this.setState({selectedForm:e.target.value})}>\r\n {this.renderOptions()}\r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n \r\n {this.state.showAddError &&\r\n \r\n
\r\n \r\n
\r\n\r\n }\r\n
\r\n
\r\n }\r\n
\r\n\r\n );\r\n }\r\n\r\n renderOptions = ()=>{\r\n if(this.props.availableForms){\r\n return this.props.availableForms.map((item) => {\r\n return () \r\n }) \r\n }\r\n }\r\n\r\n addForm = async() => {\r\n\r\n if(this.state.selectedForm){\r\n\r\n try\r\n {\r\n\r\n await addInstance( this.props.selectedRecipientId, this.state.selectedForm )\r\n this.props.handleRefresh(); \r\n this.setState({showMenu:false}); \r\n }\r\n catch(err){\r\n console.log(\"could not add form\");\r\n bootoast.toast({\r\n position: 'top',\r\n message: `Error saving form, it is possible that someone else added it already hit refresh`,\r\n type: 'danger',\r\n timeout: 7\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","const equals =( x, y ) =>{\r\n // If both x and y are null or undefined and exactly the same\r\n if ( x === y ) {\r\n return true;\r\n }\r\n\r\n // If they are not strictly equal, they both need to be Objects\r\n if ( ! ( x instanceof Object ) || ! ( y instanceof Object ) ) {\r\n return false;\r\n }\r\n\r\n // They must have the exact same prototype chain, the closest we can do is\r\n // test the constructor.\r\n if ( x.constructor !== y.constructor ) {\r\n return false;\r\n }\r\n\r\n for ( var p in x ) {\r\n // Inherited properties were tested using x.constructor === y.constructor\r\n if ( x.hasOwnProperty( p ) ) {\r\n // Allows comparing x[ p ] and y[ p ] when set to undefined\r\n if ( ! y.hasOwnProperty( p ) ) {\r\n return false;\r\n }\r\n\r\n // If they have the same strict value or identity then they are equal\r\n if ( x[ p ] === y[ p ] ) {\r\n continue;\r\n }\r\n\r\n // Numbers, Strings, Functions, Booleans must be strictly equal\r\n if ( typeof( x[ p ] ) !== \"object\" ) {\r\n return false;\r\n }\r\n\r\n // Objects and Arrays must be tested recursively\r\n if ( !equals( x[ p ], y[ p ] ) ) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n for ( p in y ) {\r\n // allows x[ p ] to be set to undefined\r\n if ( y.hasOwnProperty( p ) && ! x.hasOwnProperty( p ) ) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexport default equals;","export const SAVED_INCOMPLETE = 0;\r\nexport const COMPLETED = 1;\r\nexport const CANCELLED = 2;","export const convertToLocalDateTimeString = (dateToConvert) => {\r\n return new Date(dateToConvert+\"Z\").toLocaleString()\r\n}\r\n","//In your react App.js or yourComponent.js file add these lines to import\r\n\r\nimport React from 'react';\r\n\r\nimport * as Survey from \"survey-react\";\r\nimport * as widgets from \"surveyjs-widgets\";\r\nimport showdown from 'showdown';\r\nimport { putFormData } from '../../services/dataService';\r\nimport objectsAreEqual from '../../services/equalityCheckerService';\r\nimport * as SaveResult from './SaveResultConstants';\r\n\r\nimport '../../bootoast/bootoast.css';\r\nimport bootoast from '../../bootoast/bootoast';\r\nimport \"survey-react/survey.css\";\r\nimport \"survey-react/modern.css\";\r\nimport \"./Questionnaire.css\";\r\n\r\nimport {convertToLocalDateTimeString} from '../../services/helpers';\r\n\r\nwidgets.inputmask(Survey);\r\n\r\n\r\nconst AUTO_SAVE_INTERVAL = 1000 * 60 * 90 \r\n\r\nclass QuestionnaireForm extends React.Component {\r\n\r\n constructor() {\r\n super();\r\n this.state = { loading: true };\r\n this.converter = new showdown.Converter();\r\n this.model = new Survey.Model();\r\n \r\n Survey.Serializer.addProperty(\"question\", {\r\n name: \"columnId:number\",\r\n default: 0,\r\n });\r\n\r\n Survey.Serializer.addProperty(\"question\", {\r\n name: \"inputWidth:string\",\r\n default: \"\",\r\n });\r\n\r\n Survey.Serializer.addProperty(\"question\", {\r\n name: \"elementId:number\",\r\n default: 0,\r\n });\r\n\r\n\r\n }\r\n\r\n intervalId = null;\r\n\r\n componentWillUnmount(){\r\n if(this.intervalId)\r\n clearInterval(this.intervalId);\r\n }\r\n\r\n\r\n\r\n performAutoSave=async()=>{\r\n if(!objectsAreEqual(this.originalData,this.model.data)){\r\n this.originalData = JSON.parse(JSON.stringify(this.model.data));\r\n await this.saveData(false,true);\r\n bootoast.toast({\r\n position: 'left-top',\r\n message: `Autosaved information`,\r\n type: 'success',\r\n timeout: 7\r\n });\r\n }\r\n \r\n }\r\n\r\n clearIntervalIfNecessary=()=>{\r\n if(this.intervalId)\r\n clearInterval(this.intervalId);\r\n }\r\n\r\n\r\n\r\n //Define a callback methods on survey complete\r\n onComplete = async (survey, options) => {\r\n\r\n try{\r\n if(!survey.isLastPage)\r\n return options.complete(); //Confusing, but basically it's survey.js saying if the user is NOT hitting the \r\n // complete button(submitted while on last page) return now there are no errors (we don't check server side on page navigation)\r\n \r\n await this.saveData(true);\r\n this.setState({ isComplete: true });\r\n this.props.handleRefresh(SaveResult.COMPLETED); \r\n }\r\n catch(err){\r\n var saveError = err;\r\n if(saveError && saveError.response && saveError.response.data && saveError.response.data.type ===\"FailedValidation\"){\r\n\r\n console.log(saveError.response.data.validationIssues.map(m=>\"
  • \"+ m +\"
  • \"));\r\n var toast = bootoast.toast({\r\n position: 'top',\r\n message: 'Could not save because there were validation issues ' + this.makeErrorList(saveError.response.data.validationIssues),\r\n type: 'danger',\r\n timeout: 10\r\n });\r\n\r\n console.log(toast);\r\n }\r\n else{\r\n bootoast.toast({\r\n position: 'top',\r\n message: `Error saving form, try again, and if you receive this messge please contact Central Support at centralsupport@pcrb.com`,\r\n type: 'danger',\r\n timeout: 7\r\n });\r\n \r\n }\r\n\r\n this.model = new Survey.Model(this.model.data);\r\n console.log(saveError);\r\n }\r\n\r\n\r\n }\r\n\r\n makeErrorList=(errors)=>{\r\n\r\n var items = errors.map(m=>\"
  • \"+ m +\"
  • \");\r\n return `
      ${items.join('')}
    `;\r\n }\r\n\r\n setFormData(formAndResponses) {\r\n if (Object.keys(formAndResponses.responses).length > 0) {\r\n this.originalData = JSON.parse(JSON.stringify(formAndResponses.responses));\r\n this.model.data = formAndResponses.responses;\r\n }\r\n else {\r\n this.originalData = JSON.parse(JSON.stringify(this.model.data));\r\n }\r\n\r\n this.instanceInfo = {\r\n lastStatus: formAndResponses.status,\r\n lastUpdated: formAndResponses.lastUpdated,\r\n lastUpdatedByUserId: formAndResponses.lastUpdatedByUserId\r\n };\r\n }\r\n\r\n render() {\r\n\r\n if(this.props.readOnlyMode)\r\n this.model.mode = \"display\";\r\n \r\n var mainColor = \"#0078d4\";\r\n var mainHoverColor = \"#60C5FB\";\r\n var textColor = \"#4a4a4a\";\r\n var headerColor = \"#4a4a4a\";\r\n var headerBackgroundColor = \"#4a4a4a\";\r\n var bodyContainerBackgroundColor = \"#f8f8f8\";\r\n\r\n var defaultThemeColorsSurvey = Survey.StylesManager.ThemeColors[\"default\"];\r\n defaultThemeColorsSurvey[\"$main-color\"] = mainColor;\r\n defaultThemeColorsSurvey[\"$main-hover-color\"] = mainHoverColor;\r\n defaultThemeColorsSurvey[\"$text-color\"] = textColor;\r\n defaultThemeColorsSurvey[\"$header-color\"] = headerColor;\r\n defaultThemeColorsSurvey[\"$header-background-color\"] = headerBackgroundColor;\r\n defaultThemeColorsSurvey[\r\n \"$body-container-background-color\"\r\n ] = bodyContainerBackgroundColor;\r\n\r\n Survey\r\n .StylesManager\r\n .applyTheme(\"default\");\r\n\r\n return (\r\n
    \r\n { !this.state.loading &&\r\n \r\n } \r\n
    )\r\n }\r\n\r\n\r\n doesItRender = (sender, options) => {\r\n var input = options.htmlElement.querySelector('input');\r\n if (input)\r\n input.setAttribute('autocomplete', 'off');\r\n };\r\n\r\n onPanelAdded = (sender, options) =>{\r\n if(options.question.panelCount > 1)\r\n for (var question of options.question.panels[options.question.panelCount-1].questions){\r\n question.value = \"\";\r\n }\r\n }\r\n onTableRowAdded = (sender, options) =>{ \r\n options.question.setRowValue(options.row.rowIndex-1,{});\r\n \r\n }\r\n\r\n resizeInputBox = (sender, options) => {\r\n if (!options.question.inputWidth) return;\r\n options.htmlElement.style.width = options.question.inputWidth;\r\n };\r\n\r\n doMarkdown = (survey, options) => {\r\n\r\n\r\n var fixedHtml = this.fixHtmlMarkdownIssueWithSpaces(options.text);\r\n\r\n //convert the mardown text to html\r\n var str = this.converter.makeHtml(fixedHtml);\r\n if (str.indexOf(\"

    \") === 0) {\r\n //remove root paragraphs

    \r\n str = str.substring(3);\r\n str = str.substring(0, str.length - 4);\r\n }\r\n //set html\r\n options.html = str;\r\n }\r\n\r\n fixHtmlMarkdownIssueWithSpaces = (html) => {\r\n var beforeAndAfterDecimal = html.split(\".\");\r\n if (beforeAndAfterDecimal.length > 1 && !isNaN(beforeAndAfterDecimal[0]) && beforeAndAfterDecimal[1].substr(0, 1) === \" \") {\r\n beforeAndAfterDecimal[1] = \". \" + beforeAndAfterDecimal[1].substr(1)\r\n return beforeAndAfterDecimal.join(\"\");\r\n }\r\n return html\r\n\r\n }\r\n\r\n\r\n saveData = async (completed, autosave=false) => { \r\n \r\n try {\r\n \r\n var newInstanceInfo = await this.saveDataToOverride(completed); \r\n\r\n this.instanceInfo = {\r\n lastUpdated: newInstanceInfo.data.lastUpdated, \r\n lastUpdatedByUserId:newInstanceInfo.data.lastUpdatedByUserId\r\n };\r\n\r\n if(!autosave)\r\n this.clearIntervalIfNecessary();\r\n\r\n } catch (err) {\r\n\r\n if(err.response && err.response.data && err.response.data.type === \"ConcurrencyIssue\")\r\n {\r\n this.clearIntervalIfNecessary();\r\n alert(this.buildAlertMessage(err.response.data));\r\n this.props.handleRefresh(); \r\n }\r\n \r\n throw(err);\r\n \r\n }\r\n }\r\n\r\n saveDataToOverride= async (completed) =>{\r\n return await putFormData({ instanceId: this.currentInstanceId, completed: completed, responseCollection: this.model.data,\r\n lastUpdatedByUserId: this.instanceInfo.lastUpdatedByUserId, lastUpdated: this.instanceInfo.lastUpdated }); \r\n }\r\n\r\n buildAlertMessage = ({lastUpdatedNyUserName, lastUpdated}) =>{\r\n var formattedDate = \". \";\r\n try {\r\n formattedDate = `on ${convertToLocalDateTimeString(lastUpdated)}. `; \r\n } catch (error) {\r\n //Swallow bad dates \r\n }\r\n return `While you were filling out the form, ${lastUpdatedNyUserName} updated it`+ \r\n `${formattedDate}Hit Ok, and you will be taken back to the form list, and you can open the updated form.`;\r\n \r\n \r\n }\r\n\r\n\r\n}\r\n\r\n \r\n\r\nexport default QuestionnaireForm;","//In your react App.js or yourComponent.js file add these lines to import\r\n\r\nimport React from 'react';\r\nimport QuestionnaireForm from '../Common/QuestionnaireForm';\r\nimport * as Survey from \"survey-react\";\r\nimport { getInstance } from '../../services/dataService';\r\n\r\nconst AUTO_SAVE_INTERVAL = 1000 * 60 * 5 //5 minutes\r\n\r\nclass QuestionnaireFormUILoad extends QuestionnaireForm {\r\n\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n get currentInstanceId() {\r\n return this.props.match.params.formId;\r\n }\r\n\r\n componentDidMount() {\r\n if(this.currentInstanceId)\r\n this.loadPage(this.currentInstanceId);\r\n\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n\r\n const { match: { params: { formId: lastInstanceId } } } = prevProps;\r\n\r\n if (this.currentInstanceId !== lastInstanceId)\r\n this.loadPage(this.currentInstanceId);\r\n }\r\n\r\n\r\n componentWillUnmount(){\r\n if(this.intervalId)\r\n clearInterval(this.intervalId);\r\n }\r\n \r\n\r\n loadPage = async (id) => {\r\n this.clearIntervalIfNecessary();\r\n\r\n this.state = { loading: true };\r\n const formAndResponses = await getInstance(id);\r\n this.state = { loading: false };\r\n this.model = new Survey.Model(formAndResponses.form);\r\n \r\n this.setFormData(formAndResponses);\r\n \r\n this.setState({ loading: false, isComplete: false });\r\n this.intervalId = setInterval(()=>this.performAutoSave(), AUTO_SAVE_INTERVAL);\r\n\r\n };\r\n\r\n\r\n\r\n\r\n}\r\nexport default QuestionnaireFormUILoad;","import React from 'react'\r\nimport * as SaveResult from './SaveResultConstants';\r\nimport bootoast from '../../bootoast/bootoast';\r\n\r\nexport default function SaveAndNavigate({getDataHandler, navigateAway, cancelText, readOnlyMode}) {\r\n\r\n\r\n\r\n const saveData = async () =>{\r\n try{\r\n await getDataHandler.current.saveData(false); \r\n navigateAway(SaveResult.SAVED_INCOMPLETE);\r\n }\r\n \r\n catch(err){\r\n bootoast.toast({\r\n position: 'left-top',\r\n message: `Error saving form, try again, and if you receive this messge please contact Central Support at centralsupport@pcrb.com`,\r\n type: 'danger',\r\n timeout: 7\r\n });\r\n console.log(err);\r\n }\r\n\r\n };\r\n \r\n return (\r\n
    \r\n {!readOnlyMode && \r\n \r\n }\r\n\r\n {cancelText && \r\n \r\n }\r\n
    \r\n )\r\n}\r\n\r\n\r\n","import React, { Component } from 'react';\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport UserHomeNav from './UserHomeNav';\r\nimport FormList from './FormList';\r\nimport AddFormModal from './AddFormModal';\r\nimport QuestionnaireFormUILoad from './QuestionnaireFormUILoad';\r\nimport { getRecipientFormsList, getAllForms, refreshCookie, getLoggedInUserInfo } from '../../services/dataService';\r\nimport SaveAndNavigate from '../Common/SaveAndNavigate';\r\nimport * as SaveResult from '../Common/SaveResultConstants';\r\n\r\nconst SESSION_TIMEOUT_CHECK = 1000 * 10\r\n\r\nexport class UserHomePage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.questionnaireRef = React.createRef();\r\n this.state = { loggedInFlag: false, userInfo: {}, refresh: true, forms: [], recipients: [] };\r\n\r\n }\r\n\r\n\r\n async componentDidMount() {\r\n var userInfo = await getLoggedInUserInfo();\r\n this.setUserInfo(userInfo);\r\n this.startSessionTimer();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.clearSessionTimer();\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n\r\n this.setSelectedRecipient(selectedRecipientId, recipientType)}\r\n >\r\n \r\n\r\n \r\n\r\n (\r\n this.refreshRecipientsFormsList(this.state.selectedRecipientId, this.state.recipientType)}\r\n selectedRecipientId={this.state.selectedRecipientId}\r\n availableForms={this.state.availableForms}>\r\n \r\n )}\r\n />\r\n\r\n\r\n ( this.navigateAway(saveResult)}\r\n cancelText=\"Return to form list\"\r\n />\r\n )}\r\n />\r\n\r\n\r\n \r\n
    \r\n
    \r\n\r\n \r\n\r\n (\r\n this.refreshRecipientsFormsList(this.state.selectedRecipientId, this.state.recipientType)}\r\n forms={this.state.forms} />\r\n )}\r\n />\r\n\r\n (\r\n\r\n this.navigateAway(SaveResult.COMPLETED)}\r\n {...props} />\r\n )}\r\n />\r\n\r\n \r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n\r\n )\r\n }\r\n\r\n\r\n navigateAway = (saveResult) => {\r\n this.clearSessionTimer();\r\n this.refreshRecipientsFormsList(this.state.selectedRecipientId, this.state.recipientType);\r\n this.props.history.push('/home');\r\n }\r\n\r\n refreshRecipientsFormsList = async (selectedRecipientId, recipientType) => {\r\n\r\n const temp = await getAllForms(selectedRecipientId, recipientType);\r\n const availableForms = temp.map(function (item) {\r\n return { value: item.key, label: item.value };\r\n })\r\n\r\n const forms = await getRecipientFormsList(selectedRecipientId, recipientType);\r\n this.setState({ forms, availableForms });\r\n }\r\n\r\n\r\n setUserInfo = async (userInfo) => {\r\n\r\n var recipients = userInfo.recipients;\r\n this.setState({\r\n userInfo: userInfo,\r\n loggedInFlag: true,\r\n selectedRecipientId: (recipients && recipients.length) ? recipients[0].id : null\r\n });\r\n\r\n\r\n if (this.state.selectedRecipientId)\r\n this.refreshRecipientsFormsList(this.state.selectedRecipientId, this.state.recipientType);\r\n\r\n }\r\n\r\n\r\n setSelectedRecipient = (selectedRecipientId, recipientType) => {\r\n console.log(selectedRecipientId);\r\n\r\n if (selectedRecipientId) {\r\n this.setState({ selectedRecipientId: selectedRecipientId, recipientType: recipientType });\r\n this.refreshRecipientsFormsList(selectedRecipientId, recipientType);\r\n }\r\n\r\n\r\n }\r\n\r\n sessionTimerId = null;\r\n startSessionTimer() {\r\n this.sessionTimerId = setInterval(() => this.checkTimeout(), SESSION_TIMEOUT_CHECK);\r\n }\r\n\r\n clearSessionTimer = () => {\r\n if (this.sessionTimerId)\r\n clearInterval(this.sessionTimerId);\r\n }\r\n\r\n expireTime = null;\r\n checkTimeout = async () => {\r\n if (this.expireTime && Date.now() >= new Date(this.expireTime.getTime() - 60000 * 5)) { //Warn 5 minutes before\r\n this.clearSessionTimer();\r\n alert(\"About to expire\");\r\n try {\r\n await refreshCookie();\r\n this.startSessionTimer();\r\n } catch (error) {\r\n alert(\"Could not refresh cookie\");\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n\r\nexport default UserHomePage\r\n","import QuestionnaireForm from '../Common/QuestionnaireForm';\r\nimport * as Survey from \"survey-react\";\r\nimport { putFormDataForCode } from '../../services/dataService';\r\n\r\nclass QuestionnaireFormCodeEntry extends QuestionnaireForm {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.currentInstanceId = 0;\r\n }\r\n\r\n \r\n componentDidUpdate(prevProps) {\r\n\r\n if(this.props.directLoadedForm !== prevProps.directLoadedForm)\r\n this.populateDirectLoadedData();\r\n }\r\n\r\n populateDirectLoadedData = async () => {\r\n this.clearIntervalIfNecessary();\r\n\r\n\r\n this.model = new Survey.Model(this.props.directLoadedForm.formInfo.form);\r\n \r\n this.setFormData(this.props.directLoadedForm.formInfo);\r\n this.currentInstanceId = this.props.directLoadedForm.instanceId;\r\n \r\n this.setState({ loading: false, isComplete: false });\r\n\r\n };\r\n\r\n saveDataToOverride= async (completed) =>{\r\n return await putFormDataForCode({ instanceId: this.currentInstanceId, completed: completed, responseCollection: this.model.data,\r\n lastUpdatedByUserId: this.instanceInfo.lastUpdatedByUserId, lastUpdated: this.instanceInfo.lastUpdated, \r\n key1: this.props.key1, key2: this.props.key2 }); \r\n\r\n }\r\n\r\n}\r\nexport default QuestionnaireFormCodeEntry;","export const ENTER_KEY_MODE = 0;\r\nexport const EDIT_MODE = 1;\r\nexport const DONE_MODE = 2;\r\nexport const READ_ONLY_MODE = 3;\r\nexport const LOAD_MODE = 4;\r\nexport const SHOW_ERROR_MODE = 5;\r\nexport const PORTAL_MODE = 6;\r\n","import React from 'react'\r\nimport QuestionnaireFormCodeEntry from './QuestionnaireFormCodeEntry'\r\nimport BaseMainPageLayout from '../Common/BaseMainPageLayout';\r\nimport * as Constants from '../Common/CommonConstants';\r\n\r\n\r\nexport default class CodeEntryBase extends BaseMainPageLayout {\r\n\r\n constructor(props){\r\n super(props); \r\n this.questionnaireRef = React.createRef();\r\n this.state={formData:{}, formState: Constants.ENTER_KEY_MODE , key1:\"\", key2:\"\", doneMessage:\"\", doneSubMessage:\"\", error: 0};\r\n \r\n }\r\n\r\n cancelText = ()=>this.state.formState===Constants.READ_ONLY_MODE? \"Return to enter code screen\": \"Cancel\";\r\n\r\n renderContentArea = () =>{\r\n if(this.state.formState===Constants.DONE_MODE)\r\n return this.renderDoneMessage();\r\n if (this.state.formState===Constants.ENTER_KEY_MODE)\r\n return this.renderKeyEntryDialog();\r\n\r\n \r\n return this.setCompleteState()} \r\n readOnlyMode = {(this.state.formState===Constants.READ_ONLY_MODE)}\r\n key1={this.state.key1}\r\n key2={this.state.key2}\r\n {...this.props}/>\r\n }\r\n\r\n renderLoginMessage=()=>{\r\n if(this.state.formData && this.state.formData.userName)\r\n return(\r\n
    \r\n Welcome {this.state.formData.userName} !\r\n
    \r\n );\r\n }\r\n \r\n renderDoneMessage=()=>{\r\n \r\n return(\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {this.state.doneMessage} \r\n { this.state.doneSubMessage &&\r\n

    \r\n {this.state.doneSubMessage} \r\n

    \r\n\r\n } \r\n

    \r\n \r\n
    \r\n Close browser tab or click here to visit the PCRB/DCRB home page\r\n
    \r\n
    \r\n \r\n or open the form again\r\n
    \r\n
    \r\n {this.renderKeyEntryControl()}\r\n
    \r\n
    \r\n );\r\n \r\n }\r\n\r\n renderKeyEntryDialog = () => {\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    \r\n Enter Access Code\r\n

    \r\n
    Please enter the Access Code that was provided in the PCRB/DCRB correspondence. \r\n This code will allow you to access the document specifically created for your organization. \r\n
    All code characters are letters (A-Z only)\r\n
    \r\n

    \r\n {this.renderKeyEntryControl()}\r\n
    \r\n
    \r\n );\r\n\r\n }\r\n\r\n renderKeyEntryControl = () =>{\r\n return(\r\n
    \r\n
    \r\n this.setState({key1:evt.target.value})} className=\"form-control code-input-box\" /> \r\n -\r\n this.setState({key2:evt.target.value})} className=\"form-control code-input-box\" />
    \r\n

    \r\n {this.state.error == \"401\" &&\r\n
    \r\n
    The access code that you have entered is either incorrect or expired. Please check code, and try again or contact Central Support at centralsupport@pcrb.com
    \r\n

    \r\n
    \r\n }\r\n {this.renderButton()}\r\n \r\n
    );\r\n }\r\n \r\n navigateAway=(saveResult)=>{\r\n if(this.state.formState === Constants.READ_ONLY_MODE)\r\n this.setState({formState:Constants.DONE_MODE, doneMessage:\"\", doneSubMessage:\"\"})\r\n else if(saveResult)\r\n this.setState({formState:Constants.DONE_MODE, doneMessage:\"Form was not saved\", doneSubMessage:\"\"})\r\n else\r\n this.setState({formState:Constants.DONE_MODE, doneMessage:\"Form Saved Successfully\", doneSubMessage: \"(but not completed)\"})\r\n }\r\n\r\n setCompleteState=()=>{\r\n this.setState({formState:Constants.DONE_MODE, doneMessage:\"Form Completed Successfully\", doneSubMessage: \"\"})\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import React, { Component } from 'react'\r\nimport SaveAndNavigate from './SaveAndNavigate';\r\nimport * as Constants from './CommonConstants';\r\n\r\nexport default class BaseMainPageLayout extends Component {\r\n \r\n\r\n render(){\r\n return (\r\n
    \r\n
    \r\n\r\n
    \r\n
    Welcome to the PCRB/DCRB\r\n
    \r\n Correspondence Manager\r\n
    \r\n
    {this.renderLoginMessage()}
    \r\n
    \r\n { (this.state.formState === Constants.EDIT_MODE || this.state.formState === Constants.READ_ONLY_MODE) && \r\n this.renderSaveAndNavigate()\r\n }\r\n\r\n
    \r\n
    \r\n {this.renderContentArea()}\r\n
    \r\n \r\n
    \r\n ) \r\n }\r\n\r\n renderSaveAndNavigate=()=>{\r\n return(\r\n this.navigateAway(saveResult)} \r\n getDataHandler={this.questionnaireRef}\r\n cancelText={this.cancelText()}/>\r\n )\r\n }\r\n\r\n cancelText=()=>\"\";\r\n}\r\n","import CodeEntryBase from './CodeEntryBase';\r\nimport React from 'react'\r\nimport { getDataByCode } from '../../services/dataService';\r\nimport { Button } from 'react-bootstrap';\r\nimport * as Survey from \"survey-react\";\r\nimport * as SurveyPDF from \"survey-pdf\";\r\nimport showdown from 'showdown';\r\n\r\n\r\n\r\nexport default class CodeEntryPDF extends CodeEntryBase {\r\n\r\n constructor(props) {\r\n super(props);\r\n };\r\n\r\n renderButton = () => {\r\n return ();\r\n }\r\n\r\n renderButtonText = () => {\r\n if (this.state.loading)\r\n return (\r\n \r\n \r\n Building...\r\n );\r\n else\r\n return (Build PDF);\r\n }\r\n\r\n\r\n buildPDF = async () => {\r\n try {\r\n this.setState({ error: 0, loading: true })\r\n var result = await getDataByCode(this.state.key1, this.state.key2);\r\n this.setState({ formData: result.data, loading: false })\r\n this.generatePDF();\r\n\r\n }\r\n catch (e) {\r\n if (e.request && e.request.status)\r\n this.setState({ error: e.request.status, loading: false });\r\n else\r\n this.setState({ error: e.request, loading: false });\r\n console.log(e);\r\n }\r\n }\r\n\r\n\r\n generatePDF = () => {\r\n var options = {\r\n fontSize: 12,\r\n commercial: true,\r\n margins: {\r\n left: 10,\r\n right: 10,\r\n top: 10,\r\n bot: 10\r\n },\r\n format: [230, 297]\r\n }\r\n var surveyPDF = new SurveyPDF.SurveyPDF(this.state.formData.formInfo.form, options);\r\n\r\n surveyPDF.pages[0].getPanels()[0].width = \"650px\";\r\n var temp = surveyPDF.pages[0].getPanels()[0].description+\" Questions suffixed with a * are required, so please provide information.\"\r\n surveyPDF.pages[0].getPanels()[0].description = \"\"+temp+\"\";\r\n if (this.state.formData.formInfo.formWCIOStateCode === \"37\") {\r\n surveyPDF.logoWidth = 150;\r\n surveyPDF.logoHeight = 100;\r\n surveyPDF.logoFit = \"cover\";\r\n surveyPDF.logo = \"data:image/png;base64,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\";\r\n }\r\n\r\n\r\n var questions = surveyPDF.getAllQuestions();\r\n for (var i = 0; i < questions.length; i++) {\r\n var obj = questions[i];\r\n if (obj.getType() == 'html') {\r\n\r\n var newQuestion = Survey.Serializer.createClass('checkbox');\r\n newQuestion.name = obj.name;\r\n newQuestion.title = obj.html;\r\n newQuestion.title = newQuestion.title.replace(\"\", \"\");\r\n newQuestion.title = newQuestion.title.replace(\"\", \"\");\r\n\r\n newQuestion.hideNumber = true;\r\n newQuestion.width = \"700px\";\r\n var panel = obj.parent;\r\n var index = panel.elements.indexOf(obj);\r\n panel.removeElement(obj);\r\n panel.addElement(newQuestion, index);\r\n }\r\n else if (obj.getType() == 'expression') {\r\n panel.removeElement(obj);\r\n }\r\n\r\n }\r\n\r\n var converter = new showdown.Converter();\r\n\r\n surveyPDF\r\n .onTextMarkdown\r\n .add(function (survey, options) {\r\n //convert the markdown text to html\r\n\r\n options.text = options.text.replace(\"’\", \"'\");\r\n var regex = /^(\\d+)\\./;\r\n options.text = options.text.replace(regex, '$1./')\r\n\r\n var str = converter.makeHtml(options.text);\r\n //remove root paragraphs

    \r\n str = str.substring(3);\r\n str = str.substring(0, str.length - 4);\r\n //set html\r\n options.html = str;\r\n });\r\n\r\n\r\n surveyPDF\r\n .onRenderQuestion\r\n .add(function (survey, options) {\r\n console.log(options.question.getType());\r\n if (options.question.getType() == \"text\") {\r\n var plainBricks = options\r\n .bricks[0]\r\n .unfold();\r\n var lastBrick = plainBricks[plainBricks.length - 1];\r\n var point = SurveyPDF\r\n .SurveyHelper\r\n .createPoint(lastBrick);\r\n options.bricks[0].bricks[1].xRight = Math.min(options.bricks[0].bricks[1].xLeft + options.question.size * 16, options.bricks[0].bricks[1].xRight);\r\n options.bricks[0].bricks[1].yBot = options.bricks[0].bricks[1].yTop + 30\r\n\r\n }\r\n return;\r\n\r\n });\r\n\r\n\r\n\r\n surveyPDF.data = this.state.formData.formInfo.responses;\r\n surveyPDF.save('surveyResult.pdf');\r\n }\r\n}\r\n","import React, { Token, useEffect, useState } from 'react'\r\n\r\nimport { AsyncTypeahead } from 'react-bootstrap-typeahead';\r\nimport { getUsers } from '../../services/dataService';\r\n\r\n\r\n const DevRecipientSelection = ({handleUserSelected, returnUrl}) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [lookupType, setLookupType] = useState(\"User\");\r\n\r\n const handleSearch = async (query) => {\r\n setIsLoading(true);\r\n\r\n const items = await getUsers(query, lookupType);\r\n\r\n const options = items.map((i) => ({\r\n label: i.label,\r\n userName: i.userName,\r\n }));\r\n\r\n setOptions(options);\r\n setIsLoading(false);\r\n };\r\n \r\n const handleChange = (value) => {\r\n setIsLoading(false);\r\n handleUserSelected(value, returnUrl); \r\n };\r\n\r\n let focusControl = null;\r\n useEffect(()=>{\r\n focusControl.focus();\r\n })\r\n\r\n const buildPlaceholderText = ()=>{\r\n switch (lookupType) {\r\n case \"Carrier\":\r\n return \"Search by carrier name\"\r\n case \"Employer\":\r\n return \"Search by employer name\"\r\n case \"User\":\r\n return \"Search for a users email address\"\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n\r\n { focusControl = ctl; }}\r\n isLoading={isLoading}\r\n labelKey={(option) => `${option.label}`}\r\n minLength={3}\r\n onSearch={handleSearch}\r\n onChange={(value)=>handleChange(value[0])}\r\n useCache={false}\r\n options={options}\r\n placeholder = {buildPlaceholderText()}\r\n renderToken ={ (option, index) => (\r\n \r\n )}\r\n\r\n />\r\n
    \r\n );\r\n};\r\n\r\nexport default DevRecipientSelection;","import React from 'react';\r\nimport {login} from '../../services/dataService';\r\nimport DevRecipientSelection from './DevRecipientSelection'\r\n\r\n\r\nconst Login =({location}) => {\r\n \r\n const urlParamFind = location.search.split(\"ReturnUrl=\");\r\n const returnUrl = urlParamFind.length ===2 ? urlParamFind[1]: \"\";\r\n\r\n return (\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n

    \r\n Correspondence System Developer Login Shim\r\n

    \r\n \r\n Please choose login to emulate:\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n ) \r\n}\r\n\r\nconst handleLoggedIn = async (userInfo, returnUrl)=>{\r\n if(userInfo && userInfo.userName){\r\n await login(userInfo.userName); \r\n window.location=returnUrl; \r\n } \r\n}\r\n\r\nexport default Login\r\n","import React from 'react'\r\n\r\nexport default function SurveyTitle({title}) {\r\n return (\r\n

    \r\n )\r\n}\r\n","import $ from 'jquery';\r\n\r\nexport function cleanHtml(data){\r\n var html= $.parseHTML(data);\r\n return $(html).text();\r\n};\r\n\r\nexport function cleanTitle(title){ \r\n return cleanHtml(title.substr(-1)===\":\"? title.substr(0,title.length-1) : title);\r\n};","import React from 'react'\r\nimport { BarChart, Bar, XAxis, YAxis, LabelList, ResponsiveContainer, Legend } from 'recharts';\r\nimport {cleanTitle, cleanHtml} from './AqUtilities';\r\n\r\nexport default function AqBoolean({ question, data }) {\r\n\r\n data.title = cleanHtml(question.title);\r\n data.total = data.true + data.false;\r\n const colors = [\"#FF5A64\", \"#7AC36A\"]\r\n const shapedData = question.itemizedChoices.map((m,index)=>{\r\n return {title:m.text, value:data[m.value], fill: colors[index] }});\r\n\r\n console.log(shapedData);\r\n\r\n return (\r\n
    \r\n\r\n
    {cleanTitle(question.title)}
    \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
    Total = {data.total}
    \r\n\r\n
    \r\n )\r\n}","import React, {useState} from 'react'\r\nimport { cleanHtml} from './AqUtilities';\r\n\r\nexport default function AqComment({question,data}) {\r\n\r\n const [showText, setShowText] = useState(false);\r\n\r\n return (\r\n
    \r\n
    \r\n
    {cleanHtml(question.title)}
    \r\n \r\n
    \r\n \r\n {data &&
      \r\n {\r\n Object.keys(data).map((m, i) =>
    • {m}
    • )\r\n }\r\n
    \r\n }\r\n
    \r\n )\r\n}\r\n","import React from 'react'\r\nimport { BarChart, Bar, XAxis, YAxis, LabelList, ResponsiveContainer } from 'recharts';\r\nimport {cleanTitle} from './AqUtilities';\r\n\r\nexport default function AqChoice({ question, data }) {\r\n\r\n const colors = [\"#5A9BD4\", \"#FAA75B\", \"#9E67AB\", \"#CE7058\", \"#D77FB4\",\"#F15A60\",\"#7AC36A\",\"#ACC906\",\"#C64C1B\",\"#82CA9D\"]\r\n\r\n let nonZeroCount = 0;\r\n const shapedData = question.choices.map((item)=>{ \r\n const value = data[item.value]||0\r\n const fill = colors[nonZeroCount];\r\n nonZeroCount += (value?1:0)\r\n return {fill,value, title:item.text} \r\n });\r\n \r\n const total = shapedData.reduce((accumulator, row) => accumulator + row.value, 0);\r\n\r\n return (\r\n \r\n
    \r\n
    {cleanTitle(question.title)}
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    Total = {total}
    \r\n
    \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Bar, LabelList} from 'recharts';\r\nexport default function BarBuilder({choices,prefix,total,colors}) {\r\n\r\n\r\n const bars = choices.map((item, index) => {\r\n const bars = [];\r\n const itemValue = prefix ? `${prefix}.${item.value}`: item.value;\r\n bars.push(\r\n \r\n \r\n );\r\n return bars;\r\n });\r\n\r\n return (bars);\r\n}\r\n\r\n","import React from 'react'\r\nimport { BarChart, Bar, XAxis, YAxis, LabelList, ResponsiveContainer, Legend } from 'recharts';\r\nimport BarBuilder from '../BarBuilder';\r\nimport {cleanHtml} from './AqUtilities';\r\n\r\nexport default function AqMatrix({question, data }) {\r\n \r\n const colors = [\"#7AC36A\",\"#89C1C1\",\"#737373\",\"#D4BB02\",\"#F15A60\"]\r\n\r\n var shapedData = question.rows.map(m=>{\r\n return {label:cleanHtml(m.text), values:data[m.value], total: Object.values(data[m.value]).reduce((accum, value) => accum + value, 0)};\r\n });\r\n\r\n const legendPayload=question.columns.map((m,index)=>{\r\n return {value:m.text, type:\"rect\", color:colors[index]};\r\n });\r\n \r\n legendPayload.push({value:`Total = ${shapedData[0].total}`, type:\"circle\", color:\"#000000\"});\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {BarBuilder({choices:question.columns,prefix:\"values\", colors})}\r\n\r\n \r\n \r\n
    \r\n ) \r\n }\r\n\r\n\r\n\r\n","import React from 'react'\r\nimport AqBoolean from './QuestionTypes/AqBoolean';\r\nimport AqComment from './QuestionTypes/AqComment';\r\nimport AqChoice from './QuestionTypes/AqChoice';\r\nimport AqMatrix from './QuestionTypes/AqMatrix';\r\nimport AqChoiceWithLegend from './QuestionTypes/AqChoiceWithLegend';\r\nimport SurveyTitle from './SurveyTitle';\r\n\r\n\r\n\r\n\r\n\r\nexport default function AnalyticsQuestion({question,data:{singleResult, nestedResult}}) {\r\n\r\n const BooleanType = \"boolean\";\r\n const CommentType = \"comment\";\r\n const DropDownType = \"dropdown\";\r\n const MatrixType = \"matrix\";\r\n const RadioGroupType = \"radiogroup\";\r\n\r\n\r\n\r\n switch (question.type) {\r\n case(BooleanType):\r\n return \r\n case(CommentType):\r\n return \r\n case(DropDownType):\r\n return \r\n case(MatrixType):\r\n return \r\n case(RadioGroupType):\r\n return \r\n default:\r\n return null;\r\n }\r\n\r\n}\r\n","import React from 'react'\r\nimport SurveyTitle from './SurveyTitle';\r\nimport AnalyticsQuestion from './AnalyticsQuestion';\r\n\r\nexport default function AnalyticsPage({page,data}) {\r\n return (\r\n
    \r\n \r\n
    \r\n {page.elements.map(element=>)}\r\n
    \r\n
    \r\n )\r\n}\r\n","import React from 'react'\r\nimport AnalyticsPage from './AnalyticsPage';\r\n\r\nexport default function AnalyticsPagesContainer({form, data}) {\r\n if(form.pages)\r\n return (\r\n
    \r\n {\r\n form.pages.map((page)=>)\r\n } \r\n
    \r\n )\r\n return null;\r\n}\r\n","import React, {useEffect, useState} from 'react'\r\nimport {getAnalyticsData} from '../../services/dataService';\r\nimport SurveyTitle from './SurveyTitle';\r\nimport AnalyticsPagesContainer from './AnalyticsPagesContainer';\r\n\r\n\r\n\r\nexport default function SurveyAnalyticsRoot(props) {\r\n\r\n const [surveyInfo, setSurveyInfo] = useState({ questionnaireInfo: null });\r\n\r\n\r\n const getKey = () => {\r\n if (props.encryptedParam && props.encryptedParam.indexOf(\"?k=\") === 0)\r\n return encodeURIComponent(props.encryptedParam.substring(3));\r\n return null;\r\n }\r\n \r\n useEffect(() => {\r\n const fetchData = async () => {\r\n const result = await getAnalyticsData(getKey());\r\n \r\n setSurveyInfo(result.data);\r\n };\r\n \r\n fetchData();\r\n }, []);\r\n\r\n\r\n if(surveyInfo.form){\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n ) \r\n }\r\n return \"\";\r\n}\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport SurveyAnalyticsRoot from './SurveyAnalyticsRoot';\r\n\r\nexport default class SurveyAnalyticsPage extends Component {\r\n\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    Welcome to the PCRB/DCRB\r\n
    \r\n Correspondence Manager\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n )\r\n }\r\n\r\n\r\n}\r\n","import React from 'react'\r\n\r\nexport default function MainLayoutPage(props) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    Welcome to the PCRB/DCRB\r\n
    \r\n Correspondence Manager\r\n
    \r\n
    \r\n {props.navControls}\r\n
    \r\n
    \r\n {props.contentArea}\r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","import React from 'react';\r\nimport SaveAndNavigate from '../Common/SaveAndNavigate';\r\nimport * as Constants from '../Common/CommonConstants';\r\n\r\n\r\nexport const NavControls = ({ questionnaireRef, formState, updateFormState, readOnlyText, cancelText, userName }) => {\r\n\r\n\r\n var retVal = null;\r\n\r\n if (userName) {\r\n retVal =
    \r\n Welcome {userName} !\r\n
    \r\n }\r\n\r\n if (formState === Constants.ENTER_KEY_MODE || formState === Constants.DONE_MODE || formState === Constants.SHOW_ERROR_MODE || \r\n formState === Constants.PORTAL_MODE)\r\n return retVal;\r\n\r\n return (\r\n <>\r\n {retVal}\r\n updateFormState(saveResult)}\r\n getDataHandler={questionnaireRef.questionnaireRef}\r\n cancelText={formState === Constants.READ_ONLY_MODE ? readOnlyText : cancelText} />\r\n \r\n )\r\n}","import React from 'react'\r\n\r\n\r\nexport const RenderDoneDialog= (doneMessage,renderCloseMessage,childControls)=>{\r\n \r\n return(\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {doneMessage.message} \r\n { doneMessage.subMessage &&\r\n

    \r\n { doneMessage.subMessage } \r\n

    \r\n } \r\n

    \r\n {renderCloseMessage && \r\n
    \r\n Close browser tab or click here to visit the PCRB/DCRB home page\r\n
    \r\n } \r\n
    \r\n {childControls}\r\n
    \r\n
    \r\n ); \r\n\r\n}\r\n\r\n","import React, { createContext, useState } from \"react\";\r\nimport * as Constants from '../Common/CommonConstants';\r\nimport { getDataByCode,getFormListByCode } from '../../services/dataService';\r\n\r\nconst QuestionnaireCodeContext = createContext([{}, () => { }]);\r\n\r\nconst QuestionnaireCodeProvider = (props) => {\r\n const [formState, setFormState] = useState(Constants.ENTER_KEY_MODE);\r\n const [doneMessage, setDoneMessage] = useState({ message: \"\", subMessage: \"\" });\r\n const [key1, setKey1] = useState(\"\");\r\n const [key2, setKey2] = useState(\"\");\r\n const [error, setError] = useState(0);\r\n const [loading, setLoading] = useState(false);\r\n const [formData, setFormData] = useState(null);\r\n const [formList, setFormList] = useState([]);\r\n\r\n\r\n const setCompleteState = (props) => {\r\n setFormState(Constants.DONE_MODE);\r\n setDoneMessage({ message: \"Form Completed Successfully\", subMessage: \"\" });\r\n }\r\n\r\n const updateFormState = (formWasSaved) => {\r\n if (formState === Constants.READ_ONLY_MODE) {\r\n setFormState(Constants.DONE_MODE);\r\n setDoneMessage({ message: \"\", doneSubMessage: \"\" })\r\n }\r\n else if (formWasSaved) {\r\n setFormState(Constants.DONE_MODE);\r\n setDoneMessage({ message: \"Form was not saved\", doneSubMessage: \"\" })\r\n }\r\n else {\r\n setFormState(Constants.DONE_MODE);\r\n setDoneMessage({ message: \"Form Saved Successfully\", doneSubMessage: \"(but not completed)\" })\r\n }\r\n }\r\n\r\n\r\n const openForm = async () => {\r\n\r\n setError(0);\r\n setLoading(true);\r\n\r\n try {\r\n var result = await getDataByCode(key1, key2);\r\n if (result.data.formInfo.status === \"COMPLETE\")\r\n setFormState(Constants.READ_ONLY_MODE);\r\n else\r\n setFormState(Constants.EDIT_MODE);\r\n\r\n setFormData(result.data);\r\n }\r\n\r\n catch (e) {\r\n var errorObj = e; \r\n setError(errorObj.request.status);\r\n\r\n }\r\n finally {\r\n setLoading(false);\r\n }\r\n\r\n }\r\n\r\n const openPortal = async () => {\r\n setError(0);\r\n setLoading(true);\r\n\r\n try {\r\n var result = await getFormListByCode(key1, key2);\r\n setFormState(Constants.PORTAL_MODE);\r\n\r\n setFormList(result.data);\r\n }\r\n\r\n catch (e) {\r\n setError(e.request.status);\r\n\r\n }\r\n finally {\r\n setLoading(false);\r\n }\r\n \r\n }\r\n\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n\r\nexport { QuestionnaireCodeContext, QuestionnaireCodeProvider };","import React,{useContext} from 'react'\r\nimport {QuestionnaireCodeProvider,QuestionnaireCodeContext} from './QuestionnaireCodeContext';\r\n\r\nimport { Button } from 'react-bootstrap';\r\n\r\n\r\nexport function KeyEntryDialog(props) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    \r\n Enter Access Code\r\n

    \r\n
    Please enter the Access Code that was provided in the PCRB/DCRB correspondence. \r\n This code will allow you to access the document specifically created for your organization. \r\n
    All code characters are letters (A-Z only)\r\n
    \r\n

    \r\n \r\n
    \r\n
    \r\n )}\r\n\r\n \r\n\r\nconst renderButton= ({afterCodeConfirmationAction,buttonText}) =>{\r\n const {key1,key2, openForm,setLoading} = useContext(QuestionnaireCodeContext);\r\n return (\r\n );\r\n}\r\n\r\nconst renderButtonText=(buttonText)=>{\r\n \r\n const {loading} = useContext(QuestionnaireCodeContext);\r\n if(loading)\r\n return (\r\n \r\n \r\n Loading...\r\n );\r\n else\r\n return({buttonText}); \r\n}\r\n\r\nexport function KeyEntryControl (props) {\r\n const {key1,setKey1,key2,setKey2,error} = useContext(QuestionnaireCodeContext);\r\n return(\r\n
    \r\n
    \r\n setKey1(evt.target.value)} className=\"form-control code-input-box\" /> \r\n -\r\n setKey2(evt.target.value)} className=\"form-control code-input-box\" />
    \r\n

    \r\n {error == \"401\" &&\r\n
    \r\n
    The access code that you have entered is either incorrect or expired. Please check code, and try again or contact Central Support at centralsupport@pcrb.com
    \r\n

    \r\n
    \r\n }\r\n {renderButton(props)}\r\n \r\n
    );\r\n}\r\n","import React, {useContext,useState,useRef} from 'react';\r\nimport MainLayoutPage from '../Common/MainLayoutPage';\r\nimport {NavControls} from '../Common/NavControls';\r\nimport * as Constants from '../Common/CommonConstants';\r\nimport {RenderDoneDialog} from '../Common/RenderDoneDialog';\r\nimport QuestionnaireFormCodeEntry from './QuestionnaireFormCodeEntry';\r\nimport {QuestionnaireCodeProvider,QuestionnaireCodeContext} from './QuestionnaireCodeContext';\r\nimport {KeyEntryDialog, KeyEntryControl} from './KeyEntryDialog';\r\n\r\n\r\n\r\nexport default function CompCode(props) {\r\n\r\n \r\n const questionnaireRef= useRef(null);\r\n\r\n return (\r\n
    \r\n \r\n \r\n } \r\n contentArea=\r\n {\r\n \r\n }>\r\n\r\n \r\n \r\n
    \r\n )\r\n \r\n}\r\n\r\nconst BuildNavControls = (questionnaireRef) => {\r\n \r\n const {formState,updateFormState} = useContext(QuestionnaireCodeContext);\r\n \r\n return \r\n}\r\n\r\n\r\nconst ContentArea = ({questionnaireRef,...props}) => {\r\n\r\n const {formState,key1,key2,formData,setCompleteState, doneMessage, openForm} = useContext(QuestionnaireCodeContext);\r\n\r\n if (formState === Constants.DONE_MODE)\r\n return ReEnterKeyMode(openForm,doneMessage,props);\r\n else if (formState === Constants.ENTER_KEY_MODE)\r\n return \r\n\r\n return setCompleteState()}\r\n readOnlyMode={(formState === Constants.READ_ONLY_MODE)}\r\n key1={key1}\r\n key2={key2} \r\n {...props} />\r\n \r\n}\r\n\r\nconst ReEnterKeyMode=(openForm, doneMessage,props)=>{\r\n\r\n var addOptionText = \r\n
    \r\n or open the form again\r\n
    \r\n
    \r\n return \r\n
    \r\n\r\n return RenderDoneDialog(doneMessage,true,addOptionText)\r\n}\r\n\r\n\r\n\r\n\r\n","import QuestionnaireForm from '../Common/QuestionnaireForm';\r\nimport * as Survey from \"survey-react\";\r\n\r\n//const AUTO_SAVE_INTERVAL = 1000 * 60 * 5 //5 minutes\r\nclass QuestionnaireFormDirectLoad extends QuestionnaireForm {\r\n\r\n constructor( {match:{params:{jumpToPage}}}, ...props) {\r\n super(props);\r\n this.currentInstanceId = 0;\r\n this.jumpToPage = jumpToPage;\r\n }\r\n \r\n componentDidUpdate(prevProps) {\r\n if(this.props.directLoadedForm !== prevProps.directLoadedForm)\r\n this.populateDirectLoadedData();\r\n }\r\n\r\n populateDirectLoadedData = async () => {\r\n this.clearIntervalIfNecessary();\r\n this.setupFormState();\r\n //this.intervalId = setInterval(()=>this.performAutoSave(), AUTO_SAVE_INTERVAL);\r\n };\r\n\r\n setupFormState = () => {\r\n\r\n this.model = new Survey.Model(this.props.directLoadedForm.formInfo.form);\r\n\r\n if(this.jumpToPage > 1 && this.model.pageCount > 1 ){\r\n var newPage = this.model.pages[this.jumpToPage-1];\r\n this.model.currentPage = newPage;\r\n }\r\n \r\n\r\n if(this.props.completeButtonText)\r\n this.model.completeText = this.props.completeButtonText;\r\n \r\n this.setFormData(this.props.directLoadedForm.formInfo);\r\n this.currentInstanceId = this.props.directLoadedForm.instanceId;\r\n \r\n this.setState({ loading: false, isComplete: false });\r\n }\r\n}\r\nexport default QuestionnaireFormDirectLoad;","import React, { createContext, useState, useEffect } from \"react\";\r\nimport * as Constants from '../Common/CommonConstants';\r\nimport * as SaveResult from '../Common/SaveResultConstants';\r\n\r\n\r\nconst QuestionnaireDirectContext = createContext([{}, () => { }]);\r\n\r\nconst QuestionnaireDirectProvider = (props) => {\r\n const [formState, setFormState] = useState(Constants.ENTER_KEY_MODE);\r\n const [doneMessage, setDoneMessage] = useState({ message: \"\", subMessage: \"\" });\r\n const [loading, setLoading] = useState(false);\r\n const [formData, setFormData] = useState(null);\r\n\r\n const setInitialState = (result) => {\r\n if (result.data.formInfo.status === \"COMPLETE\")\r\n setFormState(Constants.READ_ONLY_MODE);\r\n else\r\n setFormState(Constants.EDIT_MODE);\r\n setFormData(result.data);\r\n }\r\n\r\n const setCompleteState = (props) => {\r\n setFormState(Constants.DONE_MODE);\r\n setDoneMessage({ message: \"Form Completed Successfully\", subMessage: \"\" });\r\n }\r\n\r\n const getData = async (callback, props) => {\r\n if(!props.location || !props.location.search)\r\n enterErrorMode(\"Could not find key in url\");\r\n\r\n if (callback) {\r\n setLoading(true);\r\n try {\r\n const key = getKey(props.location.search);\r\n if(key){\r\n const result = await callback(key);\r\n setInitialState(result); \r\n }\r\n else\r\n enterErrorMode(\"Could not find key in url\");\r\n }\r\n catch{\r\n enterErrorMode(\"Error retrieving form due to system issue please contact support\");\r\n }\r\n finally {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n }\r\n\r\n const enterErrorMode=(message)=>{\r\n setDoneMessage({ message, doneSubMessage: \"\" })\r\n setFormState(Constants.SHOW_ERROR_MODE);\r\n }\r\n\r\n const updateFormState = (saveResult) => {\r\n setFormState(Constants.DONE_MODE);\r\n switch (saveResult) {\r\n case SaveResult.CANCELLED:\r\n setDoneMessage({ message: \"Form Cancelled\", doneSubMessage: \"\" })\r\n break;\r\n case SaveResult.SAVED_INCOMPLETE:\r\n setDoneMessage({ message: \"Form Saved Successfully\", subMessage: \"\" })\r\n break;\r\n case SaveResult.COMPLETED:\r\n setDoneMessage({ message: \"Form Completed Successfully\", subMessage: \"\" })\r\n break;\r\n default:\r\n setDoneMessage({ message: \"\", subMessage: \"\" })\r\n break;\r\n };\r\n };\r\n\r\n const getKey = (param) => {\r\n if (param.indexOf(\"?k=\") === 0)\r\n return encodeURIComponent(param.substring(3));\r\n return null;\r\n };\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n\r\nexport { QuestionnaireDirectContext, QuestionnaireDirectProvider };","import React,{useRef, useContext, useEffect} from 'react'\r\nimport QuestionnaireFormDirectLoad from '../Direct/QuestionnaireFormDirectLoad'\r\nimport {QuestionnaireDirectProvider,QuestionnaireDirectContext} from './QuestionnaireDirectContext';\r\nimport * as Constants from '../Common/CommonConstants';\r\nimport MainLayoutPage from '../Common/MainLayoutPage';\r\nimport {NavControls} from '../Common/NavControls';\r\nimport {RenderDoneDialog} from '../Common/RenderDoneDialog';\r\nimport {getExternalDirect} from '../../services/dataService';\r\n\r\n\r\nexport default function CompExternalDirect(props) { \r\n\r\n const questionnaireRef= useRef(null);\r\n\r\n return (\r\n
    \r\n \r\n \r\n } \r\n contentArea=\r\n {\r\n \r\n }>\r\n\r\n \r\n \r\n
    \r\n ) \r\n}\r\n\r\nconst ContentArea = ({questionnaireRef,...props}) => {\r\n\r\n const {formState,formData, doneMessage, setCompleteState,getData} = useContext(QuestionnaireDirectContext);\r\n\r\n useEffect(() => { \r\n getData( getExternalDirect, props);\r\n }, []);\r\n\r\n if (formState === Constants.DONE_MODE || formState === Constants.SHOW_ERROR_MODE)\r\n return RenderDoneDialog(doneMessage,true);\r\n \r\n return setCompleteState()} \r\n {...props}/>\r\n \r\n}\r\n\r\nconst BuildNavControls = (questionnaireRef) => {\r\n \r\n const {formState,updateFormState,formData} = useContext(QuestionnaireDirectContext); \r\n const userName = formData?formData.userName:\"\";\r\n\r\n return \r\n}\r\n\r\n\r\n\r\n","import React, { useRef, useContext, useEffect } from 'react'\r\nimport QuestionnaireFormDirectLoad from '../Direct/QuestionnaireFormDirectLoad'\r\nimport { QuestionnaireDirectProvider, QuestionnaireDirectContext } from './QuestionnaireDirectContext';\r\nimport * as Constants from '../Common/CommonConstants';\r\nimport {RenderDoneDialog} from '../Common/RenderDoneDialog';\r\nimport { getInternalDirect } from '../../services/dataService';\r\nimport bootoast from '../../bootoast/bootoast';\r\n\r\n\r\nexport default function CompInternalDirect(props) {\r\n\r\n const questionnaireRef = useRef(null);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nconst ContentArea = ({ questionnaireRef, ...props }) => {\r\n\r\n const { formState, formData, doneMessage, setCompleteState, getData } = useContext(QuestionnaireDirectContext);\r\n\r\n useEffect(() => { \r\n getData(getInternalDirect, props);\r\n }, []);\r\n\r\n if (formState === Constants.DONE_MODE || formState === Constants.SHOW_ERROR_MODE)\r\n return RenderDoneDialog(doneMessage);\r\n\r\n return renderSuccessMessage()}\r\n {...props} />\r\n\r\n}\r\n\r\nconst renderSuccessMessage = () => {\r\n bootoast.toast({\r\n position: 'top',\r\n message: `Updated and marked as completed sucessfully!`,\r\n type: 'success',\r\n timeout: 4\r\n });\r\n}\r\n\r\n\r\n\r\n","import React, {useContext,useState,useRef} from 'react';\r\nimport MainLayoutPage from '../Common/MainLayoutPage';\r\nimport {NavControls} from '../Common/NavControls';\r\nimport * as Constants from '../Common/CommonConstants';\r\nimport {RenderDoneDialog} from '../Common/RenderDoneDialog';\r\nimport QuestionnaireFormCodeEntry from './QuestionnaireFormCodeEntry';\r\nimport {KeyEntryDialog, KeyEntryControl} from './KeyEntryDialog';\r\nimport {QuestionnaireCodeProvider,QuestionnaireCodeContext} from './QuestionnaireCodeContext';\r\nimport {FormList} from '../Home/FormList';\r\n\r\n\r\n\r\nexport default function CompCode(props) {\r\n\r\n \r\n const questionnaireRef= useRef(null);\r\n\r\n return (\r\n
    \r\n \r\n \r\n } \r\n contentArea=\r\n {\r\n \r\n }>\r\n\r\n \r\n \r\n
    \r\n )\r\n \r\n}\r\n\r\nconst BuildNavControls = (questionnaireRef) => {\r\n \r\n const {formState,updateFormState} = useContext(QuestionnaireCodeContext);\r\n \r\n return \r\n}\r\n\r\n\r\nconst ContentArea = ({questionnaireRef,...props}) => {\r\n\r\n const {formState,key1,key2,formData,setCompleteState, doneMessage,openPortal,formList} = useContext(QuestionnaireCodeContext);\r\n\r\n if (formState === Constants.DONE_MODE)\r\n return ReEnterKeyMode(openPortal,doneMessage,props);\r\n else if (formState === Constants.ENTER_KEY_MODE)\r\n return \r\n else if (formState === Constants.PORTAL_MODE)\r\n return \r\n \r\n\r\n return setCompleteState()}\r\n readOnlyMode={(formState === Constants.READ_ONLY_MODE)}\r\n key1={key1}\r\n key2={key2}\r\n {...props} />\r\n \r\n}\r\n\r\nconst ReEnterKeyMode=(openPortal,doneMessage,props)=>{\r\n\r\n var addOptionText = \r\n
    \r\n or open the form again\r\n
    \r\n
    \r\n return \r\n
    \r\n\r\n return RenderDoneDialog(doneMessage,true,addOptionText)\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\nimport \"bootstrap/dist/css/bootstrap.css\";\r\nimport UserHomePage from './components/Home/UserHomePage';\r\n\r\nimport CodeEntryPDF from './components/Code/CodeEntryPDF';\r\nimport Login from './components/DevelopmentLogin/Login';\r\nimport SurveyAnalyticsPage from './components/Analytics/SurveyAnalytics';\r\nimport CompCode from './components/Code/CompCode';\r\nimport CompExternalDirect from './components/Direct/CompExternalDirect';\r\nimport CompInternalDirect from './components/Direct/CompInternalDirect';\r\nimport CodePortal from './components/Code/CodePortal';\r\n\r\n\r\n\r\n\r\nexport default class App extends Component {\r\n displayName = App.name\r\n\r\n render() { \r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\n\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\n\r\nimport './components/Common/Common.css'\r\nimport './components/Common/CorrespondenceManager.css'\r\nimport './components/Home/FormCard.css'\r\nimport './components/Code/CodeEntry.css';\r\nimport './bootoast/bootoast.css';\r\nimport './components/Analytics/Analytics.css';\r\n\r\nimport './components/DevelopmentLogin/DevOnly.css';\r\n\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\n//registerServiceWorker();\r\n"],"sourceRoot":""}