{"version":3,"sources":["pages/HomePage/images/alternate1.jpg","pages/HomePage/images/alternate2.png","pages/HomePage/images/clouds.jpg","pages/HomePage/components/MainContent/images/logo.png","components/LogoContainer/LogoContainer.jsx","components/MenuButton/MenuButton.jsx","util/settings/environmentOptions.js","util/settings/settings.js","components/MenuContainer/MenuContainer.jsx","routes/OpenIdLogin/services/AuthService.jsx","util/api/users.jsx","util/ApiObjectClasses/User.jsx","util/ErrorHandler.js","util/api/apiConfig.jsx","util/ApiObjectClasses/UserAPIContainer.jsx","util/api/_development.jsx","components/header/header.jsx","util/api/webText.jsx","components/SearchBarr/SearchBar.jsx","pages/HomePage/components/MainContent/MainContent.jsx","components/DblUnderTitle/DblUnderTitle.jsx","pages/HomePage/components/About/about.jsx","pages/HomePage/components/Photo_with_text/Photo_with_text.jsx","pages/HomePage/components/Photo_right_with_text/Photo_with_text.jsx","pages/HomePage/components/Quote/quote.jsx","pages/HomePage/components/Contact/contact.jsx","components/footer/footer.jsx","pages/HomePage/HomePage.jsx","util/api/searchPage.jsx","util/api/s3.jsx","util/api/rules.jsx","pages/SearchPage/components/HistoryModal.jsx","pages/SearchPage/components/HtmlModal.jsx","pages/SearchPage/components/AgencySearchResults/Rule.jsx","pages/SearchPage/components/AgencySearchResults/Program.jsx","pages/SearchPage/components/AgencySearchResults/Agency.jsx","pages/SearchPage/components/AgencySearchResults/AgencySearchResults.jsx","pages/SearchPage/components/SearchPane/SearchPane.jsx","pages/SearchPage/SearchPage.jsx","util/api/directLink.jsx","pages/SearchPage/DirectLinkPage.jsx","routes/PublicPortal.jsx","pages/AdminPage/components/Icon/Icon.jsx","pages/AdminPage/components/ButtonNavigation/ButtonNavigation.jsx","pages/AdminPage/components/NavLogout/NavLogout.jsx","pages/AdminPage/components/AgencyList/AgencyList.jsx","pages/AdminPage/components/Help/Help.jsx","pages/AdminPage/components/UserProfile/UserProfile.jsx","pages/AdminPage/components/Logout/Logout.jsx","pages/AdminPage/components/TimeClock/TimeClock.jsx","pages/AdminPage/components/Navigation/Navigation.jsx","pages/AdminPage/components/TabNavigation/TabNavigation.jsx","pages/JumpPage.jsx","pages/AdminPage/components/TableSection/TableButton.jsx","pages/AdminPage/components/Filter/FilterOptions.jsx","pages/AdminPage/components/Filter/FilterSubOptions.jsx","pages/AdminPage/components/Filter/Filter.jsx","components/WebTextFileLinks.jsx","pages/AdminPage/components/LinkSection/LinkSection.jsx","util/api/history.jsx","util/api/agency.jsx","components/InputFields/CheckBoxInput.jsx","util/api/program.jsx","util/api/liaison.jsx","components/InputFields/NewRuleInputs.jsx","components/InputFields/DropDown.jsx","components/InputFields/EmailUrl.jsx","components/InputFields/DefaultInput.jsx","components/InputFields/NumberInput.jsx","components/InputFields/PublicCommentPeriod.jsx","components/InputFields/BlockDisplay.jsx","components/InputFields/Upload.jsx","components/InputFields/PhoneInput.jsx","components/InputFields/Calendar.jsx","components/InputFields/Tags.jsx","components/InputFields/NumberLetter.jsx","components/InputFields/DatesContainer.jsx","components/InputFields/Date1.jsx","components/InputFields/Date2.jsx","components/InputMapper/InputMapper.jsx","components/FormModal/FormModal.jsx","components/PacketFormModal/ChapterTableSection/TableIcon.jsx","components/PacketFormModal/ChapterTableSection/TableUpload.jsx","components/PacketFormModal/ChapterTableSection/TableInput.jsx","components/PacketFormModal/ChapterTableSection/TableButton.jsx","components/PacketFormModal/ChapterTableSection/TableSection.jsx","util/api/chapter.jsx","components/PacketFormModal/ChapterTableSection/SectionClass.jsx","components/PacketFormModal/PacketModal.jsx","components/PacketFormModal/SingleRulePacketModal.jsx","pages/AdminPage/components/TableSection/ColumnBuilders/TableBuilder.jsx","pages/AdminPage/components/TableSection/Cells/BadgeInput.jsx","pages/AdminPage/components/TableSection/Cells/BadgeDisplay.jsx","pages/AdminPage/components/TableSection/Cells/EmailBodyInput.jsx","pages/AdminPage/components/TableSection/Cells/CMSValueInput.jsx","pages/AdminPage/components/TableSection/Cells/EditableCell.jsx","pages/AdminPage/components/TableSection/Cells/EditableCellContainer.jsx","pages/AdminPage/components/TableSection/components/DateFilter.jsx","util/api/rulePacket.jsx","pages/AdminPage/components/TableSection/Modals/ConfirmationModal.jsx","pages/AdminPage/components/TableSection/Modals/ChangeAgencyModal.jsx","pages/AdminPage/components/TableSection/Modals/InputModal.jsx","pages/AdminPage/components/TableSection/Modals/Components/BadgeInputPermissions.jsx","util/InputValidator.js","pages/AdminPage/components/TableSection/Modals/PermissionsModal.jsx","pages/AdminPage/components/TableSection/Modals/DateInputModal.jsx","pages/AdminPage/components/TableSection/Modals/CleanTextUploadModal.jsx","pages/AdminPage/components/TableSection/Modals/Components/HistoryDownloadButton.jsx","pages/AdminPage/components/TableSection/Modals/Components/HistoryComment.jsx","pages/AdminPage/components/TableSection/Modals/HistoryModal.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/CheckBoxInput.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/DropDown.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/NewRuleInputs.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/EmailUrl.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/DefaultInput.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/NumberInput.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/PublicCommentPeriod.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/BlockDisplay.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/Upload.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/PhoneInput.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/Calendar.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/Tags.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/NumberLetter.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/Date1.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/Date2.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/DatesContainer.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditFields/RuleTypeInput.jsx","pages/AdminPage/components/TableSection/Modals/Components/EditMapper.jsx","pages/AdminPage/components/TableSection/Modals/SingleRulePacketModalEdit.jsx","pages/AdminPage/components/TableSection/Modals/Components/UploadMultiples.jsx","pages/AdminPage/components/TableSection/Modals/Components/HtmlInput.jsx","pages/AdminPage/components/TableSection/Modals/Components/TextAreaInput.jsx","pages/AdminPage/components/TableSection/Modals/ChangeWebTextModal.jsx","util/api/emailTemplate.jsx","pages/AdminPage/components/TableSection/Modals/EmailTemplateModal.jsx","components/FormModal/FormModalEdit.jsx","pages/AdminPage/components/TableSection/Icons/Icon.jsx","pages/AdminPage/components/TableSection/Icons/EditableIcon.jsx","pages/AdminPage/components/TableSection/Icons/IconContainer.jsx","pages/AdminPage/components/TableSection/Icons/StatusIcon.jsx","pages/AdminPage/components/TableSection/Icons/StatusIconContainer.jsx","pages/AdminPage/components/TableSection/ColumnBuilders/EmergencyColumnBuilder.jsx","pages/AdminPage/components/TableSection/ColumnBuilders/MiscellaneousColumnBuilder.jsx","pages/AdminPage/components/TableSection/ColumnBuilders/IntegratedBusinessColumnBuilder.jsx","pages/AdminPage/components/TableSection/ColumnBuilders/DigestColumnBuilder.jsx","pages/AdminPage/components/TableSection/ColumnBuilders/RegisterColumnBuilder.jsx","pages/AdminPage/components/TableSection/ColumnBuilders/RulePacketColumnBuilder.jsx","pages/AdminPage/components/TableSection/TableSection.jsx","pages/AdminPage/components/WorkFlowBin/WorkFlowBin.jsx","pages/AdminPage/components/RouteTabGenerator.jsx","pages/AdminPage/pages/AdminHome/AdminHome.jsx","pages/AdminPage/pages/AdminAgency/AdminAgency.jsx","pages/AdminPage/pages/AdminPackets/Tabs.jsx","pages/AdminPage/pages/AdminPackets/DevTabs.jsx","pages/AdminPage/pages/AdminPackets/AdminPackets.jsx","pages/AdminPage/pages/AdminHelp/AdminHelp.jsx","pages/AdminPage/pages/AdminCurrentRules/AdminCurrentRules.jsx","pages/AdminPage/pages/AdminCMS/AdminCMS.jsx","util/api/reports.jsx","pages/AdminPage/pages/AdminReports/AdminReports.jsx","util/api/appReport.jsx","pages/AdminPage/pages/AdminOptions/Options.jsx","util/api/appSetting.jsx","pages/AdminPage/pages/AdminOptions/AdminOptions.jsx","pages/AdminPage/TabOptions.jsx","pages/AdminPage/DevelopmentButtons.jsx","pages/AdminPage/AdminPage.jsx","routes/Login.jsx","routes/OpenIdLogin/services/ApiService.jsx","routes/OpenIdLogin/components/Buttons.jsx","pages/NoMatch.jsx","routes/OpenIdLogin/OpenIdLogin.jsx","routes/PrivateRoute.jsx","routes/AdminPortal.jsx","routes/SignIn.jsx","routes/SilentRenewal.jsx","pages/NotAutorized.jsx","App.jsx","registerServiceWorker.jsx","index.js"],"names":["module","exports","LogoContainer","props","state","firstName","lastName","id","smooth","to","src","alt","Component","withRouter","MenuButton","govDeliveryPopUp","window","open","hash","location","setTimeout","this","title","onClick","_target","className","faClassName","clickFunction","local","link","closeSubMenu","href","environment","settings","openIdSettings","stsAuthority","clientId","client","clientRoot","origin","clientScope","post_logout_redirect_uri","apiRoot","MenuContainer","subMenu","bottomMenuList","topMenuList","handleChange","name","value","setState","e","document","querySelector","style","height","openSubMenu","onclick","map","item","i","key","AuthService","getUser","a","userManager","user","login","redirect_uri","signinRedirect","renewToken","signinSilent","User","logout","signoutRedirect","silentLogout","signoutRedirectCallback","authority","client_id","silent_redirect_uri","response_type","scope","UserManager","Log","logger","console","level","INFO","getAllUsers","axios","get","verifyUser","post","addUser","userPermitedPrograms","userId","addUserPermission","programId","appUserId","removeUserPermission","nextUserStatus","userActionId","deleteUser","userProfile","setUserType","userType","setUserAgency","agencyId","agencyName","UsersAPI","then","results","data","email","descr","agency","logUser","given_name","family_name","username","userName","ErrorHandler","errorStatus","errorMessage","errorButtonText","errorButtonFunction","showOnPage","errorModal","$","html","authService","axiosConfig","buildConfiguration","setupToken","setupInterceptors","profile","isValid","defaults","bearer","id_token","undefined","headers","common","baseURL","interceptors","response","use","successInterceptor","errorStatusHandler","session_expiration","moment","Date","expires_at","add","isAfter","error","config","status","message","originalRequest","replace","log","UserAPIContainer","apiCalls","validate","callback","callbackParameters","push","call","originalCall","Object","assign","devCalls","isProduction","setUser","usertype","runNightlyJob","getPacketsExpiring","getPacketsExpired","getPacketsWithEndedPublicCommentPeriod","getPacketsWithEnded7DayCommentPeriod","getLapsedPackets","subtractFromCommentEnd","packetId","number","subtractFromEffectiveEnd","Header","slideUp","containerNode","attr","animate","removeAttr","getAllWebText","updateWebText","webTextId","webText","addImage","file","getImage","webTextName","getImageNoCache","getImageUrl","getHomePageWebText","getWebTextByName","getUserSpecificWebTextByName","getSourceDocuments","SearchBar","executeSearch","history","searchText","searchTextChange","placeholder","onChange","onKeyUp","which","getElementById","top","Main","isNight","d","utc","valueOf","getTimezoneOffset","nd","getTime","getHours","backgroundImage","WebTextAPI","mainSearch","ruleTypes","rule","About","backgroundColor","minHeight","dangerouslySetInnerHTML","__html","text","Quote","data-animation","citation","footer","pictures","rightsReserved","questionsStatement","Home","componentDidMount","WebTextApi","getWebText","forEach","paragraphHeight","aboutText","aboutTitle","alternate1Title","alternate1Text","alternate2Title","alternate2Text","contactText","contactTitle","fadeToggle","main_title","article_1_text","article_1_heading","article_2_text","article_2_heading","photo","Alt1photo","article_3_text","article_3_heading","Alt2photo","QuoteBackground","home_page_quote_text","home_page_quote_citation","contact_text","contact_heading","footer_left","footer_right","ruleTypeStringList","ruleId","fileconfig","s3Calls","uploadFile","fileData","uploadCMSFile","deleteCMSFile","fileName","uploadFileAndConvert","getFile","downloadName","responseType","match","contentType","blob","Blob","type","download","alert","getCMSFile","getRuleText","fileNameIn","publicGetFile","publicGetHtmlText","ruleCalls","getCurrentRules","getAdditionalInformationByRuleId","getCorrections","ConfirmationModal","componentDidUpdate","RuleAPI","loaderOverride","css","checkHistory","Modal","dialogClassName","show","confirmModal","onHide","confirmModalToggle","Body","Panel","bsStyle","Heading","programName","length","entry","class","ruleName","effectiveDate","effectiveEndDate","format","info","S3API","pdfDownload","pdfDownloadName","aria-hidden","htmlDownload","htmlDownloadName","sizeUnit","size","color","loading","isAuthenticated","Button","getsearchTextFromRoute","baseRoute","path","fullRoute","pathname","split","routeData","splice","rawHTML","createRange","createContextualFragment","context","getElementsByClassName","Mark","mark","element","closeButton","ruleType","CommentDate","publicEndDate","referenceNumber","ruleFilingType","highlight","ruleText","asyncForEach","asyncUtil","Chapters","getHtmlText","historyModalToggle","historyModal","htmlModalModalToggle","displayHtml","displayRule","htmlModal","res","SearchAPI","emergencyRules","proposedRules","emergencyRulesData","proposedRulesData","emergencyRuleList","proposedRulesList","urlRegex","RegExp","emailRegex","directToCommentResource","publicCommentLink","includes","mailto_link","getColorForRuleType","loaded","linkToRule","Link","encodeURI","target","OverlayTrigger","placement","overlay","Tooltip","HistoryModal","HtmlModal","Program","showRules","openHeight","program","rules","containerIncrease","loadRules","changeContainerHeight","transitionDurationSeconds","Array","isArray","Agency","openAgency","heightChange","parseFloat","showResults","dataIndex","programs","loadProgram","render","j","agenciesLoaded","nextProps","AgencySearchResults","renderPrograms","querySelectorAll","resultsDisplay","agencyLoad","SearchPane","filter","getFilterFromRoute","filterList","convertStringToList","checkboxLabels","label","listcheck","trim","arraysEqual","convertListToString","list","join","la","lb","b","string","returnCuurentRules","newSearch","onTagAdded","tag","onTagRemoved","filterFromURL","clearFields","iClick","onSelectAgency","eventKey","onSelectProgram","onDateChange","date","openAdvancedSearch","event","panelBody","atRestTimeOut","Checkbox","validationState","display","checked","SearchPage","getCompleteData","apiPromise","publicAPI","responseData","index","array","programList","programsArray","agencyList","startDate","searchResults","setAgency","setProgram","loadData","ruleNumber","filingId","DirectLinkPage","getRuleNumberFromRoute","getRuleTypeFromRoute","getIdFromRoute","catch","commentDate","commentDateEnd","rulePacketId","isValidResponse","action","apiHtmlPromise","htmlResponse","isOldDocument","search","substring","copyTextClick","toastr","success","positionClass","timeOut","navigator","clipboard","writeText","cameFromExternal","PublicPortal","close","showModal","Route","component","exact","Search","Icon","ButtonNavigation","activeToggle","clickedButton","button","menuButtonTitles","toLowerCase","returnRoute","NavLogout","Help","Dropdown","Toggle","Menu","MenuItem","disabled","divider","ligthBlueStyle","stroke","fill","fontSize","greenStyle","orangeStyle","redStyle","UserTimeout","tickMethod","self","timeLeft","clearInterval","secondTick","progressStyle","expires_in","percentage","sessionLength","formatTime","seconds","min","Math","floor","sec","round","adjustedExpiration","setInterval","styles","Navigation","adminState","logOut","timeClock","TabNavigation","handleSelect","handleInputChange","routeName","tabs","Tabs","activeKey","tabKey","onSelect","tab","Tab","JumpPage","Redirect","from","TableButton","iconClass","FilterOptions","ListGroup","ListGroupItem","Filter","exitSubOptions","headerIconClass","subOptionsDisplay","selectSubOptions","FilterSubOptions","WebTextFileLinks","fileList","downloadFile","getExtension","filename","pop","completeGuid","guid","validationObjects","uploading","sourceDocument","ControlLabel","rowguidid","componentWillMount","description","title2","html2","id2","agencyCalls","getAllAgencies","updateAgency","getAgencyList","getAgencyById","getPublicAgencyList","createAgency","CheckBoxInput","inputField","displayName","InputGroup","parentThis","parentState","handelInput","zIndex","required","liaisonId","liaison","Liaison","sortedRules","sort","as","bs","a1","b1","L","rx","rd","isFinite","String","test","charAt","natSort","num","NewRuleInputs","inputType","updateCitations","ruleVersionId","dataIn","liaisonSelected","ruleSelected","programSelected","agencySelected","handelFile","Tags","additionalInformation","BlockDisplay","NumberLetter","agencies","liaisons","inputFields","FormGroup","DropDown","handleClose","shouldComponentRender","shouldDisable","changeRuleAction","createNewRule","newRuleInputFields","renderTypeButtons","preventDefault","ruleAction","AgencyName","Title","Footer","margin","secondHeading","FormControl","componentClass","eventkey","disable","toUpperCase","option","options","ajaxPopulations","EmailUrl","urlPattern","emailPattern","impossiblePattern","changeHandler","pattern","bsClass","DefaultInput","validationMessage","row","incomingValue","parseInt","AgencyInList","setCustomValidity","AgencyId","AgencySelected","inProgramList","hidden_Programs","reportValidity","formType","additionalInfo","defaultValue","max","Upload","tempGUID","fadeIn","fadeOut","fd","FormData","append","files","rejectedFiles","handleChanges","hidden","accept","inputProps","onDrop","bind","onFileDialogCancel","onCancel","Alert","onDismiss","handleDismiss","PhoneInput","Calendar","calculateDaysLeft","momentObject","today","daysUntil","diff","keydown","click","readOnly","timeFormat","closeOnSelect","TagsInput","tags","addKeys","onAdded","onRemoved","items","Pagination","Item","active","bsSize","onBlur","listItems","parentElement","classList","remove","focus","valid","validPortion","DatesContainer","date1","date2","selected","dateObject","isSame","addDays","isBefore","Input","getLists","agencyUpdated","agencyFlag","AgencyAPI","ProgramId","updateAgencyId","programsLength","noProgramCall","ProgramAPI","updateProgramId","handleStateChange","noLiasionCall","RulesAPI","programNum","updateruleVersionId","LiaisonAPI","LiaisonId","updateLiaisonId","firstHeading","visibility","PacketModal","stateValue","editModal","editValueName","hidden_Agency_Id","typeName","getInput","input","aria-labelledby","visible","hideModal","onSubmit","isDefaultPrevented","novalidate","InputMapper","role","aria-label","TableIcon","iconTypes","proposed","fontAwesomeClass","colorClass","tooltipText","final","pending","edit","pdf","reject","approve","withdraw","view","delete","expire","create_proposed_rule_packet","non_substantive_changes","create_proposed_rule_packet_button","buttonFuntionName","expire_button","iconList","checkIcons","iconTypeFS","iconType","regEx","buttonFunctions","data-placement","htmlFor","cursor","Label","contains","TableInput","inputTypes","inputcheck","displayComp","section_Number","sectionNumber","onClickChange","hidden_ruleId","pervasive","onClickPervasive","onClickAction","rowSelected","getAttribute","pervasiveButton","sectionNameCell","cellValue","innerHTML","addChapter","newInput","createElement","onkeyup","onSectionNameChange","originalValue","setAttribute","appendChild","radioButtons","uploadLabel","unClick","removeChapter","section_Name","radioButton","parent","addChapterAttribute","removeChapterAttribute","onClickDocument","inputCheck","displayProp","ChapterSection","nonSubstantiveChanges","createProposedRulePacket","modalVisible","columns","headerButtons","defaultPageSize","minRows","showPaginationBottom","chaptersCalls","getCurrentRulesChapters","Section","chapterNum","chapterName","pervasiveYn","tempGuid","filingDate","Section_Number","Section_Name","Action","Pervasive","Document","hidden_filing_date","hidden_status","hidden_titleId","hidden_rulePacketId","FormModal","addNewRow","concat","lastItem","Moment","loadTableData","dataModel","getData","ownerId","Rule","publicCommentResource","ruleSections","ruleVersion","chapters","chapterObject","chapterRemoved","chapter","ChaptersAPI","chaptersData","columnStruct","prop","tStr","substr","propertyName","width","iconMaxWidth","accessor","dataEntry","Cell","Badge","ProgramName","LiaisonName","setupMountState","innerInputField","modalOpen","modalClose","RuleVersionId","tableButtonClicked","reload","TableBuilder","tableType","MiscellaneousColumnBuilderInstance","MiscellaneousColumnBuilder","EmergencyColumnBuilderInstance","EmergencyColumnBuilder","IntegratedBusinessColumnBuilderInstance","IntegratedBusinessColumnBuilder","DigestColumnBuilderInstance","DigestColumnBuilder","RegisterColumnBuilderInstance","RegisterColumnBuilder","RulePacketColumnBuilderInstance","RulePacketColumnBuilder","BadgeInput","addNewBadge","validInputs","newList","slice","validationAlert","newValue","values","uniqueTags","BadgeDisplay","EmailBodyInput","handleRichTextChange","modules","toolbar","matchVisual","getAllCells","removeProperty","editorTag","editorbox","cellTag","tagToTheRight","nextElementSibling","tagTwoToTheRight","flex","htmlString","inFocus","autoFocus","theme","formats","controlId","rows","cols","onFocus","inputInFocus","CMSValueInput","InputValidator","validation","inputIdentifier","EditableCell","handleInput","validator","stateValidation","modalConfirmTitle","editRowId","original","column","editRow","EditableCellContainer","inputValue","handelToInput","fromDate","handelFromInput","toDate","toggleModal","modal","dateFilter","filterImplemented","unset","Addon","rulePacketCalls","getCurrentPackets","getRulePacket","getStandardPackets","getActiveStandardPackets","getUserWorkQueue","submitStandardPacket","formData","submitNonsubstantivePacket","submitEmergencyPacket","submitMISCPacket","updateStandardPacket","publishForComment","actionId","extendPublicComment","extendDays","getEmergencyPackets","getMISCPackets","getStandardPacketsShort","getEmergencyPacketsShort","getMISCPacketsShort","nextStatusAction","rejectPacket","historyComment","reviewPublished5Year","extensionPublished5Year","adminExtension5Year","setEffectiveDate","newCleanText","pendingCleanText","confirmButtonFunction","confirmButtonText","denyButtonText","InputModal","validationObjectsLocal","errorList","validationObject","inputModalValue","transitionName","transitionEnterTimeout","transitionLeaveTimeout","BadgeInputPermissions","setUpTags","getNames","uniqueName","each","authorizedProgram","innerText","on","clickProgram","authorized","UserAPI","err","PermissionsModal","loadPermittedPrograms","getPrograms","getAllPrograms","programDropDownSelect","programChange","Username","renderTrackHorizontal","DateInputModal","addInLedgend","monthChange","customLegend","datePickerDropDown","div","dayClassList","dayComponents","br","newDaySquare","cloneNode","handleDate","duringPublicCommentPeriod","duringCommentReviewPeriod","commentEndDate","commentReviewEnd","toISOString","subtractDays","upperLimit","minDate","maxDate","onMonthChange","dayClassName","extension","HistoryDownloadButton","startDownload","endDownload","downloadingFile","HistoryComment","downloadRuleText","comment","changeValueTo","folder","Status","downloadFileName","downloadLocation","downloadingHtmlFile","changeValueFrom","createdDate","downloadHistoricalFile","s3Name","sourceDoc","documentType","packetType","fileInfo","fileHistory","dataDocx","primaryInputField","RuleTypeInput","EditMapper","EditModal","RulePacketAPI","HistoryApi","isPartOfFiveYear","workFlow","isNameEditable","resolveRulePacketAPIData","setupInputFieldsForEdit","getLiaisons","newInputFields","publicCommentPeriod","ibr","ruleVersionSourceDocument","unshift","editableAfterCreation","actionType","typeId","FileDisplayName","JSON","stringify","deleteFile","guidFileName","sourceDocumentId","editorToggle","fileUpload","UploadMultiples","Category","image","Name","_original","componentWillReceiveProps","handleImageSync","handleTextSync","typeMapper","multiple","Thumbnail","filePreview","TextAreaInput","URL","createObjectURL","getAllEmailTemplate","getOneEmailTemplate","emailTemplateId","updateEmailTemplate","emailTemplate","EmailTemplateModal","Subject","To","Bcc","Id","GovDelivery","EmailTemplateAPI","resoponse","dataRecieved","getAgency","getProgram","getLiaison","phone","Num","first_Name","middle_Name","last_Name","hidden_Program_Id","Phone","Email","AgencyNameId","agencyInfo","updateTitle","titleInfo","TitleAPI","updateLiaison","liaisonInfo","middleName","updateEntity","entity","blockRow","agencyRecieved","public_Comment_Period","isAvalible","actionName","hasConfirmModal","modalConfirmType","confirmModalLoad","loadConfirmModalData","getHistoryData","HistoryAPI","noHistoryObject","historyData","nextStatus","reviewPublished","extensionPublished","adminExtension","changeEffectiveDate","ruleApprove","rejectMessage","prefix","result","executePublicCommentExtension","fileEffectiveDate","cleanRulesText","pendingCleanRulesText","changeWebText","editPacket","viewPacket","submitActiveRecordChange","approvePetition","denyPetition","promoteAgencyUser","promoteGovUser","promoteGOMBUser","demoteAdminUser","inactivateUser","activateInactiveUser","addOneDayToCommentEnd","DevelopmentAPI","add10DaysToCommentEnd","addOneDayToExpiration","addOneYearToExpiration","addThirtyYearToExpiration","actionClickHandler","isConfirmModal","customClickFuntion","parameters","inputModal","isButton","modalConfirmMessage","modalConfirmButtonText","FormModalEdit","newItem","SingleRulePacketModalEdit","CleanTextUploadModal","ChangeWebTextModal","customFunction","EditableIcon","changeEmailTemplate","editingCurrentRow","IconContainer","packetModalToggle","packetModalVisible","actions","editable","extensionAllowed","tabTitle","workflow","statusIcon","StatusIcon","maxWidth","displayValue","reloadRow","filterable","filterMethod","matchSorter","keys","filterAll","sortMethod","aDate","bDate","isBetween","DateFilter","startOf","StatusIconContainer","status_Icon","updateActiveRecordVariables","TableSection","scrollToSelected","selectedRow","rowFocus","scrollIntoView","behavior","block","scrollToSelectedInstant","newStateData","pendingIndex","_viewIndex","getModifiedData","rowsInError","rej","entries","selector","updatingCall","changedElements","objectToSend","allRows","editableCell","halfSecondPassed","updateRecord","normalIcon","filterToggle","fourDigitFormat","downloadCSV","currentRecords","reactTable","getResolvedState","sortedData","data_to_download","record_to_download","colIndex","displayKey","dataToDownload","csvLink","ColumnBuilder","editRowData","editableRow","empty","dataFetched","newRowData","Promise","resolve","newRow","tableData","iconTitleClass","TableTitle","ref","r","getTrProps","rowInfo","background","workQueue","resolveData","packetModal","SingleRulePacketModal","WorkFlowBin","load","icon","dataFunction","tabOptions","displayComponent","AdminHome","currentRules","openFilter","userCanView","binData","activeProposedPacketsBin","activeEmergencyPacketsBin","activeFinalPacketsBin","AdminAgency","newAgency","agencyObj","recordStatusId","createdByAuid","lastModifiedDate","lastModifiedByAuid","statusId","exemptYn","newProgram","programObj","RecordStatusId","newUser","fixedData","property1","camelize","userObj","userTypeId","addr1","addressLine1","addr2","addressLine2","addr3","addressLine3","city","postalCode","titleId","newLiaison","LiaisonObj","modalInputFields","modalOnSubmit","str","tabOptionsHere","newStandard","newEmergency","newMISC","AdminPackets","createWarningDiv","alertSection","alertDiv","prepend","newPacketDataCheck","DevTabs","AdminHelp","AdminCMS","reportsCalls","getRuleFilings","getNoed","AdminReports","getAllAppReport","createAppReport","appReport","ReportsAPI","Options","appSettingsCalls","getAllAppSetting","createAppSetting","appSetting","AdminOptions","getTableData","appSettings","AppSettingAPI","TabOption","buttonTitle","TabOptions","AdminPageThis","getTabOptions","systemAdminOptions","readOnlyAdminOptions","agencyUserOptions","DevelopmentButtons","renderButtons","devAPI","production","AdminPage","tabOption","setupTabVariables","sudoState","setTabOnLoad","pathName","tabName","menuOption","buttonIndex","indexOf","stateVariable","displayFilter","closeFilter","primaryRoute","menuButtonTitle","menuItemIndex","menuButtonRoute","tabRoute","ProductionEnv","getUrl","populateButtonList","Login","authenticate","redirectToReferrer","authCheck","authCheckDone","ApiService","callApi","access_token","_callApi","renewedUser","Error","token","Accept","Authorization","Buttons","NoMatch","PrivateRoute","rest","fullAgencyList","modalMessage","modalChoice","openAgencySelection","selectAgencyModal","setAutoLogOut","localStorage","setItem","accessPetitioned","modalToggle","newMessage","petitionAccess","attemptSilentAuth","expireModal","Switch","ButtonGroup","SignIn","signinRedirectCallback","replaceState","SilentRenewal","signinSilentCallback","NotAuthorized","smoothscroll","polyfill","prototype","days","newsubtractiondate","setDate","getDate","newadditiondate","App","AdminPortal","isLocalhost","Boolean","hostname","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","ReactDOM","process","addEventListener","fetch","ready","unregister","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.a80af7f1.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/alternate1.7e5a2de2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/alternate2.4556fc87.png\";","module.exports = __webpack_public_path__ + \"static/media/clouds.4b7eb891.jpg\";","module.exports = __webpack_public_path__ + \"static/media/logo.4cad2034.png\";","import React, { Component } from \"react\";\r\nimport \"./LogoContainer.css\";\r\nimport {HashLink} from 'react-router-hash-link';\r\nimport {withRouter} from 'react-router-dom';\r\nconst logo = \"/images/vertical_header.png\";\r\nclass LogoContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n firstName: \"\",\r\n lastName: \"\"\r\n };\r\n }\r\n // Setting the component's initial state\r\n componentDidMount() {\r\n }\r\n\r\n\r\n render() {\r\n // Notice how each input has a `value`, `name`, and `onChange` prop\r\n return (\r\n
\r\n \r\n \"logo\"\r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(LogoContainer);","import React, { Component } from \"react\";\r\nimport \"./MenuButton.css\";\r\nimport 'font-awesome/css/font-awesome.min.css';\r\nimport { HashLink } from 'react-router-hash-link';\r\n\r\nclass MenuButton extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n // Setting the component's initial state\r\n state = {\r\n firstName: \"\",\r\n lastName: \"\"\r\n };\r\n componentDidMount() {\r\n var hash = window.location.hash;\r\n window.location.hash = \"\";\r\n setTimeout(() => window.location.hash = hash, 100)\r\n }\r\n\r\n govDeliveryPopUp = () => {\r\n window.open(\"https://stage-public.govdelivery.com/accounts/UTOARSTAGE/subscriber/new?pop=t'\",\" '_blank'\", \"'noopener=1,noreferrer=1,scrollbars=1,toolbar=0,menubar=0,resizable=1,width=800,height=384'\");\r\n return false; \r\n }\r\n\r\n render() {\r\n if (this.props.title == \"SUBSCRIBE\") {\r\n return (\r\n \r\n
\r\n \r\n

{this.props.title}

\r\n
\r\n
);\r\n }\r\n if (this.props.clickFunction !== false) {\r\n return (\r\n
\r\n
\r\n \r\n

{this.props.title}

\r\n
\r\n
);\r\n }\r\n else if (this.props.local) {\r\n return (\r\n \r\n
\r\n \r\n

{this.props.title}

\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n \r\n

{this.props.title}

\r\n
\r\n
\r\n );\r\n }\r\n\r\n }\r\n}\r\n\r\nexport default MenuButton;","\r\nexport const environment = {\r\n production:\"production\",\r\n qa:\"qa\",\r\n development:\"development\",\r\n local:\"local\"\r\n}","\r\nimport {environment} from \"./environmentOptions\"\r\nexport const settings = {\r\n developmentEnvironment: environment.production,\r\n govDeliverySubscriptionUrl: () => {\r\n\r\n let encodedUser = localStorage.getItem(\"govdelivery-user\");\r\n if(encodedUser == null){\r\n encodedUser = \"new\";\r\n }\r\n return `https://stage-public.govdelivery.com/accounts/UTOARSTAGE/subscriber/${encodedUser}`;\r\n }\r\n}\r\n\r\n export const openIdSettings = {\r\n stsAuthority : \"https://login.dts.utah.gov/sso/oauth2/\",\r\n clientId : 'frisesomorum-laputa',\r\n client: 'Erules',\r\n clientRoot : `${window.location.origin}/`,\r\n clientScope : 'openid profile email api',\r\n// https://rules.utah.gov/eRules-help-timeout\r\n post_logout_redirect_uri: `${window.location.origin}`,\r\n apiRoot : \"https://login.dts.utah.gov/sso/oauth2/\"\r\n }\r\n\r\n","import React, { Component } from \"react\";\r\nimport \"./MenuContainer.css\";\r\nimport MenuButton from \"../MenuButton\";\r\nimport { settings } from './../../util/settings/settings';\r\nclass MenuContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { subMenu: [] };\r\n // This binding is necessary to make `this` work in the callback\r\n }\r\n // Setting the component's initial state\r\n state = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n };\r\n subMenu = [\r\n { title: \"Administrative Code\", faClassName: \"fa fa-book\", link: \"/public/search\", local: true }\r\n , { title: \"Proposed Rules Open for Comment\", faClassName: \"fa fa-comment\", link: \"/public/search/proposed\", local: true }\r\n , { title: \"Rules on Rules\", faClassName: \"fa fa-clipboard\", link: \"/public/search/proposed\", local: true }\r\n , { title: \"Forms\", faClassName: \"fa fa-file\", link: \"https://rules.utah.gov/agency-resources/\", local: false }\r\n , { title: \"Agency Listing\", faClassName: \"fa fa-users\", link: \"https://rules.utah.gov/agency-listing/\", local: false }\r\n , { title: \"Rulemaking Process\", faClassName: \"fa fa-map\", link: \"https://rules.utah.gov/agencyresources/rulemakingprocess-overview.pdf\", local: false }\r\n , { title: \"Administrative Procedure Act\", faClassName: \"fa fa-university\", link: \"https://le.utah.gov/xcode/Title63G/Chapter4/63G-4.html?v=C63G-4_1800010118000101\", local: false }\r\n , { title: \"Research\", faClassName: \"fa fa-archive\", link: \"https://rules.utah.gov/researching/\", local: false }\r\n ];\r\n bottomMenuList = [\r\n { title: \"HOME\", faClassName: \"fa fa-home\", link: \"/public/home/#home\", local: true }\r\n , { title: \"CODE\", faClassName: \"fa fa-book\", link: \"/public/search//Current%20Rules\", local: true }\r\n , { title: \"BULLETIN\", faClassName: \"fa fa-book\", link: \"https://rules.utah.gov/publications/utah-state-bull/\", local: false }\r\n , { title: \"HELP\", faClassName: \"fa fa-question-circle\", link: \"https://rules.utah.gov/help/\", local: false }\r\n // , { title: \"SUBSCRIBE\", faClassName: \"fa fa-newspaper-o\", link: settings.govDeliverySubscriptionUrl(), local: false }\r\n , { title: \"ABOUT US\", faClassName: \"fa fa-id-card\", link: \"/public/home/#about\", local: true }\r\n , { title: \"CONTACT US\", faClassName: \"fa fa-envelope\", link: \"/public/home/#contact\", local: true }\r\n , { title: \"QUICKLINKS\", faClassName: \"fa fa-angle-double-down\", link: \"\", local: false }\r\n , { title: \"STATE LOGIN\", faClassName: \"fa fa-university\", link: \"/state/my%20work/Work%20Queue\", local: true }];\r\n topMenuList = [\r\n { title: \"DAS HOME\", link: \"https://das.utah.gov/\" }\r\n , { title: \"BUILDING BOARD\", link: \"https://das.utah.gov/building-board/\" }\r\n , { title: \"ARCHIVES\", link: \"https://archives.utah.gov/\" }\r\n , { title: \"DFCM\", link: \"https://dfcm.utah.gov/\" }\r\n , { title: \"FINANCE\", link: \"https://finance.utah.gov/\" }\r\n , { title: \"FLEET\", link: \"https://fleet.utah.gov/\" }\r\n , { title: \"PURCHASING\", link: \"http://purchasing.utah.gov/\" }\r\n , { title: \"RISK\", link: \"https://risk.utah.gov/\" }\r\n , { title: \"RULES\", link: \"https://rules.utah.gov/\" }];\r\n componentDidMount() {\r\n // setup inline style for submenu\r\n let subMenu = document.querySelector(\".sub-menu\");\r\n subMenu.style.height = \"0em\"\r\n // When click off menu sub menu will close\r\n document.querySelector(\".main-content\").onclick = () => {\r\n let subMenu = document.querySelector(\".sub-menu\");\r\n subMenu.style.height = \"0em\"\r\n }\r\n }\r\n handleChange = (name, value) => { \r\n // Add in change to sub menu and pass into principal menu\r\n this.setState({ [name]: value })\r\n }\r\n closeSubMenu =(e) =>{\r\n let subMenu = document.querySelector(\".sub-menu\");\r\n subMenu.style.height = \"0em\";\r\n }\r\n openSubMenu = (e) => {\r\n let subMenu = document.querySelector(\".sub-menu\");\r\n subMenu.style.height === \"0em\" ? subMenu.style.height = \"25em\" : subMenu.style.height = \"0em\"\r\n }\r\n render() {\r\n // Notice how each input has a `value`, `name`, and `onChange` prop\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {/* Loop through bottomMenuList and create a menu item for each thing */}\r\n {this.bottomMenuList.map((item, i) => {\r\n // create a menu button for every thing in the bottomMenuList, if it is a quickLink or State Login pass in the onclick function\r\n return \r\n })}\r\n
\r\n
\r\n\r\n
\r\n {/* Loop through the subMenu List and create a menu button for each item*/}\r\n {this.subMenu.map((item, i) =>\r\n \r\n )}\r\n
`\r\n
\r\n
\r\n );\r\n\r\n }\r\n}\r\n\r\nexport default MenuContainer;","import { Log, User, UserManager } from 'oidc-client';\r\nimport {openIdSettings} from './../../../util/settings/settings';\r\n\r\nclass AuthService {\r\n constructor() {\r\n const settings = {\r\n authority: openIdSettings.stsAuthority,\r\n client_id: openIdSettings.clientId,\r\n redirect_uri: `${openIdSettings.clientRoot}signin`,\r\n silent_redirect_uri: `${openIdSettings.clientRoot}silentrenewal`,\r\n // tslint:disable-next-line:object-literal-sort-keys\r\n post_logout_redirect_uri: `${openIdSettings.post_logout_redirect_uri}`,\r\n response_type: 'id_token token',\r\n scope: openIdSettings.clientScope\r\n };\r\n this.userManager = new UserManager(settings);\r\n Log.logger = console;\r\n Log.level = Log.INFO;\r\n }\r\n\r\n // grab user from local stroage if there,\r\n // verify that user\r\n\r\n getUser = async () => {\r\n const user = await this.userManager.getUser();\r\n return user;\r\n }\r\n\r\n login = async (redirect_uri) => {\r\n // await this.userManager.signoutRedirectCallback();\r\n return this.userManager.signinRedirect();\r\n }\r\n\r\n renewToken = async () => {\r\n try{\r\n\r\n let user = await this.userManager.signinSilent(User);\r\n return user;\r\n }catch(error){\r\n return {};\r\n }\r\n }\r\n\r\n logout = async () => {\r\n return this.userManager.signoutRedirect();\r\n }\r\n silentLogout = () => {\r\n return this.userManager.signoutRedirectCallback();\r\n }\r\n}\r\n\r\nexport default AuthService;","import axios from './apiConfig';\r\n\r\nexport default {\r\n getAllUsers: () => {\r\n return axios.get(`/api/user`);\r\n },\r\n verifyUser: (user) =>{\r\n return axios.post(`/api/user/verify`, user);\r\n },\r\n addUser: (user) =>{\r\n return axios.post(`/api/user`, user);\r\n },\r\n userPermitedPrograms: (userId) =>{\r\n return axios.get(`/api/user/permissions/${userId}`);\r\n },\r\n addUserPermission: (userId, programId) =>{\r\n return axios.post(`/api/user/permissions`, {appUserId:userId,programId:programId});\r\n },\r\n removeUserPermission: (userId, programId) =>{\r\n return axios.post(`/api/user/permissions/remove`, {appUserId:userId,programId:programId});\r\n },\r\n nextUserStatus: (userId, userActionId) => {\r\n return axios.post(`/api/user/nextstatus/${userId}/${userActionId}`,);\r\n },\r\n deleteUser:(userId)=>{\r\n return axios.post(`/api/user/delete/${userId}`)\r\n }\r\n};","import UsersAPI from './../api/users';\r\n\r\nclass User {\r\n constructor(userProfile) {\r\n let {\r\n email,\r\n given_name,\r\n family_name,\r\n username,\r\n } = userProfile;\r\n // this.AppUserId = null;\r\n // this.UserTypeId = null;\r\n // this.StatusId = null;\r\n this.email = email;\r\n // this.Password = null;\r\n this.firstName = given_name;\r\n this.lastName = family_name;\r\n // this.AgencyId = null;\r\n this.userName = username;\r\n }\r\n setUserType = (userType) => {\r\n this.userType = userType\r\n }\r\n setUserAgency = ({agencyId, name}) =>{\r\n this.agencyId = agencyId;\r\n this.agencyName = name;\r\n }\r\n verifyUser = () => {\r\n return UsersAPI.verifyUser(this).then(\r\n (results) => {\r\n // if the user is verified\r\n if(results.data){\r\n if (results.data.email) {\r\n this.setUserType(results.data.userType.descr)\r\n this.setUserAgency(results.data.agency)\r\n return true;\r\n }\r\n else{return false;}\r\n }\r\n }\r\n )\r\n }\r\n logUser = () => {\r\n }\r\n \r\n}\r\n\r\nexport default User;","import $ from 'jquery';\r\nclass ErrorHandler {\r\n constructor(errorStatus, errorMessage, errorButtonText, errorButtonFunction) {\r\n this.errorStatus = errorStatus\r\n this.errorMessage = errorMessage\r\n this.errorButtonText = errorButtonText\r\n this.errorButtonFunction = errorButtonFunction\r\n }\r\n showOnPage = () => {\r\n let errorModal =\r\n `
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

${this.errorStatus}

\r\n
\r\n
\r\n
${this.errorButtonText}\r\n
\r\n
\r\n
\r\n
\r\n
`;\r\n $(\"#errorContainer\").html(errorModal);\r\n\r\n }\r\n}\r\n\r\nexport default ErrorHandler;","import axios from 'axios';\r\nimport {openIdSettings} from './../settings/settings';\r\nimport AuthService from './../../routes/OpenIdLogin/services/AuthService';\r\nimport moment from 'moment';\r\nimport User from './../ApiObjectClasses/User';\r\nimport ErrorHandler from './../ErrorHandler';\r\n\r\n\r\n// TODO setup silent refresh if there is a 401\r\n\r\nconst authService = new AuthService();\r\nclass AxiosConfig {\r\n constructor() {\r\n this.axios = axios;\r\n this.buildConfiguration();\r\n }\r\n buildConfiguration = async () => {\r\n // Setup Authentication with Bearer Token\r\n this.setupToken();\r\n // Setup interceptors\r\n this.setupInterceptors();\r\n }\r\n setupToken = () => {\r\n authService.getUser().then(userProfile => {\r\n if (userProfile) {\r\n let user = new User(userProfile.profile)\r\n user.verifyUser().then((isValid) => {\r\n if (isValid) {\r\n this.axios.defaults.user = user;\r\n }\r\n });\r\n let id_token = userProfile ? userProfile.id_token : undefined;\r\n let bearer = \"Bearer \" + id_token;\r\n this.axios.defaults.headers.common = { 'Authorization': bearer }\r\n this.axios.defaults.baseURL = `${window.location.origin}/`;\r\n }\r\n\r\n });\r\n }\r\n setupInterceptors = () => {\r\n this.axios.interceptors.response.use(this.successInterceptor, this.errorStatusHandler)\r\n }\r\n successInterceptor = (response) => {\r\n authService.getUser().then((user) => {\r\n if (user) {\r\n\r\n // Get session expiration time\r\n let session_expiration = moment(new Date(user.expires_at * 1000));\r\n // If the session is going to expire in the next 2 minutes then try a silent login.\r\n if (moment().add(5, \"minutes\").isAfter(session_expiration)) {\r\n authService.renewToken().then((user) => {\r\n })\r\n }\r\n }\r\n else {\r\n }\r\n })\r\n\r\n return response;\r\n\r\n\r\n }\r\n errorStatusHandler = (error) => {\r\n let config;\r\n let status;\r\n let message;\r\n if (error) {\r\n if (error.config) {\r\n config = error.config;\r\n }\r\n if (error.response) {\r\n if (error.response.status) {\r\n status = error.response.status;\r\n }\r\n if (error.response.data) {\r\n message = error.response.data;\r\n }\r\n }\r\n }\r\n if (this[status] != null) {\r\n this[status](status, message, config);\r\n } else {\r\n }\r\n return error\r\n }\r\n\r\n 401 = (status, message, originalRequest) => {\r\n let errorStatus = \"Unauthorized\";\r\n let errorMessage = \"Your session has expired, or you are not authroized for this content. Please Login with an authroized user.\";\r\n let errorButtonText = \"Refresh\";\r\n let errorButtonFunction = \"window.location.replace(window.location.origin)\";\r\n setTimeout(() => window.location.replace(window.location.origin), 8000);\r\n let errorHandler = new ErrorHandler(errorStatus, errorMessage, errorButtonText, errorButtonFunction);\r\n errorHandler.showOnPage();\r\n }\r\n 500 = (status, message, originalRequest) => {\r\n console.log(message);\r\n }\r\n 401 = (status, message, originalRequest) => {\r\n switch (message) {\r\n case \"Stale Packet Status\":\r\n new ErrorHandler(\"Data Conflict\"\r\n , \"The status on this packet has recently been changed, please reload your page with the most recent data\"\r\n , \"Refresh\"\r\n , \"window.location.reload()\")\r\n .showOnPage();\r\n break;\r\n\r\n default:\r\n new ErrorHandler(\"Data Conflict\"\r\n , \"The data you are working with is out of sync, please refresh your page and try again\"\r\n , \"Refresh\"\r\n , \"window.location.reload()\")\r\n .showOnPage();\r\n break;\r\n }\r\n }\r\n\r\n}\r\n\r\nconst axiosConfig = new AxiosConfig();\r\nexport default axiosConfig.axios;","import axios from './../api/apiConfig';\r\n\r\nclass UserAPIContainer {\r\n constructor(apiCalls) {\r\n for (let call in apiCalls) {\r\n // grab the original method and store it\r\n let originalCall = apiCalls[call];\r\n // set the method name to run the validate method passing the orignial parameters and the original call using a spread\r\n apiCalls[call] = (...callbackParameters) => {\r\n // pass the original method call and its parameters into the validate function\r\n return this.validate(originalCall, callbackParameters);\r\n }\r\n // Get this to pass in\r\n // apiCalls[call] = () => this.validate(originalCall);\r\n }\r\n Object.assign(this, apiCalls)\r\n }\r\n // get in a user object and validate it\r\n validate = (callback, callbackParameters) => {\r\n // validate the user type\r\n let { userType } = axios.defaults.user;\r\n if (typeof (callback) == \"object\") {\r\n if(userType == \"Agency User\"){\r\n callbackParameters.push(axios.defaults.user.agencyId)\r\n }\r\n return callback[userType](...callbackParameters);\r\n }\r\n else {\r\n // run the original api function with the parameters passed in\r\n return callback(...callbackParameters);\r\n // if not valid run an invalid api call\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default UserAPIContainer;","import axios from './apiConfig';\r\nimport UserAPIContainer from './../ApiObjectClasses/UserAPIContainer';\r\n\r\nlet devCalls = {\r\n isProduction: async () => {\r\n let isProduction = await axios.get(`/api/development/isProduction`);\r\n return isProduction.data;\r\n },\r\n setUser: (usertype) => {\r\n return axios.post(`/api/development/setuser/${usertype}`);\r\n },\r\n runNightlyJob: (usertype) => {\r\n return axios.get(`/api/development/cronjob`);\r\n },\r\n getPacketsExpiring: () => {\r\n return axios.get(`/api/development/expiringPackets`);\r\n },\r\n getPacketsExpired: () => {\r\n return axios.get(`/api/development/expiredPackets`);\r\n },\r\n getPacketsWithEndedPublicCommentPeriod: () => {\r\n return axios.get(`/api/development/publicCommentPeriodEnded`);\r\n },\r\n getPacketsWithEnded7DayCommentPeriod: () => {\r\n return axios.get(`/api/development/end7DayCommentPeriod`);\r\n },\r\n getLapsedPackets: () => {\r\n return axios.get(`/api/development/lapsedPackets`);\r\n },\r\n subtractFromCommentEnd: (packetId,number) => {\r\n return axios.get(`/api/development/subtractfromcommentend/${packetId}/${number}`);\r\n },\r\n subtractFromEffectiveEnd: (packetId,number) => {\r\n return axios.get(`/api/development/subtractFromEffectiveEnd/${packetId}/${number}`);\r\n },\r\n\r\n};\r\n\r\nexport default devCalls;","import React, { Component } from \"react\";\r\nimport \"./header.css\";\r\nimport $ from \"jquery\";\r\nimport LogoContainer from \"../LogoContainer\";\r\nimport MenuContainer from \"../MenuContainer\";\r\nimport MenuButton from \"../MenuButton\";\r\nimport devAPI from './../../util/api/_development';\r\nclass Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n // Setting the component's initial state\r\n state = {\r\n firstName: \"\",\r\n lastName: \"\"\r\n };\r\n slideUp = (e) => {\r\n let containerNode = document.querySelector(\"#menu-container\");\r\n // If the open height attribute is set than restore to that height and remove the attribute\r\n if ($(containerNode).attr(\"openHeight\")) {\r\n // restore to original height\r\n $(containerNode).animate({ \"height\": $(containerNode).attr(\"openHeight\") }, 500, () => {\r\n // after animation reset to auto height to adjust for changes\r\n containerNode.style.height = \"auto\";\r\n });\r\n // remove the open Height attribute so that it will go to the next toggle option\r\n $(containerNode).removeAttr(\"openHeight\");\r\n\r\n }\r\n // If there is no open Height than set it to the current height of the node. And collapse the height to 5em\r\n else {\r\n // Get height of current element\r\n let height = $(containerNode).height();\r\n // set inline attribute for the current height so we can toggle back to it\r\n $(containerNode).attr(\"openHeight\", height);\r\n // animate the closure of the element to the size of its title element we clicked on to fire this function\r\n $(containerNode).animate({ \"height\": \"0px\" }, 500);\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n document.querySelector(\"#mobileMenuButton\").onclick = () => {\r\n this.slideUp();\r\n }\r\n }\r\n\r\n\r\n render() {\r\n // Notice how each input has a `value`, `name`, and `onChange` prop\r\n return (\r\n
\r\n
\r\n \r\n
\r\n Logo Container\r\n \r\n Menu Container\r\n Menu Button\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Header;","import axios from './apiConfig';\r\n\r\nexport default {\r\n getAllWebText: () => {\r\n return axios.get(`/api/webText`);\r\n },\r\n updateWebText: (webTextId, webText) => {\r\n return axios.post(`/api/webText/update/${webTextId}`, webText);\r\n },\r\n addImage: (webTextId, file) => {\r\n return axios.post(`/api/webText/addImage/${webTextId}`, file);\r\n },\r\n getImage: (webTextName) => {\r\n return axios.get(`/api/public/getImage/${webTextName}`);\r\n },\r\n getImageNoCache: (webTextName) => {\r\n return axios.get(`/api/public/getImage/nocache/${webTextName}`);\r\n },\r\n getImageUrl: (webTextName) => {\r\n return (`${window.location.origin}/api/public/getImage/${webTextName}`);\r\n },\r\n getHomePageWebText: () => {\r\n return axios.get(`/api/webText/homePage`);\r\n },\r\n getWebTextByName: (webTextName) => {\r\n return axios.get(`/api/webText/WebTextByName/${webTextName}`);\r\n },\r\n getUserSpecificWebTextByName: (webTextName) => {\r\n return axios.get(`/api/webText/UserSpecificWebTextByName/${webTextName}`);\r\n },\r\n getSourceDocuments: (webTextId) => {\r\n return axios.get(`/api/webText/getSourceDocuments/${webTextId}`);\r\n }\r\n};","import React from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nconst SearchBar = withRouter(({ executeSearch, history, searchText, searchTextChange }) => (\r\n
\r\n
\r\n \r\n {\r\n if (e.which === 13) {\r\n if (executeSearch) {\r\n executeSearch(document.querySelector(\"#txtSearch\").value)\r\n }\r\n else {\r\n history.push(`/public/search/${document.getElementById(\"txtSearch\").value}/Current%20Rules`)\r\n }\r\n }\r\n }}>\r\n \r\n \r\n
\r\n
\r\n))\r\n\r\nexport default SearchBar;","// MAKE A SMART COMPONENT AND ADD IN TIME CHECK TO CHANGE OUT THE BACKGROUND IMAGE\r\nimport React, { Component } from \"react\";\r\nimport \"./MainContent.css\";\r\nimport WebTextAPI from './../../../../util/api/webText';\r\n// import dayImage from './images/dayImage.jpg'\r\n// import nightImage from './images/nightImage.jpg'\r\nimport logo from './images/logo.png'\r\nimport SearchBar from \"./../../../../components/SearchBarr\";\r\n\r\nconst dayImage = '/images/dayImage.jpg';\r\nconst nightImage = '/images/nightImage.jpg';\r\nclass Main extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n };\r\n\r\n // Setting the component's initial state\r\n\r\n componentDidMount() {\r\n\r\n };\r\n isNight = function () {\r\n // create Date object for current location\r\n var d = new Date();\r\n // Determine what our offset in utah should be according to daylight savings\r\n let offset = \"-6\"\r\n // Convert time UTC Timezone\r\n var utc = new Date(d.valueOf() + d.getTimezoneOffset() * 60000);\r\n\r\n // Create a new Date object and convert current UTC to Utah time\r\n var nd = new Date(utc.getTime() + (3600000 * offset));\r\n // return true if it is after six and before six in utah\r\n return nd.getHours() < 18 && nd.getHours() > 5 ? false : true;\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"logo\"\r\n

{this.props.title}

\r\n {/* TODO Fix this to reroute to the search page with the text search */}\r\n \r\n
\r\n
\r\n {/*

Advanced Search

*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.props.ruleTypes.map((rule, i) => )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Main;","import React, { Component } from \"react\";\r\nimport \"./DblUnderTitle.css\";\r\nclass About extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state={};\r\n }\r\n // Setting the component's initial state\r\n\r\n componentDidMount() {\r\n }\r\n render() {\r\n // Notice how each input has a `value`, `name`, and `onChange` prop\r\n return (\r\n
\r\n

{this.props.title}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default About;","import React, { Component } from \"react\";\r\nimport \"./about.css\";\r\nimport DblUnderTitle from '../../../../components/DblUnderTitle';\r\nclass About extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n // Setting the component's initial state\r\n\r\n componentDidMount() {\r\n }\r\n render() {\r\n // Notice how each input has a `value`, `name`, and `onChange` prop\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\nexport default About;","import React, { Component } from \"react\";\r\nimport \"./Photo_with_text.css\";\r\nimport WebTextAPI from './../../../../util/api/webText';\r\nclass About extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n // Setting the component's initial state\r\n\r\n componentDidMount() {\r\n }\r\n render() {\r\n // Notice how each input has a `value`, `name`, and `onChange` prop\r\n return (\r\n
\r\n
\r\n {this.props.alt}\r\n
\r\n
\r\n
\r\n

{this.props.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\nexport default About;","import React, { Component } from \"react\";\r\nimport \"./Photo_with_text.css\";\r\nimport WebTextAPI from './../../../../util/api/webText';\r\nclass About extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n // Setting the component's initial state\r\n\r\n componentDidMount() {\r\n }\r\n render() {\r\n // Notice how each input has a `value`, `name`, and `onChange` prop\r\n return (\r\n
\r\n
\r\n {this.props.alt}\r\n
\r\n
\r\n
\r\n

{this.props.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\nexport default About;","import React, { Component } from \"react\";\r\nimport \"./quote.css\";\r\nimport WebTextAPI from './../../../../util/api/webText';\r\nclass Quote extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state={};\r\n }\r\n // Setting the component's initial state\r\n\r\n componentDidMount() {\r\n }\r\n render() {\r\n // Notice how each input has a `value`, `name`, and `onChange` prop\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
{this.props.text} {this.props.citation}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Quote;","import React, { Component } from \"react\";\r\nimport \"./contact.css\";\r\nimport DblUnderTitle from '../../../../components/DblUnderTitle';\r\n\r\nclass About extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state={};\r\n // This binding is necessary to make `this` work in the callback\r\n }\r\n // Setting the component's initial state\r\n\r\n componentDidMount() {\r\n }\r\n render() {\r\n // Notice how each input has a `value`, `name`, and `onChange` prop\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\nexport default About;","import React, { Component } from \"react\";\r\nimport \"./footer.css\";\r\n// The ...props means, spread all of the passed props onto this element\r\n// That way we don't have to define them all individually\r\nclass footer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { pictures: [] };\r\n }\r\n\r\n render() {\r\n return (\r\n )\r\n };\r\n}\r\n\r\nexport default footer;","// TODO adjust main Content so that it fills out a little more of the page\r\n\r\nimport React, { Component } from \"react\";\r\n//import page utility and style\r\nimport './HomePage.css'\r\n//import components\r\nimport WebTextApi from './../../util/api/webText';\r\nimport { withRouter } from \"react-router-dom\";\r\nimport MainContent from './components/MainContent'\r\nimport About from './components/About'\r\nimport Alternate1 from './components/Photo_with_text'\r\nimport Alternate2 from './components/Photo_right_with_text'\r\nimport Quote from './components/Quote'\r\nimport Contact from './components/Contact'\r\nimport Footer from '../../components/footer'\r\n\r\n//import images\r\nimport Alt1photo from './images/alternate1.jpg'\r\nimport Alt2photo from './images/alternate2.png'\r\nimport QuoteBackground from './images/clouds.jpg'\r\n\r\nimport $ from 'jquery';\r\nclass Home extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n /*********** FUNCTIONS SPECIFIC TO THIS PAGE **********/\r\n // LOGIN\r\n triggerModal() {\r\n $('#modalLogin').fadeToggle();\r\n }\r\n\r\n componentDidMount = () => {\r\n WebTextApi.getHomePageWebText().then(({ data }) => {\r\n this.getWebText(data)\r\n })\r\n }\r\n\r\n getWebText = (data) => {\r\n if (data) {\r\n data.forEach(webText => {\r\n if (webText)\r\n if (webText.value) {\r\n\r\n this.setState({ [webText.name]: webText.value })\r\n }\r\n });\r\n }\r\n }\r\n paragraphHeight = \"30em\";\r\n /* ABOUT PROPS */\r\n // Each array element will be rendered as a new p tag\r\n aboutText = [`The Secretary of State’s Office is the repository for rules and regulations, and provides this centralized system to promote transparency and ease of access to rules by state agencies and the public. Individual agencies who have rule making authority are responsible for the promulgation and content of rules and regulations.`\r\n , `“[R]ules and regulations adopted pursuant to statutory authority have the force and effect of law.” Doidge v. State Board of Charities and Reform, 789 P.2nd 880, 883 (Wyo. 1990).`];\r\n aboutTitle = \"ABOUT US\"\r\n\r\n /* Alternate1 PROPS */\r\n alternate1Title = \"ADMINISTRATIVE RULES SYSTEM\"\r\n alternate1Text = [`The rules system provides state government the ability to electronically submit proposed rule packets simultaneously to the Governor’s Office, the Attorney General’s Office, the Legislative Service Office and to the Secretary of State’s Office. It provides efficiency to rule filers and facilitates the review of rules. Rule integrity is maintained through electronic design.`\r\n , `The 24/7 system provides: a mechanism to subscribe to instant electronic notice of changes to rules including proposed, final and emergency rules; the ability to comment on rules electronically or via traditional methods; strong and effective key word or phrase searching; links and tracking features to access the history of a chapter of rules; and visual links and icons to assist users in accessing rules.`]\r\n\r\n /* Alternate2 PROPS */\r\n alternate2Title = \"WYOMING ADMINISTRATIVE CODE\"\r\n alternate2Text = [`The same enactment of the Legislature created an Administrative Code containing each rule adopted by a state agency, for the rule to be compiled, numbered and indexed in a unified manner. This permits the code to be easily amended and affords ease of use and accessibility to the public. The Wyoming Administrative Code is available through the system link on the site’s home page.`\r\n , `Reference to rules and identification of rules in effect during specified periods is facilitated by use of state agency numbers, rule program numbers, rule chapter numbers, and each rule’s effective date. This indexing method assures understanding of which rule is being discussed and when each rule version was effective. `];\r\n\r\n /* Contact PROPS */\r\n contactText = [`Rules are collaborative; we will do our very best to assist you!`\r\n , `Please send your questions and comments to: Rules@wyo.gov`];\r\n contactTitle = \"CONTACT US\"\r\n\r\n /* Footer PROPS */\r\n rightsReserved = `Utah Secretary of State\r\n 2018 © All Rights Reserved`;\r\n questionsStatement = `For questions regarding the content or application of a specific rule, please contact the agency responsible for the rule. A directory of agencies is also available online. For questions about the rulemaking process, please send your questions and comments to Rules@wyo.gov.`\r\n\r\n\r\n // Dynamically adds search buttons under the advanced search option with an onclick function\r\n ruleTypes = [{\r\n name: \"Current Rules\",\r\n onClick: (e) => {\r\n this.props.history.push(\"/public/search//Current%20Rules\");\r\n }\r\n },\r\n {\r\n name: \"Proposed Rules\",\r\n onClick: (e) => {\r\n this.props.history.push(\"/public/search//Proposed%20Rules\");\r\n }\r\n },\r\n {\r\n name: \"Emergency Rules\",\r\n onClick: (e) => {\r\n this.props.history.push(\"/public/search//Emergency%20Rules\");\r\n }\r\n }];\r\n componentDidMount() {\r\n\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\nexport default withRouter(Home);","import axios from './apiConfig';\r\nexport default {\r\n searchRuleData: (searchText, ruleTypeStringList) => {\r\n return axios.get(`/api/public/searchRuleData/${searchText}/${ruleTypeStringList}`)\r\n },\r\n searchRuleDataTotal: (searchText, ruleTypeStringList) => {\r\n return axios.get(`/api/public/searchRuleDataTotal/${searchText}/${ruleTypeStringList}`)\r\n },\r\n getRuleVersionByRuleId:(ruleId) => {\r\n return axios.get(`/api/public/ruleversioninfo/${ruleId}`);\r\n },\r\n getAgency: () => {\r\n return axios.get(`/api/public/agencies`)\r\n },\r\n getPrograms: (agencyId) => {\r\n return axios.get(`/api/public/programs/${agencyId}`)\r\n },\r\n getChapters: (programId) => {\r\n return axios.get(`/api/public/chapter/${programId}`)\r\n }\r\n};\r\n","import axios from './apiConfig';\r\nimport UserAPIContainer from './../ApiObjectClasses/UserAPIContainer';\r\nimport download from 'downloadjs-next';\r\n\r\nconst fileconfig = { headers: { 'Content-Type': 'multipart/form-data' } };\r\n\r\nlet s3Calls = {\r\n uploadFile: (fileData, name) => {\r\n return axios.post(`/api/s3/uploadFile/${name}`, fileData, fileconfig);\r\n },\r\n uploadCMSFile: (fileData, id) => {\r\n return axios.post(`/api/s3/uploadCMSFile/${id}`, fileData, fileconfig);\r\n },\r\n deleteCMSFile: (fileName, id) => {\r\n return axios.post(`/api/s3/deleteCMSFile/${fileName}/${id}`);\r\n },\r\n uploadFileAndConvert: (fileData, name) => {\r\n return axios.post(`/api/s3/uploadAndConvertFile/${name}`, fileData, fileconfig);\r\n },\r\n getFile: (fileName, downloadName) => {\r\n return axios.get(`/api/s3/GetFile/${fileName}/${downloadName}`, {\r\n responseType: 'arraybuffer'\r\n }).then((response) => {\r\n if (response.headers) {\r\n let fileName = response.headers[\"content-disposition\"].match(/filename=.*?;/g)[0];\r\n fileName = fileName.replace(/^filename=/g, \"\").replace(/;$/g, \"\");\r\n fileName = fileName.replace(/[\"\"]/g, \"\");\r\n let contentType = response.headers[\"content-type\"];\r\n let blob = new Blob([response.data], { type: contentType });\r\n download(blob, fileName, contentType);\r\n } else {\r\n alert(\"This file no longer exists\");\r\n }\r\n })\r\n },\r\n getCMSFile: (fileName, downloadName) => {\r\n return axios.get(`/api/s3/GetCMSFile/${fileName}/${downloadName}`, {\r\n responseType: 'arraybuffer'\r\n }).then((response) => {\r\n if (response.headers) {\r\n let fileName = response.headers[\"content-disposition\"].match(/filename=.*?;/g)[0];\r\n fileName = fileName.replace(/^filename=/g, \"\").replace(/;$/g, \"\");\r\n fileName = fileName.replace(/[\"\"]/g, \"\");\r\n let contentType = response.headers[\"content-type\"];\r\n let blob = new Blob([response.data], { type: contentType });\r\n download(blob, fileName, contentType);\r\n } else {\r\n alert(\"This file no longer exists\");\r\n }\r\n\r\n })\r\n },\r\n getRuleText: (fileNameIn, downloadName) => {\r\n return axios.get(`/api/s3/GetRuleText/${fileNameIn}/${downloadName}`, {\r\n responseType: 'arraybuffer'\r\n }).then((response) => {\r\n if (response.headers == null) {\r\n\r\n }\r\n else {\r\n let fileName = response.headers[\"content-disposition\"].match(/filename=.*?;/g)[0];\r\n fileName = fileName.replace(/^filename=/g, \"\").replace(/;$/g, \"\");\r\n fileName = fileName.replace(/[\"\"]/g, \"\");\r\n let contentType = response.headers[\"content-type\"];\r\n let blob = new Blob([response.data], { type: contentType });\r\n download(blob, fileName, contentType);\r\n }\r\n })\r\n },\r\n publicGetFile: (fileNameIn, downloadName) => {\r\n return axios.get(`/api/public/getfile/${fileNameIn}/${downloadName}`, {\r\n responseType: 'arraybuffer'\r\n }).then((response) => {\r\n try {\r\n\r\n let fileName = response.headers[\"content-disposition\"].match(/filename=.*?;/g)[0];\r\n fileName = fileName.replace(/^filename=/g, \"\").replace(/;$/g, \"\");\r\n fileName = fileName.replace(/[\"\"]/g, \"\");\r\n let contentType = response.headers[\"content-type\"];\r\n let blob = new Blob([response.data], { type: contentType });\r\n download(blob, fileName, contentType);\r\n } catch (error) {\r\n console.log(error);\r\n alert(\"The file you are trying to download does not exist.\")\r\n }\r\n })\r\n },\r\n publicGetHtmlText: (fileName) => {\r\n return axios.get(`/api/public/getHTML/${fileName}`);\r\n }\r\n};\r\n\r\nexport default s3Calls;","import axios from './apiConfig';\r\nimport UserAPIContainer from './../ApiObjectClasses/UserAPIContainer';\r\n\r\nlet ruleCalls = {\r\n getCurrentRules: (programId) => {\r\n return axios.get(`/api/program/${programId}/currentrules`);\r\n },\r\n getAdditionalInformationByRuleId: (ruleId) => {\r\n return axios.get(`/api/rule/${ruleId}/additionalInformation`);\r\n },\r\n getCorrections:(ruleId) => {\r\n return axios.get(`/api/public/getCorrections/${ruleId}`);\r\n }\r\n};\r\n\r\nexport default ruleCalls;","import moment from 'moment';\r\nimport React, { Component } from 'react';\r\nimport { Button, Modal, Panel } from 'react-bootstrap';\r\nimport { css } from 'react-emotion';\r\nimport { SyncLoader } from 'react-spinners';\r\nimport RuleAPI from './../../../util/api/rules';\r\nimport S3API from './../../../util/api/s3';\r\n\r\nclass ConfirmationModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { data: [], checkHistory: true }\r\n }\r\n componentDidUpdate = () => {\r\n }\r\n componentDidMount = () => {\r\n RuleAPI.getCorrections(this.props.rule.ruleId).then(({ data }) => {\r\n this.setState({ data });\r\n })\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 0 auto;\r\n color: #115fa4;\r\n `;\r\n return override;\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n

{this.props.rule.agencyName}

\r\n

{this.props.rule.programName}

\r\n
\r\n
\r\n {this.state.data.length ?\r\n
\r\n {this.state.data.map(entry => {\r\n return (\r\n
\r\n
\r\n \r\n {entry.ruleName} :\r\n {entry.effectiveDate && entry.effectiveEndDate ?\r\n \r\n Effective Date: {moment(entry.effectiveDate).format(\"MM/DD/YYYY\")} - {moment(entry.effectiveEndDate).format(\"MM/DD/YYYY\")}\r\n \r\n : null\r\n }\r\n \r\n {entry.info.replace(\"Rules\", \"Rule\")}\r\n S3API.publicGetFile(this.props.rule.pdfDownload, this.props.rule.pdfDownloadName)}> \r\n S3API.publicGetFile(this.props.rule.htmlDownload, this.props.rule.htmlDownloadName)}> \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
\r\n
\r\n }\r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ConfirmationModal;","import Mark from 'mark.js';\r\nimport moment from 'moment';\r\nimport React, { Component } from 'react';\r\nimport { Button, Modal, Panel } from 'react-bootstrap';\r\nimport { css } from 'react-emotion';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { SyncLoader } from 'react-spinners';\r\nimport S3API from './../../../util/api/s3';\r\nclass ConfirmationModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { checkHistory: true }\r\n }\r\n componentDidUpdate = () => {\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 0 auto;\r\n color: #115fa4;\r\n `;\r\n return override;\r\n }\r\n getsearchTextFromRoute = () => {\r\n let baseRoute = this.props.match.path;\r\n let fullRoute = this.props.location.pathname.replace(baseRoute, \"\").split(\"/\");\r\n let routeData = fullRoute.splice(1, fullRoute.length)\r\n if (routeData[0] === \"undefined\" || routeData[0] == null) {\r\n return;\r\n }\r\n return routeData[0];\r\n }\r\n highlight(rawHTML) {\r\n let text = this.getsearchTextFromRoute();\r\n let doc = document.createRange().createContextualFragment(rawHTML);\r\n // TODO FIX THIS CRAPPY CODE!!!\r\n setTimeout(() => {\r\n var context = document.getElementsByClassName(\"rule-text-html\");\r\n var instance = new Mark(context[0]);\r\n instance.mark(text, { element: \"span\", className: \"highlight\" });\r\n }, 500);\r\n\r\n return rawHTML;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

{this.props.rule.agencyName}

\r\n

{this.props.rule.programName}

\r\n

Rule {this.props.rule.number}: {this.props.rule.name}

\r\n\r\n
\r\n
\r\n {\r\n this.props.rule.ruleType == \"Repealed Rules\" ?\r\n
\r\n

Effective Date: {moment(this.props.rule.effectiveDate).format('MM/DD/YYYY')}

\r\n

Repealed Date: {moment(this.props.rule.effectiveEndDate).format('MM/DD/YYYY')}

\r\n
\r\n :\r\n this.props.rule.ruleType == \"Proposed Rules\" ?\r\n
\r\n

Public Comment Start: {moment(this.props.rule.CommentDate).format('MM/DD/YYYY')}

\r\n

Public Comment End: {moment(this.props.rule.publicEndDate).format('MM/DD/YYYY')}

\r\n
\r\n :\r\n this.props.rule.effectiveDate ?\r\n

Effective Date: {moment(this.props.rule.effectiveDate).format('MM/DD/YYYY')}

\r\n :

Effective Date: --

}\r\n

Admin. Code Reference: {this.props.rule.referenceNumber}

\r\n {this.props.rule.ruleType == \"Proposed Rules\" ?\r\n

Rule Type: {this.props.rule.ruleType.replace(\"Rules\", \"Rule\")} - {this.props.rule.ruleFilingType}

\r\n :

Rule Type: {this.props.rule.ruleType.replace(\"Rules\", \"Rule\")}

\r\n }\r\n S3API.publicGetFile(this.props.rule.pdfDownload, this.props.rule.pdfDownloadName)}> Download PDF
\r\n S3API.publicGetFile(this.props.rule.htmlDownload, this.props.rule.htmlDownloadName)}> Download HTML\r\n
\r\n\r\n
\r\n
\r\n {this.props.confirmModal ?\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 )\r\n }\r\n}\r\n\r\nexport default withRouter(ConfirmationModal);","import React, { Component } from 'react';\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport S3API from './../../../../util/api/s3';\r\nimport SearchAPI from './../../../../util/api/searchPage';\r\nimport HistoryModal from './../HistoryModal';\r\nimport HtmlModal from './../HtmlModal';\r\nimport moment from 'moment';\r\nimport { Tooltip, OverlayTrigger } from 'react-bootstrap'\r\nimport { SyncLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\nimport './Rule.css';\r\nimport asyncUtil from \"async-foreach\";\r\nconst asyncForEach = asyncUtil.forEach;\r\n\r\n\r\nclass Chapters extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n historyModal: false,\r\n htmlModal: false,\r\n html: \"\",\r\n loaded: false,\r\n displayHtml: null,\r\n displayRule: null,\r\n emergencyRules: [],\r\n proposedRules: [],\r\n linkToRule: \"\"\r\n };\r\n }\r\n componentDidMount = () => {\r\n this.getHtmlText();\r\n }\r\n historyModalToggle = () => {\r\n\r\n this.setState({ historyModal: !this.state.historyModal });\r\n }\r\n htmlModalModalToggle = (displayHtml, displayRule) => {\r\n if (this.state.htmlModal) {\r\n this.setState({ displayHtml: this.state.html, displayRule: this.props.rule });\r\n } else {\r\n this.setState({ displayHtml, displayRule });\r\n }\r\n this.setState({ htmlModal: !this.state.htmlModal });\r\n }\r\n getHtmlText = () => {\r\n S3API.publicGetHtmlText(this.props.rule.htmlDownload).then((res) => {\r\n this.setState({ html: res.data, displayHtml: res.data });\r\n })\r\n SearchAPI.getRuleVersionByRuleId(this.props.rule.ruleId).then(async ({ data }) => {\r\n // alert(this.props.rule.ruleId)\r\n if (data != null && (data.emergencyRules != null || data.proposedRules != null)) {\r\n\r\n const emergencyRulesData = data.emergencyRules;\r\n const proposedRulesData = data.proposedRules;\r\n let emergencyRules = [];\r\n let proposedRules = [];\r\n await asyncForEach(emergencyRulesData, async (rule, i, emergencyRuleList) => {\r\n S3API.publicGetHtmlText(rule.htmlDownload).then((res) => {\r\n rule.html = res.data;\r\n emergencyRules.push(rule);\r\n this.setState({ emergencyRules });\r\n })\r\n });\r\n\r\n await asyncForEach(proposedRulesData, async (rule, i, proposedRulesList) => {\r\n S3API.publicGetHtmlText(rule.htmlDownload).then((res) => {\r\n rule.html = res.data;\r\n proposedRules.push(rule);\r\n this.setState({ proposedRules });\r\n })\r\n });\r\n }\r\n })\r\n }\r\n\r\n urlRegex = new RegExp(/^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/g);\r\n emailRegex = new RegExp(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,63}$/);\r\n directToCommentResource = () => {\r\n const { publicCommentLink } = this.props.rule;\r\n if (publicCommentLink.match(this.urlRegex)) {\r\n // Comment link is a URL\r\n if (publicCommentLink.includes(\"http://\")) {\r\n window.open(publicCommentLink, '_blank');\r\n } else {\r\n window.open(\"http://\" + publicCommentLink, '_blank');\r\n }\r\n } else if (publicCommentLink.match(this.emailRegex)) {\r\n var mailto_link = 'mailto:' + publicCommentLink\r\n window.open(mailto_link, '_blank')\r\n // Comment Link is an email\r\n } else {\r\n // Comment link is neither an email or a url\r\n\r\n }\r\n }\r\n getColorForRuleType = () => {\r\n switch (this.props.rule.ruleType) {\r\n case \"Proposed Rules\":\r\n\r\n return { backgroundColor: \"rgba(255, 185, 123,0.3)\" }\r\n case \"Emergency Rules\":\r\n\r\n return { backgroundColor: \"rgba(255, 185, 123,0.3)\" }\r\n case \"Repealed Rules\":\r\n\r\n return { backgroundColor: \"rgba(255, 185, 123,0.3)\" }\r\n case \"Expired Emergency Rules\":\r\n\r\n return { backgroundColor: \"rgba(255, 185, 123,0.3)\" }\r\n case \"Superseded Rules\":\r\n return { backgroundColor: \"rgba(255, 185, 123,0.3)\" }\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 1vh auto;\r\n color: #115fa4;\r\n width: 8em;\r\n `;\r\n return override;\r\n }\r\n render() {\r\n return (\r\n
\r\n {/* the replace crap can be taken out it was just for some bad data I didn want to re capture */}\r\n \r\n {this.props.rule.name}{`(${this.props.rule.number})`}\r\n {this.props.rule.ruleType == \"Current Rules\" ?\r\n this.state.emergencyRules.map(rule =>\r\n \r\n Emergency Rule: {rule.name}\r\n }>\r\n \r\n \r\n ) : null}\r\n {this.props.rule.ruleType == \"Current Rules\" ?\r\n this.state.proposedRules.map(rule =>\r\n \r\n Proposed Rule: {rule.name}\r\n }>\r\n \r\n \r\n ) : null}\r\n \r\n
\r\n S3API.publicGetFile(this.props.rule.pdfDownload, this.props.rule.pdfDownloadName)}> Download PDF\r\n S3API.publicGetFile(this.props.rule.htmlDownload, this.props.rule.htmlDownloadName)}> Download HTML\r\n {this.props.rule.ruleType == \"Current Rules\" ?\r\n this.historyModalToggle()}>View History\r\n : null}\r\n {this.props.rule.ruleType == \"Proposed Rules\" ?\r\n this.directToCommentResource()}>Provide Public Comment\r\n : null\r\n }\r\n
\r\n \r\n \r\n
\r\n {/* TODO add in a view history link that opens a modal */}\r\n {\r\n this.props.rule.ruleType == \"Repealed Rules\" ?\r\n

Repealed Date: {moment(this.props.rule.effectiveEndDate).format('MM/DD/YYYY')}

\r\n :\r\n this.props.rule.ruleType == \"Proposed Rules\" ?\r\n

Public Comment End: {moment(this.props.rule.publicEndDate).format('MM/DD/YYYY')}

\r\n :\r\n this.props.rule.effectiveDate ?\r\n

Effective Date: {moment(this.props.rule.effectiveDate).format('MM/DD/YYYY')}

\r\n :

Effective Date: --

}\r\n

Admin. Code Reference: {this.props.rule.referenceNumber}

\r\n {this.props.rule.ruleType == \"Proposed Rules\" ?\r\n

Rule Type: {this.props.rule.ruleType.replace(\"Rules\", \"Rule\")} - {this.props.rule.ruleFilingType}

\r\n :

Rule Type: {this.props.rule.ruleType.replace(\"Rules\", \"Rule\")}

\r\n }\r\n {/*

Rule Type: {this.props.rule.ruleType}

*/}\r\n

 

\r\n
\r\n {/* Download View History */}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Chapters);","import React, { Component } from \"react\";\r\nimport Rule from './Rule';\r\nimport { SyncLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\nconst originalHeight = 72;\r\nconst transitionDurationSeconds = .5;\r\nclass Program extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loadRules: false\r\n }\r\n\r\n }\r\n showRules = () => {\r\n const heightOfProgramDiv = 80;\r\n const heightOfChapterDiv = 152.328\r\n const chapterContainerDivPadding = 1;\r\n const openHeight = (heightOfChapterDiv * this.props.program.rules.length) + heightOfProgramDiv + chapterContainerDivPadding;\r\n const containerIncrease = openHeight - 71.8;\r\n if (this.state.loadRules) {\r\n // Open\r\n document.querySelector(`.program${this.props.program.id}`).style.height = `${originalHeight}px`;\r\n this.props.changeContainerHeight(-1 * containerIncrease);\r\n setTimeout(() => this.setState({ loadRules: !this.state.loadRules }), transitionDurationSeconds * 1000);\r\n } else {\r\n // Close\r\n document.querySelector(`.program${this.props.program.id}`).style.height = `${openHeight}px`;\r\n this.props.changeContainerHeight(containerIncrease);\r\n this.setState({ loadRules: !this.state.loadRules })\r\n }\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 1vh auto;\r\n color: #115fa4;\r\n width: 8em;\r\n `;\r\n return override;\r\n }\r\n render() {\r\n return (\r\n
\r\n Title\r\n this.showRules()}>{this.props.program.name} {`(${this.props.program.number})`}{this.props.program.rules.length} Result(s)  \r\n
\r\n
\r\n {this.state.loadRules && this.props.program.rules[0].ruleType != null ?\r\n Array.isArray(this.props.program.rules) ?\r\n this.props.program.rules.map((rule, i) => (\r\n \r\n ))\r\n : null\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\nexport default Program;","import React, { Component } from \"react\";\r\nimport Programs from './Program';\r\n\r\nconst originalHeight = 74;\r\nconst transitionDurationSeconds = .5;\r\n\r\nclass Agency extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n agenciesLoaded: false,\r\n loadProgram: false\r\n };\r\n };\r\n componentWillReceiveProps(nextProps) {\r\n\r\n }\r\n componentDidMount() {\r\n }\r\n openAgency = () => {\r\n\r\n }\r\n changeContainerHeight = (heightChange) => {\r\n let openHeight = parseFloat(document.querySelector(`.agency${this.props.agency.id}`).style.height, 10);\r\n openHeight += heightChange;\r\n document.querySelector(`.agency${this.props.agency.id}`).style.height = `${openHeight}px`;\r\n }\r\n showResults = (agency, dataIndex) => {\r\n let openHeight = 76 * this.props.agency.programs.length + 75;\r\n if (this.state.loadProgram) {\r\n // Open \r\n\r\n document.querySelector(`.agency${this.props.agency.id}`).style.height = `${originalHeight}px`;\r\n setTimeout(() => this.setState({ loadProgram: !this.state.loadProgram }), transitionDurationSeconds * 1000);\r\n } else {\r\n // Close\r\n document.querySelector(`.agency${this.props.agency.id}`).style.height = `${openHeight}px`;\r\n this.setState({ loadProgram: !this.state.loadProgram })\r\n }\r\n }\r\n render = () => (\r\n
\r\n
\r\n
\r\n Agency\r\n this.showResults(this.props.agency, this.props.key)}>{this.props.agency.name}\r\n {Array.isArray(this.props.agency.programs) ? this.props.agency.programs.length : null}\r\n Result(s)  \r\n \r\n \r\n\r\n
\r\n\r\n {this.state.loadProgram ?\r\n Array.isArray(this.props.agency.programs) ?\r\n this.props.agency.programs.map((program, j) => {\r\n return ()\r\n })\r\n : null\r\n : null\r\n }\r\n {/* */}\r\n\r\n
\r\n
\r\n
\r\n\r\n );\r\n}\r\nexport default Agency;","import React, { Component } from \"react\";\r\nimport \"./AgencySearchResults.css\";\r\nimport API from \"../../../../util/api/searchPage\";\r\nimport $ from \"jquery\";\r\nimport Agency from './Agency';\r\nimport { SyncLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\n\r\nclass AgencySearchResults extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n agenciesLoaded: false\r\n };\r\n };\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 1vh auto;\r\n color: #115fa4;\r\n width: 8em;\r\n `;\r\n return override;\r\n }\r\n\r\n\r\n componentDidMount = () => {\r\n \r\n };\r\n renderPrograms = () => {\r\n\r\n }\r\n agenciesLoaded = () => {\r\n if (this.props.data.length === document.querySelectorAll(\".agency-result\").length) {\r\n this.setState({ agenciesLoaded: true })\r\n }\r\n }\r\n resultsDisplay = () => {\r\n if (this.props.data.length) {\r\n return this.props.data.map((agency, i) => {\r\n return (\r\n { } : this.agenciesLoaded} data={this.props.data} slideUp={this.slideUp} />\r\n )\r\n }\r\n );\r\n }\r\n else if (this.props.loading) {\r\n return \r\n }\r\n else {\r\n return \"No results were found for your query\";\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n {\r\n this.resultsDisplay()\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default AgencySearchResults;","import { Panel, InputGroup, FormControl, Checkbox, DropdownButton, MenuItem } from 'react-bootstrap';\r\nimport React, { Component } from \"react\";\r\nimport { withRouter, history } from 'react-router-dom';\r\nimport \"./SearchPane.css\";\r\nimport SearchBar from \"./../../../../components/SearchBarr\";\r\nimport DatePicker from 'react-datepicker';\r\nimport moment from 'moment';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport Tags from 'react-tagging-input';\r\n\r\nclass SearchPane extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { filter: \"\", searchText: \"\", atRestTimeOut: null }\r\n };\r\n componentDidMount = () => {\r\n // Setup state for filters\r\n let filter = this.getFilterFromRoute() || [];\r\n let filterList = this.convertStringToList(filter);\r\n this.checkboxLabels.map((label, i) => this.setState({ [label]: filterList.includes(label) }));\r\n this.executeSearch();\r\n };\r\n componentDidUpdate = () => {\r\n // if the url is not the same as what is in the state make the change\r\n let searchText = this.getsearchTextFromRoute();\r\n let filter = this.getFilterFromRoute();\r\n // Filter and reload the url to only includ firterable items in the second param\r\n if (filter != null) {\r\n let listcheck = this.convertStringToList(filter).filter((item, i) => this.checkboxLabels.includes(item.trim()));\r\n if (!this.arraysEqual(listcheck, this.convertStringToList(filter))) {\r\n this.props.history.push(`/public/search/${searchText}/${listcheck}`);\r\n }\r\n if (filter != this.state.filter) {\r\n this.setState({ filter });\r\n }\r\n }\r\n if (this.props.location.pathname == `/public/search//` || this.props.location.pathname == `/public/search`) {\r\n this.executeSearch(true);\r\n this.props.history.push(`/public/search/`);\r\n }\r\n if (searchText != this.state.searchText) {\r\n this.setState({ searchText });\r\n }\r\n }\r\n\r\n getFilterFromRoute = () => {\r\n let baseRoute = this.props.match.path;\r\n let fullRoute = this.props.location.pathname.replace(baseRoute, \"\").split(\"/\");\r\n let routeData = fullRoute.splice(1, fullRoute.length)\r\n let searchText = routeData[0];\r\n return routeData[1];\r\n }\r\n getsearchTextFromRoute = () => {\r\n let baseRoute = this.props.match.path;\r\n let fullRoute = this.props.location.pathname.replace(baseRoute, \"\").split(\"/\");\r\n let routeData = fullRoute.splice(1, fullRoute.length)\r\n if (routeData[0] === \"undefined\" || routeData[0] == null) {\r\n return;\r\n }\r\n return routeData[0];\r\n }\r\n convertListToString = (list) => {\r\n if (list == null) {\r\n return;\r\n }\r\n return list.join(\",\");\r\n }\r\n arraysEqual = (la, lb) => {\r\n let a = this.convertListToString(la);\r\n let b = this.convertListToString(lb);\r\n if (a === b) return true;\r\n if (a == null || b == null) return false;\r\n if (a.length != b.length) return false;\r\n }\r\n convertStringToList = (string) => {\r\n if (string == null) {\r\n return [];\r\n }\r\n return string.split(\",\").map(function (item) {\r\n return item.trim();\r\n });\r\n }\r\n // TODO\r\n // create a function that updates the filter list every time we select and iclick element\r\n // make that state variable filter the results tab\r\n\r\n // Setting the component's initial state\r\n searchTextChange = (e) => {\r\n // let timeout = 2000;\r\n // clearTimeout(this.state.atRestTimeOut);\r\n // this.setState({\r\n // atRestTimeOut: setTimeout(() => {\r\n // this.executeSearch();\r\n // }, timeout)\r\n // })\r\n let { name, value } = e.target;\r\n this.props.history.push(`/public/search/${value}/${this.state.filter}`);\r\n\r\n }\r\n\r\n executeSearch = (returnCuurentRules) => {\r\n this.props.newSearch(returnCuurentRules, this.getsearchTextFromRoute(), this.getFilterFromRoute());\r\n }\r\n\r\n checkboxLabels = [\"Current Rules\", \"Emergency Rules\", \"Expired Emergency Rules\", \"Proposed Rules\", \"Repealed Rules\", \"Superseded Rules\"];\r\n\r\n onTagAdded = (tag) => {\r\n let filter = this.getFilterFromRoute() + \",\" + tag.trim();\r\n this.props.history.push(`/public/search/${this.state.searchText}/${filter}`);\r\n }\r\n\r\n onTagRemoved = (tag) => {\r\n let filterFromURL = this.getFilterFromRoute();\r\n let filter = this.convertStringToList(filterFromURL).filter((item, i) => item != tag.trim());\r\n this.props.history.push(`/public/search/${this.state.searchText}/${filter}`);\r\n\r\n }\r\n clearFields = () => {\r\n this.checkboxLabels.map((label) => {\r\n this.setState({ [label]: false });\r\n })\r\n \r\n this.setState({ [\"Current Rules\"]: true });\r\n this.props.history.push(`/public/search//Current%20Rules`);\r\n };\r\n iClick = (e, label) => {\r\n if (this.state[label]) {\r\n this.onTagRemoved(label)\r\n }\r\n else {\r\n this.onTagAdded(label)\r\n }\r\n this.setState({ [label]: !this.state[label] })\r\n };\r\n onSelectAgency = (eventKey) => {\r\n this.props.handleChange(\"agencyId\", eventKey);\r\n };\r\n onSelectProgram = (eventKey) => {\r\n this.props.handleChange(\"programId\", eventKey);\r\n };\r\n onDateChange = (date) => {\r\n this.props.handleChange(\"startDate\", date);\r\n }\r\n openAdvancedSearch = (event) => {\r\n let panelBody = document.querySelector(\"#advanced-search\").querySelector(\".panel-body\")\r\n panelBody.className.includes(\"hidden\") ? panelBody.className = \"panel-body\" : panelBody.className = \"hidden panel-body\"\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n Search \r\n\r\n \r\n \r\n {/* */}\r\n
\r\n\r\n {this.checkboxLabels.map((label, i) => (\r\n \r\n
this.iClick(e, label)} style={this.state[label] ? { display: \"block\" } : { display: \"none\" }}>\r\n
\r\n this.iClick(e, label)} checked={this.state[label]}> \r\n\r\n {label}
\r\n ))}\r\n
\r\n
\r\n {/* \r\n

Advanced Search

\r\n \r\n \r\n \r\n */}\r\n {/* Agency List Menu Items come from props that belong to Search Page State */}\r\n {/* {this.props.agencyList.length ?\r\n this.props.agencyList.map((agency, i) => {agency.Name})\r\n : null}\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 {Array.isArray(this.props.programList[this.props.agencyId]) ? this.props.programList[this.props.agencyId].map((program, i) => {program.title}) : No Programs Avalible}\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
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(SearchPane);","// TODO adjust main Content so that it fills out a little more of the page\r\nimport { Panel } from 'react-bootstrap';\r\nimport React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\n\r\n//import page utility and style\r\nimport './SearchPage.css'\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport AgencySearchResults from './components/AgencySearchResults';\r\nimport SearchPane from './components/SearchPane';\r\nimport DblUnderTitle from '../../components/DblUnderTitle';\r\nimport publicAPI from '../../util/api/searchPage.jsx';\r\nimport moment from 'moment';\r\nimport asyncUtil from \"async-foreach\";\r\nconst asyncForEach = asyncUtil.forEach;\r\n// TODO\r\n// Setup state for this component\r\n// Add a filter list to the state\r\n// Add a way to implement this filter in the agencyResults component\r\n\r\nclass SearchPage extends Component {\r\n /*********** FUNCTIONS SPECIFIC TO THIS PAGE **********/\r\n //\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // Setup State for the advanced Search Pane\r\n agencyList: [],\r\n programList: [],\r\n agencyId: 0,\r\n programId: 0,\r\n agency: \"\",\r\n program: \"\",\r\n startDate: moment(),\r\n data: [],\r\n // State for the results display\r\n searchResults: [],\r\n loading: false\r\n }\r\n }\r\n newSearch = async (returnCuurentRules, searchText = \"undefined\", ruleTypeStringList = \"undefined\") => {\r\n\r\n if (searchText === \"\") {\r\n searchText = \"undefined\";\r\n }\r\n searchText = searchText.trim();\r\n let data = [];\r\n this.setState({ loading: true });\r\n this.setState({ data: data });\r\n let fullDataSet = await this.getCompleteData(searchText, ruleTypeStringList);\r\n \r\n }\r\n\r\n getCompleteData = async (searchText, ruleTypeStringList) => {\r\n let data = [];\r\n let apiPromise = publicAPI.searchRuleDataTotal(searchText, ruleTypeStringList);\r\n let response = await apiPromise;\r\n let responseData = response.data || [];\r\n await asyncForEach(responseData, async (entry, index, array) => {\r\n let programList = [];\r\n await asyncForEach(entry.programs, (program, i, programsArray) => {\r\n if (program.rules.length) {\r\n programList.push(program);\r\n }\r\n })\r\n entry.programs = [...programList];\r\n if (programList.length) {\r\n data.push(entry);\r\n }\r\n })\r\n this.setState({ data: data, loading:false });\r\n return true;\r\n }\r\n\r\n // handler for state changes\r\n handleChange = (name, value) => {\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n componentDidMount() {\r\n // get all Agencys onLoad and set State for searchPane drop down\r\n let agencyList = publicAPI.getAgency();\r\n this.setState({ agencyList });\r\n // get all the Program Lists onLoad to pass into the searhPane drop dowp\r\n let programList = publicAPI.getPrograms()\r\n this.setState({ programList });\r\n }\r\n render() {\r\n return (
\r\n
\r\n \r\n \r\n \r\n Results\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(SearchPage);","import axios from './apiConfig';\r\nexport default {\r\n\r\n directLink: (ruleNumber, filingId, ruleType) => {\r\n return axios.get(`/api/public/rule/${ruleNumber}/${filingId}/${ruleType}`)\r\n }\r\n};\r\n","// TODO adjust main Content so that it fills out a little more of the page\r\nimport { Panel, Button } from 'react-bootstrap';\r\nimport React, { Component } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\n\r\n//import page utility and style\r\nimport Mark from 'mark.js';\r\nimport './DirectLinkPage.css'\r\nimport '../../../node_modules/toastr/build/toastr.css'\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport DblUnderTitle from '../../components/DblUnderTitle';\r\nimport publicAPI from '../../util/api/directLink.jsx';\r\nimport moment from 'moment';\r\nimport { css } from 'react-emotion';\r\nimport asyncUtil from \"async-foreach\";\r\nimport { SyncLoader } from 'react-spinners';\r\nimport S3API from './../../util/api/s3'; // './../../../util/api/s3';\r\nimport toastr from 'toastr';\r\n\r\nconst asyncForEach = asyncUtil.forEach;\r\n// TODO\r\n// Setup state for this component\r\n// Add a filter list to the state\r\n// Add a way to implement this filter in the agencyResults component\r\n\r\nclass DirectLinkPage extends Component {\r\n /*********** FUNCTIONS SPECIFIC TO THIS PAGE **********/\r\n //\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // Setup State for the advanced Search Pane\r\n agencyId: 0,\r\n programId: 0,\r\n data: [],\r\n // State for the results display\r\n loading: true,\r\n\r\n number: 0,\r\n name: \"\",\r\n effectiveEndDate: moment(),\r\n effectiveDate: moment(),\r\n commentDate: moment(),\r\n commentDateEnd: moment(),\r\n ruleType: \"\",\r\n referenceNumber: \"\",\r\n htmlDownload: \"\",\r\n htmlDownloadName: \"\",\r\n pdfDownload: \"\",\r\n pdfDownloadName: \"\",\r\n agencyName: \"\",\r\n programName: \"\",\r\n ruleText: \"\",\r\n rulePacketId: 0,\r\n action: \"\",\r\n linkToRule: \"\",\r\n cameFromExternal: true,\r\n isValidResponse: false,\r\n isOldDocument: false\r\n }\r\n }\r\n\r\n // handler for state changes\r\n handleChange = (name, value) => {\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.executeSearch();\r\n }\r\n\r\n highlight(rawHTML) {\r\n let text = this.getsearchTextFromRoute();\r\n let doc = document.createRange().createContextualFragment(rawHTML);\r\n // TODO FIX THIS CRAPPY CODE!!!\r\n setTimeout(() => {\r\n var context = document.getElementsByClassName(\"rule-text-html\");\r\n var instance = new Mark(context[0]);\r\n instance.mark(text, { element: \"span\", className: \"highlight\" });\r\n }, 500);\r\n\r\n return rawHTML;\r\n }\r\n\r\n executeSearch = async () => {\r\n\r\n let ruleNumber = this.getRuleNumberFromRoute();\r\n let ruleType = this.getRuleTypeFromRoute();\r\n let filingId = this.getIdFromRoute();\r\n\r\n if (ruleNumber === \"\") {\r\n ruleNumber = \"undefined\";\r\n }\r\n\r\n if (ruleType === \"\") {\r\n ruleType = \"undefined\";\r\n }\r\n\r\n if (filingId === \"\") {\r\n ruleType = \"undefined\";\r\n }\r\n\r\n let data = [];\r\n this.setState({ data: data });\r\n\r\n let apiPromise = publicAPI.directLink(ruleNumber, filingId, ruleType);\r\n\r\n // before awaiting the next item start getting the complete rule set\r\n apiPromise.catch(() => {\r\n this.setState({ loading: false });\r\n })\r\n\r\n let response = await apiPromise;\r\n let responseData = response.data || [];\r\n\r\n if (response.status === 200) {\r\n\r\n this.setState({\r\n number: responseData.number,\r\n name: responseData.name,\r\n effectiveDate: responseData.effectiveDate,\r\n effectiveEndDate: responseData.effectiveEndDate,\r\n ruleType: responseData.ruleType,\r\n referenceNumber: responseData.referenceNumber,\r\n htmlDownload: responseData.htmlDownload,\r\n htmlDownloadName: responseData.htmlDownloadName,\r\n pdfDownload: responseData.pdfDownload,\r\n pdfDownloadName: responseData.pdfDownloadName,\r\n agencyName: responseData.agencyName,\r\n programName: responseData.programName,\r\n commentDate: responseData.commentDate,\r\n commentDateEnd: responseData.commentDateEnd,\r\n rulePacketId: responseData.rulePacketId,\r\n isValidResponse: true,\r\n action: responseData.action,\r\n linkToRule: responseData.linkToRule,\r\n });\r\n\r\n let apiHtmlPromise = S3API.publicGetHtmlText(responseData.htmlDownload)\r\n\r\n apiHtmlPromise.catch(() => {\r\n this.setState({ loading: false })\r\n })\r\n\r\n let htmlResponse = await apiHtmlPromise;\r\n try {\r\n if (htmlResponse.data.includes('charset=windows-1252')) {\r\n this.setState({ isOldDocument: true })\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n this.setState({ ruleText: htmlResponse.data, loading: false });\r\n\r\n } else {\r\n\r\n this.setState({ isValidResponse: false, loading: false });\r\n }\r\n }\r\n\r\n getsearchTextFromRoute = () => {\r\n let searchText = this.props.location.search;\r\n let search = searchText.substring(12)\r\n\r\n return search;\r\n }\r\n\r\n getRuleNumberFromRoute = () => {\r\n let baseRoute = this.props.match.path;\r\n let fullRoute = this.props.location.pathname.replace(baseRoute, \"\").split(\"/\");\r\n let routeData = fullRoute.splice(1, fullRoute.length)\r\n\r\n if (routeData[0] === \"undefined\" || routeData[0] == null) {\r\n return;\r\n }\r\n return routeData[2];\r\n }\r\n\r\n getRuleTypeFromRoute = () => {\r\n let baseRoute = this.props.match.path;\r\n let fullRoute = this.props.location.pathname.replace(baseRoute, \"\").split(\"/\");\r\n let routeData = fullRoute.splice(1, fullRoute.length)\r\n\r\n if (routeData[0] === \"undefined\" || routeData[0] == null) {\r\n return;\r\n }\r\n\r\n if (routeData.length === 5) {\r\n return routeData[4];\r\n } else {\r\n return routeData[3];\r\n }\r\n }\r\n\r\n getIdFromRoute = () => {\r\n\r\n let baseRoute = this.props.match.path;\r\n let fullRoute = this.props.location.pathname.replace(baseRoute, \"\").split(\"/\");\r\n let routeData = fullRoute.splice(1, fullRoute.length)\r\n\r\n if (routeData[0] === \"undefined\" || routeData[0] == null) {\r\n return;\r\n }\r\n\r\n if (routeData.length === 5) {\r\n return routeData[3];\r\n } else {\r\n return \"undefined\";\r\n }\r\n\r\n return routeData[3];\r\n }\r\n\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 15% 50%;\r\n color: #115fa4;\r\n transform: rotate(90deg)\r\n `;\r\n return override;\r\n }\r\n\r\n copyTextClick = () => {\r\n toastr.success('Copied to Clipboard', '', { positionClass: 'toast-top-right', timeOut: \"1000\" })\r\n navigator.clipboard.writeText(this.state.linkToRule)\r\n }\r\n\r\n resultsDisplay = () => {\r\n if (!this.state.loading && this.state.isValidResponse) {\r\n return (\r\n
\r\n\r\n \r\n \r\n
\r\n

{this.state.agencyName}

\r\n

{this.state.programName}

\r\n

Rule {this.state.number}: {this.state.name}

\r\n\r\n
\r\n
\r\n {\r\n this.state.ruleType == \"Proposed Rules\" ?\r\n
\r\n

Public Comment Start: {moment(this.state.commentDate).format('MM/DD/YYYY')}

\r\n

Public Comment End: {moment(this.state.commentDateEnd).format('MM/DD/YYYY')}

\r\n
\r\n :\r\n this.state.effectiveDate ?\r\n

Effective Date: {moment(this.state.effectiveDate).format('MM/DD/YYYY')}

\r\n :

Effective Date: --

}\r\n

Admin. Code Reference: {this.state.referenceNumber}

\r\n {this.state.ruleType == \"Proposed Rules\" ?\r\n

Rule Type: {this.state.ruleType.replace(\"Rules\", \"Rule\")} - {this.state.action}

\r\n :

Rule Type: {this.state.ruleType.replace(\"Rules\", \"Rule\")}

\r\n }\r\n S3API.publicGetFile(this.state.pdfDownload, this.state.pdfDownloadName)}> Download PDF
\r\n S3API.publicGetFile(this.state.htmlDownload, this.state.htmlDownloadName)}> Download HTML
\r\n Copy Link\r\n
\r\n\r\n
\r\n
\r\n
\r\n {\r\n
\r\n }\r\n
\r\n
\r\n )\r\n } else if (this.state.loading) {\r\n return (\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n )\r\n } else {\r\n return (\r\n
\r\n \r\n

\r\n No results were found\r\n

\r\n
\r\n )\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {\r\n this.resultsDisplay()\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(DirectLinkPage);\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\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-dom';\r\nimport UtahHeader from './../components/header';\r\nimport Home from './../pages/HomePage';\r\nimport Search from './../pages/SearchPage/SearchPage';\r\nimport DirectLinkPage from './../pages/SearchPage/DirectLinkPage';\r\n\r\nclass PublicPortal extends Component {\r\n constructor() {\r\n super();\r\n this.state = { showModal: false };\r\n }\r\n close = () => {\r\n this.setState({ showModal: false });\r\n };\r\n\r\n open = () => {\r\n this.setState({ showModal: true });\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 );\r\n }\r\n}\r\n\r\nexport default PublicPortal;","import React, {Component} from 'react';\r\n\r\nconst logo = \"/images/logo.png\";\r\nclass Icon extends Component {\r\n constructor(props){\r\n super(props);\r\n }\r\n render(){\r\n return(\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Icon;","import React, { Component } from 'react';\r\nimport \"./ButtonNavigation.css\";\r\nimport { withRouter, Link } from 'react-router-dom';\r\n\r\nclass ButtonNavigation extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n activeToggle = (event) => {\r\n // get the clicked element\r\n let clickedButton = event.target;\r\n // grab all of the nav buttons and put them in an array\r\n let navButtons = document.querySelector(\"#ButtonNavigation\").querySelectorAll(\"button\");\r\n // empty the className property for each button\r\n navButtons.forEach((button) => button.className = \"\");\r\n // Assign the active class to the button we clicked\r\n clickedButton.className = \"active\";\r\n }\r\n render() {\r\n return (\r\n
\r\n {this.props.menuButtonTitles.map((title, key) =>\r\n title.toLowerCase() == \"help\" ?\r\n \r\n = 0) ? 'active' : null}\r\n >{title}\r\n \r\n \r\n :\r\n \r\n = 0) ? 'active' : null}\r\n >{title}\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ButtonNavigation);","import React, { Component } from 'react';\r\nimport { Button } from 'react-bootstrap';\r\nimport './NavLogout.css';\r\nclass NavLogout extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default NavLogout;","import React, { Component } from 'react';\r\nimport \"./AgencyList.css\"\r\nimport API from '../../../../util/api/searchPage';\r\n\r\nclass AgencyList extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n agencyList: []\r\n , currentAgency: null\r\n }\r\n }\r\n componentDidMount = () => {\r\n // Get all agencies and set to local state\r\n let agencyList = API.getAgency().then((res) => {\r\n this.setState({ agencyList: res.data });\r\n // Grab the agency selector and give it an on change handler to update Admin Page state when we select it\r\n let agencySelector = document.querySelector(\"#AgencyList\").querySelector(\"select\");\r\n agencySelector.addEventListener(\"change\", this.onAgencySelect);\r\n });\r\n\r\n }\r\n // Fire when you select an agency from the top right\r\n onAgencySelect = () => {\r\n // grab selector element Value\r\n let agency = document.querySelector(\"#AgencyList\").querySelector(\"select\").value;\r\n // Set Admin Page agency state property to the newly selected option\r\n this.props.setAgency(agency);\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default AgencyList;","import React, { Component } from 'react';\r\nimport { Button } from 'react-bootstrap';\r\nimport './Help.css';\r\nclass Help extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Help;","import React, { Component } from 'react';\r\nimport { Dropdown, MenuItem } from 'react-bootstrap';\r\nimport './UserProfile.css';\r\nclass Help extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n return (\r\n
\r\n\r\n \r\n \r\n {this.props.user.firstName} {this.props.user.lastName}\r\n \r\n \r\n {this.props.user.userName}\r\n {this.props.user.email}\r\n User Type: {this.props.user.userType}\r\n \r\n Agency: {this.props.user.agencyName}\r\n \r\n \r\n\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Help;","import React, {Component} from 'react';\r\nimport './Logout.css'\r\nclass Logout extends Component {\r\n constructor(props){\r\n super(props);\r\n }\r\n render(){\r\n return(\r\n
\r\n

{this.props.user.email}

\r\n

{this.props.user.userType}

\r\n {/* This line is on admin Page due to authentication needs*/}\r\n

Logout

\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Logout;","import React, { Component } from 'react';\r\nimport CircularProgressbar from 'react-circular-progressbar';\r\nimport 'react-circular-progressbar/dist/styles.css';\r\nimport { Modal, Button, ButtonGroup } from 'react-bootstrap';\r\nimport moment from 'moment';\r\nimport './TimeClock.css';\r\n\r\n// Style structures\r\nconst ligthBlueStyle = {\r\n path: { stroke: `#5bc0de` },\r\n text: { fill: '#5bc0de', fontSize: '22px' },\r\n}\r\nconst greenStyle = {\r\n path: { stroke: `#5cb85c` },\r\n text: { fill: '#5cb85c', fontSize: '24px' },\r\n}\r\nconst orangeStyle = {\r\n path: { stroke: `#f0ad4e` },\r\n text: { fill: '#f0ad4e', fontSize: '26px' },\r\n}\r\nconst redStyle = {\r\n path: { stroke: `#d9534f` },\r\n text: { fill: '#d9534f', fontSize: '28px' },\r\n}\r\n\r\n\r\nclass UserTimeout extends Component {\r\n constructor(props) {\r\n super(props);\r\n // Set default session length for percentage display\r\n this.sessionLength = 60;\r\n // \r\n this.adjustedExpiration = props.expires_in - 5;\r\n // Setup defait state\r\n this.state = {\r\n // Set time left to be 5 seconds faster than actual expiration\r\n timeLeft: this.adjustedExpiration,\r\n // Set percentage\r\n percentage: ((this.adjustedExpiration / 60) / this.sessionLength) * 100,\r\n // Set default style\r\n progressStyle: {}\r\n }\r\n // Store local copy of this\r\n let self = this;\r\n // Setup a method that runs every second and pass in local this\r\n window.secondTick = setInterval(() => this.tickMethod(self), 1000);\r\n }\r\n componentDidMount = ()=>{\r\n this.tickMethod(this);\r\n }\r\n // Method that runs every second\r\n tickMethod = (self) => {\r\n // Grab current timeleft\r\n let timeLeft = self.state.timeLeft;\r\n // If time is out then clear the clock and logout\r\n if (timeLeft <= 1) {\r\n clearInterval(window.secondTick);\r\n this.props.logout();\r\n }\r\n // 1 min left\r\n else if (timeLeft <= 60 * 1) { this.setState({ progressStyle: redStyle }) }\r\n // 5 min left\r\n else if (timeLeft <= 60 * 5) { this.setState({ progressStyle: orangeStyle }) }\r\n // 10 min left\r\n else if (timeLeft <= 60 * 10) { this.setState({ progressStyle: greenStyle }) }\r\n // 15 min left\r\n else if (timeLeft <= 60 * 15) { \r\n this.setState({ progressStyle: ligthBlueStyle }) }\r\n else {\r\n this.setState({ progressStyle: {} });\r\n }\r\n // grab time left and set clock and percentage\r\n self.props.AuthService.getUser().then(user => {\r\n self.setState({ timeLeft: user.expires_in - 5, percentage: ((user.expires_in / 60) / self.sessionLength) * 100, });\r\n })\r\n }\r\n formatTime = (seconds) => {\r\n let min = Math.floor(seconds / 60);\r\n let sec = Math.round(seconds % 60);\r\n return `${min > 0 ? min : 0}:${sec < 10 ? \"0\" + sec : sec}`;\r\n }\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nexport default UserTimeout;","import React, { Component } from 'react';\r\nimport Icon from './../Icon';\r\nimport ButtonNavigation from './../ButtonNavigation';\r\nimport AgencyList from \"./../AgencyList\";\r\nimport Help from \"./../Help\";\r\nimport NavLogout from \"./../NavLogout\";\r\nimport UserProfile from \"./../UserProfile\";\r\nimport Logout from \"./../Logout\";\r\nimport './Navigation.css';\r\nimport TimeClock from './../TimeClock';\r\nimport AuthService from './../../../../routes/OpenIdLogin/services/AuthService';\r\n\r\nconst dayImage = '/images/dayImage.jpg';\r\nconst nightImage = '/images/nightImage.jpg';\r\n\r\nclass Navigation extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n isNight = function () {\r\n // create Date object for current location\r\n var d = new Date();\r\n // Determine what our offset in utah should be according to daylight savings\r\n let offset = \"-6\"\r\n // Convert time UTC Timezone\r\n var utc = new Date(d.valueOf() + d.getTimezoneOffset() * 60000);\r\n\r\n // Create a new Date object and convert current UTC to Utah time\r\n var nd = new Date(utc.getTime() + (3600000 * offset));\r\n // return true if it is after six and before six in utah\r\n\r\n return nd.getHours() < 18 && nd.getHours() > 5 ? false : true;\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 \r\n
\r\n \r\n {/* Session Time Left: */}\r\n \r\n {this.props.timeClock ?\r\n \r\n : null}\r\n
\r\n
\r\n\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Navigation;","import React, { Component } from 'react';\r\nimport {withRouter} from 'react-router-dom';\r\nimport { Tab, Tabs } from 'react-bootstrap';\r\nimport './TabNavigation.css';\r\n\r\n\r\nclass TabNavigation extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n // When you select a tab it pushes it to the url and sets it as the current key in state\r\n handleSelect = (key) => {\r\n this.props.handleInputChange(`${this.props.routeName}TabKey`,key);\r\n this.props.history.push(`${this.props.match.path}/${this.props.tabs[key].toLowerCase()}`)\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n {/* If there are tabs in the props then create a new tab that will fire the handle select funtion when clicked */}\r\n {Array.isArray(this.props.tabs) ? this.props.tabs.map((tab, key) => ) : null}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(TabNavigation);","import React from 'react';\r\nimport {Redirect } from \"react-router-dom\";\r\n\r\nconst JumpPage = (props) =>( );\r\n\r\nexport default JumpPage;","import React from 'react';\r\nconst TableButton = (props) => (\r\n \r\n);\r\n\r\nexport default TableButton;","import React from 'react';\r\nimport {ListGroup, ListGroupItem } from 'react-bootstrap';\r\n\r\nconst FilterOptions = (props) => (\r\n \r\n \r\n User Status \r\n \r\n \r\n User Status \r\n \r\n \r\n User Status \r\n \r\n \r\n);\r\n\r\nexport default FilterOptions;","import React from 'react';\r\nimport { ListGroup, ListGroupItem } from 'react-bootstrap';\r\n\r\nconst FilterOptions = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n User Status \r\n \r\n \r\n User Status \r\n \r\n \r\n);\r\n\r\nexport default FilterOptions;","import React, { Component } from 'react';\r\nimport \"./Filter.css\"\r\nimport API from '../../../../util/api/searchPage';\r\nimport { Panel } from 'react-bootstrap';\r\nimport TableButton from '../TableSection/TableButton';\r\nimport FilterOptions from './FilterOptions';\r\nimport FilterSubOptions from './FilterSubOptions';\r\n\r\nclass Filter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { headerIconClass: \"fa fa-filter\", subOptionsDisplay:false}\r\n }\r\n exitSubOptions = () =>{\r\n this.setState({headerIconClass:\"fa fa-filter\" , subOptionsDisplay:false});\r\n }\r\n selectSubOptions = () =>{\r\n this.setState({headerIconClass:\"fa fa-chevron-left\", subOptionsDisplay:true});\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Filter \r\n Packets\r\n
\r\n
\r\n \r\n alert(\"Filter Test\")} title=\"Clear\" />\r\n alert(\"Filter Test\")} title=\"Apply\" />\r\n
\r\n
\r\n \r\n {this.state.subOptionsDisplay? :}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Filter;","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, Modal, FormGroup, ControlLabel, Label, Button, Alert } from 'react-bootstrap';\r\nimport Dropzone from 'react-dropzone';\r\nimport S3API from './../util/api/s3';\r\nimport WebTextAPI from './../util/api/webText';\r\nimport { BarLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\n\r\nclass WebTextFileLinks extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n validationObjects: [],\r\n uploading: false,\r\n fileList: []\r\n }\r\n }\r\n componentDidMount = () => {\r\n // TODO Grab All Text Files and establish download links\r\n WebTextAPI.getSourceDocuments(this.props.id).then(({ data }) => {\r\n this.setState({ fileList: data })\r\n })\r\n }\r\n downloadFile = (fileName, name) => {\r\n S3API.getCMSFile(fileName, name)\r\n }\r\n getExtension = (filename) => {\r\n return filename.split('.').pop();\r\n }\r\n completeGuid = (guid, filename) => {\r\n const extension = this.getExtension(filename);\r\n return guid + \".\" + extension;\r\n }\r\n render() {\r\n\r\n\r\n return (\r\n
\r\n {this.state.fileList ? this.state.fileList.map(sourceDocument =>\r\n \r\n ) : null}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default WebTextFileLinks;","import React, { Component } from 'react';\r\nimport WebTextAPI from './../../../../util/api/webText';\r\nimport { Panel } from 'react-bootstrap';\r\nimport './LinkSection.css';\r\nimport WebTextFileLinks from '../../../../components/WebTextFileLinks';\r\n// get the data object and destructure it into title and links list\r\n\r\nclass Help extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n title: \"\",\r\n title2: \"\",\r\n html: \"\",\r\n html2: \"\",\r\n id: \"\",\r\n id2: \"\"\r\n }\r\n\r\n };\r\n componentWillMount = () => {\r\n WebTextAPI.getWebTextByName(\"dashboard_news_alerts\").then(({ data }) => {\r\n if (data)\r\n if (data[0] != null) {\r\n this.setState({ title: data[0].description, html: data[0].value })\r\n this.setState({ id: data[0].id })\r\n }\r\n })\r\n WebTextAPI.getWebTextByName(\"dashboard_links\").then(({ data }) => {\r\n if (data)\r\n if (data[0] != null) {\r\n this.setState({ title2: data[0].description, html2: data[0].value })\r\n this.setState({ id2: data[0].id })\r\n }\r\n })\r\n }\r\n render() {\r\n return (\r\n this.state.title || this.state.title2 ?\r\n
\r\n
\r\n \r\n {this.state.title}\r\n \r\n
\r\n\r\n
\r\n {this.state.id ? : null}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.state.title2}\r\n \r\n
\r\n\r\n
\r\n {this.state.id2 ? : null}\r\n
\r\n
\r\n
\r\n
: null\r\n );\r\n }\r\n}\r\n\r\nexport default Help;","import axios from './apiConfig';\r\n\r\nexport default {\r\n getHistoryForRulePacket: (rulePacketId) => {\r\n return axios.get(`/api/history/${rulePacketId}`);\r\n },\r\n\r\n getIsPartOfFiveYearReview: (rulePacketId) => {\r\n return axios.get(`/api/history/getIsPartOfFiveYearReview/${rulePacketId}`)\r\n }\r\n};","import axios from './apiConfig';\r\nimport UserAPIContainer from './../ApiObjectClasses/UserAPIContainer';\r\n\r\nlet agencyCalls = {\r\n getAllAgencies: () => {\r\n return axios.get(`/api/agency`);\r\n },\r\n updateAgency:(id,agency) =>{\r\n return axios.post(`/api/agency/update/${id}`, agency);\r\n },\r\n getAgencyList: () => {\r\n return axios.get(`/api/agency/list`);\r\n },\r\n getAgencyById:(agencyId)=>{\r\n return axios.get(`/api/agency/${agencyId}`);\r\n },\r\n getPublicAgencyList: () => {\r\n return axios.get(`/api/public/agencies`)\r\n },\r\n createAgency: (agency) => {\r\n return axios.post(`/api/agency`, agency);\r\n }\r\n};\r\n\r\nexport default agencyCalls;","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport './CheckBoxInput.css';\r\n\r\nconst CheckBoxInput = (props) => (\r\n
\r\n {props.inputField.displayName}\r\n \r\n {\r\n let e = { target: { value: !props.parentThis.props.parentState[props.inputField.name], name: props.inputField.name } }\r\n props.parentThis.props.handelInput(e)\r\n }}\r\n value={props.parentThis.props.parentState[props.inputField.name]}\r\n type=\"checkbox\"\r\n className=\"form-control input-md\"\r\n style={{zIndex:0}}\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />\r\n \r\n
\r\n);\r\n\r\n\r\nexport default CheckBoxInput; ","import axios from './apiConfig';\r\n\r\nexport default {\r\n getAllPrograms: () => {\r\n return axios.get(`/api/program`);\r\n },\r\n updateTitle: (programId,program) =>{\r\n return axios.post(`/api/program/update/${programId}`, program);\r\n },\r\n getProgramList: () => {\r\n return axios.get(`/api/program/list`);\r\n },\r\n createProgram: (agencyId, program) =>{\r\n return axios.post(`/api/program/agency/${agencyId}`, program);\r\n },\r\n getProgramListByAgencyId: (agencyId) =>{\r\n return axios.get(`/api/program/list/${agencyId}`)\r\n }\r\n};","import axios from './apiConfig';\r\n\r\nexport default {\r\n getAllliaisons: () => {\r\n return axios.get(`/api/liaison`)\r\n },\r\n getliaisonsList: () => {\r\n return axios.get(`/api/liaison/list`);\r\n },\r\n updateLiaison: (liaisonId,liaison) =>{\r\n return axios.post(`/api/liaison/update/${liaisonId}`, liaison);\r\n },\r\n getliaisonById: (liaisonId) => {\r\n return axios.get(`/api/liaison/${liaisonId}`);\r\n },\r\n addLiaison: (Liaison) => {\r\n return axios.post(`/api/liaison`, Liaison);\r\n },\r\n // CHANGE TO PROGRAM ASSIGNMENT\r\n getLiaisonListByAgencyId: (agencyId) => {\r\n return axios.get(`/api/liaison/list/${agencyId}`)\r\n },\r\n getLiaisonListByProgramId: (programId) => {\r\n return axios.get(`/api/liaison/list/${programId}`)\r\n }\r\n};","import React, { Component } from \"react\";\r\nimport AgencyAPI from './../../util/api/agency';\r\nimport { CheckBoxInput, DropdownInputField, EmailUrl, DefaultInput, Number, PublicCommentPeriod, Upload, PhoneInput, DatePicker, Tags, BlockDisplay, NumberLetter } from './../InputFields';\r\nimport ProgramAPI from './../../util/api/program';\r\nimport RulesAPI from './../../util/api/rules';\r\nimport LiaisonAPI from './../../util/api/liaison';\r\nimport { FormGroup, DropdownButton, MenuItem, InputGroup, InputGroupAddon, ControlLabel, Dropdown, FormControl } from 'react-bootstrap';\r\nimport program from \"./../../util/api/program\";\r\n\r\nfunction sortedRules(rules){\r\n rules.sort((a,b)=>natSort(a.num, b.num))\r\n return rules;\r\n}\r\nfunction natSort(as, bs){\r\n var a, b, a1, b1, i= 0, L, rx= /(\\d+)|(\\D+)/g, rd= /\\d/;\r\n if(isFinite(as) && isFinite(bs)) return as - bs;\r\n a= String(as).toLowerCase();\r\n b= String(bs).toLowerCase();\r\n if(a=== b) return 0;\r\n if(!(rd.test(a) && rd.test(b))) return a> b? 1: -1;\r\n a= a.match(rx);\r\n b= b.match(rx);\r\n L= a.length> b.length? b.length: a.length;\r\n while(i < L){\r\n a1= a[i];\r\n b1= b[i++];\r\n if(a1!== b1){\r\n if(isFinite(a1) && isFinite(b1)){\r\n if(a1.charAt(0)=== \"0\") a1= \".\" + a1;\r\n if(b1.charAt(0)=== \"0\") b1= \".\" + b1;\r\n return a1 - b1;\r\n }\r\n else return a1> b1? 1: -1;\r\n }\r\n }\r\n return a.length - b.length;\r\n}\r\n\r\nclass NewRuleInputs extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n agencies: [],\r\n programs: [],\r\n rules: [],\r\n liaisons: []\r\n }\r\n }\r\n handelInput = (name, value) => {\r\n this.props.handelInput({ name, value })\r\n }\r\n\r\n inputType = (inputField) => {\r\n switch (inputField.type) {\r\n case 'dropdown':\r\n return ;\r\n case 'email-url':\r\n return ;\r\n case 'upload':\r\n return ;\r\n case 'date':\r\n return ;\r\n case 'number':\r\n return ;\r\n case 'public_comment_period':\r\n return ;\r\n case 'phone':\r\n return ;\r\n case 'checkbox':\r\n return ;\r\n case 'tags':\r\n return ;\r\n case 'blockDisplay':\r\n return ;\r\n case 'numberLetter':\r\n return ;\r\n default:\r\n return ;\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n {this.props.inputFields\r\n .map((inputField, i) => (\r\n \r\n {this.inputType(inputField)}\r\n \r\n ))}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default NewRuleInputs;","import React, { Component } from \"react\";\r\nimport {\r\n FormControl,\r\n InputGroup,\r\n ControlLabel,\r\n Button,\r\n Modal,\r\n} from \"react-bootstrap\";\r\nimport NewRuleInputs from \"./NewRuleInputs\";\r\nimport \"./DropDown.css\";\r\n\r\nlet ajaxPopulations = (parentState, inputField) => {\r\n switch (inputField.name) {\r\n case \"AgencyName\":\r\n return parentState.agencies.map((option, key) => {\r\n return option.id ? (\r\n \r\n ) : null;\r\n });\r\n case \"ProgramName\":\r\n return parentState.programs.map((option, key) => {\r\n return (\r\n \r\n );\r\n });\r\n case \"RuleVersionName\":\r\n return parentState.rules.map((option, key) => {\r\n return (\r\n \r\n );\r\n });\r\n case \"LiaisonName\":\r\n return parentState.liaisons.map((option, key) => {\r\n return (\r\n \r\n );\r\n });\r\n default:\r\n return inputField.options.map((option, key) => {\r\n return ;\r\n });\r\n }\r\n};\r\n\r\nclass DropDown extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n show: false,\r\n };\r\n }\r\n handleClose = () => {\r\n this.setState({ show: !this.state.show });\r\n };\r\n componentDidMount = () => {};\r\n shouldComponentRender = () => {\r\n if (this.props.inputField.name == \"ProgramName\") {\r\n if (this.props.parentThis.props.parentState[\"AgencyName\"] != null) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n if (this.props.inputField.name == \"RuleVersionName\") {\r\n if (this.props.parentThis.props.parentState[\"ProgramName\"] != null) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else if (this.props.inputField.name == \"LiaisonName\") {\r\n if (this.props.parentThis.props.parentState[\"ProgramName\"] != null) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return true;\r\n }\r\n };\r\n shouldDisable = () => {\r\n if (this.props.dataIn && this.props.inputField.name != \"LiaisonName\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n changeRuleAction = (type) => {\r\n // setup new rule variable\r\n this.props.handelInput({ target: { name: \"ruleAction\", value: type } });\r\n };\r\n createNewRule = () => {\r\n // take off new rule variable\r\n this.props.handelInput({\r\n target: { name: \"ruleAction\", value: \"New Rule\" },\r\n });\r\n let newRuleFields = this.props.inputField.newRuleInputFields;\r\n // unset all fields for new rules\r\n newRuleFields.forEach((inputField) => {\r\n this.props.handelInput({\r\n target: { name: inputField.name, value: null },\r\n });\r\n });\r\n\r\n this.props.handelInput({\r\n target: { name: \"RuleVersionName\", value: null },\r\n });\r\n this.props.handelInput({ target: { name: \"RuleVersionId\", value: null } });\r\n this.props.handelInput({\r\n target: { name: \"additionalInformation\", value: \"\" },\r\n });\r\n this.props.handelInput({\r\n target: { name: \"additionalInformation\", value: \"\" },\r\n });\r\n };\r\n renderTypeButtons = () => {\r\n let object = {\r\n \"Standard Rule Filing\": (\r\n
e.preventDefault()}>\r\n this.createNewRule()}\r\n bsStyle={\r\n this.props.ruleAction == \"New Rule\" ? \"success\" : \"primary\"\r\n }\r\n >\r\n New Rule\r\n \r\n this.changeRuleAction(\"Repeal\")}\r\n bsStyle={this.props.ruleAction == \"Repeal\" ? \"success\" : \"primary\"}\r\n >\r\n Repeal\r\n \r\n this.changeRuleAction(\"Repeal and Reenact\")}\r\n bsStyle={\r\n this.props.ruleAction == \"Repeal and Reenact\"\r\n ? \"success\"\r\n : \"primary\"\r\n }\r\n >\r\n Repeal and Reenact\r\n \r\n this.changeRuleAction(\"Amendment\")}\r\n bsStyle={\r\n this.props.ruleAction == \"Amendment\" ? \"success\" : \"primary\"\r\n }\r\n >\r\n Amendment\r\n \r\n this.changeRuleAction(\"Nonsubstantive\")}\r\n bsStyle={\r\n this.props.ruleAction == \"Nonsubstantive\" ? \"success\" : \"primary\"\r\n }\r\n >\r\n Nonsubstantive\r\n \r\n {this.props.parentState.AgencyName ==\r\n \"School and Institutional Trust Lands\" ? (\r\n \r\n \r\n \r\n Warning\r\n \r\n \r\n This type should be used for emergency situations only.\r\n \r\n \r\n \r\n Close\r\n \r\n \r\n \r\n {\r\n this.handleClose();\r\n this.changeRuleAction(\"Expedited\");\r\n }}\r\n bsStyle={\r\n this.props.ruleAction == \"Expedited\" ? \"success\" : \"primary\"\r\n }\r\n >\r\n Expedited\r\n \r\n \r\n ) : null}\r\n
\r\n ),\r\n \"Emergency Rule Filing\": (\r\n
e.preventDefault()}>\r\n this.createNewRule()}\r\n bsStyle={\r\n this.props.ruleAction == \"New Rule\" ? \"success\" : \"primary\"\r\n }\r\n >\r\n New Rule\r\n \r\n this.changeRuleAction(\"Amendment\")}\r\n bsStyle={\r\n this.props.ruleAction == \"Amendment\" ? \"success\" : \"primary\"\r\n }\r\n >\r\n Amendment\r\n \r\n
\r\n ),\r\n \"MISC Rule Filing\": (\r\n
e.preventDefault()}>\r\n this.changeRuleAction(\"Repeal\")}\r\n bsStyle={this.props.ruleAction == \"Repeal\" ? \"success\" : \"primary\"}\r\n >\r\n Repeal\r\n \r\n this.changeRuleAction(\"Amendment\")}\r\n bsStyle={\r\n this.props.ruleAction == \"Amendment\" ? \"success\" : \"primary\"\r\n }\r\n >\r\n Amendment\r\n \r\n
\r\n ),\r\n };\r\n return object[this.props.secondHeading];\r\n };\r\n render() {\r\n return this.shouldComponentRender() ? (\r\n
\r\n e.preventDefault()}>\r\n {this.props.inputField.displayName}{\" \"}\r\n {this.props.inputField.name == \"RuleVersionName\"\r\n ? this.renderTypeButtons()\r\n : null}\r\n \r\n {this.props.inputField.name == \"RuleVersionName\" &&\r\n this.props.ruleAction == \"New Rule\" ? (\r\n \r\n ) : (\r\n \r\n {\r\n if (e?.target != null) {\r\n if (e.target.querySelector(\".disable\") != null) {\r\n e.target.querySelector(\".disable\").disabled = true;\r\n }\r\n }\r\n }}\r\n value={\r\n this.props.parentThis.props.parentState[\r\n this.props.inputField.name\r\n ]\r\n }\r\n onChange={(e) => {\r\n // If props.parentThis is a title then grab the agencyId by filtering through the agencies in the state and grabing the id of the one that has the same name sa the targets value\r\n let id;\r\n // Only allow a select on elements that have and id (Do not let default be selected)\r\n if (!(e.target.value === \"\")) {\r\n switch (this.props.inputField.name) {\r\n case \"AgencyName\":\r\n id = this.props.parentThis.state.agencies.filter(\r\n (agency) => agency.name === e.target.value\r\n )[0].id;\r\n this.props.agencySelected(id);\r\n break;\r\n case \"ProgramName\":\r\n id = this.props.parentThis.state.programs.filter(\r\n (programs) => programs.name === e.target.value\r\n )[0].id;\r\n this.props.programSelected(id);\r\n break;\r\n case \"RuleVersionName\":\r\n id = this.props.parentThis.state.rules.filter(\r\n (rule) => rule.name === e.target.value\r\n )[0].id;\r\n this.props.ruleSelected(id);\r\n break;\r\n case \"LiaisonName\":\r\n id = this.props.parentThis.state.liaisons.filter(\r\n (liaison) => liaison.name === e.target.value\r\n )[0].id;\r\n this.props.liaisonSelected(id);\r\n break;\r\n default:\r\n break;\r\n }\r\n this.props.parentThis.props.handelInput(e, id);\r\n }\r\n }}\r\n componentClass=\"select\"\r\n placeholder=\"select\"\r\n required={this.props.inputField.required}\r\n >\r\n {/* Sets up state to a default drop down option */}\r\n {`-- SELECT A ${this.props.inputField.displayName.toUpperCase()} --`}\r\n )\r\n {/* If this.props.parentThis dropdown is for an agency\"ProgramName listing\" than make the api call to get the list */}\r\n {ajaxPopulations(\r\n this.props.parentThis.state,\r\n this.props.inputField\r\n )}\r\n \r\n \r\n )}\r\n
\r\n ) : null;\r\n }\r\n}\r\n\r\nexport default DropDown;\r\n","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\n\r\nclass EmailUrl extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n label: \"URL or Email\",\r\n pattern: null,\r\n message:\"Invalid\"\r\n }\r\n }\r\n urlPattern=\"^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$\";\r\n emailPattern=\"[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,63}$\";\r\n impossiblePattern=null;\r\n urlRegex = new RegExp(/^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/g);\r\n emailRegex = new RegExp(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,63}$/);\r\n\r\n changeHandler = (e) => {\r\n\r\n const { value } = e.target;\r\n const isUrl = value.match(this.urlRegex);\r\n if (isUrl == null) {\r\n const isEmail = value.match(this.emailRegex);\r\n if (isEmail == null) {\r\n this.setState({ label: \"URL or Email\", pattern:this.emailPattern, message:\"Please enter a valid url or email\"});\r\n } else {\r\n this.setState({ label: \"EMAIL\", pattern:this.emailPattern, message:\"Invalid Email\" });\r\n }\r\n } else {\r\n this.setState({ label: \"URL\", pattern:this.urlPattern, message:\"Invalid URL\" });\r\n }\r\n this.props.parentThis.props.handelInput(e);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n \r\n
\r\n {this.state.label}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EmailUrl; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\n\r\n\r\nconst DefaultInput = (props) => {\r\n return (\r\n
\r\n {props.inputField.displayName}\r\n \r\n { props.parentThis.props.handelInput(e) }}\r\n value={props.parentState[props.inputField.name]}\r\n type={props.inputField.type}\r\n pattern={props.inputField.pattern}\r\n title={props.inputField.validationMessage}\r\n className=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />\r\n \r\n
)\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport program from '../../util/api/program';\r\n\r\n\r\n\r\nconst DefaultInput = (props) => {\r\n\r\n\r\n let formType = (parentThis, inputField) => {\r\n switch (inputField.displayName) {\r\n case \"Agency Number\":\r\n return (\r\n {\r\n // Parse value into an int to remove usless 00s at the begining\r\n let incomingValue = parseInt(e.target.value);\r\n // check to see if the number is in the current agency list\r\n let AgencyInList = parentThis.state.agencies.filter((agency) => parseInt(agency.number) === incomingValue);\r\n if (props.row) {\r\n if (props.row[props.inputField.name] == incomingValue) {\r\n // If it is the same as the current number dont freak out \r\n AgencyInList = [];\r\n }\r\n }\r\n // validatation test It is greater than 0 and not in the current agency list\r\n if (e.target.value > 0 && !AgencyInList.length) {\r\n // sets to valid by removing all custom validation\r\n e.target.setCustomValidity(\"\");\r\n e.target.value = parseInt(e.target.value);\r\n // addes this value to the state submission object in input\r\n props.parentThis.props.handelInput(e)\r\n }\r\n else {\r\n props.parentThis.props.handelInput(e)\r\n // If it is not valid say that it is already in use\r\n e.target.setCustomValidity(\"Agency Number already in use\");\r\n }\r\n\r\n }}\r\n type=\"text\"\r\n class=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`}\r\n pattern />\r\n\r\n );\r\n case \"Title Number\":\r\n return (\r\n {\r\n // Parse value into an int to remove usless 00s at the begining\r\n let incomingValue = parseInt(e.target.value);\r\n // Get Selected Agency\r\n let agencyId = parentThis.props.parentState.AgencyId;\r\n // check to see if the number is in the current agency list\r\n let AgencySelected = parentThis.state.agencies.filter((agency) => parseInt(agency.id) === agencyId)[0];\r\n\r\n if (props.row ? props.row[\"Number\"] == incomingValue : false) {\r\n // If it is the same as the current number dont freak out \r\n props.parentThis.props.handelInput(e)\r\n }\r\n else if (agencyId != null) {\r\n let inProgramList = AgencySelected.hidden_Programs.filter(program => program.num == incomingValue);\r\n\r\n // validatation test It is greater than 0 and not in the current agency list\r\n if (e.target.value > 0 && !inProgramList.length && AgencySelected != null) {\r\n // sets to valid by removing all custom validation\r\n e.target.setCustomValidity(\"\");\r\n e.target.value = parseInt(e.target.value);\r\n // addes this value to the state submission object in input\r\n props.parentThis.props.handelInput(e)\r\n }\r\n else {\r\n props.parentThis.props.handelInput(e)\r\n // If it is not valid say that it is already in use\r\n e.target.setCustomValidity(\"Title Number already in use for \" + AgencySelected.name);\r\n }\r\n }\r\n else {\r\n // e.target.value = \"\";\r\n e.target.setCustomValidity(\"Please Select an Agency First\");\r\n e.target.value = \"\";\r\n e.target.reportValidity();\r\n props.parentThis.props.handelInput(e)\r\n // If it is not valid say that it is already in use\r\n }\r\n\r\n }}\r\n type=\"text\"\r\n class=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`}\r\n pattern />\r\n\r\n );\r\n default:\r\n return { props.parentThis.props.handelInput(e) }}\r\n type={props.inputField.type}\r\n class=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />;\r\n }\r\n }\r\n\r\n\r\n return (\r\n
\r\n {props.inputField.displayName}\r\n \r\n {formType(props.parentThis, props.inputField)}\r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport './PublicCommentPeriod.css';\r\n\r\nconst min = 30;\r\nconst max = 113;\r\nconst defaultValue = 30;\r\nconst DefaultInput = (props) => {\r\n return (\r\n
\r\n {props.inputField.displayName}Filing Deadlines\r\n
\r\n ({min}-{max})\r\n \r\n { props.parentThis.props.handelInput(e) }}\r\n value={props.parentThis.props.parentState[props.inputField.name]}\r\n type=\"number\"\r\n className=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />\r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel, Pagination } from 'react-bootstrap';\r\n\r\nlet active = 7;\r\nlet items = [];\r\nfor (let number = 1; number <= 10; number++) {\r\n items.push(\r\n {number}\r\n );\r\n}\r\n\r\n\r\nconst DefaultInput = (props) => {\r\n let test = props.rules.map(rule => {rule.num})\r\n return (\r\n
\r\n {props.inputField.displayName}({props.parentState.Program})\r\n\r\n
\r\n\r\n {props.rules.map(rule => {rule.num})}\r\n
)\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, ControlLabel, Label, Button, Alert } from 'react-bootstrap';\r\nimport Dropzone from 'react-dropzone';\r\nimport './Upload.css';\r\nimport S3API from './../../util/api/s3';\r\nimport { BarLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\n\r\nclass Upload extends Component {\r\n constructor() {\r\n super()\r\n this.state = { file: null, fadeIn: false, fadeOut: false, errorMessage: \"Invalid File\" }\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n color: #115fa4;\r\n margin-bottom:195px;\r\n width: 8em;\r\n `;\r\n return override;\r\n }\r\n\r\n handleChanges(file) {\r\n let fd = new FormData();\r\n fd.append('file', file)\r\n this.setState({ uploading: true });\r\n S3API.uploadFile(fd, file.name).then(({ data }) => {\r\n // make screen changes\r\n let tempGUID = { target: { name: \"tempGUID\", value: data } }\r\n this.props.parentThis.props.handelInput(tempGUID)\r\n let fileName = { target: { name: this.props.inputField.name, value: file } }\r\n this.props.parentThis.props.handelInput(fileName)\r\n this.setState({ uploading: false });\r\n }\r\n )\r\n\r\n\r\n\r\n }\r\n downloadFile = () => {\r\n S3API.getFile(this.props.tempGUID, this.props.value.name)\r\n }\r\n onDrop(files, rejectedFiles) {\r\n if (!rejectedFiles.length) {\r\n if (files.length > 1) {\r\n // Setup animation to bring in the active class wait 3000 seconds and add in the inactive class, then at 5 seconds both classes are taken off\r\n this.setState({ fadeIn: true })\r\n this.setState({errorMessage:\"You may only upload one file at a time.\"})\r\n setTimeout(() => {\r\n this.setState({ fadeOut: true })\r\n setTimeout(() => this.setState({ fadeOut: false }), 2000)\r\n }, 3000)\r\n setTimeout(() => this.setState({ fadeIn: false }), 5000)\r\n }\r\n else {\r\n this.handleChanges(files[0]);\r\n }\r\n } else {\r\n this.setState({ fadeIn: true })\r\n this.setState({errorMessage:\"Only .docx files may be uploaded\"})\r\n setTimeout(() => {\r\n this.setState({ fadeOut: true })\r\n setTimeout(() => this.setState({ fadeOut: false }), 2000)\r\n }, 3000)\r\n setTimeout(() => this.setState({ fadeIn: false }), 5000)\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.setState({\r\n file: null\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n {!this.state.uploading ?\r\n
\r\n\r\n Rule Proposal: {this.props.value ? {`${this.props.value.name}`} : null}\r\n \r\n \r\n {\r\n this.props.value ?\r\n \r\n :\r\n \r\n }\r\n\r\n \r\n
\r\n :\r\n
\r\n Uploading file..\r\n \r\n \r\n
\r\n }\r\n {this.state.errorMessage}\r\n
\r\n
\r\n
)\r\n }\r\n}\r\nexport default Upload; ","import React from 'react';\r\nimport { FormControl,InputGroup,ControlLabel } from 'react-bootstrap';\r\n\r\n\r\nconst PhoneInput = (props) => (\r\n
\r\n {props.inputField.displayName}\r\n \r\n { props.parentThis.props.handelInput(e) }}\r\n value={props.parentThis.props.parentState[props.inputField.name]}\r\n type=\"tel\"\r\n title=\"Format: 123-456-7890\"\r\n pattern=\"[0-9]{3}-[0-9]{3}-[0-9]{4}\"\r\n class=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.name}`} />\r\n \r\n
\r\n);\r\n\r\n\r\nexport default PhoneInput; ","import React, {Component} from 'react';\r\nimport $ from 'jquery';\r\nimport Datetime from 'react-datetime';\r\nimport 'react-datetime/css/react-datetime.css';\r\nimport './Calendar.css';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport moment from 'moment';\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { daysUntil: \"-\" };\r\n }\r\n\r\n calculateDaysLeft = (momentObject) => {\r\n let today = moment();\r\n let daysUntil = momentObject.diff(today, 'days');\r\n this.setState({daysUntil});\r\n }\r\n \r\n render(){\r\n $(\".readonly\").keydown(function (e) {\r\n e.preventDefault();\r\n });\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n \r\n
\r\n {document.querySelector(\".rdt input\").click();}} readOnly value={this.props.value} />\r\n \r\n { this.calculateDaysLeft(momentObject); let event = { target: { name: this.props.inputField.name, value: momentObject.format('MM/DD/YYYY') } }; this.props.handelInput(event) }} />\r\n
\r\n {this.state.daysUntil} days until.\r\n
\r\n
\r\n )\r\n };\r\n}\r\n\r\nexport default Calendar; ","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport './CheckBoxInput.css';\r\nimport Tags from 'react-tagging-input';\r\n\r\n// onChange={(e) => { props.parentThis.props.handelInput(e) }}\r\n// value={props.parentThis.props.parentState[props.inputField.name]}\r\n\r\nclass TagsInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n tags: props.parentThis.props.parentState[props.inputField.name] != null ? this.convertStringToList(props.parentThis.props.parentState[props.inputField.name]) : []\r\n }\r\n }\r\n\r\n convertListToString = (list) => {\r\n if (list == null) {\r\n return null;\r\n }\r\n return list.join(\",\");\r\n }\r\n\r\n convertStringToList = (string) => {\r\n if (string == null) {\r\n return [];\r\n }\r\n return string.split(\",\");\r\n }\r\n\r\n onTagAdded = (tag) => {\r\n let tags = ([...this.convertStringToList(this.props.additionalInformation), tag])\r\n // let e = { target: { name: this.props.inputField.name, value: this.this.convertListToString(tags) } }\r\n this.props.updateCitations(this.convertListToString(tags))\r\n }\r\n\r\n onTagRemoved = (tag, index) => {\r\n let tags = this.convertStringToList(this.props.additionalInformation).filter((tag, i) => i !== index);\r\n // let e = { target: { name: this.props.inputField.name, value: this.this.convertListToString(tags) } }\r\n this.props.updateCitations(this.convertListToString(tags))\r\n }\r\n render() {\r\n\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default TagsInput; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport './NumberLetterInput.css'\r\n\r\n\r\nconst DefaultInput = (props) => {\r\n return (\r\n
\r\n {props.inputField.displayName}\r\n \r\n {\r\n let { value } = e.target;\r\n let ruleNums = props.rules.filter(rule => rule.num == value);\r\n if (ruleNums.length) {\r\n // trigger html validation that this rule number already exists\r\n e.target.value = \"\";\r\n props.parentThis.props.handelInput(e)\r\n let paginationList = e.target.parentElement.parentElement.parentElement.parentElement.querySelector(\".pagination\");\r\n let listItems = paginationList.querySelectorAll(\"li\");\r\n for (let i = 0; i < listItems.length; i++) {\r\n const li = listItems[i];\r\n const link = li.querySelector(\"a\")\r\n if (link.text == value) {\r\n link.classList.add(\"danger\");\r\n setTimeout(() => link.classList.remove(\"danger\"), 2000)\r\n }\r\n\r\n }\r\n e.target.focus();\r\n }\r\n }}\r\n onChange={(e) => {\r\n let value = e.target.value;\r\n let valid = false;\r\n if (value) {\r\n let validPortion = value.match(props.inputField.pattern);\r\n if (validPortion) {\r\n valid = validPortion[0] == value\r\n }\r\n if (valid) {\r\n props.parentThis.props.handelInput(e)\r\n }\r\n } else {\r\n props.parentThis.props.handelInput(e)\r\n }\r\n }}\r\n value={props.parentState[props.inputField.name]}\r\n type={props.inputField.type}\r\n pattern={props.inputField.pattern}\r\n title={props.inputField.validationMessage}\r\n className=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />\r\n \r\n
)\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React, { Component } from 'react';\r\nimport Datetime from 'react-datetime';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport moment from 'moment';\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Date1 from './Date1';\r\nimport Date2 from './Date2';\r\nimport \"./DatesContainer.css\";\r\n\r\nclass DatesContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { date1: new Date(), date2: new Date(), open: false };\r\n }\r\n componentDidMount = () => {\r\n let event = { target: { name: this.props.inputField.date1.name, value: moment(new Date()).format('MM/DD/YYYY') } };\r\n this.props.handelInput(event);\r\n }\r\n render() {\r\n return this.props.inputField.date1 && this.props.inputField.date2 ?\r\n
\r\n
\r\n {this.props.inputField.date1.displayName}\r\n {\r\n this.setState({ date1: dateObject });\r\n if (moment(dateObject).isSame(moment(this.state.date2)) || moment(dateObject).isAfter(moment(this.state.date2))) {\r\n this.setState({ date2: dateObject.addDays(1) });\r\n } else if (moment(dateObject).add(120, \"d\").isBefore(moment(this.state.date2))) {\r\n this.setState({ date2: dateObject.addDays(120) });\r\n }\r\n let event = { target: { name: this.props.inputField.date1.name, value: moment(dateObject).format('MM/DD/YYYY') } };\r\n this.props.handelInput(event);\r\n }} />\r\n
\r\n
\r\n {this.props.inputField.date2.displayName}\r\n {this.state.date1 ? moment(this.state.date1.addDays(120)).format('MM/DD/YYYY') : null}\r\n (The Effective End Date is 120 after the Effective Date)\r\n
\r\n
\r\n : \"invalid type\";\r\n }\r\n}\r\n\r\nexport default DatesContainer;","import React, { Component } from 'react';\r\nimport $ from 'jquery';\r\nimport Datetime from 'react-datetime';\r\nimport 'react-datetime/css/react-datetime.css';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport moment from 'moment';\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { daysUntil: \"-\" };\r\n }\r\n\r\n calculateDaysLeft = (momentObject) => {\r\n let today = moment();\r\n let daysUntil = momentObject.diff(today, 'days');\r\n this.setState({ daysUntil });\r\n }\r\n\r\n render() {\r\n $(\".readonly\").keydown(function (e) {\r\n e.preventDefault();\r\n });\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n { document.querySelector(\".rdt input\").click(); }} readOnly value={this.props.value} />\r\n \r\n {\r\n this.calculateDaysLeft(momentObject);\r\n let event = { target: { name: this.props.inputField.name, value: momentObject.format('MM/DD/YYYY') } };\r\n this.props.handelInput(event)\r\n }\r\n } />\r\n
\r\n )\r\n };\r\n}\r\n\r\nexport default Calendar; ","import React, { Component } from 'react';\r\nimport $ from 'jquery';\r\nimport Datetime from 'react-datetime';\r\nimport 'react-datetime/css/react-datetime.css';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport moment from 'moment';\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { daysUntil: \"-\" };\r\n }\r\n\r\n calculateDaysLeft = (momentObject) => {\r\n let today = moment();\r\n let daysUntil = momentObject.diff(today, 'days');\r\n this.setState({ daysUntil });\r\n }\r\n\r\n render() {\r\n $(\".readonly\").keydown(function (e) {\r\n e.preventDefault();\r\n });\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n { document.querySelector(\".rdt input\").click(); }} readOnly value={this.props.value} />\r\n \r\n {\r\n this.calculateDaysLeft(momentObject);\r\n let event = { target: { name: this.props.inputField.name, value: momentObject.format('MM/DD/YYYY') } };\r\n this.props.handelInput(event)\r\n }\r\n } />\r\n
\r\n )\r\n };\r\n}\r\n\r\nexport default Calendar; ","import React, { Component } from 'react';\r\nimport AgencyAPI from './../../util/api/agency';\r\nimport { CheckBoxInput, DropdownInputField, EmailUrl, DefaultInput, Number, PublicCommentPeriod, Upload, PhoneInput, DatePicker, Tags, DatesContainer } from './../InputFields';\r\nimport ProgramAPI from './../../util/api/program';\r\nimport RulesAPI from './../../util/api/rules';\r\nimport LiaisonAPI from './../../util/api/liaison';\r\nimport { FormGroup, DropdownButton, MenuItem, InputGroup, InputGroupAddon, ControlLabel, Dropdown, FormControl } from 'react-bootstrap';\r\nimport program from \"./../../util/api/program\";\r\n\r\n\r\nclass Input extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n agencies: [],\r\n programs: [],\r\n rules: [],\r\n liaisons: []\r\n }\r\n }\r\n componentWillMount = () => this.getLists();\r\n componentDidUpdate = () => {\r\n if (this.props.agencyUpdated) {\r\n this.props.agencyFlag();\r\n this.agencySelected(this.props.agencyId, this.props.programId, this.props.programName);\r\n }\r\n }\r\n handelInput = (name, value) => {\r\n this.props.handelInput({ name, value })\r\n }\r\n getLists = () => {\r\n AgencyAPI.getAgencyList().then((results) => {\r\n let agencies = results.data;\r\n this.setState({ agencies });\r\n })\r\n if (this.props.parentState.AgencyId) {\r\n this.agencySelected(this.props.parentState.AgencyId)\r\n }\r\n if (this.props.parentState.ProgramId) {\r\n this.programSelected(this.props.parentState.ProgramId)\r\n }\r\n }\r\n agencySelected = async (agencyId, programId, programName) => {\r\n this.props.updateAgencyId(agencyId);\r\n let programsLength = this.state.programs.length;\r\n let programs = [];\r\n if (this.props.noProgramCall != true) {\r\n\r\n await ProgramAPI.getProgramListByAgencyId(agencyId).then((results) => {\r\n // if the results are not null for the programs then populate state variables\r\n if (!(results.data[0] == null)) {\r\n programs = results.data;\r\n let id = programs[0].id;\r\n this.props.updateProgramId(programId || id);\r\n // Change what shows up in the select box\r\n this.props.handleStateChange(\"ProgramNameId\", programId || programs[0].id);\r\n this.props.handleStateChange(\"ProgramName\", programName || programs[0].name);\r\n this.programSelected(programId || programs[0].id);\r\n }\r\n else {\r\n this.props.updateProgramId(0);\r\n }\r\n this.setState({ programs });\r\n })\r\n if (programsLength > 0) {\r\n this.programSelected(programs[0] ? programs[0].id : 0)\r\n }\r\n }\r\n }\r\n\r\n programSelected = (programId) => {\r\n this.props.updateProgramId(programId);\r\n if (this.props.noLiasionCall != true) {\r\n RulesAPI.getCurrentRules(programId).then((results) => {\r\n let rules = [];\r\n // if the results are not null for the programs then populate state variables\r\n if (!(results.data[0] == null)) {\r\n\r\n // add in rule reference to drop down UTAH SPECIFIC\r\n if(Array.isArray(results.data)){\r\n results.data.forEach(rule => rule.name = `R${rule.programNum}-${rule.num} ${rule.name}`);\r\n }\r\n rules = results.data;\r\n let id = rules[0].id;\r\n this.props.updateruleVersionId(id);\r\n this.props.updateCitations(rules[0].additionalInformation)\r\n this.props.handleStateChange(\"RuleVersionId\", rules[0].id);\r\n this.props.handleStateChange(\"RuleVersionName\", rules[0].name);\r\n }\r\n else {\r\n // If it is null (no programs) grab the standard blank\r\n this.props.updateruleVersionId(0);\r\n }\r\n this.setState({ rules });\r\n // TODO CHANGE liaisons TO BE SET BY PROGRAM ASSIGNMENT\r\n LiaisonAPI.getLiaisonListByProgramId(this.props.programId).then((results) => {\r\n let liaisons = results.data;\r\n this.setState({ liaisons });\r\n })\r\n })\r\n }\r\n }\r\n ruleSelected = (ruleVersionId) => {\r\n this.props.updateruleVersionId(ruleVersionId);\r\n let rule = this.state.rules.filter(rule => rule.id == ruleVersionId);\r\n this.props.updateCitations(rule[0].additionalInformation)\r\n }\r\n liaisonSelected = (LiaisonId) => {\r\n this.props.updateLiaisonId(LiaisonId)\r\n }\r\n\r\n inputType = (inputField) => {\r\n switch (inputField.type) {\r\n case 'dropdown':\r\n return ;\r\n case 'email-url':\r\n return ;\r\n case 'upload':\r\n return ;\r\n case 'date':\r\n return ;\r\n case 'dates':\r\n return \r\n case 'number':\r\n return ;\r\n case 'public_comment_period':\r\n return ;\r\n case 'phone':\r\n return ;\r\n case 'checkbox':\r\n return ;\r\n case 'tags':\r\n return ;\r\n default:\r\n return ;\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n {this.props\r\n .inputFields\r\n .map((inputField, i) => (\r\n \r\n {this.inputType(inputField)}\r\n \r\n ))}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Input;","import React, { Component } from 'react';\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n Panel,\r\n Modal,\r\n Button,\r\n FormGroup,\r\n Label,\r\n InputGroup,\r\n InputGroupAddon,\r\n Input,\r\n ControlLabel\r\n} from 'react-bootstrap';\r\nimport { InputMapper } from './../InputMapper';\r\nimport './FormModal.css';\r\n\r\n\r\n// TODO Tie state to form, update using the updateInputHandler, pass into inputFields\r\nclass PacketModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n\r\n componentDidMount = () => {\r\n // Create Input Values in state for each Input if an options list assign the first variable in the options list\r\n this.props.inputFields.forEach((inputField) => {\r\n let stateValue = null;\r\n if (this.props.editModal) {\r\n stateValue = this.props.row[inputField.editValueName]\r\n if (stateValue == \"Robert\") {\r\n this.setState({ AgencyName: this.props.row[inputField.editValueName] });\r\n this.setState({ AgencyId: this.props.row.hidden_Agency_Id })\r\n }\r\n switch (inputField.displayName) {\r\n case \"Agency\":\r\n this.setState({ AgencyName: this.props.row[inputField.editValueName] });\r\n this.setState({ AgencyId: this.props.row.hidden_Agency_Id })\r\n break;\r\n case \"Title\":\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n if (inputField.type == \"email-url\") {\r\n let typeName = inputField.type + \"-type\";\r\n this.setState({ [inputField.type]: stateValue })\r\n this.setState({ [typeName]: \"email\" })\r\n }\r\n else {\r\n this.setState({ [inputField.name]: inputField.options ? inputField.options[0] : stateValue })\r\n }\r\n })\r\n }\r\n updateAgencyId = (AgencyId) => {\r\n if (AgencyId == null) {\r\n AgencyId = 0;\r\n }\r\n this.setState({ AgencyId })\r\n }\r\n updateProgramId = (ProgramId) => {\r\n if (ProgramId == null) {\r\n ProgramId = 0;\r\n }\r\n this.setState({ ProgramId });\r\n }\r\n handleStateChange = (name, value) => {\r\n this.setState({ [name]: value });\r\n}\r\n // Update state with inputs\r\n handelInput = (event, id) => {\r\n let { value, name } = event.target;\r\n this.setState({ [name]: value });\r\n // If there is an id make sure and add that to the state as well.\r\n if (id || id === 0) {\r\n this.setState({ [name + \"Id\"]: id });\r\n }\r\n }\r\n // Assign variable from state\r\n getInput = (name) => {\r\n return this.state[name];\r\n }\r\n noProgramCall = () => {\r\n let containsTitle = this.props.inputFields.filter(input => input.displayName == \"Title\");\r\n return !containsTitle.length > 0;\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {this.props.firstHeading} this.props.hideModal(this.state)} class=\"fa fa-times float-right\">\r\n \r\n \r\n \r\n \r\n
{\r\n if (e.isDefaultPrevented()) {\r\n // handle the invalid form...\r\n } else {\r\n // everything looks good!\r\n e.preventDefault(); //prevent submit\r\n this.props.onSubmit(this.state);\r\n }\r\n }} novalidate>\r\n \r\n \r\n {this.props.secondHeading}\r\n \r\n \r\n {this.props.inputFields ?\r\n \r\n : null}\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\r\nexport default withRouter(PacketModal);","import React, { Component } from 'react';\r\nimport { Tooltip, OverlayTrigger, Button } from 'react-bootstrap';\r\n\r\n\r\nclass TableIcon extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = { iconList: [] }\r\n }\r\n iconTypes = {\r\n proposed: {\r\n fontAwesomeClass: \"fa fa-exclamation-circle\",\r\n colorClass: \"dash-icon-blue\",\r\n tooltipText: \"Proposed\",\r\n button: false\r\n },\r\n final: {\r\n fontAwesomeClass: \"fa fa-check-circle\",\r\n colorClass: \"dash-icon-green\",\r\n tooltipText: \"Final\",\r\n button: false\r\n },\r\n pending: {\r\n fontAwesomeClass: \"fa fa-plus-circle\",\r\n colorClass: \"dash-icon-red\",\r\n tooltipText: \"Pending\",\r\n button: false\r\n },\r\n edit: {\r\n fontAwesomeClass: \"fa fa-edit\",\r\n colorClass: \"\",\r\n tooltipText: \"Edit\",\r\n button: false\r\n },\r\n pdf: {\r\n fontAwesomeClass: \"fa fa-file-pdf-o\",\r\n colorClass: \"\",\r\n tooltipText: \"View PDF\",\r\n button: false\r\n },\r\n html: {\r\n fontAwesomeClass: \"fa fa-file-code-o\",\r\n colorClass: \"\",\r\n tooltipText: \"View HTML\",\r\n button: false\r\n },\r\n history: {\r\n fontAwesomeClass: \"fa fa-history\",\r\n colorClass: \"\",\r\n tooltipText: \"History\",\r\n button: false\r\n },\r\n\r\n reject: {\r\n fontAwesomeClass: \"fa fa-thumbs-o-down\",\r\n colorClass: \"\",\r\n tooltipText: \"Reject\",\r\n button: false\r\n },\r\n approve: {\r\n fontAwesomeClass: \"fa fa-check\",\r\n colorClass: \"\",\r\n tooltipText: \"Approve\",\r\n button: false\r\n },\r\n withdraw: {\r\n fontAwesomeClass: \"fa fa-times-circle\",\r\n colorClass: \"\",\r\n tooltipText: \"Withdraw\",\r\n button: false\r\n },\r\n view: {\r\n fontAwesomeClass: \"fa fa-eye\",\r\n colorClass: \"\",\r\n tooltipText: \"View\",\r\n button: false\r\n },\r\n delete: {\r\n fontAwesomeClass: \"fa fa-trash-o\",\r\n colorClass: \"\",\r\n tooltipText: \"Delete\",\r\n button: false\r\n },\r\n expire: {\r\n fontAwesomeClass: \"fa fa-hourglass\",\r\n colorClass: \"\",\r\n tooltipText: \"Expire\",\r\n button: false\r\n },\r\n create_proposed_rule_packet: {\r\n fontAwesomeClass: \"fa fa-paper-plane\",\r\n colorClass: \"\",\r\n tooltipText: \"Create Proposed Rule Packet\",\r\n button: false\r\n },\r\n non_substantive_changes: {\r\n fontAwesomeClass: \"fa fa fa-wrench\",\r\n colorClass: \"\",\r\n tooltipText: \"Non Stubstantive Changes\",\r\n button: false\r\n },\r\n create_proposed_rule_packet_button: {\r\n fontAwesomeClass: \"fa fa-paper-plane\",\r\n colorClass: \"\",\r\n tooltipText: \"Create Proposed Rule Packet\",\r\n button: true,\r\n buttonFuntionName: \"createProposedRulePacket\"\r\n },\r\n expire_button: {\r\n fontAwesomeClass: \"fa fa-hourglass\",\r\n colorClass: \"\",\r\n tooltipText: \"Expire\",\r\n button: true,\r\n buttonFuntionName: \"expire\"\r\n },\r\n expire_button: {\r\n fontAwesomeClass: \"fa fa-hourglass\",\r\n colorClass: \"\",\r\n tooltipText: \"Expire\",\r\n button: true,\r\n buttonFuntionName: \"expire\"\r\n },\r\n delete_button: {\r\n fontAwesomeClass: \"fa fa-trash-o\",\r\n colorClass: \"\",\r\n tooltipText: \"Delete\",\r\n button: true,\r\n buttonFuntionName: \"delete\"\r\n },\r\n view_button: {\r\n fontAwesomeClass: \"fa fa-eye\",\r\n colorClass: \"\",\r\n tooltipText: \"View\",\r\n button: true,\r\n buttonFuntionName: \"view\"\r\n },\r\n withdraw_button: {\r\n fontAwesomeClass: \"fa fa-times-circle\",\r\n colorClass: \"\",\r\n tooltipText: \"Withdraw\",\r\n button: true,\r\n buttonFuntionName: \"withdraw\"\r\n },\r\n reject_button: {\r\n fontAwesomeClass: \"fa fa-thumbs-o-down\",\r\n colorClass: \"\",\r\n tooltipText: \"Reject\",\r\n button: true,\r\n buttonFuntionName: \"reject\"\r\n },\r\n approve_button: {\r\n fontAwesomeClass: \"fa fa-check\",\r\n colorClass: \"\",\r\n tooltipText: \"Approve\",\r\n button: true,\r\n buttonFuntionName: \"approve\"\r\n },\r\n\r\n edit_button: {\r\n fontAwesomeClass: \"fa fa-edit\",\r\n colorClass: \"\",\r\n tooltipText: \"Edit\",\r\n button: true,\r\n buttonFuntionName: \"edit\"\r\n },\r\n non_substantive_changes_button: {\r\n fontAwesomeClass: \"fa fa fa-wrench\",\r\n colorClass: \"\",\r\n tooltipText: \"Non Stubstantive Changes\",\r\n button: true,\r\n buttonFuntionName: \"nonSubstantiveChanges\"\r\n },\r\n history_button: {\r\n fontAwesomeClass: \"fa fa-history\",\r\n colorClass: \"\",\r\n tooltipText: \"History\",\r\n button: true,\r\n buttonFuntionName: \"history\"\r\n },\r\n pdf_button: {\r\n fontAwesomeClass: \"fa fa-file-pdf-o\",\r\n colorClass: \"\",\r\n tooltipText: \"View PDF\",\r\n button: true,\r\n buttonFuntionName: \"pdf\"\r\n },\r\n html_button: {\r\n fontAwesomeClass: \"fa fa-file-code-o\",\r\n colorClass: \"\",\r\n tooltipText: \"View HTML\",\r\n button: true,\r\n buttonFuntionName: \"html\"\r\n },\r\n html_button: {\r\n fontAwesomeClass: \"fa fa-file-code-o\",\r\n colorClass: \"\",\r\n tooltipText: \"View HTML\",\r\n button: true,\r\n buttonFuntionName: \"html\"\r\n },\r\n }\r\n componentDidMount() {\r\n this.checkIcons();\r\n }\r\n checkIcons() {\r\n // See which icons are included in the text string(or list of strings) passed in, the corresponding object out to the Iconlist state\r\n let iconList = [];\r\n // loop through the iconTypes object\r\n for (var iconTypeFS in this.iconTypes) {\r\n // create a block scope verison of the current property\r\n let iconType = iconTypeFS;\r\n\r\n let regEx = new RegExp(iconType , \"i\");\r\n // If the property is found in the text string passed in through props\r\n if(this.props.type == null){\r\n\r\n }\r\n else if (this.props.type.search(regEx) != -1) {\r\n // add it to the local icon list\r\n iconList.push(iconType);\r\n }\r\n }\r\n // after getting all the icon objects applicable out, set the state to the iconList\r\n this.setState({ iconList })\r\n }\r\n render() {\r\n // TODO MAKE THIS WORK ON CURRENT RULES PAGE\r\n return (\r\n
\r\n {/* Loop though the statful iconlist */}\r\n {this.state.iconList.map((iconType, key) =>\r\n // Create an overlay and tool tip for each icon \r\n \r\n {this.iconTypes[iconType].tooltipText}\r\n }>\r\n\r\n {/* If the icon is a button type then give it on onclick using its buttonFunction name prop and render a button on the page */}\r\n {this.iconTypes[iconType].button ?\r\n \r\n :\r\n // If not a button render out the icon tag\r\n \r\n \r\n }\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default TableIcon;","import React from 'react';\r\nimport { FormControl, ControlLabel, Label, Button, InputGroup } from 'react-bootstrap';\r\n\r\nconst Upload = (props) => {\r\n let addFile = (event) => {\r\n }\r\n let labelClick = (event) =>{\r\n if(event.target.classList.contains('disabled')){\r\n event.preventDefault();\r\n }\r\n }\r\n let iconClick = (event) => {\r\n if(event.target.parentElement.classList.contains('disabled')){\r\n event.preventDefault();\r\n }\r\n }\r\n return (\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n Upload strike/underscore document\r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport default Upload; ","\r\n// SETUP state logging for Action, and Docuement with the addChapterAttribute\r\n\r\n\r\nimport React, { Component } from 'react';\r\nimport { Tooltip, OverlayTrigger, Button } from 'react-bootstrap';\r\nimport Upload from './TableUpload';\r\n\r\n\r\nclass TableInput extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = { iconList: [], inputCheck: false }\r\n }\r\n\r\n inputTypes = {\r\n inputcheck: {\r\n displayComp: () => this.onClickChange(e)} ruleId={this.props.data.hidden_ruleId} className=\"inputcheck\" type=\"checkbox\" value=\"true\" />\r\n },\r\n pervasive: {\r\n displayComp: () => this.onClickPervasive(e)} value={true} type=\"checkbox\" disabled />\r\n },\r\n action: {\r\n // check to make sure its an array, map out the elements\r\n displayComp: () => {\r\n return (\r\n
\r\n {this.props.value ? this.props.value.map((value) =>
{value} this.onClickAction(e)} className=\"action-radio\" type=\"radio\" name={`action${this.props.data.section_Number}`} disabled />
) : null}\r\n
\r\n );\r\n }\r\n\r\n },\r\n document: {\r\n // check to make sure its an array, map out the elements\r\n displayComp: () => \r\n },\r\n }\r\n click = (e) => {\r\n let rowSelected = e.target.parentElement.parentElement.parentElement;\r\n let sectionNumber = parseInt(e.target.getAttribute(\"sectionnumber\"));\r\n let classToCheck = \"selected\";\r\n let pervasiveButton = rowSelected.querySelector(\".pervasive-check\");\r\n // Make section name avalible\r\n let sectionNameCell = rowSelected.querySelectorAll(\".rt-td\")[2]\r\n // Grab Value\r\n let cellValue = sectionNameCell.innerHTML;\r\n // grab the rule id from the buttonClicked\r\n let ruleId = rowSelected.querySelectorAll(\".rt-td\")[0].querySelector(\".inputcheck\").getAttribute(\"ruleid\");\r\n // Add a new row into the state\r\n this.props.addChapter(sectionNumber, cellValue, ruleId);\r\n // add the class\r\n rowSelected.classList.add(classToCheck);\r\n\r\n // // default the chapter Name\r\n // Add input with the value defaulted\r\n let newInput = document.createElement(\"input\");\r\n newInput.onkeyup = (e) => this.onSectionNameChange(e);\r\n newInput.type = \"text\";\r\n newInput.value = cellValue;\r\n newInput.name = \"Section Name\";\r\n newInput.classList.add(\"sectionNameInput\");\r\n newInput.originalValue = cellValue;\r\n newInput.setAttribute(\"sectionnumber\", parseInt(e.target.getAttribute(\"sectionnumber\")));\r\n sectionNameCell.innerHTML = \"\";\r\n sectionNameCell.appendChild(newInput);\r\n\r\n // enable the action buttons\r\n let radioButtons = rowSelected.querySelectorAll(\".action-radio\");\r\n for (let i = 0; i < radioButtons.length; i++) {\r\n const radioButton = radioButtons[i];\r\n radioButton.disabled = false;\r\n }\r\n pervasiveButton.disabled = false;\r\n\r\n // disable upload button\r\n let uploadLabel = rowSelected.querySelector(\".upload-button\");\r\n uploadLabel.disabled = false;\r\n\r\n uploadLabel.classList.remove(\"disabled\");\r\n let uploadInput = rowSelected.querySelector(\"#fileUpload\");\r\n uploadInput.disabled = false;\r\n }\r\n unClick = (e) => {\r\n let rowSelected = e.target.parentElement.parentElement.parentElement;\r\n let sectionNumber = parseInt(e.target.getAttribute(\"sectionnumber\"));\r\n let classToCheck = \"selected\";\r\n let pervasiveButton = rowSelected.querySelector(\".pervasive-check\");\r\n // remove chapter from state\r\n this.props.removeChapter(sectionNumber)\r\n\r\n e.target.checked = false;\r\n // remove the class\r\n rowSelected.classList.remove(classToCheck);\r\n // Turn columns with name into text fields, with a onchange that updates state\r\n // Make section name avalible\r\n let sectionNameCell = rowSelected.querySelectorAll(\".rt-td\")[2];\r\n\r\n // Grab Value for Section Number\r\n let cellValue = this.props.data.section_Name;\r\n sectionNameCell.innerHTML = cellValue;\r\n\r\n // disable the action buttons\r\n let radioButtons = rowSelected.querySelectorAll(\".action-radio\");\r\n for (let i = 0; i < radioButtons.length; i++) {\r\n const radioButton = radioButtons[i];\r\n // disable radio button\r\n radioButton.disabled = true;\r\n // uncheck all radio buttons on row\r\n radioButton.checked = false;\r\n }\r\n\r\n // disable the Pervasive button\r\n pervasiveButton.disabled = true;\r\n pervasiveButton.checked = false;\r\n\r\n // disable upload button\r\n let uploadLabel = rowSelected.querySelector(\".upload-button\");\r\n uploadLabel.disabled = true;\r\n uploadLabel.classList.add(\"disabled\");\r\n let uploadInput = rowSelected.querySelector(\"#fileUpload\");\r\n uploadInput.disabled = true;\r\n\r\n }\r\n onClickChange = (e) => {\r\n // Grab section/chapter number\r\n let sectionNumber = parseInt(e.target.getAttribute(\"sectionnumber\"));\r\n // remove chapter from the state\r\n this.props.removeChapter(sectionNumber);\r\n\r\n // grab the row element based off of the Parent Element\r\n let rowSelected = e.target.parentElement.parentElement.parentElement;\r\n // Establish the class that we are going to use as a toggle\r\n let classToCheck = \"selected\";\r\n\r\n let pervasiveButton = rowSelected.querySelector(\".pervasive-check\");\r\n // if it cointains the class then\r\n if (rowSelected.classList.contains(classToCheck)) {\r\n this.unClick(e);\r\n\r\n } else {\r\n this.click(e)\r\n }\r\n }\r\n onClickAction = (e) => {\r\n // get the section number by targeting the second td in the same row.\r\n let sectionNumber = parseInt(e.target.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.querySelectorAll(\".rt-td\")[1].innerHTML);\r\n // get the action to be taken\r\n let action = e.target.value;\r\n // grab the parent\r\n let parent = e.target.parentElement;\r\n // grab the action that is stored into the parent\r\n let storedAction = parent.value;\r\n // if the stored value is different than the action selected store it into parent and into the state\r\n if (!(storedAction == action)) {\r\n parent.value = action;\r\n this.props.addChapterAttribute(sectionNumber, \"action\", e.target.value);\r\n }\r\n }\r\n onSectionNameChange = (e) => {\r\n // get the section name for this element\r\n let sectionNumber = parseInt(e.target.getAttribute(\"sectionnumber\"));\r\n // set state for this id in the chapter attribute we are working with\r\n this.props.addChapterAttribute(sectionNumber, e.target.name, e.target.value);\r\n }\r\n onClickPervasive = (e) => {\r\n // get the section name for this element\r\n let sectionNumber = parseInt(e.target.parentElement.parentElement.parentElement.parentElement.querySelectorAll(\".rt-td\")[1].innerHTML);\r\n if (e.target.checked) {\r\n e.target.checked = true;\r\n // set state for this id in the chapter attribute we are working with\r\n this.props.addChapterAttribute(sectionNumber, e.target.name, \"Y\");\r\n } else {\r\n e.target.checked = false;\r\n // remove the attribute from the sectionObject\r\n this.props.removeChapterAttribute(sectionNumber, e.target.name, \"N\");\r\n\r\n }\r\n }\r\n onClickDocument = (e) => {\r\n let sectionNumber = parseInt(e.target.parentElement.parentElement.parentElement.parentElement.querySelectorAll(\".rt-td\")[1].innerHTML);\r\n e.preventDefault();\r\n }\r\n componentWillReceiveProps() {\r\n let selector = \"#\" + this.props.data.section_Number;\r\n let test = document.querySelector(`#sectionInputCheck${this.props.data.section_Number}`);\r\n this.unClick({ target: test });\r\n }\r\n render() {\r\n // TODO MAKE THIS WORK ON CURRENT RULES PAGE\r\n \r\n return (\r\n
\r\n {this.props.data.section_Number === \" \" ? null :\r\n this.inputTypes[this.props.displayProp.toLowerCase()].displayComp()}\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default TableInput;","import React from 'react';\r\nconst TableButton = (props) => (\r\n \r\n);\r\n\r\nexport default TableButton;","import React, { Component } from 'react';\r\nimport { Panel, Badge } from 'react-bootstrap';\r\nimport './TableSection.css';\r\nimport ReactTable from 'react-table';\r\nimport 'react-table/react-table.css';\r\nimport TableButton from './TableButton';\r\nimport TableIcon from './TableIcon';\r\n// get the data object and destructure it into title and links list\r\n\r\n// iconMaxWidth can be passed in as a prop in order to setup a width for the icons on the table, otherwise it will default to the length of the first elements iconlist\r\n\r\nclass ChapterSection extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n columns: [],\r\n data: [],\r\n modalVisible: false\r\n }\r\n };\r\n componentDidMount() {\r\n // makes it possible to close the modal using the esc key\r\n document.onkeyup = (event) => {\r\n if (event.key === \"Escape\") {\r\n this.hideModal();\r\n }\r\n }\r\n }\r\n\r\n buttonFunctions = {\r\n edit: () => {\r\n alert(\"EDIT\");\r\n },\r\n nonSubstantiveChanges: () => {\r\n alert(\"NON SUB\");\r\n },\r\n pdf: () => {\r\n alert(\"PDF\");\r\n },\r\n\r\n html: () => {\r\n alert(\"HTML\");\r\n },\r\n history: () => {\r\n alert(\"History\");\r\n },\r\n approve: () => {\r\n alert(\"approve\");\r\n },\r\n reject: () => {\r\n alert(\"reject\");\r\n },\r\n withdraw: () => {\r\n alert(\"withdraw\");\r\n },\r\n view: () => {\r\n alert(\"view\");\r\n },\r\n delete: () => {\r\n alert(\"delete\");\r\n },\r\n expire: () => {\r\n alert(\"expire\");\r\n },\r\n createProposedRulePacket: () => {\r\n alert(\"Create Proposed Rule Packet\");\r\n }\r\n\r\n }\r\n showModal = () => {\r\n this.setState({ modalVisible: true });\r\n }\r\n hideModal = () => {\r\n this.setState({ modalVisible: false });\r\n }\r\n \r\n render() {\r\n \r\n return (\r\n
\r\n\r\n \r\n \r\n {this.props.headerButtons ? this.props.headerButtons.map((button, key) => {\r\n // if it is a button with the title of New we are going to show the modal, otherwise do whatever the onclick indicates\r\n return ();\r\n }) : null}\r\n \r\n \r\n\r\n\r\n
\r\n\r\n\r\n\r\n {this.props.columns.length && this.props.data.length ?\r\n : null\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 ChapterSection;","import axios from './apiConfig';\r\nimport UserAPIContainer from './../ApiObjectClasses/UserAPIContainer';\r\n\r\nlet chaptersCalls = {\r\n getCurrentRulesChapters: (programId) => {\r\n return axios.get(`/api/program/${programId}/currentruleversion`);\r\n }\r\n};\r\n\r\nexport default chaptersCalls;","class Section{\r\n constructor({chapterNum, chapterName, pervasiveYn, tempGuid,filingDate,status}, programId, agencyId, rulePacketId){\r\n this.inputcheck = \" \";\r\n this.Section_Number = chapterNum;\r\n this.Section_Name = chapterName;\r\n this.Action = [\"Repeal\", \"Superceed\"];\r\n this.Pervasive = pervasiveYn;\r\n this.Document = tempGuid;\r\n this.hidden_filing_date = filingDate;\r\n this.hidden_status = status.descr;\r\n this.hidden_ruleId = programId;\r\n this.hidden_titleId = agencyId;\r\n this.hidden_rulePacketId = rulePacketId;\r\n }\r\n}\r\n\r\nexport default Section;","import React, { Component } from 'react';\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n Panel,\r\n Modal,\r\n Button,\r\n FormGroup,\r\n Label,\r\n InputGroup,\r\n InputGroupAddon,\r\n Input,\r\n ControlLabel,\r\n Badge,\r\n Alert\r\n} from 'react-bootstrap';\r\nimport Moment from 'moment';\r\nimport TableIcon from './ChapterTableSection/TableIcon';\r\nimport TableInput from './ChapterTableSection/TableInput';\r\nimport ChapterTableSection from './ChapterTableSection';\r\nimport ChaptersAPI from './../../util/api/chapter';\r\nimport { InputMapper } from './../InputMapper';\r\nimport './PacketModal.css';\r\nimport moment from 'moment';\r\nimport Section from './ChapterTableSection/SectionClass';\r\n\r\n\r\n// TODO Tie state to form, update using the updateInputHandler, pass into inputFields\r\nclass FormModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n chaptersData: [],\r\n columns: [],\r\n chapters: [],\r\n data: [],\r\n\r\n }\r\n }\r\n addNewRow = () => {\r\n // Check to make sure data has been selected\r\n\r\n // add a new row\r\n\r\n // create a new local copy of state\r\n let data = this.state.data.concat();\r\n // add that new row to the state\r\n let lastItem = Object.assign({}, data[this.state.data.length - 1]);\r\n // get the next id for chapter\r\n let section_Number = lastItem.section_Number === \" \" ? 0 : lastItem.section_Number + 1;\r\n // set chapter number\r\n lastItem.section_Number = section_Number;\r\n // get current date\r\n lastItem.hidden_filing_date = Moment().format();\r\n // default value\r\n lastItem.pervasive = \"N\";\r\n // default name\r\n lastItem.section_Name = \"New Chapter\";\r\n\r\n data.push(lastItem);\r\n this.loadTableData({ data });\r\n }\r\n loadTableData(results) {\r\n // In order of this to work properly all property names should be in the following format Property_Name\r\n // if there was any data given back push it into the table, otherwise use the datamodel we retrive before load to display table\r\n let data = results.data.length ? results.data : this.dataModel;\r\n\r\n let dataModel = data[0];\r\n // create an empty column structure for the table\r\n let columnStruct = [];\r\n // loop through the dataTable object\r\n for (var prop in dataModel) {\r\n // Create the display name for the table header (replace _ with a space and then Capitalize the first letter of each word)\r\n let displayProp = prop.replace(/_/g, \" \").replace(/\\w\\S*/g, function (tStr) {\r\n return tStr.charAt(0).toUpperCase() + tStr.substr(1).toLowerCase();\r\n });;\r\n // create a block scoped variable of props\r\n let propertyName = prop;\r\n // If it is a Type property we will set the value to the TableIcon Component\r\n if (displayProp === \"Icon\") {\r\n // build table structure object for this column\r\n columnStruct.push({\r\n Header: \"\",\r\n id: displayProp,\r\n // Add 40 width for every icon included\r\n // maxWidth: this.props.iconMaxWidth != undefined? this.props.iconMaxWidth : dataModel[propertyName].length * 36,\r\n // because it is Type we will return the table Icon for its type value\r\n width: this.props.iconMaxWidth != undefined ? this.props.iconMaxWidth : dataModel[propertyName].length * 36,\r\n accessor: dataEntry => \r\n })\r\n }\r\n else if (displayProp === \"Id\" || displayProp == \"actionId\") {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: dataEntry => dataEntry[propertyName]\r\n })\r\n }\r\n else if (displayProp === \"Days\") {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: 90,\r\n // spits out the raw values\r\n Cell: props => {props.value} days,\r\n accessor: dataEntry => dataEntry[propertyName]\r\n })\r\n\r\n }\r\n // No Header on input, acts as the enabler for the row inputs\r\n else if (displayProp.search(new RegExp('input', \"i\")) != -1) {\r\n // build table structure object for this column\r\n columnStruct.push({\r\n Header: \"\",\r\n id: displayProp,\r\n // if it is a checkbox make the icon width smaller\r\n width: displayProp.search(new RegExp('check', \"i\")) != -1 ? 24 : \"unset\",\r\n accessor: dataEntry => \r\n })\r\n }\r\n // IF you want a header on the input line, AND for it to be disabled on load\r\n else if (displayProp.search(new RegExp('action', \"i\")) != -1 || displayProp.search(new RegExp('pervasive', \"i\")) != -1 || displayProp.search(new RegExp('document', \"i\")) != -1) {\r\n // build table structure object for this column\r\n columnStruct.push({\r\n Header: displayProp,\r\n id: displayProp,\r\n // if it is a checkbox make the icon width smaller\r\n width: displayProp.search(new RegExp('check', \"i\")) != -1 ? 24 : \"unset\",\r\n accessor: dataEntry => \r\n })\r\n }\r\n else if (displayProp.search(new RegExp('hidden', \"i\")) != -1) {\r\n // Do nothing, these columns are not to be included in the table\r\n }\r\n else {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: dataEntry => dataEntry[propertyName]\r\n })\r\n }\r\n\r\n }\r\n // load in table structure\r\n this.setState({ columns: columnStruct })\r\n // load in data\r\n this.setState({ data: data })\r\n }\r\n\r\n dataModel = {}\r\n\r\n componentWillMount = () => {\r\n if (this.props.visible) {\r\n this.props.getData(this.props.ownerId).then(({ data }) => {\r\n const Rule = data.program.name;\r\n const RuleId = data.programId;\r\n const Title = data.program.agency.name;\r\n const TitleId = data.program.agency.name.agencyId;\r\n const Liaison = data.liaison.firstName + \" \" + data.liaison.lastName;\r\n // const LiaisonId = \r\n const { name, publicCommentResource, tempGuid } = data\r\n let { commentDate } = data;\r\n commentDate = moment(commentDate).format(\"MM/DD/YYYY\")\r\n\r\n this.setState({ Rule, Title, Liaison, name, commentDate, publicCommentResource, tempGuid })\r\n\r\n // Create Input Values in state for each Input if an options list assign the first variable in the options list\r\n // addChapter\r\n let ruleSections = data.ruleVersion.map(ruleVersion => new Section(ruleVersion, data.programId, data.program.agency.name.agencyId, data.rulePacketId));\r\n this.dataModel = ruleSections[0];\r\n this.loadTableData({ data: ruleSections });\r\n this.setState({ data: ruleSections })\r\n })\r\n }\r\n else {\r\n // Create Input Values in state for each Input if an options list assign the first variable in the options list\r\n }\r\n }\r\n componentDidMount = () => {\r\n this.props.inputFields.forEach((inputField) => {\r\n if (inputField.type == \"email-url\") {\r\n let typeName = inputField.type + \"-type\";\r\n this.setState({ [inputField.type]: null })\r\n this.setState({ [typeName]: \"email\" })\r\n }\r\n else {\r\n this.setState({ [inputField.name]: inputField.options ? inputField.options[0] : null })\r\n }\r\n })\r\n }\r\n\r\n // Add a new chapter to the chapter list\r\n addChapter = (id, section_Name, ruleId) => {\r\n let chapters = this.state.chapters.concat()\r\n let chapterObject = { id: id }\r\n // if sectionName is passed in set it, otherwise make it blank\r\n if (section_Name != null) {\r\n chapterObject[\"Section Name\"] = section_Name;\r\n }\r\n chapterObject.pervasive = \"N\";\r\n chapterObject.ruleId = parseInt(ruleId);\r\n chapters.push(chapterObject);\r\n this.setState({ chapters });\r\n }\r\n removeChapter = (id) => {\r\n let chapters = this.state.chapters.concat();\r\n let chapterRemoved = chapters.filter((chapter) => chapter.id != id);\r\n this.setState({ chapters: chapterRemoved });\r\n }\r\n // Add an attribute to a chapter\r\n addChapterAttribute = (id, name, value) => {\r\n // grab chapters from the state\r\n let chapters = this.state.chapters;\r\n // find the chapter you need to change and set the attribute for it\r\n chapters.forEach((chapter, i) => {\r\n if (chapter.id === id) {\r\n chapter[name] = value;\r\n }\r\n });\r\n // set the changed array of chapters as the state\r\n this.setState({ chapters })\r\n }\r\n // Remove an attribute to a chapter\r\n removeChapterAttribute = (id, name, value) => {\r\n // grab chapters from the state\r\n let chapters = this.state.chapters;\r\n // find the chapter you need to change and set the attribute for it\r\n chapters.forEach((chapter, i) => {\r\n if (chapter.id === id) {\r\n delete chapter[name];\r\n }\r\n });\r\n // set the changed array of chapters as the state\r\n this.setState({ chapters })\r\n }\r\n\r\n // Update state with inputs\r\n handelInput = (event, id) => {\r\n let { value, name } = event.target;\r\n this.setState({ [name]: value });\r\n // If there is an id make sure and add that to the state as well.\r\n if (id || id === 0) {\r\n this.setState({ [name + \"Id\"]: id });\r\n }\r\n }\r\n // Assign variable from state\r\n getInput = (name) => {\r\n return this.state[name];\r\n }\r\n handleStateChange = (name, value) => {\r\n this.setState({ [name]: value });\r\n }\r\n updateProgramId = (programId) => {\r\n // empty out state\r\n this.handleStateChange(\"chapters\", []);\r\n if (programId == null) {\r\n programId = 0;\r\n }\r\n ChaptersAPI.getCurrentRulesChapters(programId).then(({ data }) => {\r\n this.loadTableData({ data });\r\n this.setState({ data })\r\n },\r\n (error) => {\r\n this.loadTableData({ data: [] });\r\n });\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n {this.props.firstHeading} this.props.hideModal(this.state)} className=\"fa fa-times float-right\">\r\n \r\n \r\n CREATION WORKS, EDIT NEEDS TO BE REVISITED ON THIS\r\n CREATION WORKS, EDIT NEEDS TO BE REVISITED ON THIS\r\n CREATION WORKS, EDIT NEEDS TO BE REVISITED ON THIS\r\n CREATION WORKS, EDIT NEEDS TO BE REVISITED ON THIS\r\n CREATION WORKS, EDIT NEEDS TO BE REVISITED ON THIS\r\n \r\n \r\n
{\r\n if (e.isDefaultPrevented()) {\r\n // handle the invalid form...\r\n } else {\r\n // everything looks good!\r\n e.preventDefault(); //prevent submit\r\n this.props.onSubmit(this.state, e, this.props.editModal);\r\n }\r\n }} novalidate>\r\n \r\n \r\n {this.props.secondHeading}\r\n \r\n \r\n\r\n {this.props.inputFields ? :
}\r\n\r\n {/* If this is for a new packet than allow us to see the chapters table */}\r\n { this.addNewRow() }\r\n }\r\n ]}\r\n handelInput={this.handelInput}\r\n data={this.state.data}\r\n columns={this.state.columns}\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 };\r\n};\r\n\r\nexport default withRouter(FormModal);\r\n\r\n// Get local data and column state to update and then pass it into the table component","import React, { Component } from 'react';\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n Panel,\r\n Modal,\r\n Button,\r\n FormGroup,\r\n Label,\r\n InputGroup,\r\n InputGroupAddon,\r\n Input,\r\n ControlLabel,\r\n Badge,\r\n} from 'react-bootstrap';\r\nimport Moment from 'moment';\r\nimport TableIcon from './ChapterTableSection/TableIcon';\r\nimport TableInput from './ChapterTableSection/TableInput';\r\nimport ChapterTableSection from './ChapterTableSection';\r\nimport ChaptersAPI from './../../util/api/chapter';\r\nimport { InputMapper } from './../InputMapper';\r\nimport './PacketModal.css';\r\nimport moment from 'moment';\r\nimport Section from './ChapterTableSection/SectionClass';\r\nimport { SyncLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\n\r\n\r\n\r\n// TODO Tie state to form, update using the updateInputHandler, pass into inputFields\r\nclass FormModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n additionalInformation: \"\",\r\n loading: false,\r\n ruleAction: \"Amendment\"\r\n }\r\n }\r\n\r\n componentWillMount = () => {\r\n if (this.props.visible) {\r\n this.props.getData(this.props.ownerId).then(({ data }) => {\r\n const ProgramName = data.program.name;\r\n const ProgramId = data.programId;\r\n const AgencyName = data.program.agency.name;\r\n const AgencyId = data.program.agency.name.agencyId;\r\n const LiaisonName = data.liaison.firstName + \" \" + data.liaison.lastName;\r\n // const LiaisonId = \r\n const { name, publicCommentResource, tempGuid } = data\r\n let { commentDate } = data;\r\n commentDate = moment(commentDate).format(\"MM/DD/YYYY\")\r\n this.setState({ ProgramName, AgencyName, LiaisonName, name, commentDate, publicCommentResource, tempGuid })\r\n\r\n // Create Input Values in state for each Input if an options list assign the first variable in the options list\r\n // addChapter\r\n let ruleSections = data.ruleVersion.map(ruleVersion => new Section(ruleVersion, data.programId, data.program.agency.name.agencyId, data.rulePacketId));\r\n this.dataModel = ruleSections[0];\r\n this.setState({ data: ruleSections })\r\n })\r\n }\r\n else {\r\n // Create Input Values in state for each Input if an options list assign the first variable in the options list\r\n }\r\n }\r\n setupMountState = () => {\r\n this.props.inputFields.forEach((inputField) => {\r\n if (inputField.type == \"email-url\") {\r\n let typeName = inputField.type + \"-type\";\r\n this.setState({ [inputField.name]: null })\r\n this.setState({ [typeName]: \"email\" })\r\n }\r\n else if (inputField.name == \"IBR\") {\r\n this.setState({ [inputField.name]: false });\r\n }\r\n else if (inputField.type == \"dates\") {\r\n this.setState({ [inputField.date1.name]: null, [inputField.date2.name]: null });\r\n }\r\n else if (inputField.name == \"RuleVersionName\") {\r\n this.setState({ [inputField.name]: inputField.options ? inputField.options[0] : null })\r\n inputField.newRuleInputFields.forEach(innerInputField => {\r\n this.setState({ [innerInputField.name]: innerInputField.options ? innerInputField.options[0] : null })\r\n });\r\n }\r\n else if (inputField.name == \"publicCommentPeriod\") {\r\n this.setState({ [inputField.name]: 30 });\r\n }\r\n else {\r\n this.setState({ [inputField.name]: inputField.options ? inputField.options[0] : null })\r\n }\r\n })\r\n }\r\n componentDidMount = () => {\r\n\r\n // SETUP default input values\r\n this.setupMountState();\r\n }\r\n\r\n // Update state with inputs\r\n handelInput = (event, id) => {\r\n let { value, name } = event.target;\r\n this.setState({ [name]: value });\r\n // If there is an id make sure and add that to the state as well.\r\n if (id || id === 0) {\r\n this.setState({ [name + \"Id\"]: id });\r\n }\r\n }\r\n // Assign variable from state\r\n getInput = (name) => {\r\n return this.state[name];\r\n }\r\n componentDidUpdate = () => {\r\n if (this.props.visible) {\r\n this.modalOpen()\r\n }\r\n }\r\n modalOpen = () => {\r\n }\r\n modalClose = () => {\r\n this.setState({})\r\n this.props.hideModal();\r\n }\r\n handleStateChange = (name, value) => {\r\n this.setState({ [name]: value });\r\n }\r\n updateAgencyId = (AgencyId) => {\r\n if(AgencyId== null){\r\n AgencyId = 0;\r\n }\r\n this.setState({ AgencyId });\r\n }\r\n updateProgramId = (ProgramId) => {\r\n if(ProgramId== null){\r\n ProgramId=0;\r\n }\r\n this.setState({ ProgramId });\r\n }\r\n updateruleVersionId = (RuleVersionId) => {\r\n if(RuleVersionId== null){\r\n RuleVersionId=0;\r\n }\r\n this.setState({ RuleVersionId });\r\n }\r\n updateLiaisonId = (LiaisonId) => {\r\n if(LiaisonId== null){\r\n LiaisonId=0;\r\n }\r\n this.setState({ LiaisonId });\r\n }\r\n updateCitations = (additionalInformation) => {\r\n this.setState({ additionalInformation });\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 40vh auto;\r\n color: #115fa4;\r\n width: 8em;\r\n`;\r\n return override;\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {this.props.firstHeading} this.props.hideModal()} className=\"fa fa-times float-right\">\r\n \r\n \r\n \r\n {\r\n this.state.loading ? \r\n :\r\n\r\n \r\n
{\r\n if (e.isDefaultPrevented()) {\r\n // handle the invalid form...\r\n } else {\r\n // everything looks good!\r\n e.preventDefault(); //prevent submit\r\n this.setState({ loading: true });\r\n this.props.tableButtonClicked.onclick(this.state, e, this.props.editModal).then(({ data }) => {\r\n this.modalClose();\r\n this.setState({ loading: false });\r\n // this call in the c# side is async so it wraps the data in result.\r\n this.props.reload({ data: data });\r\n this.setupMountState();\r\n });\r\n }\r\n }}>\r\n \r\n \r\n {this.props.secondHeading}\r\n \r\n \r\n {this.props.inputFields ?\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 );\r\n };\r\n};\r\n\r\nexport default withRouter(FormModal);\r\n\r\n// Get local data and column state to update and then pass it into the table component","import {\r\n DigestColumnBuilder,\r\n EmergencyColumnBuilder,\r\n IntegratedBusinessColumnBuilder,\r\n MiscellaneousColumnBuilder,\r\n RegisterColumnBuilder,\r\n RulePacketColumnBuilder,\r\n} from \"./\";\r\n\r\nexport function TableBuilder(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType = \"rule_packet\"\r\n) {\r\n switch (tableType) {\r\n case \"MISC\":\r\n const MiscellaneousColumnBuilderInstance = MiscellaneousColumnBuilder.bind(this);\r\n MiscellaneousColumnBuilderInstance(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n );\r\n break;\r\n case \"Emergency\":\r\n const EmergencyColumnBuilderInstance = EmergencyColumnBuilder.bind(this);\r\n EmergencyColumnBuilderInstance(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n );\r\n break;\r\n case \"IBR report\":\r\n const IntegratedBusinessColumnBuilderInstance = IntegratedBusinessColumnBuilder.bind(\r\n this\r\n );\r\n IntegratedBusinessColumnBuilderInstance(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n );\r\n break;\r\n case \"Digest - Bulletin Prep\":\r\n const DigestColumnBuilderInstance = DigestColumnBuilder.bind(this);\r\n DigestColumnBuilderInstance(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n );\r\n break;\r\n case \"Register - Index of Changes\":\r\n const RegisterColumnBuilderInstance = RegisterColumnBuilder.bind(this);\r\n RegisterColumnBuilderInstance(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n );\r\n break;\r\n case \"rule_packet\":\r\n const RulePacketColumnBuilderInstance = RulePacketColumnBuilder.bind(this);\r\n RulePacketColumnBuilderInstance(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n );\r\n break;\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { FormControl, FormGroup, Badge, Button, Modal, ControlLabel, Alert } from 'react-bootstrap';\r\nimport { render } from 'react-dom';\r\nimport Tags from 'react-tagging-input';\r\nimport \"react-tagging-input/dist/styles.css\";\r\n\r\nclass BadgeInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // confirmModal: false,\r\n newValue: null,\r\n tags: this.convertStringToList(this.props.values),\r\n validationAlert:false\r\n }\r\n }\r\n convertStringToList = (string) => {\r\n return string.split(\",\");\r\n }\r\n convertListToString = (list) => {\r\n return list.join();\r\n }\r\n // confirmModalToggle = () => {\r\n // this.setState({ confirmModal: !this.state.confirmModal })\r\n // }\r\n addNewBadge = () => {\r\n }\r\n onTagAdded = (tag) => {\r\n if (this.props.validInputs.includes(tag)) {\r\n\r\n let newList = [...this.state.tags, tag];\r\n // if it was just an empty string replace it with the new value\r\n if (newList[0] == \"\") {\r\n newList = newList.slice(1, newList.length);\r\n }\r\n this.setState({\r\n tags: newList\r\n });\r\n this.props.onChange({ target: { name: this.props.displayName, value: this.convertListToString(newList) } })\r\n } else {\r\n this.setState({validationAlert:true});\r\n setTimeout(() =>this.setState({validationAlert:false}), 10000);\r\n }\r\n }\r\n\r\n onTagRemoved = (tag, index) => {\r\n let newList = this.state.tags.filter((tag, i) => i !== index);\r\n this.setState({\r\n tags: newList\r\n });\r\n this.props.onChange({ target: { name: this.props.displayName, value: this.convertListToString(newList) } })\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.state.validationAlert ?\r\n \r\n Invalid Input The only valid values are: {this.props.validInputs.map((item, key) => this.props.validInputs.length - 1 == key ? item + \" \" : item + \", \")}\r\n\r\n \r\n : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default BadgeInput;","import React, { Component } from 'react';\r\nimport { FormControl, FormGroup, Badge } from 'react-bootstrap';\r\nimport Tags from 'react-tagging-input';\r\n\r\nclass BadgeDisplay extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n convertStringToList = (string) => {\r\n return string.split(\",\");\r\n }\r\n\r\n render() {\r\n const tags = this.convertStringToList(this.props.values);\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default BadgeDisplay;","import React, { Component } from 'react';\r\nimport { FormControl, FormGroup, Badge, Button, Modal, ControlLabel, Alert } from 'react-bootstrap';\r\nimport { render } from 'react-dom';\r\nimport Tags from 'react-tagging-input';\r\nimport ReactQuill from 'react-quill';\r\nimport \"react-tagging-input/dist/styles.css\";\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport 'react-quill/';\r\n\r\nclass EmailBodyInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // confirmModal: false,\r\n newValue: null,\r\n htmlString: this.props.values,\r\n validationAlert: false,\r\n inFocus: false\r\n }\r\n }\r\n handleRichTextChange = (value) => {\r\n let e = { target: { name: this.props.displayName, value: value } }\r\n this.props.onChange(e);\r\n\r\n }\r\n modules = {\r\n toolbar: [\r\n [{ 'header': '1' }, { 'header': '2' }, 'clean'],\r\n ['bold', 'italic', 'underline', 'strike', 'blockquote'],\r\n [{ 'list': 'ordered' }, { 'list': 'bullet' },\r\n { 'indent': '-1' }, { 'indent': '+1' }],\r\n ['link', 'code'],\r\n ],\r\n clipboard: {\r\n // toggle to add extra line breaks when pasting HTML:\r\n matchVisual: false,\r\n }\r\n }\r\n componentDidMount = () => {\r\n let getAllCells = document.getElementsByClassName(\"rt-td\");\r\n for (let index = 0; index < getAllCells.length; index++) {\r\n const element = getAllCells[index];\r\n element.style.removeProperty('flex');\r\n element.style.removeProperty('width');\r\n }\r\n let editorTag = document.getElementById(`${this.props.id}-editor`);\r\n let editorbox = editorTag.querySelector(`.ql-editor`);\r\n let cellTag = editorTag.parentElement.parentElement.parentElement.parentElement;\r\n let tagToTheRight = cellTag.nextElementSibling;\r\n let tagTwoToTheRight = tagToTheRight.nextElementSibling;\r\n // let firstItem = cellTag.parentElement.firstChild;\r\n // firstItem.style.flex = \"0 0 auto\";\r\n // firstItem.style.width = \"0px\";\r\n tagTwoToTheRight.style.flex = \"0 0 auto\";\r\n tagTwoToTheRight.style.width = \"0px\";\r\n tagToTheRight.style.flex = \"0 0 auto\";\r\n tagToTheRight.style.width = \"0px\";\r\n cellTag.style.flex = \"2.01 0 auto\";\r\n cellTag.style.width = \"200px\";\r\n editorbox.style.minHeight = \"400px\";\r\n }\r\n render() {\r\n return (\r\n
\r\n {/* TODO GET RICH TEXT EDITOR INTEGRATED FOR BODY */}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EmailBodyInput;","import React, { Component } from 'react';\r\nimport { FormControl, FormGroup, Badge, Button, Modal, ControlLabel, Alert } from 'react-bootstrap';\r\nimport { render } from 'react-dom';\r\nimport Tags from 'react-tagging-input';\r\nimport ReactQuill from 'react-quill';\r\nimport \"react-tagging-input/dist/styles.css\";\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport 'react-quill/';\r\n\r\nclass CMSValueInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // confirmModal: false,\r\n newValue: null,\r\n htmlString: this.props.values,\r\n validationAlert: false,\r\n inFocus: false\r\n }\r\n }\r\n handleRichTextChange = (value) => {\r\n let e = { target: { name: this.props.displayName, value: value } }\r\n this.props.onChange(e);\r\n\r\n }\r\n modules = {\r\n toolbar: [\r\n [{ 'header': '1' }, { 'header': '2' }, 'clean'],\r\n ['bold', 'italic', 'underline', 'strike', 'blockquote'],\r\n [{ 'list': 'ordered' }, { 'list': 'bullet' },\r\n { 'indent': '-1' }, { 'indent': '+1' }],\r\n ['link', 'code'],\r\n ],\r\n clipboard: {\r\n // toggle to add extra line breaks when pasting HTML:\r\n matchVisual: false,\r\n }\r\n }\r\n componentDidMount = () => {\r\n let getAllCells = document.getElementsByClassName(\"rt-td\");\r\n for (let index = 0; index < getAllCells.length; index++) {\r\n const element = getAllCells[index];\r\n element.style.removeProperty('flex');\r\n element.style.removeProperty('width');\r\n }\r\n let editorTag = document.getElementById(`${this.props.id}-editor`);\r\n let editorbox = editorTag.querySelector(`.ql-editor`);\r\n let cellTag = editorTag.parentElement.parentElement.parentElement.parentElement;\r\n let tagToTheRight = cellTag.nextElementSibling;\r\n let tagTwoToTheRight = tagToTheRight.nextElementSibling;\r\n tagTwoToTheRight.style.flex = \"0 0 auto\";\r\n tagTwoToTheRight.style.width = \"0px\";\r\n tagToTheRight.style.flex = \"0 0 auto\";\r\n tagToTheRight.style.width = \"0px\";\r\n cellTag.style.flex = \"2.6 0 auto\";\r\n cellTag.style.width = \"100px\";\r\n editorbox.style.minHeight = \"400px\";\r\n }\r\n render() {\r\n return (\r\n
\r\n {/* TODO GET RICH TEXT EDITOR INTEGRATED FOR BODY */}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CMSValueInput;","import React, { Component } from 'react';\r\nimport moment from 'moment';\r\nimport { FormControl, FormGroup, Badge } from 'react-bootstrap';\r\nimport BadgeInput from './BadgeInput';\r\nimport BadgeDisplay from './BadgeDisplay';\r\nimport EmailBodyInput from './EmailBodyInput';\r\nimport CMSValueInput from './CMSValueInput';\r\n\r\nclass InputValidator {\r\n constructor(message, validation, inputIdentifier) {\r\n this.valid = false;\r\n this.inputIdentifier = inputIdentifier\r\n this.message = message;\r\n this.validation = validation;\r\n }\r\n validate = () => {\r\n if (this.validation == true) {\r\n this.message = \"success\";\r\n this.valid = \"true\";\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nclass EditableCell extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n [this.props.displayName]: this.props.cellValue\r\n }\r\n }\r\n handleInput = (e) => {\r\n let { name, value } = e.target;\r\n let validator = this.stateValidation(name, value)\r\n if(validator.validate().valid){\r\n this.setState({ [name]: value });\r\n } \r\n return validator;\r\n }\r\n handleChange = (e) => {\r\n let { name, value } = e.target;\r\n this.setState({ [name]: value })\r\n \r\n }\r\n stateValidation = (name, value) => {\r\n let validators = {\r\n \"Extend Comment Period\": {\r\n \"inputModalValue\": new InputValidator(\"The number must be between 0 and 30\", value >= 0 && value <= 30, \"inputModalValue\")\r\n },\r\n \"Rules Reject\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n },\r\n \"GOPB Hold\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n },\r\n \"Gov Hold\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n }\r\n }\r\n let validator = validators[this.props.action.modalConfirmTitle][name];\r\n if (validator == null) {\r\n validator = new InputValidator(\"Nothing Required\", true);\r\n }\r\n return validator;\r\n }\r\n componentDidUpdate = () => {\r\n if (this.props.editRowId == this.props.props.original.id && this.props.props.column.Header == \"Name\") {\r\n let parent = document.querySelector(`.row${this.props.props.original.id}`).parentElement.parentElement;\r\n let allRows = document.querySelectorAll(\".rt-tr\");\r\n allRows.forEach(row => row.classList.remove(\"rowSelected\"));\r\n parent.classList.add(\"rowSelected\");\r\n }\r\n // if (this.state[this.props.displayName] != this.props.cellValue) {\r\n // this.setState({ [this.props.displayName]: this.props.cellValue });\r\n // }\r\n }\r\n\r\n render() {\r\n return (\r\n // Create an overlay and tool tip for each icon \r\n
{ return this.props.editRow(this.props.props.original) }}>\r\n {(() => {\r\n // reset state on filter so that we get in the correct values\r\n // Edit Display\r\n switch (this.props.props.column.Header) {\r\n case \"Body\":\r\n return ;\r\n case \"Value\":\r\n return ;\r\n case \"To\":\r\n return \r\n case \"Bcc\":\r\n return \r\n default:\r\n return ;\r\n }\r\n })()}\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default EditableCell;","import React, { Component } from 'react';\r\nimport moment from 'moment';\r\nimport { FormControl, FormGroup, Badge } from 'react-bootstrap';\r\nimport BadgeInput from './BadgeInput';\r\nimport BadgeDisplay from './BadgeDisplay';\r\nimport EditableCell from './EditableCell';\r\n\r\nclass InputValidator {\r\n constructor(message, validation, inputIdentifier) {\r\n this.valid = false;\r\n this.inputIdentifier = inputIdentifier\r\n this.message = message;\r\n this.validation = validation;\r\n }\r\n validate = () => {\r\n if (this.validation == true) {\r\n this.message = \"success\";\r\n this.valid = \"true\";\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nclass EditableCellContainer extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n }\r\n }\r\n render() {\r\n return (\r\n
{ return this.props.editRow(this.props.props.original) }}>\r\n {(() => {\r\n\r\n if (this.props.editRowId == this.props.props.original.id) {\r\n return \r\n }\r\n else {\r\n switch (this.props.props.column.Header) {\r\n case \"To\":\r\n return \r\n case \"Bcc\":\r\n return ;\r\n case \"Value\":\r\n return
;\r\n case \"Body\":\r\n return
;\r\n default:\r\n return this.props.cellValue;\r\n }\r\n }\r\n })()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EditableCellContainer;","import React, { Component } from 'react';\r\nimport $ from 'jquery';\r\nimport Datetime from 'react-datetime';\r\nimport 'react-datetime/css/react-datetime.css';\r\nimport './Calendar.css';\r\nimport { FormControl, InputGroup, ControlLabel, Modal, Button } from 'react-bootstrap';\r\nimport moment from 'moment';\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n daysUntil: \"-\",\r\n modal: false,\r\n toDate: moment().format('MM/DD/YYYY'),\r\n fromDate: moment().format('MM/DD/YYYY'),\r\n filterImplemented: false\r\n };\r\n }\r\n handelToInput = (dateObject) => {\r\n if (moment(this.state.fromDate).isAfter(dateObject))\r\n this.setState({ \"toDate\": dateObject.format('MM/DD/YYYY') })\r\n }\r\n handelFromInput = (dateObject) => {\r\n if (moment(this.state.toDate).isBefore(dateObject))\r\n this.setState({ \"fromDate\": dateObject.format('MM/DD/YYYY') })\r\n }\r\n toggleModal = () => {\r\n this.setState({ modal: !this.state.modal })\r\n }\r\n\r\n filter = () => {\r\n // Build filter object\r\n const dateFilter = { fromDate: this.state.fromDate, toDate: this.state.toDate };\r\n // pass into onchange from props\r\n this.props.onChange(dateFilter);\r\n this.toggleModal();\r\n this.setState({ filterImplemented: true });\r\n }\r\n unset = () => {\r\n this.props.onChange(false);\r\n this.setState({filterImplemented:false});\r\n this.toggleModal();\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {/* From: {this.props.fromDate}\r\n To: {this.props.toDate} */}\r\n
\r\n \r\n \r\n \r\n \r\n From\r\n \r\n \r\n \r\n To\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\nexport default Calendar; ","import axios from './apiConfig';\r\nimport UserAPIContainer from './../ApiObjectClasses/UserAPIContainer';\r\n\r\nlet rulePacketCalls = {\r\n getCurrentPackets: (rulePacketId) => {\r\n return axios.get(`/api/rulepacket/current`)\r\n },\r\n getRulePacket: (rulePacketId) => {\r\n return axios.get(`/api/rulepacket/${rulePacketId}`)\r\n },\r\n getStandardPackets: () => {\r\n return axios.get(`/api/rulepacket/standard`);\r\n\r\n },\r\n getActiveStandardPackets: () => {\r\n return axios.get(`/api/rulepacket/standard/active`);\r\n },\r\n getUserWorkQueue: () => {\r\n return axios.get(`/api/rulepacket/workqueue`)\r\n },\r\n submitStandardPacket: (formData) => {\r\n return axios.post(`/api/rulepacket/standard/standard workflow`, formData);\r\n },\r\n submitNonsubstantivePacket: (formData) => {\r\n return axios.post(`/api/rulepacket/standard/nonsubstantive`, formData);\r\n },\r\n submitEmergencyPacket: (formData) => {\r\n return axios.post(`/api/rulepacket/standard/emergency workflow`, formData);\r\n },\r\n submitMISCPacket: (formData) => {\r\n return axios.post(`/api/rulepacket/standard/misc workflow`, formData);\r\n },\r\n updateStandardPacket: (formData, packetId) => {\r\n return axios.post(`/api/rulepacket/standard/update/${packetId}`, formData);\r\n },\r\n publishForComment: (rulePacketId, actionId) => {\r\n\r\n return axios.post(`/api/rulepacket/publishForComment/${rulePacketId}/${actionId}`);\r\n\r\n },\r\n extendPublicComment: (rulePacketId, extendDays, actionId) => {\r\n return axios.post(`/api/rulepacket/extendPublicComment/${rulePacketId}/${extendDays}/${actionId}`);\r\n\r\n },\r\n getEmergencyPackets: () => {\r\n return axios.get(`/api/rulepacket/emergency`);\r\n\r\n },\r\n getMISCPackets: () => {\r\n return axios.get(`/api/rulepacket/MISC`);\r\n\r\n },\r\n getStandardPacketsShort: () => {\r\n return axios.get(`/api/rulepacket/standard/short`);\r\n\r\n },\r\n getEmergencyPacketsShort: () => {\r\n return axios.get(`/api/rulepacket/emergency/short`);\r\n\r\n },\r\n getMISCPacketsShort: () => {\r\n return axios.get(`/api/rulepacket/MISC/short`);\r\n\r\n },\r\n nextStatusAction: (packetId, actionId) => {\r\n return axios.post(`/api/rulepacket/nextstatus/${packetId}/${actionId}`);\r\n },\r\n rejectPacket: (packetId, actionId, historyComment) => {\r\n return axios.post(`/api/rulepacket/rejectPacket/${packetId}/${actionId}`, historyComment);\r\n\r\n },\r\n reviewPublished5Year: (packetId) => {\r\n return axios.post(`/api/rulepacket/ReviewPublished5Year/${packetId}`, );\r\n\r\n },\r\n extensionPublished5Year: (packetId, actionId) => {\r\n return axios.post(`/api/rulepacket/ExtensionPublished5Year/${packetId}/${actionId}`, );\r\n },\r\n adminExtension5Year: (packetId) => {\r\n return axios.post(`/api/rulepacket/AdminExtension5Year/${packetId}`, );\r\n },\r\n setEffectiveDate:(packetId, effectiveDate) =>{\r\n return axios.post(`/api/rulepacket/seteffectivedate/${packetId}/${effectiveDate}`);\r\n },\r\n newCleanText:(packetId,fileName, guid) =>{\r\n return axios.post(`/api/rulepacket/cleanUpLoad/${packetId}/${fileName}/${guid}/`);\r\n },\r\n pendingCleanText:(packetId,fileName, guid) =>{\r\n return axios.post(`/api/rulepacket/pendingCleanUpLoad/${packetId}/${fileName}/${guid}/`);\r\n },\r\n\r\n /************************************************************************************************************************\r\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n * DEVELOPMENT ONLY\r\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n ************************************************************************************************************************/\r\n // setAllToExpire: () => {\r\n // return axios.get(`/api/rulepacket/StandardToExpiration`, );\r\n // },\r\n // setAllTo182: () => {\r\n // return axios.get(`/api/rulepacket/days182`, );\r\n // },\r\n // setAllTo181: () => {\r\n // return axios.get(`/api/rulepacket/days181`, );\r\n // },\r\n // setAllTo120: () => {\r\n // return axios.get(`/api/rulepacket/days120`, );\r\n // },\r\n // setAllTo31: () => {\r\n // return axios.get(`/api/rulepacket/days31`, );\r\n // },\r\n // daysNeg: () => {\r\n // return axios.get(`/api/rulepacket/daysNeg`, );\r\n // }\r\n};\r\n\r\n// let rulePacketAPI = new UserAPIContainer(rulePacketCalls)\r\n\r\nexport default rulePacketCalls;","import React from 'react';\r\nimport { Tooltip, OverlayTrigger, Button, Modal, ModalHeader, ModalBody, ModalTitle, FormGroup, ControlLabel } from 'react-bootstrap';\r\n\r\nconst ConfirmationModal = (props) =>\r\n
\r\n \r\n \r\n \r\n {props.title}\r\n \r\n \r\n \r\n \r\n {props.message}\r\n \r\n \r\n \r\n \r\n
\r\n\r\nexport default ConfirmationModal;","import React, { Component } from 'react';\r\nimport { Tooltip, OverlayTrigger, Button, Modal, ModalHeader, ModalBody, ModalTitle, ControlLabel, FormControl, FormGroup, Alert } from 'react-bootstrap';\r\nimport {InputMapper} from './../../../../../components/InputMapper';\r\n\r\nclass ChangeAgencyModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n validationObjects: []\r\n }\r\n }\r\n handleChanges = (e) => {\r\n // grab the validator object\r\n let validator = this.props.handleChanges(e);\r\n // filter out any checks on this same input\r\n let filter = validator.inputIdentifier;\r\n // create a new instance of the list containing validation objects from state\r\n let validationObjectsLocal = [...this.state.validationObjects];\r\n // filter out any objects on this same identifier\r\n validationObjectsLocal = validationObjectsLocal.filter(item => item.inputIdentifier != filter);\r\n // push the new validation object out to the array\r\n validationObjectsLocal.push(validator);\r\n // set the array in state\r\n this.setState({ validationObjects: validationObjectsLocal });\r\n }\r\n render() {\r\n const errorList = this.state.validationObjects.map((validationObject, key) =>\r\n !validationObject.valid ?\r\n \r\n {validationObject.message}\r\n : null\r\n )\r\n \r\n return (\r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n {this.props.inputFields ? : null}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default ChangeAgencyModal;","import React, { Component } from 'react';\r\nimport { Tooltip, OverlayTrigger, Button, Modal, ModalHeader, ModalBody, ModalTitle, ControlLabel, FormControl, FormGroup, Alert } from 'react-bootstrap';\r\nimport CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';\r\n\r\nclass InputModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n validationObjects: [],\r\n }\r\n }\r\n componentDidMount = () => {\r\n\r\n }\r\n handleChanges = (e) => {\r\n // grab the validator object\r\n let validator = this.props.handleChanges(e);\r\n // filter out any checks on this same input\r\n let filter = validator.inputIdentifier;\r\n // create a new instance of the list containing validation objects from state\r\n let validationObjectsLocal = [...this.state.validationObjects];\r\n // filter out any objects on this same identifier\r\n validationObjectsLocal = validationObjectsLocal.filter(item => item.inputIdentifier != filter);\r\n // push the new validation object out to the array\r\n validationObjectsLocal.push(validator);\r\n // set the array in state\r\n this.setState({ validationObjects: validationObjectsLocal });\r\n }\r\n render() {\r\n const errorList = this.state.validationObjects.map((validationObject, key) =>\r\n !validationObject.valid ?\r\n \r\n {validationObject.message}\r\n : null\r\n )\r\n\r\n return (\r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n {this.props.message}\r\n \r\n {this.props.inputType == \"textarea\" ?\r\n :\r\n }\r\n \r\n \r\n {errorList}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default InputModal;","import React, { Component } from 'react';\r\nimport { FormControl, FormGroup, Badge, Button, Modal, ControlLabel, Alert } from 'react-bootstrap';\r\nimport { render } from 'react-dom';\r\nimport Tags from 'react-tagging-input';\r\nimport UserAPI from './../../../../../../util/api/users';\r\nimport \"react-tagging-input/dist/styles.css\";\r\nimport $ from 'jquery';\r\n\r\nclass BadgeInputPermissions extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // confirmModal: false,\r\n newValue: null,\r\n tags: this.props.programs,\r\n validationAlert: false\r\n }\r\n }\r\n componentDidUpdate = () => {\r\n this.setUpTags();\r\n }\r\n convertStringToList = (string) => {\r\n return string.split(\",\");\r\n }\r\n convertListToString = (list) => {\r\n return list.join();\r\n }\r\n // confirmModalToggle = () => {\r\n // this.setState({ confirmModal: !this.state.confirmModal })\r\n // }\r\n addNewBadge = () => {\r\n }\r\n onTagAdded = (tag) => {\r\n if (this.props.validInputs.includes(tag)) {\r\n\r\n let newList = [...this.state.tags, tag];\r\n // if it was just an empty string replace it with the new value\r\n if (newList[0] == \"\") {\r\n newList = newList.slice(1, newList.length);\r\n }\r\n this.setState({\r\n tags: newList\r\n });\r\n this.props.onChange({ target: { name: this.props.displayName, value: this.convertListToString(newList) } })\r\n } else {\r\n this.setState({ validationAlert: true });\r\n setTimeout(() => this.setState({ validationAlert: false }), 10000);\r\n }\r\n }\r\n\r\n onTagRemoved = (tag, index) => {\r\n let newList = this.state.tags.filter((tag, i) => i !== index);\r\n this.setState({\r\n tags: newList\r\n });\r\n this.props.onChange({ target: { name: this.props.displayName, value: this.convertListToString(newList) } })\r\n }\r\n getNames = (programs) => {\r\n let programNames = this.props.programs.map((program) => program.agency ? `${program.agency} - ${program.name}` : `${program.name}`);\r\n return programNames;\r\n }\r\n setUpTags = () => {\r\n // Setup tag classes if they have been added to the user or not\r\n $(`.${this.props.uniqueName} > .react-tags > .react-tags__container > li`).each((i, element) => {\r\n // check and see if this is in the userPrograms list passed in.\r\n let authorizedProgram = false;\r\n let name = element.innerText;\r\n\r\n if (this.props.userPermitedPrograms.length) {\r\n let userPrograms;\r\n if (this.props.agency.id == 0) {\r\n authorizedProgram = this.props.userPermitedPrograms.filter((program) => {\r\n return (`${program.agencyName} - ${program.name}` == name)\r\n })[0];\r\n } else {\r\n userPrograms = this.props.userPermitedPrograms.filter((program) => program.agencyId == this.props.agency.id);\r\n authorizedProgram = userPrograms.filter((program) => (program.name == name))[0];\r\n }\r\n // \r\n element.classList = [];\r\n if (authorizedProgram) {\r\n element.classList.add(\"authorized\");\r\n }\r\n }\r\n let program = this.props.programs.filter((program) => program.name == name)[0];\r\n });\r\n // setup onclicks to change the program to allow a permission\r\n $(`.${this.props.uniqueName} > .react-tags > .react-tags__container > li`).on(\"click\", (e) => {\r\n let name = e.target.innerText;\r\n // e.target.innerText.match(/- .*/g)?e.target.innerText.match(/- .*/g)[0].slice(2)\r\n let clickProgram = this.props.programs.filter((program) => (program.name == name || `${program.agency} - ${program.name}` == name))[0];\r\n let element = e.target;\r\n let authorized = element.classList.contains(\"authorized\")\r\n let pending = element.classList.contains(\"pending\")\r\n if (authorized) {\r\n element.classList.remove(\"authorized\");\r\n element.classList.add(\"pending\");\r\n UserAPI.removeUserPermission(this.props.userId, clickProgram.id).then((res) => {\r\n element.classList.remove(\"pending\");\r\n }).catch((err) => {\r\n element.classList.remove(\"pending\");\r\n element.classList.add(\"error\");\r\n })\r\n\r\n }\r\n else if (pending) {\r\n }\r\n else {\r\n element.classList.add(\"pending\");\r\n UserAPI.addUserPermission(this.props.userId, clickProgram.id).then((res) => {\r\n element.classList.remove(\"pending\");\r\n element.classList.add(\"authorized\");\r\n\r\n }).catch((err) => {\r\n element.classList.remove(\"pending\");\r\n element.classList.add(\"error\");\r\n })\r\n\r\n }\r\n let program = this.props.programs.filter((program) => program.name == name)[0];\r\n })\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default BadgeInputPermissions;","export class InputValidator {\r\n constructor(message, validation, inputIdentifier) {\r\n this.valid = false;\r\n this.inputIdentifier = inputIdentifier\r\n this.message = message;\r\n this.validation = validation;\r\n }\r\n validate = () => {\r\n if (this.validation == true) {\r\n this.message = \"success\";\r\n this.valid = \"true\";\r\n }\r\n return this;\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Tooltip, OverlayTrigger, Button, Modal, ModalHeader, ModalBody, ModalTitle, FormGroup, ControlLabel, Panel, PanelBody, PanelTitle, Badge, MenuItem, DropdownButton } from 'react-bootstrap';\r\nimport { SyncLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\nimport moment from 'moment';\r\nimport './permissions-modal.css';\r\nimport BadgeInputPermissions from './Components/BadgeInputPermissions';\r\nimport {InputValidator} from './../../../../../util/InputValidator';\r\nimport AgencyAPI from './../../../../../util/api/agency';\r\nimport ProgramAPI from './../../../../../util/api/program';\r\nimport UserAPI from './../../../../../util/api/users';\r\nimport { Scrollbars } from 'react-custom-scrollbars';\r\n\r\nclass PermissionsModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data: [], checkHistory: true,\r\n agencies: this.props.agencies,\r\n programs: [],\r\n userPermitedPrograms: []\r\n }\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 0 auto;\r\n color: #115fa4;\r\n `;\r\n return override;\r\n }\r\n loadPermittedPrograms = () => {\r\n UserAPI.userPermitedPrograms(this.props.ownerId).then(({ data }) => {\r\n this.setState({ userPermitedPrograms: data })\r\n })\r\n }\r\n handleInput = (e) => {\r\n let { name, value } = e.target;\r\n let validator = this.stateValidation(name, value)\r\n if(validator.validate().valid){\r\n this.setState({ [name]: value });\r\n }\r\n return validator;\r\n }\r\n getPrograms = (agencyId) => {\r\n ProgramAPI.getProgramListByAgencyId(agencyId).then(({ data }) => {\r\n this.setState({ programs: data });\r\n })\r\n }\r\n getAllPrograms = () => {\r\n ProgramAPI.getProgramList().then(({ data }) => {\r\n this.setState({ programs: data });\r\n })\r\n }\r\n agencySelected = (id) => {\r\n let agency = this.props.agencies.filter((agency) => agency.id == id)[0];\r\n this.loadPermittedPrograms();\r\n this.setState({ agency });\r\n if (id == 0) {\r\n this.getAllPrograms()\r\n } else {\r\n this.getPrograms(agency.id);\r\n }\r\n }\r\n programDropDownSelect = (id) => {\r\n let program = this.props.agencies.filter((program) => program.id == id)[0];\r\n this.setState({ program });\r\n }\r\n programChange = (e) => {\r\n }\r\n handleChange = (e) => {\r\n let { name, value } = e.target;\r\n this.setState({ [name]: value })\r\n\r\n }\r\n stateValidation = (name, value) => {\r\n let validators = {\r\n \"Extend Comment Period\": {\r\n \"inputModalValue\": new InputValidator(\"The number must be between 0 and 30\", value >= 0 && value <= 30, \"inputModalValue\")\r\n },\r\n \"Rules Reject\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n },\r\n \"GOPB Hold\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n },\r\n \"Gov Hold\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n }\r\n }\r\n let validator = validators[this.props.action.modalConfirmTitle][name];\r\n if (validator == null) {\r\n validator = new InputValidator(\"Nothing Required\", true);\r\n }\r\n return validator;\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n \r\n User: {this.props.row.Username}\r\n \r\n \r\n \r\n
\r\n
\r\n
}>\r\n {this.props.agencies.map((agency, key) => {\r\n if (agency.name == \"All Agencies\") {\r\n return ()\r\n }\r\n return ;\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
}>\r\n

{this.state.agency ? this.state.agency.name : ''}

\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\nexport default PermissionsModal;","import React, { Component } from \"react\";\r\nimport {\r\n Tooltip,\r\n OverlayTrigger,\r\n Button,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalTitle,\r\n ControlLabel,\r\n FormControl,\r\n FormGroup,\r\n Alert,\r\n} from \"react-bootstrap\";\r\nimport CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';\r\nimport DatePicker from \"react-datepicker\";\r\nimport moment from \"moment\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport \"./CSS/DateInputModal.css\";\r\n\r\nclass DateInputModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n if (props.row[\"Hidden Effective Date\"] != null) {\r\n this.state = {\r\n validationObjects: [],\r\n effectiveDate: props.row[\"Hidden Effective Date\"]\r\n ? new Date(props.row[\"Hidden Effective Date\"])\r\n : new Date(this.props.row[\"Hidden Public Comment End\"]).addDays(8),\r\n commentEndDate: new Date(this.props.row[\"Hidden Public Comment End\"]),\r\n commentDate: new Date(\r\n this.props.row[\"Hidden Public Comment End\"]\r\n ).subtractDays(this.props.row[\"Public Comment Period\"]),\r\n commentReviewEnd: new Date(\r\n this.props.row[\"Hidden Public Comment End\"]\r\n ).addDays(7),\r\n upperLimit: new Date(\r\n this.props.row[\"Hidden Public Comment End\"]\r\n ).addDays(120),\r\n dayClassList: [\r\n \".datepicker-public-comment-period\",\r\n \".datepicker-comment-review-period\",\r\n ],\r\n errorMessage: \"test error message\",\r\n error: false,\r\n };\r\n } else {\r\n this.state = {\r\n validationObjects: [],\r\n effectiveDate: new Date(),\r\n commentEndDate: new Date().addDays(-10000),\r\n commentDate: new Date().addDays(-10000),\r\n commentReviewEnd: new Date().addDays(-10000),\r\n upperLimit: new Date().addDays(120),\r\n dayClassList: [\r\n \".datepicker-public-comment-period\",\r\n \".datepicker-comment-review-period\",\r\n ],\r\n errorMessage: \"test error message\",\r\n error: false,\r\n };\r\n }\r\n }\r\n addInLedgend = (monthChange) => {\r\n let customLegend = document.querySelector(\".customLegend\");\r\n if (monthChange && customLegend) {\r\n customLegend.remove();\r\n }\r\n let component = document.querySelector(\".DateInputModal\");\r\n\r\n // if the element exists than do nothing otherwise create it\r\n let datePickerDropDown = component.querySelector(\r\n \".react-datepicker__header__dropdown\"\r\n );\r\n let div = document.createElement(\"div\");\r\n let keyDemos = this.state.dayClassList.map((className, key) => {\r\n let dayComponents = component.querySelector(className);\r\n let label = component.querySelector(`${className}-label`);\r\n if (dayComponents && !label) {\r\n let label = document.createElement(\"span\");\r\n label.classList.add(`${className.replace(\".\", \"\")}-label`);\r\n let br = document.createElement(\"br\");\r\n label.innerHTML = className\r\n .slice(12, className.length)\r\n .replace(new RegExp(\"-\", \"g\"), \" \");\r\n div.appendChild(label);\r\n let newDaySquare = dayComponents.cloneNode(true);\r\n newDaySquare.innerHTML = \" \";\r\n div.appendChild(newDaySquare);\r\n div.appendChild(br);\r\n div.classList.add(\"customLegend\");\r\n datePickerDropDown.appendChild(div);\r\n }\r\n });\r\n };\r\n handleChanges = (e) => {\r\n // grab the validator object\r\n let validator = this.props.handleChanges(e);\r\n // filter out any checks on this same input\r\n let filter = validator.inputIdentifier;\r\n // create a new instance of the list containing validation objects from state\r\n let validationObjectsLocal = [...this.state.validationObjects];\r\n // filter out any objects on this same identifier\r\n validationObjectsLocal = validationObjectsLocal.filter(\r\n (item) => item.inputIdentifier != filter\r\n );\r\n // push the new validation object out to the array\r\n validationObjectsLocal.push(validator);\r\n // set the array in state\r\n this.setState({ validationObjects: validationObjectsLocal });\r\n };\r\n inputField = {\r\n displayName: \"Effective Date\",\r\n name: \"effectiveDate\",\r\n type: \"date\",\r\n additionalInfo: \"https://rules.utah.gov/agency-resources/time-frames/\",\r\n required: true,\r\n };\r\n handleDate = (date) => {\r\n this.setState({ error: false });\r\n if (this.duringPublicCommentPeriod(date)) {\r\n this.setState({\r\n errorMessage:\r\n \"The date you selected falls in the public comment period and is not a valid effective date.\",\r\n });\r\n this.setState({ error: true });\r\n setTimeout(() => this.setState({ error: false }), 5000);\r\n } else if (this.duringCommentReviewPeriod(date)) {\r\n this.setState({\r\n errorMessage:\r\n \"The date you selected falls in the 7 day comment review period and is not a valid effective date.\",\r\n });\r\n this.setState({ error: true });\r\n setTimeout(() => this.setState({ error: false }), 5000);\r\n } else {\r\n this.setState({ effectiveDate: date });\r\n }\r\n };\r\n duringPublicCommentPeriod = (date) => {\r\n if (\r\n date.getTime() >= this.state.commentDate.getTime() &&\r\n date.getTime() <= this.state.commentEndDate.getTime()\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n duringCommentReviewPeriod = (date) => {\r\n if (\r\n date.getTime() > this.state.commentEndDate.getTime() &&\r\n date.getTime() <= this.state.commentReviewEnd.getTime()\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n setEffectiveDate = () => {\r\n const effectiveDate = this.state.effectiveDate.toISOString();\r\n this.props.confirmButtonFunction(effectiveDate);\r\n this.props.confirmModalToggle();\r\n };\r\n render() {\r\n const errorList = this.state.validationObjects.map(\r\n (validationObject, key) =>\r\n !validationObject.valid ? (\r\n \r\n {validationObject.message}\r\n \r\n ) : null\r\n );\r\n\r\n let minDate = this.state.commentDate;\r\n\r\n let maxDate = this.state.upperLimit;\r\n\r\n if (this.props.title == \"Change Effective Date\") {\r\n minDate = moment().add(200000, \"d\");\r\n maxDate = moment().add(-200000, \"d\");\r\n }\r\n\r\n return (\r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n {this.props.message}\r\n {\r\n this.addInLedgend(true);\r\n }}\r\n dayClassName={(date) => {\r\n this.addInLedgend(false);\r\n if (this.duringPublicCommentPeriod(date)) {\r\n return \"datepicker-public-comment-period\";\r\n } else if (this.duringCommentReviewPeriod(date)) {\r\n return \"datepicker-comment-review-period\";\r\n }\r\n return;\r\n }}\r\n onChange={this.handleDate}\r\n value={moment(this.state.effectiveDate).format(\"MM/DD/YYYY\")}\r\n />\r\n \r\n {this.state.error ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default DateInputModal;\r\n","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, Modal, FormGroup, ControlLabel, Label, Button, Alert } from 'react-bootstrap';\r\nimport Dropzone from 'react-dropzone';\r\nimport './CSS/Upload.css';\r\nimport S3API from './../../../../../util/api/s3';\r\nimport RulePacketAPI from './../../../../../util/api/rulePacket';\r\nimport CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';\r\nimport { BarLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\n\r\nclass InputModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n validationObjects: [],\r\n uploading: false\r\n }\r\n }\r\n componentDidMount = () => {\r\n // Grab clean text file for this packet\r\n // RulePacketAPI.getRulePacket(this.props.row._original.id).then(({ data }) => {\r\n // })\r\n\r\n }\r\n handelInput = (e) => {\r\n // grab the validator object\r\n let { name, value } = e.target;\r\n this.setState({ [name]: value });\r\n }\r\n onDrop(files) {\r\n if (files.length > 1) {\r\n this.handleChanges(null);\r\n // Setup animation to bring in the active class wait 3000 seconds and add in the inactive class, then at 5 seconds both classes are taken off\r\n this.setState({ fadeIn: true })\r\n setTimeout(() => {\r\n this.setState({ fadeOut: true })\r\n setTimeout(() => this.setState({ fadeOut: false }), 2000)\r\n }, 3000)\r\n setTimeout(() => this.setState({ fadeIn: false }), 5000)\r\n }\r\n else {\r\n this.handleChanges(files[0]);\r\n }\r\n }\r\n downloadFile = (extension) => {\r\n S3API.getFile(this.state.guid + extension, this.state.file.name.replace(\".docx\",extension))\r\n }\r\n\r\n handleChanges(file) {\r\n let fd = new FormData();\r\n fd.append('file', file)\r\n this.setState({ uploading: true });\r\n S3API.uploadFileAndConvert(fd, file.name).then(({ data }) => {\r\n let guid = data.replace(/\\.[^/.]+$/, \"\");\r\n this.setState({ file })\r\n this.setState({ guid });\r\n this.setState({ uploading: false });\r\n }\r\n )\r\n\r\n\r\n\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin-bottom:200px;\r\n color: #115fa4;\r\n width: 8em;\r\n `;\r\n return override;\r\n }\r\n onCancel() {\r\n this.setState({\r\n file: null\r\n });\r\n }\r\n render() {\r\n const errorList = this.state.validationObjects.map((validationObject, key) =>\r\n !validationObject.valid ?\r\n \r\n {validationObject.message}\r\n : null\r\n )\r\n\r\n return (\r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n
\r\n {!this.state.uploading ?\r\n
\r\n\r\n {!this.state.guid ?\r\n {this.props.message}\r\n :\r\n \r\n }\r\n \r\n \r\n {\r\n this.state.guid ?\r\n \r\n :\r\n \r\n }\r\n\r\n \r\n
\r\n :\r\n
\r\n Uploading file..\r\n \r\n
\r\n\r\n }\r\n
\r\n You may only upload one file.\r\n\r\n \r\n {errorList}\r\n \r\n \r\n
\r\n
)\r\n }\r\n}\r\n\r\nexport default InputModal;","import React, { Component } from 'react';\r\nimport S3API from './../../../../../../util/api/s3';\r\nimport { SyncLoader, BarLoader } from 'react-spinners';\r\nimport { Button, Panel } from 'react-bootstrap';\r\nimport { css } from 'react-emotion';\r\n\r\n\r\nclass HistoryDownloadButton extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n downloadingFile: false\r\n }\r\n }\r\n startDownload = () => {\r\n this.setState({ downloadFile: true });\r\n }\r\n endDownload = () => {\r\n this.setState({ downloadFile: false });\r\n }\r\n render() {\r\n return (this.state.downloadingFile ?\r\n
\r\n \r\n
\r\n : this.props.downloadFile(this.props.extension, this.startDownload, this.endDownload)}>);\r\n }\r\n}\r\n\r\nexport default HistoryDownloadButton;","import React, { Component } from 'react';\r\nimport S3API from './../../../../../../util/api/s3';\r\nimport { SyncLoader, BarLoader } from 'react-spinners';\r\nimport { Button, Panel } from 'react-bootstrap';\r\nimport { css } from 'react-emotion';\r\nimport HistoryDownloadButton from './HistoryDownloadButton';\r\n\r\nclass HistoryComment extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n downloadingHtmlFile: false\r\n }\r\n }\r\n downloadRuleText = (extension, startDownload, endDownload) => {\r\n let folder = \"\";\r\n let guid = this.props.entry.comment.replace(/\\.[^/.]+$/, \"\");\r\n this.setState({ downloadingFile: true })\r\n S3API.getRuleText(guid + extension, this.props.entry.changeValueTo).then((res) => {\r\n this.setState({ downloadingFile: false })\r\n })\r\n }\r\n downloadFile = (extension, startDownload, endDownload) => {\r\n let folder = \"\";\r\n if (this.props.row.Status[0] == \"Codified & Published\" || this.props.row.Status[0] == \"Rule Expired\" || this.props.row.Status[0] == \"Due for 5 Year Review\" && this.props.entry.displayName == \"Clean Text Uploaded\") {\r\n switch (extension) {\r\n case '.pdf':\r\n folder = \"uac-pdf/\"\r\n break;\r\n case '.docx':\r\n folder = \"uac-docx/\"\r\n break;\r\n case '.html':\r\n folder = \"uac-html/\"\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n let guid = this.props.entry.comment.replace(/\\.[^/.]+$/, \"\");\r\n this.setState({ downloadingFile: true })\r\n const downloadFileName = this.props.entry.changeValueTo.includes(extension) ? this.props.entry.changeValueTo : this.props.entry.changeValueTo + extension;\r\n const downloadLocation = folder + guid + extension;\r\n S3API.publicGetFile(downloadLocation, downloadFileName).then((res) => {\r\n this.setState({ downloadingFile: false })\r\n })\r\n }\r\n else {\r\n let guid = this.props.entry.comment.replace(/\\.[^/.]+$/, \"\");\r\n this.setState({ downloadingFile: true })\r\n const downloadFileName = this.props.entry.changeValueTo.includes(extension) ? this.props.entry.changeValueTo : this.props.entry.changeValueTo + extension;\r\n const downloadLocation = folder + guid + extension;\r\n S3API.getRuleText(downloadLocation, downloadFileName).then((res) => {\r\n this.setState({ downloadingFile: false })\r\n })\r\n }\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 0 auto;\r\n color: #115fa4;\r\n `;\r\n return override;\r\n }\r\n render() {\r\n switch (this.props.entry.displayName) {\r\n case \"Proposed Text Uploaded\":\r\n return (\r\n \r\n );\r\n case \"Clean Text Uploaded\":\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n default:\r\n return (\r\n \r\n

Comments:

\r\n

{this.props.entry.comment.split(\"\\n\").map((i, key) => {\r\n return

{i}
;\r\n })}\r\n\r\n

\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default HistoryComment;","import moment from 'moment';\r\nimport React, { Component } from 'react';\r\nimport { Badge, Button, Modal, Panel } from 'react-bootstrap';\r\nimport { css } from 'react-emotion';\r\nimport { SyncLoader } from 'react-spinners';\r\nimport HistoryComment from './Components/HistoryComment';\r\n\r\nclass ConfirmationModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { data: [], checkHistory: true, downloadingFile: false }\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 0 auto;\r\n color: #115fa4;\r\n `;\r\n return override;\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n {this.props.data.length ?\r\n
\r\n {this.props.data.map(entry => {\r\n return (\r\n
\r\n \r\n \r\n {entry.displayName ? entry.displayName : \"No History Available\"}\r\n {entry.changeValueTo ? {entry.changeValueFrom} to {entry.changeValueTo} : null}\r\n {`${moment(entry.createdDate).format('MM/DD/YYYY hh:mm:ss a')} - `}\r\n {`${entry.firstName} ${entry.lastName}`}\r\n \r\n \r\n {entry.comment ? : null}\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
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ConfirmationModal;","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport './CheckBoxInput.css';\r\n\r\nconst CheckBoxInput = (props) => {\r\n return (\r\n
\r\n {props.inputField.displayName}\r\n \r\n {\r\n let e = { target: { value: !props.parentState[props.inputField.name], name: props.inputField.name } }\r\n props.handelInput(e)\r\n }}\r\n value={props.parentState[props.inputField.name]}\r\n checked={props.parentState[props.inputField.name]}\r\n type=\"checkbox\"\r\n className=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />\r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport default CheckBoxInput; ","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, ControlLabel, Button } from 'react-bootstrap';\r\nimport NewRuleInputs from './NewRuleInputs';\r\nimport './DropDown.css'\r\n\r\nlet ajaxPopulations = (parentState, inputField, liaisons) => {\r\n switch (inputField.name) {\r\n case \"AgencyName\":\r\n return (\r\n \r\n );\r\n case \"ProgramName\":\r\n return (\r\n \r\n );\r\n case \"RuleVersionName\":\r\n return (\r\n \r\n );\r\n case \"LiaisonName\":\r\n return liaisons.map((option, key) => {\r\n return (\r\n \r\n )\r\n }\r\n );\r\n default:\r\n return inputField\r\n .options\r\n .map((option, key) => {\r\n return (\r\n )\r\n });\r\n }\r\n}\r\n\r\nclass DropDown extends Component {\r\n constructor(props) {\r\n super(props)\r\n }\r\n componentDidMount = () => {\r\n\r\n }\r\n shouldComponentRender = () => {\r\n if (this.props.inputField.name == \"ProgramName\") {\r\n return true;\r\n }\r\n if (this.props.inputField.name == \"RuleVersionName\") {\r\n return true;\r\n }\r\n else if (this.props.inputField.name == \"LiaisonName\") {\r\n return true;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n shouldDisable = () => {\r\n if(this.props.disable){\r\n return true;\r\n }\r\n switch (this.props.inputField.name) {\r\n case \"AgencyName\":\r\n return true;\r\n case \"ProgramName\":\r\n return true;\r\n case \"RuleVersionName\":\r\n return true;\r\n case \"LiaisonName\":\r\n return false;\r\n default:\r\n return true;\r\n }\r\n }\r\n render() {\r\n return (\r\n this.shouldComponentRender() ?\r\n
\r\n {this.props.inputField.displayName}\r\n \r\n {\r\n // If props.parentThis is a title then grab the agencyId by filtering through the agencies in the state and grabing the id of the one that has the same name sa the targets value\r\n let id;\r\n // Only allow a select on elements that have and id (Do not let default be selected)\r\n if (!(e.target.value === \"\")) {\r\n switch (this.props.inputField.name) {\r\n case \"AgencyName\":\r\n break;\r\n case \"ProgramName\":\r\n break;\r\n case \"RuleVersionName\":\r\n break;\r\n case \"LiaisonName\":\r\n id = this.props.liaisons.filter((liaison) => liaison.name === e.target.value)[0].id\r\n this.props.handelInput(e, id);\r\n break;\r\n default:\r\n break;\r\n }\r\n this.props.parentThis.props.handelInput(e, id);\r\n }\r\n\r\n }}\r\n componentClass=\"select\" placeholder=\"select\" required={this.props.inputField.required}>\r\n {/* Sets up state to a default drop down option */}\r\n\r\n {this.props.inputField.value ? null\r\n : \r\n }\r\n )\r\n {/* If this.props.parentThis dropdown is for an agency\"ProgramName listing\" than make the api call to get the list */}\r\n {ajaxPopulations(this.props.parentThis.state, this.props.inputField, this.props.liaisons)}\r\n \r\n\r\n\r\n\r\n\r\n \r\n\r\n
\r\n : null\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default DropDown; ","import React, { Component } from \"react\";\r\nimport AgencyAPI from './../..../../../../../../../../util/api/agency';\r\nimport { CheckBoxInput, DropdownInputField, EmailUrl, DefaultInput, Number, PublicCommentPeriod, Upload, PhoneInput, DatePicker, Tags, BlockDisplay, NumberLetter } from './../EditFields';\r\nimport ProgramAPI from './../..../../../../../../../../util/api/program';\r\nimport RulesAPI from './../..../../../../../../../../util/api/rules';\r\nimport LiaisonAPI from './../..../../../../../../../../util/api/liaison';\r\nimport { FormGroup, DropdownButton, MenuItem, InputGroup, InputGroupAddon, ControlLabel, Dropdown, FormControl } from 'react-bootstrap';\r\nimport program from \"./../..../../../../../../../../util/api/program\";\r\n\r\n\r\nclass NewRuleInputs extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n agencies: [],\r\n programs: [],\r\n rules: [],\r\n liaisons: []\r\n }\r\n }\r\n handelInput = (name, value) => {\r\n this.props.handelInput({ name, value })\r\n }\r\n\r\n inputType = (inputField) => {\r\n switch (inputField.type) {\r\n case 'dropdown':\r\n return ;\r\n case 'email-url':\r\n return ;\r\n case 'upload':\r\n return ;\r\n case 'date':\r\n return ;\r\n case 'number':\r\n return ;\r\n case 'public_comment_period':\r\n return ;\r\n case 'phone':\r\n return ;\r\n case 'checkbox':\r\n return ;\r\n case 'tags':\r\n return ;\r\n case 'blockDisplay':\r\n return ;\r\n case 'numberLetter':\r\n return ;\r\n default:\r\n return ;\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n {this.props.inputFields\r\n .map((inputField, i) => (\r\n \r\n {this.inputType(inputField)}\r\n \r\n ))}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default NewRuleInputs;","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\n\r\nclass EmailUrl extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n label: \"URL or Email\",\r\n pattern: this.emailPattern,\r\n message: \"Invalid\"\r\n }\r\n }\r\n urlPattern=\"^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$\";\r\n emailPattern=\"[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,63}$\";\r\n impossiblePattern=null;\r\n urlRegex = new RegExp(/^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/g);\r\n emailRegex = new RegExp(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,63}$/);\r\n\r\n changeHandler = (e) => {\r\n const { value } = e.target;\r\n const isUrl = value!=null?value.match(this.urlRegex):false;\r\n if (isUrl == null) {\r\n const isEmail = value.match(this.emailRegex);\r\n if (isEmail == null) {\r\n this.setState({ label: \"URL or Email\", pattern: this.emailPattern, message: \"Please enter a valid url or email\" });\r\n } else {\r\n this.setState({ label: \"EMAIL\", pattern: this.emailPattern, message: \"Invalid Email\" });\r\n }\r\n } else {\r\n this.setState({ label: \"URL\", pattern: this.urlPattern, message: \"Invalid URL\" });\r\n }\r\n this.props.handelInput(e);\r\n }\r\n\r\n componentDidMount = () => {\r\n this.changeHandler({target:{name:this.props.inputField.name,value:this.props.value}})\r\n }\r\n render() {\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n \r\n
\r\n {this.state.label}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EmailUrl; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\n\r\n\r\nconst DefaultInput = (props) => {\r\n return (\r\n
\r\n {props.inputField.displayName}\r\n \r\n { props.handelInput(e) }}\r\n value={props.parentState[props.inputField.name]}\r\n type={props.inputField.type}\r\n pattern={props.inputField.pattern}\r\n title={props.inputField.validationMessage}\r\n className=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />\r\n \r\n
)\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\n\r\n\r\n\r\nconst DefaultInput = (props) => {\r\n\r\n\r\n let formType = (parentThis, inputField) => {\r\n switch (inputField.displayName) {\r\n case \"Agency Number\":\r\n return (\r\n {\r\n // Parse value into an int to remove usless 00s at the begining\r\n let incomingValue = parseInt(e.target.value);\r\n // check to see if the number is in the current agency list\r\n let AgencyInList = parentThis.state.agencies.filter((agency) => parseInt(agency.number) === incomingValue);\r\n if (props.row) {\r\n // If it is the same as the current number dont freak out \r\n if (props.row[props.inputField.name] == incomingValue) {\r\n AgencyInList = [];\r\n }\r\n }\r\n // validatation test It is greater than 0 and not in the current agency list\r\n if (e.target.value > 0 && !AgencyInList.length) {\r\n // sets to valid by removing all custom validation\r\n e.target.setCustomValidity(\"\");\r\n e.target.value = parseInt(e.target.value);\r\n // addes this value to the state submission object in input\r\n props.parentThis.props.handelInput(e)\r\n }\r\n else {\r\n props.parentThis.props.handelInput(e)\r\n // If it is not valid say that it is already in use\r\n e.target.setCustomValidity(\"Agency Number already in use\");\r\n }\r\n\r\n }}\r\n type=\"text\"\r\n class=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`}\r\n pattern />\r\n\r\n );\r\n default:\r\n return { props.parentThis.props.handelInput(e) }}\r\n type={props.inputField.type}\r\n class=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />;\r\n }\r\n }\r\n\r\n\r\n return (\r\n
\r\n {props.inputField.displayName}\r\n \r\n {formType(props.parentThis, props.inputField)}\r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport './PublicCommentPeriod.css';\r\n\r\n\r\nconst min = 30;\r\nconst max = 113;\r\nconst defaultValue = 30;\r\n\r\nconst DefaultInput = (props) => {\r\n return (\r\n
\r\n {props.inputField.displayName}Filing Deadlines\r\n \r\n { props.parentThis.props.handelInput(e) }}\r\n value={props.parentThis.props.parentState[props.inputField.name]}\r\n type=\"number\"\r\n className=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />\r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel, Pagination } from 'react-bootstrap';\r\n\r\nlet active = 7;\r\nlet items = [];\r\nfor (let number = 1; number <= 10; number++) {\r\n items.push(\r\n {number}\r\n );\r\n}\r\n\r\n\r\nconst DefaultInput = (props) => {\r\n let test = props.rules.map(rule => {rule.num})\r\n return (\r\n
\r\n {props.inputField.displayName}({props.parentState.Program})\r\n\r\n
\r\n\r\n {props.rules.map(rule => {rule.num})}\r\n
)\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, ControlLabel, Label, Button, Alert } from 'react-bootstrap';\r\nimport Dropzone from 'react-dropzone';\r\nimport './Upload.css';\r\nimport S3API from './../..../../../../../../../../util/api/s3';\r\nimport { BarLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\nimport moment from 'moment';\r\n\r\nclass Upload extends Component {\r\n constructor() {\r\n super()\r\n this.state = { file: null, fadeIn: false, fadeOut: false, errorMessage: \"Invalid File\" }\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n color: #115fa4;\r\n margin-bottom:195px;\r\n width: 8em;\r\n `;\r\n return override;\r\n }\r\n\r\n handleChanges(file) {\r\n let fd = new FormData();\r\n fd.append('file', file)\r\n this.setState({ uploading: true });\r\n S3API.uploadFile(fd, file.name).then(({ data }) => {\r\n // make screen changes\r\n let tempGUID = { target: { name: \"tempGUID\", value: data } }\r\n this.props.parentThis.props.handelInput(tempGUID)\r\n let fileInfo = { target: { name: this.props.inputField.name, value: file } }\r\n let fileName = { target: { name: \"FileDisplayName\", value: file.name } }\r\n this.props.parentThis.props.handelInput(fileName)\r\n this.props.parentThis.props.handelInput(fileInfo)\r\n this.setState({ uploading: false });\r\n }\r\n )\r\n }\r\n downloadFile = () => {\r\n\r\n S3API.getFile(this.props.tempGUID, this.props.value.name)\r\n }\r\n downloadHistoricalFile = (s3Name, downloadName, sourceDoc) => {\r\n const extension = '.docx';\r\n downloadName = downloadName.includes(extension) ? downloadName : downloadName + extension\r\n switch (sourceDoc.documentType.descr) {\r\n case \"PROPOSED_RULE_TEXT\":\r\n S3API.getRuleText(s3Name, downloadName)\r\n break;\r\n case \"INACTIVE_CORRECTION\":\r\n S3API.getRuleText(s3Name, downloadName)\r\n break;\r\n case \"CLEAN_TEXT\":\r\n if (this.props.inputField.packetType == \"Current Rules\") {\r\n S3API.publicGetFile(\"uac-docx/\" + s3Name, downloadName)\r\n } else {\r\n S3API.getRuleText(s3Name, downloadName)\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onDrop(files, rejectedFiles) {\r\n // need to fix this and use the default multiple={false} on drop zone\r\n if (!rejectedFiles.length) {\r\n if (files.length > 1) {\r\n // Setup animation to bring in the active class wait 3000 seconds and add in the inactive class, then at 5 seconds both classes are taken off\r\n this.setState({ fadeIn: true })\r\n this.setState({ errorMessage: \"You may only upload one file at a time.\" })\r\n setTimeout(() => {\r\n this.setState({ fadeOut: true })\r\n setTimeout(() => this.setState({ fadeOut: false }), 2000)\r\n }, 3000)\r\n setTimeout(() => this.setState({ fadeIn: false }), 5000)\r\n }\r\n else {\r\n this.handleChanges(files[0]);\r\n }\r\n } else {\r\n this.setState({ fadeIn: true })\r\n this.setState({ errorMessage: \"Only .docx files may be uploaded\" })\r\n setTimeout(() => {\r\n this.setState({ fadeOut: true })\r\n setTimeout(() => this.setState({ fadeOut: false }), 2000)\r\n }, 3000)\r\n setTimeout(() => this.setState({ fadeIn: false }), 5000)\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.setState({\r\n file: null\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n {!this.state.uploading ?\r\n
\r\n\r\n Proposed Rule Text: {this.props.value ? {`${this.props.value.name}`} : null}\r\n {!this.props.disable ?\r\n \r\n \r\n {\r\n this.props.value ?\r\n \r\n :\r\n \r\n }\r\n\r\n \r\n : null}\r\n
\r\n :\r\n
\r\n Uploading file..\r\n \r\n
\r\n }\r\n {\r\n this.props.inputField.fileHistory.map((sourceDoc, key) => {\r\n return (\r\n
\r\n {sourceDoc.documentType.descr}:\r\n   {moment(sourceDoc.createdDate).format(\"MM/DD/YYYY hh:mm:ss a\")}- this.downloadHistoricalFile(sourceDoc.dataDocx, sourceDoc.name, sourceDoc)}>{`${sourceDoc.name}`}\r\n
\r\n );\r\n })\r\n\r\n }\r\n {this.state.errorMessage}\r\n
\r\n
\r\n
)\r\n }\r\n}\r\nexport default Upload; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\n\r\n\r\nconst PhoneInput = (props) => (\r\n
\r\n {props.inputField.displayName}\r\n \r\n { props.parentThis.props.handelInput(e) }}\r\n value={props.parentThis.props.parentState[props.inputField.name]}\r\n type=\"tel\"\r\n title=\"Format: 123-456-7890\"\r\n pattern=\"[0-9]{3}-[0-9]{3}-[0-9]{4}\"\r\n class=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.name}`} />\r\n \r\n
\r\n);\r\n\r\n\r\nexport default PhoneInput; ","import React, {Component} from 'react';\r\nimport $ from 'jquery';\r\nimport Datetime from 'react-datetime';\r\nimport 'react-datetime/css/react-datetime.css';\r\nimport './Calendar.css';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport moment from 'moment';\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { daysUntil: \"-\" };\r\n }\r\n\r\n calculateDaysLeft = (momentObject) => {\r\n let today = moment();\r\n let daysUntil = momentObject.diff(today, 'days');\r\n this.setState({daysUntil});\r\n }\r\n \r\n render(){\r\n $(\".readonly\").keydown(function (e) {\r\n e.preventDefault();\r\n });\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n \r\n
\r\n {document.querySelector(\".rdt input\").click();}} readOnly value={this.props.value} />\r\n \r\n { this.calculateDaysLeft(momentObject); let event = { target: { name: this.props.inputField.name, value: momentObject.format('MM/DD/YYYY') } }; this.props.handelInput(event) }} />\r\n
\r\n {this.state.daysUntil} days until.\r\n
\r\n
\r\n )\r\n };\r\n}\r\n\r\nexport default Calendar; ","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport './CheckBoxInput.css';\r\nimport Tags from 'react-tagging-input';\r\n\r\n// onChange={(e) => { props.parentThis.props.handelInput(e) }}\r\n// value={props.parentThis.props.parentState[props.inputField.name]}\r\n\r\nclass TagsInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n tags: props.parentThis.props.parentState[props.inputField.name] != null ? this.convertStringToList(props.parentThis.props.parentState[props.inputField.name]) : []\r\n }\r\n }\r\n\r\n convertListToString = (list) => {\r\n if (list == null) {\r\n return null;\r\n }\r\n return list.join(\",\");\r\n }\r\n\r\n convertStringToList = (string) => {\r\n if (string == null) {\r\n return [];\r\n }\r\n return string.split(\",\");\r\n }\r\n\r\n onTagAdded = (tag) => {\r\n let tags = ([...this.convertStringToList(this.props.additionalInformation), tag])\r\n // let e = { target: { name: this.props.inputField.name, value: this.this.convertListToString(tags) } }\r\n this.props.updateCitations(this.convertListToString(tags))\r\n }\r\n\r\n onTagRemoved = (tag, index) => {\r\n let tags = this.convertStringToList(this.props.additionalInformation).filter((tag, i) => i !== index);\r\n // let e = { target: { name: this.props.inputField.name, value: this.this.convertListToString(tags) } }\r\n this.props.updateCitations(this.convertListToString(tags))\r\n }\r\n render() {\r\n\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n\r\n \r\n {this.props.disable ?
: null}\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default TagsInput; ","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport './NumberLetterInput.css'\r\n\r\n\r\nconst DefaultInput = (props) => {\r\n return (\r\n
\r\n {props.inputField.displayName}\r\n \r\n {\r\n let { value } = e.target;\r\n let ruleNums = props.rules.filter(rule => rule.num == value);\r\n if (ruleNums.length) {\r\n // trigger html validation that this rule number already exists\r\n e.target.value = \"\";\r\n props.parentThis.props.handelInput(e)\r\n let paginationList = e.target.parentElement.parentElement.parentElement.parentElement.querySelector(\".pagination\");\r\n let listItems = paginationList.querySelectorAll(\"li\");\r\n for (let i = 0; i < listItems.length; i++) {\r\n const li = listItems[i];\r\n const link = li.querySelector(\"a\")\r\n if (link.text == value) {\r\n link.classList.add(\"danger\");\r\n setTimeout(() => link.classList.remove(\"danger\"), 2000)\r\n }\r\n\r\n }\r\n e.target.focus();\r\n }\r\n }}\r\n onChange={(e) => {\r\n let value = e.target.value;\r\n let valid = false;\r\n if (value) {\r\n let validPortion = value.match(props.inputField.pattern);\r\n if (validPortion) {\r\n valid = validPortion[0] == value\r\n }\r\n if (valid) {\r\n props.parentThis.props.handelInput(e)\r\n }\r\n } else {\r\n props.parentThis.props.handelInput(e)\r\n }\r\n }}\r\n value={props.parentState[props.inputField.name]}\r\n type={props.inputField.type}\r\n pattern={props.inputField.pattern}\r\n title={props.inputField.validationMessage}\r\n className=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />\r\n \r\n
)\r\n}\r\n\r\n\r\nexport default DefaultInput; ","import React, {Component} from 'react';\r\nimport $ from 'jquery';\r\nimport Datetime from 'react-datetime';\r\nimport 'react-datetime/css/react-datetime.css';\r\nimport './Calendar.css';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport moment from 'moment';\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { daysUntil: \"-\" };\r\n }\r\n\r\n calculateDaysLeft = (momentObject) => {\r\n let today = moment();\r\n let daysUntil = momentObject.diff(today, 'days');\r\n this.setState({daysUntil});\r\n }\r\n \r\n render(){\r\n $(\".readonly\").keydown(function (e) {\r\n e.preventDefault();\r\n });\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n \r\n
\r\n {document.querySelector(\".rdt input\").click();}} readOnly value={this.props.value} />\r\n \r\n { this.calculateDaysLeft(momentObject); let event = { target: { name: this.props.inputField.name, value: momentObject.format('MM/DD/YYYY') } }; this.props.handelInput(event) }} />\r\n
\r\n {this.state.daysUntil} days until.\r\n
\r\n
\r\n )\r\n };\r\n}\r\n\r\nexport default Calendar; ","import React, {Component} from 'react';\r\nimport $ from 'jquery';\r\nimport Datetime from 'react-datetime';\r\nimport 'react-datetime/css/react-datetime.css';\r\nimport './Calendar.css';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\nimport moment from 'moment';\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { daysUntil: \"-\" };\r\n }\r\n\r\n calculateDaysLeft = (momentObject) => {\r\n let today = moment();\r\n let daysUntil = momentObject.diff(today, 'days');\r\n this.setState({daysUntil});\r\n }\r\n \r\n render(){\r\n $(\".readonly\").keydown(function (e) {\r\n e.preventDefault();\r\n });\r\n return (\r\n
\r\n {this.props.inputField.displayName}\r\n \r\n
\r\n {document.querySelector(\".rdt input\").click();}} readOnly value={this.props.value} />\r\n \r\n { this.calculateDaysLeft(momentObject); let event = { target: { name: this.props.inputField.name, value: momentObject.format('MM/DD/YYYY') } }; this.props.handelInput(event) }} />\r\n
\r\n {this.state.daysUntil} days until.\r\n
\r\n
\r\n )\r\n };\r\n}\r\n\r\nexport default Calendar; ","import React, { Component } from 'react';\r\nimport Date1 from './Date1';\r\nimport Date2 from './Date2';\r\n\r\nexport default class DatesContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { date1: null, date2: null };\r\n }\r\n render() {\r\n return this.props.type == \"date1\" ?\r\n :\r\n this.props.type == \"date2\" ?\r\n \r\n : \"invalid type\";\r\n }\r\n}","import React from 'react';\r\nimport { FormControl, InputGroup, ControlLabel } from 'react-bootstrap';\r\n\r\n\r\nconst RuleTypeInput = (props) => {\r\n return (\r\n
\r\n {props.inputField.displayName}\r\n \r\n { props.handelInput(e) }}\r\n value={props.inputField.value}\r\n type={props.inputField.type}\r\n pattern={props.inputField.pattern}\r\n title={props.inputField.validationMessage}\r\n className=\"form-control input-md\"\r\n id={`${props.inputField.name}Input`}\r\n required={props.inputField.required}\r\n placeholder={`${props.inputField.displayName}`} />\r\n \r\n
)\r\n}\r\n\r\n\r\nexport default RuleTypeInput; ","import React, { Component } from \"react\";\r\nimport { CheckBoxInput, DropdownInputField, EmailUrl, DefaultInput, Number, PublicCommentPeriod, Upload, PhoneInput, DatePicker, Tags, DatesContainer,RuleTypeInput } from './EditFields';\r\nimport LiaisonAPI from './../../../../../../util/api/liaison';\r\nimport { FormGroup, DropdownButton, MenuItem, InputGroup, InputGroupAddon, ControlLabel, Dropdown, FormControl } from 'react-bootstrap';\r\n\r\n\r\nclass EditMapper extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n agencies: [],\r\n programs: [],\r\n rules: [],\r\n liaisons: []\r\n }\r\n }\r\n\r\n\r\n handelInput = (name, value) => {\r\n this.props.handelInput({ name, value })\r\n }\r\n inputType = (inputField) => {\r\n switch (inputField.type) {\r\n case 'dropdown':\r\n return ;\r\n case 'email-url':\r\n return ;\r\n case 'upload':\r\n return ;\r\n case 'date':\r\n return ;\r\n case 'dates':\r\n return \r\n case 'number':\r\n return ;\r\n case 'public_comment_period':\r\n return ;\r\n case 'phone':\r\n return ;\r\n case 'checkbox':\r\n return ;\r\n case 'tags':\r\n return ;\r\n default:\r\n if(inputField.displayName ==\"Rule Type\"){\r\n return ;\r\n }\r\n return ;\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n {this.props\r\n .inputFields\r\n .map((inputField, i) => (\r\n \r\n {this.inputType(inputField)}\r\n \r\n ))}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default EditMapper;","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n Panel,\r\n Modal,\r\n Button,\r\n FormGroup,\r\n Label,\r\n InputGroup,\r\n InputGroupAddon,\r\n Input,\r\n ControlLabel,\r\n Badge,\r\n} from \"react-bootstrap\";\r\nimport moment from \"moment\";\r\nimport RulePacketAPI from \"./../../../../../util/api/rulePacket\";\r\nimport HistoryApi from \"./../../../../../util/api/history\";\r\nimport LiaisonAPI from \"./../../../../../util/api/liaison\";\r\nimport EditMapper from \"./Components/EditMapper\";\r\nimport { SyncLoader } from \"react-spinners\";\r\nimport { css } from \"react-emotion\";\r\nimport { element } from \"prop-types\";\r\nimport '../../../../../../node_modules/toastr/build/toastr.css'\r\nimport toastr from 'toastr';\r\n\r\n// TODO Tie state to form, update using the updateInputHandler, pass into inputFields\r\nclass EditModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n additionalInformation: \"\",\r\n loading: true,\r\n ruleAction: \"Amendment\",\r\n inputFields: [],\r\n liaisons: [],\r\n FileDisplayName: \"null\",\r\n isNameEditable: false,\r\n };\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n // Reloads data every time you open modal\r\n const visible = nextProps.confirmModal;\r\n if (visible) {\r\n this.getRulePacket();\r\n }\r\n }\r\n\r\n getRulePacket = async () => {\r\n const response = await RulePacketAPI.getRulePacket(this.props.id);\r\n const isPartOfFiveYear = await HistoryApi.getIsPartOfFiveYearReview(this.props.id);\r\n\r\n if (response.data.status.descr === 'Standard Rule Filing Draft' ||\r\n response.data.status.descr === 'Nonsubstantive Draft' ||\r\n response.data.status.descr === 'Under Review' ||\r\n\r\n (response.data.status.workFlow === \"Standard Workflow\" && response.data.status.descr === 'Under Final Review') ||\r\n (response.data.status.workFlow === \"Nonsubstantive\" && response.data.status.descr === 'Under Final Review') ||\r\n (response.data.status.workFlow === \"Emergency Workflow\" && response.data.status.descr === 'Under Final Review') ||\r\n\r\n (response.data.status.workFlow === \"Standard Workflow\" && response.data.status.descr === 'Rules Rejected') ||\r\n (response.data.status.workFlow === \"Nonsubstantive\" && response.data.status.descr === 'Rules Rejected') ||\r\n (response.data.status.workFlow === \"Emergency Workflow\" && response.data.status.descr === 'Rules Rejected') ||\r\n\r\n \r\n response.data.status.descr === 'Gov Hold' ||\r\n response.data.status.descr === 'GOPB Hold' ||\r\n response.data.status.descr === 'CPR Filing Draft' ||\r\n response.data.status.descr === 'CPR Under Review' ||\r\n response.data.status.descr === 'CPR Gov Hold' ||\r\n response.data.status.descr === 'CPR GOPB Hold' ||\r\n response.data.status.descr === 'CPR Under Final Review' ||\r\n response.data.status.descr === 'CPR Rules Rejected' ||\r\n response.data.status.descr === 'Rules Rejected CPR' ||\r\n isPartOfFiveYear.data === false && response.data.status.descr === 'Codify' ||\r\n\r\n (response.data.status.workFlow === \"Codification\" && response.data.status.descr === 'Under Codification Review') ||\r\n (response.data.status.workFlow === \"Pending Codification\" && response.data.status.descr === 'Under Codification Review') ||\r\n\r\n (response.data.status.workFlow === \"Standard Publish\" &&response.data.status.descr === 'Publishing Queue') ||\r\n (response.data.status.workFlow === \"Emergency Workflow\" &&response.data.status.descr === 'Publishing Queue') ||\r\n\r\n response.data.status.descr === 'Emergency Draft' ||\r\n response.data.status.descr === 'Codification Rejected' ||\r\n response.data.status.descr === 'Publish Queue'\r\n ) {\r\n this.setState({ isNameEditable: true })\r\n }\r\n await this.resolveRulePacketAPIData(response.data);\r\n this.setState({ loading: false });\r\n };\r\n\r\n resolveRulePacketAPIData = async (data) => {\r\n this.setupInputFieldsForEdit(data);\r\n this.getLiaisons(data.programId);\r\n };\r\n componentDidUpdate = () => { };\r\n\r\n getLiaisons = async (programId) => {\r\n LiaisonAPI.getLiaisonListByProgramId(programId).then(({ data }) => {\r\n if (data != null) {\r\n const liaisons = data;\r\n this.setState({ liaisons });\r\n }\r\n });\r\n };\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 40vh auto;\r\n color: #115fa4;\r\n width: 8em;\r\n `;\r\n return override;\r\n };\r\n\r\n handelInput = (event, id) => {\r\n let { value, name } = event.target;\r\n this.setState({ [name]: value });\r\n // If there is an id make sure and add that to the state as well.\r\n if (id || id === 0) {\r\n name = name.replace(\"LiaisonName\", \"Liaison\");\r\n this.setState({ [name + \"Id\"]: id });\r\n }\r\n };\r\n\r\n setupInputFieldsForEdit = async (data) => {\r\n // deep copy inputfields to avoid cross contamination of the source\r\n const newInputFields = this.props.inputFields.map((a) => ({ ...a }));\r\n let inputFields = newInputFields.map((inputField, key) => {\r\n switch (inputField.displayName) {\r\n case \"Agency\":\r\n inputField.value = data.program.agency.name;\r\n inputField.id = data.program.agency.agencyId;\r\n return inputField;\r\n case \"Title\":\r\n inputField.value = data.program.name;\r\n inputField.id = data.program.programId;\r\n return inputField;\r\n case \"Rule\":\r\n inputField.value = `R${data.program.num}-${data.ruleVersion[0].chapterNum} ${data.ruleVersion[0].chapterName}`;\r\n inputField.id = data.ruleVersion[0].ruleVersionId;\r\n return inputField;\r\n case \"Edit Rule Name\":\r\n if (this.state.isNameEditable) {\r\n inputField.value = data.ruleVersion[0].chapterName;\r\n inputField.id = data.ruleVersion[0].ruleVersionId;\r\n this.handelInput({\r\n target: { name: inputField.name, value: inputField.value }\r\n })\r\n return inputField;\r\n } else {\r\n return null\r\n }\r\n case \"Edit Rule Number\":\r\n if (this.state.isNameEditable) {\r\n inputField.value = data.ruleVersion[0].chapterNum;\r\n inputField.id = data.ruleVersion[0].ruleVersionId;\r\n this.handelInput(\r\n { target: { name: inputField.name, value: inputField.value } }\r\n )\r\n return inputField;\r\n } else {\r\n return null;\r\n }\r\n\r\n case \"Liaison\":\r\n inputField.value =\r\n data.liaison.firstName + \" \" + data.liaison.lastName;\r\n this.handelInput(\r\n { target: { name: inputField.name, value: inputField.value } },\r\n data.liaison.liaisonId\r\n );\r\n return inputField;\r\n case \"Filing Name\":\r\n inputField.value = data.name;\r\n this.handelInput({\r\n target: { name: inputField.name, value: inputField.value },\r\n });\r\n return inputField;\r\n case \"Public Comment Period(In Days)\":\r\n if (\r\n this.props.row[\"Hidden Workflow\"] != \"Change Proposed Rule\" &&\r\n this.props.row[\"Hidden Workflow\"] != \"5 Year Extension\" &&\r\n this.props.row[\"Hidden Workflow\"] != \"5 Year Review\"\r\n ) {\r\n inputField.value = data.publicCommentPeriod;\r\n this.handelInput({\r\n target: { name: inputField.name, value: inputField.value },\r\n });\r\n return inputField;\r\n } else {\r\n return null;\r\n }\r\n case \"Public Comment Resource:\":\r\n inputField.value = data.publicCommentResource;\r\n this.handelInput({\r\n target: { name: inputField.name, value: inputField.value },\r\n });\r\n return inputField;\r\n case \"Contains IBR:\":\r\n // TODO GET VALUE FOR IBR\r\n inputField.value = data.ibr == \"true\";\r\n this.handelInput({\r\n target: { name: inputField.name, value: inputField.value },\r\n });\r\n return inputField;\r\n case \"Citations:\":\r\n // TODO GET VALUE FOR IBR\r\n inputField.value = data.additionalInformation;\r\n this.handelInput({\r\n target: { name: inputField.name, value: inputField.value },\r\n });\r\n return inputField;\r\n case \"Proposed Rule Text\":\r\n inputField.packetType = data.ruleVersion[0].ruleType.descr;\r\n inputField.fileHistory =\r\n data.ruleVersion[0].ruleVersionSourceDocument;\r\n this.handelInput({ target: { name: inputField.name, value: null } });\r\n return inputField;\r\n case \"Effective Date:\":\r\n return null;\r\n default:\r\n return inputField;\r\n }\r\n });\r\n inputFields = inputFields.filter((element) => element != null);\r\n inputFields.unshift({\r\n displayName: \"Rule Type\",\r\n name: \"RuleType\",\r\n type: \"text\",\r\n required: true,\r\n editableAfterCreation: false,\r\n value: data.actionType ? data.actionType.descr : \"\",\r\n id: data.actionType ? data.actionType.typeId : \"\",\r\n });\r\n this.setState({ inputFields });\r\n };\r\n\r\n updateCitations = (additionalInformation) => {\r\n this.setState({ additionalInformation });\r\n };\r\n setupMountState = () => {\r\n this.props.inputFields.forEach((inputField) => {\r\n if (inputField.type == \"email-url\") {\r\n let typeName = inputField.type + \"-type\";\r\n this.setState({ [inputField.name]: null });\r\n this.setState({ [typeName]: \"email\" });\r\n } else if (inputField.name == \"IBR\") {\r\n this.setState({ [inputField.name]: false });\r\n } else if (inputField.type == \"dates\") {\r\n this.setState({\r\n [inputField.date1.name]: null,\r\n [inputField.date2.name]: null,\r\n });\r\n } else if (inputField.name == \"RuleVersionName\") {\r\n this.setState({\r\n [inputField.name]: inputField.options ? inputField.options[0] : null,\r\n });\r\n inputField.newRuleInputFields.forEach((innerInputField) => {\r\n this.setState({\r\n [innerInputField.name]: innerInputField.options\r\n ? innerInputField.options[0]\r\n : null,\r\n });\r\n });\r\n } else {\r\n this.setState({\r\n [inputField.name]: inputField.options ? inputField.options[0] : null,\r\n });\r\n }\r\n });\r\n this.setState({ FileDisplayName: \"null\" });\r\n RulePacketAPI.getRulePacket(this.props.id).then(({ data }) => {\r\n this.resolveRulePacketAPIData(data);\r\n });\r\n };\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n {\r\n if (e.isDefaultPrevented()) {\r\n // handle the invalid form...\r\n } else {\r\n e.preventDefault();\r\n // everything looks good!\r\n this.setState({ loading: true });\r\n RulePacketAPI.updateStandardPacket(\r\n this.state,\r\n this.props.id\r\n ).then(({ data }) => {\r\n // check for duplicate rule number\r\n // this.modalClose();\r\n if (JSON.stringify(data) === \"{\\\"statusCode\\\":400}\") {\r\n toastr.error('This rule number has been previously used', '', { positionClass: 'toast-bottom-full-width', timeOut: \"10000\" })\r\n this.setState({ loading: false });\r\n } else {\r\n this.setState({ loading: false });\r\n this.props.confirmButtonFunction();\r\n this.props.confirmModalToggle();\r\n this.setupMountState();\r\n this.props.reload({ data });\r\n }\r\n });\r\n }\r\n }}\r\n >\r\n {this.state.loading ? (\r\n \r\n ) : (\r\n
\r\n {this.props.inputFields ? (\r\n \r\n ) : null}\r\n
\r\n )}\r\n {this.props.disable ? (\r\n
\r\n \r\n Close\r\n \r\n
\r\n ) : (\r\n
\r\n \r\n {this.props.confirmButtonText}\r\n \r\n \r\n {this.props.denyButtonText}\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\nexport default withRouter(EditModal);\r\n\r\n// Get local data and column state to update and then pass it into the table component\r\n","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, Modal, FormGroup, ControlLabel, Label, Button, Alert } from 'react-bootstrap';\r\nimport Dropzone from 'react-dropzone';\r\nimport './../CSS/Upload.css';\r\nimport S3API from './../../../../../../util/api/s3';\r\nimport WebTextAPI from './../../../../../../util/api/webText';\r\nimport CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';\r\nimport { BarLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\n\r\nclass InputModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n validationObjects: [],\r\n uploading: false,\r\n fileList: []\r\n }\r\n }\r\n componentDidMount = () => {\r\n // TODO Grab All Text Files and establish download links\r\n WebTextAPI.getSourceDocuments(this.props.id).then(({data})=>{\r\n this.setState({fileList:data})\r\n })\r\n }\r\n handelInput = (e) => {\r\n // grab the validator object\r\n let { name, value } = e.target;\r\n this.setState({ [name]: value });\r\n }\r\n onDrop(files) {\r\n if (files.length > 1) {\r\n // Handle Multipules\r\n this.handleChanges(files);\r\n }\r\n else {\r\n this.handleChanges(files);\r\n }\r\n }\r\n downloadFile = (fileName, name) => {\r\n S3API.getCMSFile(fileName, name)\r\n }\r\n deleteFile = (guidFileName, sourceDocumentId) => {\r\n S3API.deleteCMSFile(guidFileName, sourceDocumentId).then(({data})=>{\r\n const fileList = this.state.fileList.filter(sourceDocument => sourceDocument.rowguidid != guidFileName.replace(/\\.[^/.]+$/, \"\"));\r\n this.setState({fileList});\r\n })\r\n }\r\n getExtension = (filename) =>{\r\n return filename.split('.').pop();\r\n }\r\n completeGuid = (guid, filename) => {\r\n const extension = this.getExtension(filename);\r\n return guid + \".\" + extension;\r\n }\r\n\r\n handleChanges(files) {\r\n let fd = new FormData();\r\n files.forEach(file => {\r\n fd.append('file', file)\r\n });\r\n this.setState({ uploading: true });\r\n S3API.uploadCMSFile(fd, this.props.id).then(({ data }) => {\r\n const fileList = [...this.state.fileList, ...data];\r\n this.setState({ fileList })\r\n this.setState({uploading:false});\r\n }\r\n )\r\n\r\n\r\n\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin-bottom:200px;\r\n color: #115fa4;\r\n width: 8em;\r\n `;\r\n return override;\r\n }\r\n onCancel() {\r\n this.setState({\r\n file: null\r\n });\r\n }\r\n render() {\r\n const errorList = this.state.validationObjects.map((validationObject, key) =>\r\n !validationObject.valid ?\r\n \r\n {validationObject.message}\r\n : null\r\n )\r\n\r\n return (\r\n
\r\n
\r\n {!this.state.uploading ?\r\n
\r\n \r\n \r\n {\r\n this.state.guid ?\r\n \r\n :\r\n \r\n }\r\n\r\n \r\n {this.state.fileList.map(sourceDocument =>\r\n
\r\n this.downloadFile(this.completeGuid(sourceDocument.rowguidid, sourceDocument.name), sourceDocument.name)}>{` ${sourceDocument.name}`} this.deleteFile(this.completeGuid(sourceDocument.rowguidid, sourceDocument.name), sourceDocument.sourceDocumentId)} className=\"fa fa-times\">\r\n
\r\n )}\r\n
\r\n :\r\n
\r\n Uploading file..\r\n \r\n
\r\n\r\n }\r\n
\r\n You may only upload one file.\r\n\r\n \r\n {errorList}\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default InputModal;","import React, { Component } from 'react';\r\nimport { FormControl, FormGroup, Badge, Button, Modal, ControlLabel, Alert, InputGroup } from 'react-bootstrap';\r\nimport { render } from 'react-dom';\r\nimport Tags from 'react-tagging-input';\r\nimport ReactQuill from 'react-quill';\r\nimport UploadMultiples from './UploadMultiples';\r\nimport \"react-tagging-input/dist/styles.css\";\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport 'react-quill/';\r\n\r\nclass CMSValueInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // confirmModal: false,\r\n newValue: null,\r\n htmlString: this.props.values,\r\n validationAlert: false,\r\n inFocus: false,\r\n editorToggle: true\r\n }\r\n }\r\n handleRichTextChange = (value) => {\r\n let e = { target: { name: this.props.name, value: value } }\r\n this.props.onChange(e);\r\n\r\n }\r\n modules = {\r\n toolbar: [\r\n [{ 'header': '1' }, { 'header': '2' }, 'clean'],\r\n ['bold', 'italic', 'underline', 'strike', 'blockquote'],\r\n [{ 'list': 'ordered' }, { 'list': 'bullet' },\r\n { 'indent': '-1' }, { 'indent': '+1' }],\r\n ['link', 'code'],\r\n ],\r\n clipboard: {\r\n // toggle to add extra line breaks when pasting HTML:\r\n matchVisual: false,\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n {/* TODO GET RICH TEXT EDITOR INTEGRATED FOR BODY */}\r\n
\r\n {this.state.editorToggle ?\r\n \r\n :\r\n \r\n \r\n \r\n }\r\n {this.props.fileUpload ?\r\n \r\n : null}\r\n {/* Add in an upload field */}\r\n {/* Allow many files */}\r\n {/* Ability to delete files from list */}\r\n {/* Automatic Integration of Files into the HTML */}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CMSValueInput;","import React, { Component } from 'react';\r\nimport { FormControl, FormGroup, Badge, Button, Modal, ControlLabel, Alert, InputGroup } from 'react-bootstrap';\r\nimport { render } from 'react-dom';\r\nimport Tags from 'react-tagging-input';\r\nimport ReactQuill from 'react-quill';\r\nimport \"react-tagging-input/dist/styles.css\";\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport 'react-quill/';\r\n\r\nclass CMSValueInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // confirmModal: false,\r\n newValue: null,\r\n htmlString: this.props.values,\r\n validationAlert: false,\r\n inFocus: false,\r\n editorToggle: true\r\n }\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\nexport default CMSValueInput;","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, Modal, FormGroup, ControlLabel, Label, Button, Alert, Thumbnail } from 'react-bootstrap';\r\nimport Dropzone from 'react-dropzone';\r\nimport './CSS/Upload.css';\r\nimport S3API from './../../../../../util/api/s3';\r\nimport WebTextAPI from './../../../../../util/api/webText';\r\nimport CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';\r\nimport { BarLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\nimport HTMLInput from './Components/HtmlInput';\r\nimport TextAreaInput from './Components/TextAreaInput';\r\nimport webText from './../../../../../util/api/webText';\r\nimport './CSS/ChangeWebtextModal.css';\r\n\r\n\r\n\r\nclass InputModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n validationObjects: [],\r\n uploading: false,\r\n value: \"\",\r\n image: \"\"\r\n }\r\n }\r\n componentDidMount = () => {\r\n if (this.props.row.Category == \"image\") {\r\n this.setState({ image: `${window.location.origin}/api/public/getImage/nocache/${this.props.row.Name}` });\r\n }\r\n this.setState({ value: this.props.row._original.value });\r\n }\r\n // Bug was loading old code\r\n componentWillReceiveProps =() =>{\r\n if(this.state.value != this.props.row._original.value){\r\n this.setState({value:this.props.row._original.value});\r\n }\r\n }\r\n handelInput = (e) => {\r\n // grab the validator object\r\n let { name, value } = e.target;\r\n this.setState({ [name]: value });\r\n }\r\n handleChanges = async () => {\r\n let file = this.state.file;\r\n let fd = new FormData();\r\n fd.append('file', file)\r\n this.setState({ uploading: true });\r\n let id = this.props.row._original.id;\r\n let results = WebTextAPI.addImage(id, fd)\r\n await results;\r\n this.setState({ uploading: false });\r\n return results;\r\n }\r\n downloadFile = () => {\r\n S3API.getFile(this.state.guid, this.state.file.name)\r\n }\r\n onDrop(files, rejectedFiles) {\r\n // need to fix this and use the default multiple={false} on drop zone\r\n if (!rejectedFiles.length) {\r\n if (files.length > 1) {\r\n // Setup animation to bring in the active class wait 3000 seconds and add in the inactive class, then at 5 seconds both classes are taken off\r\n this.setState({ fadeIn: true })\r\n this.setState({ errorMessage: \"You may only upload one file at a time.\" })\r\n setTimeout(() => {\r\n this.setState({ fadeOut: true })\r\n setTimeout(() => this.setState({ fadeOut: false }), 2000)\r\n }, 3000)\r\n setTimeout(() => this.setState({ fadeIn: false }), 5000)\r\n }\r\n else {\r\n this.setState({ filePreview: URL.createObjectURL(files[0]) });\r\n this.setState({ file: files[0] });\r\n }\r\n } else {\r\n this.setState({ fadeIn: true })\r\n this.setState({ errorMessage: \"Only image files may be uploaded\" })\r\n setTimeout(() => {\r\n this.setState({ fadeOut: true })\r\n setTimeout(() => this.setState({ fadeOut: false }), 2000)\r\n }, 3000)\r\n setTimeout(() => this.setState({ fadeIn: false }), 5000)\r\n }\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin-bottom:200px;\r\n color: #115fa4;\r\n width: 8em;\r\n `;\r\n return override;\r\n }\r\n handleImageSync = async () => {\r\n let newRow = this.handleChanges();\r\n newRow.then((res) => {\r\n this.props.confirmButtonFunction(res);\r\n })\r\n }\r\n handleTextSync = async () => {\r\n WebTextAPI.updateWebText(this.props.row._original.id, { value: this.state.value }).then((res) => {\r\n this.props.confirmButtonFunction(res);\r\n })\r\n }\r\n onCancel() {\r\n this.setState({\r\n file: null\r\n });\r\n }\r\n typeMapper = () => {\r\n const errorList = this.state.validationObjects.map((validationObject, key) =>\r\n !validationObject.valid ?\r\n \r\n {validationObject.message}\r\n : null\r\n )\r\n switch (this.props.row.Category) {\r\n case \"html\":\r\n return ();\r\n case \"html/links\":\r\n return ();\r\n case \"image\":\r\n return (\r\n
\r\n
\r\n {!this.state.uploading ?\r\n
\r\n\r\n {/* {this.props.message} {this.state.guid ? {`${this.state.file.name}`} : null} */}\r\n \r\n \r\n {\r\n this.state.guid ?\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 Uploading file..\r\n \r\n
\r\n\r\n }\r\n
\r\n You may only upload one file.\r\n\r\n \r\n {errorList}\r\n \r\n
\r\n );\r\n case \"text\":\r\n return (\r\n \r\n );\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n {this.typeMapper()}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default InputModal;","import axios from './apiConfig';\r\n\r\nexport default {\r\n getAllEmailTemplate: () => {\r\n return axios.get(`/api/emailtemplate`);\r\n },\r\n getOneEmailTemplate: (emailTemplateId) => {\r\n return axios.get(`/api/emailtemplate/${emailTemplateId}`);\r\n },\r\n updateEmailTemplate: (emailTemplateId, emailTemplate) => {\r\n return axios.post(`/api/emailtemplate/update/${emailTemplateId}`, emailTemplate)\r\n }\r\n// DEV ONLY\r\n // createEmailTemplate: (emailTemplate) =>{\r\n // return axios.post(`/api/emailtemplate`, emailTemplate);\r\n // }\r\n};","import React, { Component } from 'react';\r\nimport { FormControl, InputGroup, Modal, FormGroup, ControlLabel, Label, Button, Alert, Thumbnail } from 'react-bootstrap';\r\nimport BadgeInput from './../Cells/BadgeInput';\r\nimport Dropzone from 'react-dropzone';\r\nimport './CSS/Upload.css';\r\nimport S3API from './../../../../../util/api/s3';\r\nimport EmailTemplateAPI from './../../../../../util/api/emailTemplate';\r\nimport { BarLoader } from 'react-spinners';\r\nimport { css } from 'react-emotion';\r\nimport HTMLInput from './Components/HtmlInput';\r\nimport DefaultInput from './Components/EditFields/DefaultInput'\r\nimport TextAreaInput from './Components/TextAreaInput';\r\nimport webText from './../../../../../util/api/webText';\r\nimport './CSS/EmailTemplateModal.css';\r\n\r\n\r\n\r\nclass EmailTemplateModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n }\r\n }\r\n componentDidMount = () => {\r\n this.setState({ Body: this.props.row.Body });\r\n this.setState({ Subject: this.props.row.Subject });\r\n this.setState({ To: this.props.row.To });\r\n this.setState({ Bcc: this.props.row.Bcc });\r\n this.setState({ Id: this.props.row.Id });\r\n if (String(this.props.row.Name).includes(\"GOV DELIVERY\")) {\r\n this.setState({ GovDelivery: true });\r\n }\r\n }\r\n // Bug was loading old code\r\n componentWillReceiveProps = () => {\r\n if (this.state.Id != this.props.row.Id) {\r\n this.setState({ Body: this.props.row.Body });\r\n this.setState({ Subject: this.props.row.Subject });\r\n this.setState({ To: this.props.row.To });\r\n this.setState({ Bcc: this.props.row.Bcc });\r\n this.setState({ Id: this.props.row.Id });\r\n if (String(this.props.row.Name).includes(\"GOV DELIVERY\")) {\r\n this.setState({ GovDelivery: true });\r\n }\r\n }\r\n }\r\n handelInput = (e) => {\r\n let { name, value } = e.target;\r\n this.setState({ [name]: value });\r\n }\r\n handleChanges = async (data) => {\r\n this.props.confirmButtonFunction(() => { });\r\n EmailTemplateAPI.updateEmailTemplate(data.Id, data).then(resoponse => {\r\n this.props.reload(resoponse)\r\n })\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n \r\n {this.state.GovDelivery ? null :\r\n
\r\n To:\r\n Bcc:\r\n
\r\n }\r\n
\r\n Subject:\r\n \r\n this.handelInput(e)}\r\n value={this.state.Subject}\r\n type={\"text\"}\r\n className=\"form-control input-md\"\r\n />\r\n \r\n
\r\n {/* Add\r\n * To Pill Editor\r\n * \r\n * Bcc Pull Editor\r\n * \r\n * Submit update handler\r\n * \r\n * Remove sync action\r\n * */}\r\n \r\n \r\n
\r\n
)\r\n }\r\n}\r\n\r\nexport default EmailTemplateModal;","import React, { Component } from 'react';\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n Panel,\r\n Modal,\r\n Button,\r\n FormGroup,\r\n Label,\r\n InputGroup,\r\n InputGroupAddon,\r\n Input,\r\n ControlLabel\r\n} from 'react-bootstrap';\r\nimport { InputMapper } from './../InputMapper';\r\nimport AgencyAPI from './../../util/api/agency';\r\nimport LiaisonAPI from './../../util/api/liaison';\r\nimport TitleAPI from './../../util/api/program';\r\nimport './FormModal.css';\r\n\r\n\r\n// TODO Tie state to form, update using the updateInputHandler, pass into inputFields\r\nclass PacketModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { dataRecieved: false, agencyUpdated: false }\r\n }\r\n\r\n componentDidMount = () => {\r\n // Create Input Values in state for each Input if an options list assign the first variable in the options list\r\n this.props.inputFields.forEach((inputField) => {\r\n if (inputField.type == \"email-url\") {\r\n let typeName = inputField.type + \"-type\";\r\n this.setState({ [inputField.type]: \"\" })\r\n this.setState({ [typeName]: \"email\" })\r\n }\r\n else {\r\n this.setState({ [inputField.name]: \"\" })\r\n }\r\n })\r\n }\r\n\r\n componentDidUpdate = () => {\r\n \r\n if (this.props.visible && !this.state.dataRecieved) {\r\n if (this.props.firstHeading.includes(\"Agency\")) {\r\n this.getAgency();\r\n }\r\n else if (this.props.firstHeading.includes(\"Title\")) {\r\n this.getProgram();\r\n }\r\n else if (this.props.firstHeading.includes(\"Liaison\")) {\r\n this.getLiaison();\r\n }\r\n } else if (!this.props.visible && this.state.dataRecieved) {\r\n this.setState({ dataRecieved: false });\r\n }\r\n }\r\n getAgency = () => {\r\n AgencyAPI.getAgencyById(this.props.ownerId).then(({ data }) => {\r\n const { name, number, status, email, phone } = data;\r\n this.setState({ dataRecieved: true, Name: name, Num: number, Status: status, email: email, phone: phone });\r\n\r\n })\r\n }\r\n getProgram = () => {\r\n const { name, number, hidden_Agency_Id, agency, status } = this.props.row._original;\r\n this.setState({ dataRecieved: true, Name: name, AgencyId: hidden_Agency_Id, AgencyName: agency, Num: parseInt(number), Status: status });\r\n }\r\n getLiaison = () => {\r\n LiaisonAPI.getliaisonById(this.props.ownerId).then(({ data }) => {\r\n const { email, agency, first_Name, middle_Name, last_Name, phone, hidden_Agency_Id, status, title, hidden_Program_Id } = data;\r\n this.setState({ dataRecieved: true, \"First Name\": first_Name || \"\", \"Last Name\": last_Name || \"\", \"Middle Name\": middle_Name || \"\", Phone: phone, Status: status, Email: email });\r\n this.setState({ \"ProgramName\": title, \"ProgramNameId\": title, \"ProgramId\": hidden_Program_Id })\r\n this.setState({ AgencyName: agency, AgencyNameId: hidden_Agency_Id, agencyUpdated: true });\r\n })\r\n }\r\n updateAgency = (agencyInfo) => {\r\n AgencyAPI.updateAgency(this.props.ownerId, agencyInfo).then((data) => {\r\n this.props.reload(data);\r\n })\r\n }\r\n updateTitle = (titleInfo) => {\r\n TitleAPI.updateTitle(this.props.ownerId, titleInfo).then((data) => {\r\n this.props.reload(data);\r\n })\r\n }\r\n updateLiaison = (liaisonInfo) => {\r\n liaisonInfo.firstName = liaisonInfo[\"First Name\"];\r\n liaisonInfo.middleName = liaisonInfo[\"Middle Name\"];\r\n liaisonInfo.lastName = liaisonInfo[\"Last Name\"];\r\n LiaisonAPI.updateLiaison(this.props.ownerId, liaisonInfo).then((response) => {\r\n this.props.reload(response);\r\n })\r\n }\r\n updateEntity = (entity) => {\r\n this.props.hideModal();\r\n this.props.blockRow(this.props.row);\r\n if (this.props.firstHeading.includes(\"Agency\")) {\r\n this.updateAgency(entity);\r\n }\r\n else if (this.props.firstHeading.includes(\"Title\")) {\r\n this.updateTitle(entity);\r\n }\r\n else if (this.props.firstHeading.includes(\"Liaison\")) {\r\n this.updateLiaison(entity);\r\n }\r\n }\r\n updateAgencyId = (AgencyId) => {\r\n if (AgencyId == null) {\r\n AgencyId = 0;\r\n }\r\n this.setState({ AgencyId });\r\n }\r\n updateProgramId = (ProgramId) => {\r\n if (ProgramId == null) {\r\n ProgramId = 0;\r\n }\r\n this.setState({ ProgramId });\r\n }\r\n handleStateChange = (name, value) => {\r\n this.setState({ [name]: value });\r\n }\r\n // Update state with inputs\r\n handelInput = (event, id) => {\r\n let { value, name } = event.target;\r\n this.setState({ [name]: value });\r\n // If there is an id make sure and add that to the state as well.\r\n if (id || id === 0) {\r\n this.setState({ [name + \"Id\"]: id });\r\n }\r\n }\r\n // Assign variable from state\r\n getInput = (name) => {\r\n return this.state[name];\r\n }\r\n noProgramCall = () => {\r\n let containsTitle = this.props.inputFields.filter(input => input.displayName == \"Title\");\r\n return !containsTitle.length > 0;\r\n }\r\n\r\n agencyRecieved = async (agencyId, agencyName, programId, programName) => {\r\n this.updateAgencyId(agencyId);\r\n let programs = [];\r\n await TitleAPI.getProgramListByAgencyId(agencyId).then((results) => {\r\n // if the results are not null for the programs then populate state variables\r\n programs = results.data;\r\n this.setState({ programs });\r\n })\r\n }\r\n agencyFlag = () => {\r\n this.setState({ agencyUpdated: false })\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {this.props.firstHeading} this.props.hideModal(this.state)} class=\"fa fa-times float-right\">\r\n \r\n \r\n \r\n \r\n
{\r\n if (e.isDefaultPrevented()) {\r\n // handle the invalid form...\r\n } else {\r\n // everything looks good!\r\n e.preventDefault(); //prevent submit\r\n this.updateEntity(this.state);\r\n }\r\n }} novalidate>\r\n \r\n \r\n {this.props.secondHeading}\r\n \r\n \r\n {this.props.inputFields ?\r\n \r\n : null}\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\r\nexport default withRouter(PacketModal);","import React, { Component } from 'react';\r\nimport { Tooltip, OverlayTrigger, Button } from 'react-bootstrap';\r\nimport RulePacketAPI from '../../../../../util/api/rulePacket';\r\nimport UserAPI from '../../../../../util/api/users';\r\nimport DevelopmentAPI from '../../../../../util/api/_development';\r\nimport { withRouter } from 'react-router-dom';\r\nimport HistoryAPI from '../../../../../util/api/history';\r\nimport { InputModal, ChangeAgencyModal, EmailTemplateModal, HistoryModal, ConfirmationModal, PermissionsModal, DateInputModal, CleanTextUploadModal, SingleRulePacketModalEdit, ChangeWebTextModal } from './../Modals';\r\nimport moment from 'moment';\r\nimport AgencyAPI from './../../../../../util/api/agency';\r\nimport SingleRulePacketModal from './../../../../../components/PacketFormModal/SingleRulePacketModal';\r\nimport FormModalEdit from '../../../../../components/FormModal/FormModalEdit';\r\n\r\nclass InputValidator {\r\n constructor(message, validation, inputIdentifier) {\r\n this.valid = false;\r\n this.inputIdentifier = inputIdentifier\r\n this.message = message;\r\n this.validation = validation;\r\n }\r\n validate = () => {\r\n if (this.validation == true) {\r\n this.message = \"success\";\r\n this.valid = \"true\";\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nclass Icon extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.colorClass = 'dash-icon-blue';\r\n this.isAvalible();\r\n this.state = {\r\n confirmModal: false,\r\n inputModal: false,\r\n inputModalValue: props.action.modalConfirmType == \"number\" ? 0 : \"\",\r\n historyData: [],\r\n agencies: [],\r\n userPermitedPrograms: []\r\n\r\n }\r\n }\r\n handleInput = (e) => {\r\n let { name, value } = e.target;\r\n let validator = this.stateValidation(name, value)\r\n if (validator.validate().valid) {\r\n this.setState({ [name]: value });\r\n }\r\n return validator;\r\n }\r\n\r\n stateValidation = (name, value) => {\r\n let validators = {\r\n \"Extend Comment Period\": {\r\n \"inputModalValue\": new InputValidator(`Value must be at least 30 and no more than ${113 - this.props.row._original.public_Comment_Period}`, value >= 0 && (parseInt(value) + parseInt(this.props.row._original.public_Comment_Period)) <= 113, \"inputModalValue\")\r\n },\r\n \"Rules Reject\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n },\r\n \"GOPB Hold\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n },\r\n \"Governor Hold\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n },\r\n \"Reject Codification\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n },\r\n \"Send Follow-up Email\": {\r\n \"inputModalValue\": new InputValidator(\"Nothing Required\", true)\r\n },\r\n }\r\n let validator = validators[this.props.action.modalConfirmTitle][name];\r\n if (validator == null) {\r\n validator = new InputValidator(\"Nothing Required\", true);\r\n }\r\n return validator;\r\n }\r\n\r\n // TODO Add in logic to see if the expiration logic is still avalible\r\n // RULE PACKETS\r\n isAvalible = () => {\r\n if (this.props.actionName == \"extension\") {\r\n alert(\"THERE IS AN EXTENSION HERE\")\r\n }\r\n }\r\n\r\n\r\n confirmModalToggle = (test) => {\r\n if (this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"Permissions\") {\r\n AgencyAPI.getAgencyList().then(({ data }) => {\r\n this.setState({ agencies: data });\r\n })\r\n }\r\n // if modal is opeing up than load the data for the confirm modal\r\n if (!this.state.confirmModal) {\r\n this.confirmModalLoad();\r\n }\r\n this.setState({ confirmModal: !this.state.confirmModal });\r\n\r\n\r\n }\r\n confirmModalLoad = () => {\r\n this.loadConfirmModalData();\r\n }\r\n loadConfirmModalData = () => {\r\n switch (this.props.action.modalConfirmType) {\r\n case \"history\":\r\n this.getHistoryData();\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n /************************* Packets *****************************/\r\n\r\n\r\n\r\n\r\n /********** Get **************/\r\n getHistoryData = () => {\r\n HistoryAPI.getHistoryForRulePacket(this.props.ownerId).then(\r\n ({ data }) => {\r\n // build system no history object if there is no data\r\n if (!data.length) {\r\n let noHistoryObject = {\r\n createdDate: moment().format(\"MM/DD/YYYY hh:mm:ss a\"),\r\n firstName: \"System\",\r\n lastName: \"Message\"\r\n }\r\n data.push(noHistoryObject);\r\n }\r\n this.setState({ historyData: data });\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n /********** Packet Actions **************/\r\n // inputModalToggle = () => this.setState({ inputModal: !this.state.inputModal });\r\n\r\n nextStatus = (actionId) => {\r\n RulePacketAPI.nextStatusAction(this.props.ownerId, this.props.action.actionId).then(\r\n (response) => {\r\n this.props.reload(response)\r\n }\r\n )\r\n }\r\n\r\n reviewPublished = () => {\r\n RulePacketAPI.reviewPublished5Year(this.props.ownerId).then((response) => {\r\n if (response.status == 200) {\r\n RulePacketAPI.nextStatusAction(this.props.ownerId, this.props.action.actionId).then((response) => this.props.reload(response));\r\n }\r\n else {\r\n this.props.reload(response);\r\n }\r\n });\r\n }\r\n\r\n extensionPublished = () => {\r\n RulePacketAPI.extensionPublished5Year(this.props.ownerId, this.props.action.actionId).then((response) => {\r\n this.props.reload(response);\r\n });\r\n }\r\n\r\n adminExtension = () => {\r\n RulePacketAPI.adminExtension5Year(this.props.ownerId).then((response) => {\r\n if (response.status == 200) {\r\n RulePacketAPI.nextStatusAction(this.props.ownerId, this.props.action.actionId).then((response) => this.props.reload(response));\r\n }\r\n });\r\n }\r\n\r\n changeEffectiveDate = (effectiveDate) => {\r\n RulePacketAPI.setEffectiveDate(this.props.ownerId, effectiveDate).then((response) => this.props.reload(response));\r\n }\r\n expire = () => {\r\n this.confirmModalToggle();\r\n this.nextStatus(this.props.action.actionId);\r\n }\r\n\r\n ruleApprove = () => {\r\n\r\n }\r\n\r\n rejectMessage = async () => {\r\n // grab the title and values set in the modal and from them into a history comment\r\n let historyComment = { prefix: this.props.action.modalConfirmTitle, comment: this.state.inputModalValue }\r\n // Reject the packet and pass in the packetid actionid and history comment variable\r\n await RulePacketAPI.rejectPacket(this.props.ownerId, this.props.action.actionId, historyComment).then((response) => this.props.reload(response));\r\n }\r\n\r\n publishForComment = async () => {\r\n let response = await RulePacketAPI.publishForComment(this.props.ownerId, this.props.action.actionId);\r\n await response;\r\n // Because this is being returned from an aysnc method(from the server) the data object has an embeded result, So I have to extract that result and restructure\r\n // the object so that it is what the reload method expects\r\n this.props.reload({ data: response.data.result });\r\n }\r\n\r\n executePublicCommentExtension = () => {\r\n RulePacketAPI.extendPublicComment(this.props.ownerId, this.state.inputModalValue, this.props.action.actionId).then((response) => this.props.reload(response));\r\n }\r\n\r\n fileEffectiveDate = (effectiveDate) => {\r\n RulePacketAPI.setEffectiveDate(this.props.ownerId, effectiveDate).then(() =>\r\n this.nextStatus(this.props.action.actionId));\r\n }\r\n\r\n cleanRulesText = (row, file, guid) => {\r\n RulePacketAPI.newCleanText(row._original.id, file.name, guid).then((response) =>\r\n this.nextStatus(this.props.action.actionId));\r\n }\r\n pendingCleanRulesText = (row, file, guid) => {\r\n RulePacketAPI.pendingCleanText(row._original.id, file.name, guid).then((response) =>\r\n this.nextStatus(this.props.action.actionId));\r\n }\r\n\r\n\r\n\r\n\r\n /********** WebText Triggers **************/\r\n changeWebText = (response) => {\r\n this.props.reload(response);\r\n }\r\n\r\n /********** UI Triggers **************/\r\n editPacket = () => {\r\n this.confirmModalToggle();\r\n }\r\n\r\n viewPacket = () => {\r\n this.confirmModalToggle();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /************************* USER *****************************/\r\n nextUserStatus = () => {\r\n this.props.submitActiveRecordChange(`.row${this.props.row.Id} textarea, .row${this.props.ownerId} input`, this.props.ownerId, UserAPI.nextUserStatus(this.props.ownerId, this.props.action.userActionId));\r\n }\r\n approvePetition = () => {\r\n this.nextUserStatus()\r\n }\r\n\r\n denyPetition = () => {\r\n UserAPI.deleteUser(this.props.ownerId).then((response) => this.props.reload(response))\r\n }\r\n promoteAgencyUser = () => {\r\n this.nextUserStatus()\r\n }\r\n promoteGovUser = () => {\r\n this.nextUserStatus()\r\n }\r\n promoteGOMBUser = () => {\r\n this.nextUserStatus()\r\n }\r\n demoteAdminUser = () => {\r\n this.nextUserStatus()\r\n }\r\n inactivateUser = () => {\r\n this.nextUserStatus()\r\n }\r\n\r\n activateInactiveUser = () => {\r\n this.nextUserStatus()\r\n }\r\n\r\n\r\n /********** DEVELOPMENT **************/\r\n addOneDayToCommentEnd = () => {\r\n DevelopmentAPI.subtractFromCommentEnd(this.props.ownerId, 1).then((response) => this.props.reload(response));\r\n }\r\n add10DaysToCommentEnd = () => {\r\n DevelopmentAPI.subtractFromCommentEnd(this.props.ownerId, 10).then((response) => this.props.reload(response));\r\n }\r\n addOneDayToExpiration = () => {\r\n DevelopmentAPI.subtractFromEffectiveEnd(this.props.ownerId, 1).then((response) => this.props.reload(response));\r\n }\r\n addOneYearToExpiration = () => {\r\n DevelopmentAPI.subtractFromEffectiveEnd(this.props.ownerId, 365).then((response) => this.props.reload(response));\r\n }\r\n addThirtyYearToExpiration = () => {\r\n DevelopmentAPI.subtractFromEffectiveEnd(this.props.ownerId, 30).then((response) => this.props.reload(response));\r\n }\r\n\r\n\r\n actionClickHandler = (isConfirmModal, customClickFuntion, parameters) => {\r\n if (isConfirmModal) {\r\n this.confirmModalToggle();\r\n }\r\n this.props.blockRow(this.props.row)\r\n if (customClickFuntion) {\r\n customClickFuntion(parameters);\r\n } else {\r\n this[this.props.action.onClick]()\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n // Create an overlay and tool tip for each icon \r\n
\r\n \r\n {this.props.action.tooltipText}\r\n }>\r\n {this.props.action.isButton ?\r\n \r\n :
}\r\n \r\n {/* Change from Extension to Input Data */}\r\n\r\n\r\n {this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"Confirm\" ?\r\n this.actionClickHandler(true)}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle} />\r\n\r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"changePrincipal\" ?\r\n \r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"history\" ?\r\n\r\n { this.confirmModalToggle() }}\r\n denyButtonText={\"Close\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle} />\r\n\r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"Permissions\" ?\r\n\r\n { this.confirmModalToggle() }}\r\n denyButtonText={\"Close\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle}\r\n />\r\n\r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"dateChange\" ?\r\n {\r\n this.actionClickHandler(true,\r\n this[this.props.action.onClick],\r\n effectiveDate)\r\n }}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle}\r\n />\r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"edit\" ?\r\n { this.actionClickHandler(true); this.setState({ inputModalValue: \"\" }) }}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n reload={this.props.reload}\r\n confirmModalToggle={this.confirmModalToggle}\r\n />\r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"view\" ?\r\n { this.actionClickHandler(true); this.setState({ inputModalValue: \"\" }) }}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle}\r\n />\r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"upload\" ?\r\n { this.actionClickHandler(true, () => this[this.props.action.onClick](row, file, guid)); this.setState({ inputModalValue: \"\" }) }}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle}\r\n />\r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"changeWebText\" ?\r\n { this.actionClickHandler(true, () => this[this.props.action.onClick](type, response)); this.setState({ inputModalValue: \"\" }) }}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle}\r\n />\r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"emailTemplateModal\" ?\r\n { this.actionClickHandler(true, customFunction); this.setState({ inputModalValue: \"\" }) }}\r\n reload={this.props.reload}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle}\r\n />\r\n\r\n\r\n\r\n : this.props.action.hasConfirmModal ?\r\n { this.actionClickHandler(true); this.setState({ inputModalValue: \"\" }) }}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle}\r\n /> : null\r\n }\r\n\r\n\r\n\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default Icon;","import React, { Component } from 'react';\r\nimport { Tooltip, OverlayTrigger, Button } from 'react-bootstrap';\r\nimport RulePacketAPI from './../../../../../util/api/rulePacket';\r\nimport UserAPI from './../../../../../util/api/users';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { ConfirmationModal, HistoryModal, InputModal } from './../Modals';\r\nimport HistoryAPI from './../../../../../util/api/history';\r\nimport moment from 'moment';\r\n\r\nclass EditableIcon extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.colorClass = 'dash-icon-blue';\r\n this.state = {\r\n confirmModal: false,\r\n inputModal: false,\r\n inputModalValue: props.action.modalConfirmType == \"number\" ? 0 : \"\",\r\n historyData: []\r\n }\r\n }\r\n handleInput = (e) => {\r\n let { name, value } = e.target;\r\n this.setState({ [name]: value })\r\n }\r\n\r\n confirmModalToggle = () => {\r\n // if modal is opeing up than load the data for the confirm modal\r\n if (!this.state.confirmModal) {\r\n this.confirmModalLoad();\r\n }\r\n\r\n\r\n this.setState({ confirmModal: !this.state.confirmModal });\r\n }\r\n confirmModalLoad = () => {\r\n this.loadConfirmModalData();\r\n }\r\n loadConfirmModalData = () => {\r\n switch (this.props.action.modalConfirmType) {\r\n case \"history\":\r\n this.getHistoryData();\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n changeWebText = () => {\r\n this.props.submitActiveRecordChange(`.row${this.props.row.Id} textarea, .row${this.props.row.Id} input`, this.props.row.Id);\r\n }\r\n changeEmailTemplate = () => {\r\n this.props.submitActiveRecordChange(`.row${this.props.row.Id} textarea, .row${this.props.row.Id} input`, this.props.row.Id);\r\n }\r\n editingCurrentRow = () => {\r\n return this.props.row.Id == this.props.editRowId;\r\n }\r\n\r\n render() {\r\n return (\r\n // Create an overlay and tool tip for each icon \r\n
\r\n \r\n {this.props.action.tooltipText}\r\n }>\r\n {this.props.action.isButton ?\r\n this.editingCurrentRow() ?\r\n \r\n :
\r\n :
}\r\n \r\n {/* Change from Extension to Input Data */}\r\n\r\n {this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"Confirm\" ?\r\n { this[this.props.action.onClick](); this.confirmModalToggle() }}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle} />\r\n\r\n : this.props.action.hasConfirmModal && this.props.action.modalConfirmType == \"history\" ?\r\n\r\n { this.confirmModalToggle() }}\r\n denyButtonText={\"Close\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle} />\r\n\r\n : this.props.action.hasConfirmModal ?\r\n { this[this.props.action.onClick](); this.confirmModalToggle() }}\r\n denyButtonText={\"Cancel\"}\r\n confirmModal={this.state.confirmModal}\r\n confirmModalToggle={this.confirmModalToggle}\r\n />\r\n : null}\r\n\r\n\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default EditableIcon;","import React, { Component } from 'react';\r\nimport Icon from './Icon';\r\nimport PacketModal from './../../../../../components/PacketFormModal';\r\nimport EditableIcon from './EditableIcon';\r\n\r\n\r\nclass IconContainer extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = { packetModalVisible: false }\r\n }\r\n packetModalToggle = () => {\r\n this.setState({ packetModalVisible: !this.state.packetModalVisible });\r\n }\r\n render() {\r\n return (\r\n
\r\n {this.props.actions ?\r\n this.props.editable ?\r\n this.props.actions.map((action, key) =>\r\n )\r\n :\r\n this.props.actions.map((action, key) => {\r\n // Dissallows the publish ablity in the codification workflow for the MISC Tab.\r\n if (this.props.tabTitle == \"MISC\" && action.actionName == \"Publish\" && action.workflow ==\"Codification\") {\r\n return null;\r\n }\r\n // Dissallows any change or setting of effective dates in the MISC Tab\r\n else if(this.props.tabTitle == \"MISC\" && action.actionName.includes(\"Effective\")){\r\n return null;\r\n }\r\n else {\r\n return \r\n }\r\n }) : null\r\n }\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default IconContainer;","import React, { Component } from 'react';\r\nimport { Tooltip, OverlayTrigger, Button } from 'react-bootstrap';\r\nimport RulePacketAPI from '../../../../../util/api/rulePacket';\r\nimport { withRouter } from 'react-router-dom';\r\nimport {ConfirmationModal} from './../Modals';\r\n\r\n\r\nclass Icon extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.colorClass = 'dash-icon-blue';\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.props.statusIcon.tooltipText}\r\n }>\r\n\r\n {/* If the icon is a button type then give it on onclick using its buttonFunction name prop and render a button on the page */}\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 Icon;","import React from 'react';\r\nimport StatusIcon from './StatusIcon';\r\n\r\nconst IconContainer = (props) => {\r\n return (\r\n
\r\n \r\n
\r\n\r\n );\r\n}\r\n\r\nexport default IconContainer;","import matchSorter from \"match-sorter\";\r\nimport moment from \"moment\";\r\nimport React from \"react\";\r\nimport { Badge } from \"react-bootstrap\";\r\nimport { EditableCellContainer } from \"../Cells\";\r\nimport DateFilter from \"../components/DateFilter\";\r\nimport { IconContainter, StatusIconContainer } from \"../Icons\";\r\n\r\nexport function EmergencyColumnBuilder(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n){\r\n switch (displayProp) {\r\n case \"Action\":\r\n columnStruct.push({\r\n Header: \"\",\r\n id: displayProp,\r\n // Add 40 width for every icon included\r\n maxWidth:\r\n this.props.iconMaxWidth != undefined\r\n ? this.props.iconMaxWidth\r\n : dataModel[propertyName].length * 120,\r\n // because it is Type we will return the table Icon for its type value\r\n width:\r\n this.props.iconMaxWidth != undefined\r\n ? this.props.iconMaxWidth\r\n : dataModel[propertyName].length * 40,\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: ({ row }) => {\r\n let displayValue = row[displayProp];\r\n return (\r\n \r\n );\r\n },\r\n // \r\n });\r\n break;\r\n case \"Actionid\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"actionId\",\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Id\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"User\":\r\n case \"Days To Expiration\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Public Comment Period\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Public Comment Period\",\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Expiration Date\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Expiration Date\",\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n sortMethod: (a, b) => {\r\n const aDate = moment(a);\r\n const bDate = moment(b);\r\n // Sort by date\r\n const difference = aDate.diff(bDate, \"years\", true);\r\n // const difference_days = difference.asDays();\r\n return difference > 0 ? 1 : -1;\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, row) => {\r\n if (filter.value == false) {\r\n return true;\r\n }\r\n let toDate = moment(filter.value.toDate);\r\n let fromDate = moment(filter.value.fromDate);\r\n let date = moment(row[displayProp]);\r\n return (\r\n date.isBetween(toDate, fromDate) ||\r\n date.isSame(fromDate) ||\r\n date.isSame(toDate)\r\n );\r\n },\r\n Filter: ({ filter, onChange }) => {\r\n return ;\r\n },\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n // fall through for all dates\r\n case \"Last Modified\":\r\n case \"Comment End\":\r\n case \"Comment Start\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n sortMethod: (a, b) => {\r\n const aDate = moment(a);\r\n const bDate = moment(b);\r\n // Sort by date\r\n const difference = aDate.diff(bDate, \"years\", true);\r\n // const difference_days = difference.asDays();\r\n return difference > 0 ? 1 : -1;\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, row) => {\r\n if (filter.value == false) {\r\n return true;\r\n }\r\n let toDate = moment(filter.value.toDate);\r\n let fromDate = moment(filter.value.fromDate);\r\n let date = moment(row[displayProp]);\r\n return (\r\n date.isBetween(toDate, fromDate) ||\r\n date.isSame(fromDate) ||\r\n date.isSame(toDate)\r\n );\r\n },\r\n Filter: ({ filter, onChange }) => {\r\n return ;\r\n },\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Allowextension\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Allowextension\",\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Status\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Status\",\r\n id: displayProp,\r\n show: true,\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: ({ row }) => {\r\n let displayValue = row[displayProp][0];\r\n return (\r\n
\r\n {row[displayProp]}\r\n {/* Display Expiration Badge when we are at 181 days left */}\r\n {parseInt(row[\"Days To Expiration\"]) <= 181 &&\r\n parseInt(row[\"Days To Expiration\"]) >= 0 &&\r\n row[\"Status\"] != \"Lapsed\" ? (\r\n \r\n {row[\"Days To Expiration\"]} to Expiration\r\n \r\n ) : parseInt(row[\"Days To Expiration\"]) < 0 ? (\r\n {\"Expired\"}\r\n ) : null}\r\n {displayValue == \"Public Comment Open\" ? (\r\n // calulate the time from the day open to public comment until now minus the comment period to display time left\r\n \r\n {moment(row[\"Comment End\"]).diff(\r\n moment().startOf(\"day\"),\r\n \"d\"\r\n )}{\" \"}\r\n days left{\" \"}\r\n \r\n ) : null}\r\n {displayValue == \"7 Day Comment Review Period\" ? (\r\n // calulate the time from the day open to public comment until now minus the comment period to display time left\r\n \r\n {moment(row[\"Comment End\"])\r\n .add(7, \"d\")\r\n .diff(moment().startOf(\"day\"), \"d\")}{\" \"}\r\n days left{\" \"}\r\n \r\n ) : null}\r\n
\r\n );\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Status Icon\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Status\",\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: 60,\r\n // spits out the raw values\r\n accessor: (dataEntry) => (\r\n \r\n ),\r\n });\r\n break;\r\n case \"Days\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: 90,\r\n // spits out the raw values\r\n Cell: (props) => {props.value} days,\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Hidden Action\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n Cell: (props) => {props.value} days,\r\n accessor: (dataEntry) => \"hidden\",\r\n });\r\n break;\r\n case \"Rule Filing Name\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Number\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => parseInt(dataEntry[propertyName]),\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n default:\r\n if (\r\n this.props.editable &&\r\n (this.props.tabTitle == \"Email Templates\" ||\r\n this.props.tabTitle == \"Content Managment System\") &&\r\n displayProp != \"Last Modified\" &&\r\n displayProp != \"Last Modified By\" &&\r\n displayProp != \"Name\"\r\n ) {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: (props) => (\r\n \r\n ),\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n } else if (displayProp.includes(\"Hidden\")) {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n } else {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n }\r\n break;\r\n }\r\n};\r\n","import matchSorter from 'match-sorter';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport { Badge } from 'react-bootstrap';\r\nimport { EditableCellContainer } from '../Cells';\r\nimport DateFilter from '../components/DateFilter';\r\nimport { IconContainter, StatusIconContainer } from '../Icons';\r\n\r\nexport function MiscellaneousColumnBuilder(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n){\r\n switch (displayProp) {\r\n case \"Action\":\r\n columnStruct.push({\r\n Header: \"\",\r\n id: displayProp,\r\n // Add 40 width for every icon included\r\n maxWidth:\r\n this.props.iconMaxWidth != undefined\r\n ? this.props.iconMaxWidth\r\n : dataModel[propertyName].length * 120,\r\n // because it is Type we will return the table Icon for its type value\r\n width:\r\n this.props.iconMaxWidth != undefined\r\n ? this.props.iconMaxWidth\r\n : dataModel[propertyName].length * 40,\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: ({ row }) => {\r\n let displayValue = row[displayProp];\r\n return (\r\n \r\n );\r\n },\r\n // \r\n });\r\n break;\r\n case \"Action\":\r\n break;\r\n case \"Actionid\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"actionId\",\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Comment End\":\r\n case \"Comment Start\":\r\n case \"Id\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Days To Expiration\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Public Comment Period\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Public Comment Period\",\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Effective Date\":\r\n case \"Expiration Date\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Expiration Date\",\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n sortMethod: (a, b) => {\r\n const aDate = moment(a);\r\n const bDate = moment(b);\r\n // Sort by date\r\n const difference = aDate.diff(bDate, \"years\", true);\r\n // const difference_days = difference.asDays();\r\n return difference > 0 ? 1 : -1;\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, row) => {\r\n if (filter.value == false) {\r\n return true;\r\n }\r\n let toDate = moment(filter.value.toDate);\r\n let fromDate = moment(filter.value.fromDate);\r\n let date = moment(row[displayProp]);\r\n return (\r\n date.isBetween(toDate, fromDate) ||\r\n date.isSame(fromDate) ||\r\n date.isSame(toDate)\r\n );\r\n },\r\n Filter: ({ filter, onChange }) => {\r\n return ;\r\n },\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n // fall through for all dates\r\n case \"Last Modified\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n sortMethod: (a, b) => {\r\n const aDate = moment(a);\r\n const bDate = moment(b);\r\n // Sort by date\r\n const difference = aDate.diff(bDate, \"years\", true);\r\n // const difference_days = difference.asDays();\r\n return difference > 0 ? 1 : -1;\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, row) => {\r\n if (filter.value == false) {\r\n return true;\r\n }\r\n let toDate = moment(filter.value.toDate);\r\n let fromDate = moment(filter.value.fromDate);\r\n let date = moment(row[displayProp]);\r\n return (\r\n date.isBetween(toDate, fromDate) ||\r\n date.isSame(fromDate) ||\r\n date.isSame(toDate)\r\n );\r\n },\r\n Filter: ({ filter, onChange }) => {\r\n return ;\r\n },\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Allowextension\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Allowextension\",\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Status\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Status\",\r\n id: displayProp,\r\n show: true,\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: ({ row }) => {\r\n let displayValue = row[displayProp][0];\r\n return (\r\n
\r\n {row[displayProp]}\r\n {/* Display Expiration Badge when we are at 181 days left */}\r\n {parseInt(row[\"Days To Expiration\"]) <= 181 &&\r\n parseInt(row[\"Days To Expiration\"]) >= 0 &&\r\n row[\"Status\"] != \"Lapsed\" ? (\r\n \r\n {row[\"Days To Expiration\"]} to Expiration\r\n \r\n ) : parseInt(row[\"Days To Expiration\"]) < 0 ? (\r\n {\"Expired\"}\r\n ) : null}\r\n {displayValue == \"Public Comment Open\" ? (\r\n // calulate the time from the day open to public comment until now minus the comment period to display time left\r\n \r\n {moment(row[\"Comment End\"]).diff(\r\n moment().startOf(\"day\"),\r\n \"d\"\r\n )}{\" \"}\r\n days left{\" \"}\r\n \r\n ) : null}\r\n {displayValue == \"7 Day Comment Review Period\" ? (\r\n // calulate the time from the day open to public comment until now minus the comment period to display time left\r\n \r\n {moment(row[\"Comment End\"])\r\n .add(7, \"d\")\r\n .diff(moment().startOf(\"day\"), \"d\")}{\" \"}\r\n days left{\" \"}\r\n \r\n ) : null}\r\n
\r\n );\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Status Icon\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Status\",\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: 60,\r\n // spits out the raw values\r\n accessor: (dataEntry) => (\r\n \r\n ),\r\n });\r\n break;\r\n case \"Days\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: 90,\r\n // spits out the raw values\r\n Cell: (props) => {props.value} days,\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Hidden Action\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n Cell: (props) => {props.value} days,\r\n accessor: (dataEntry) => \"hidden\",\r\n });\r\n break;\r\n case \"Rule Filing Name\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Number\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => parseInt(dataEntry[propertyName]),\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n default:\r\n if (\r\n this.props.editable &&\r\n (this.props.tabTitle == \"Email Templates\" ||\r\n this.props.tabTitle == \"Content Managment System\") &&\r\n displayProp != \"Last Modified\" &&\r\n displayProp != \"Last Modified By\" &&\r\n displayProp != \"Name\"\r\n ) {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: (props) => (\r\n \r\n ),\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n } else if (displayProp.includes(\"Hidden\")) {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n } else {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n }\r\n break;\r\n }\r\n};\r\n","import matchSorter from \"match-sorter\";\r\nimport moment from \"moment\";\r\nimport React from \"react\";\r\nimport DateFilter from \"../components/DateFilter\";\r\n\r\nexport function IntegratedBusinessColumnBuilder(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n) {\r\n switch (displayProp) {\r\n case \"Created Date\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n sortMethod: (a, b) => {\r\n const aDate = moment(a);\r\n const bDate = moment(b);\r\n // Sort by date\r\n const difference = aDate.diff(bDate, \"years\", true);\r\n // const difference_days = difference.asDays();\r\n return difference > 0 ? 1 : -1;\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, row) => {\r\n if (filter.value == false) {\r\n return true;\r\n }\r\n let toDate = moment(filter.value.toDate);\r\n let fromDate = moment(filter.value.fromDate);\r\n let date = moment(row[displayProp]);\r\n return (\r\n date.isBetween(toDate, fromDate) ||\r\n date.isSame(fromDate) ||\r\n date.isSame(toDate)\r\n );\r\n },\r\n Filter: ({ filter, onChange }) => {\r\n return ;\r\n },\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Ibr\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"IBR\",\r\n id: \"IBR\",\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n default:\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n show: false,\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n }\r\n}\r\n","import matchSorter from 'match-sorter';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport DateFilter from '../components/DateFilter';\r\n\r\nexport function DigestColumnBuilder(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n){\r\n switch (displayProp) {\r\n case \"Created Date\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n sortMethod: (a, b) => {\r\n const aDate = moment(a);\r\n const bDate = moment(b);\r\n // Sort by date\r\n const difference = aDate.diff(bDate, \"years\", true);\r\n // const difference_days = difference.asDays();\r\n return difference > 0 ? 1 : -1;\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, row) => {\r\n if (filter.value == false) {\r\n return true;\r\n }\r\n let toDate = moment(filter.value.toDate);\r\n let fromDate = moment(filter.value.fromDate);\r\n let date = moment(row[displayProp]);\r\n return (\r\n date.isBetween(toDate, fromDate) ||\r\n date.isSame(fromDate) ||\r\n date.isSame(toDate)\r\n );\r\n },\r\n Filter: ({ filter, onChange }) => {\r\n return ;\r\n },\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Id\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Agency\":\r\n case \"Title\":\r\n case \"Filing Type\":\r\n case \"Rule Number\":\r\n case \"Liaison\":\r\n case \"Citations\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter([rows[filter.id]], filter.value);\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Document Type\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n default:\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n show: false,\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n }\r\n};\r\n","import matchSorter from 'match-sorter';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport S3API from '../../../../../util/api/s3';\r\nimport DateFilter from '../components/DateFilter';\r\n\r\nexport function RegisterColumnBuilder(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n){\r\n switch (displayProp) {\r\n case \"Filed Date\":\r\n case \"Created Date\":\r\n case \"Comment Start Date\":\r\n case \"Effective Date\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n sortMethod: (a, b) => {\r\n const aDate = moment(a);\r\n const bDate = moment(b);\r\n // Sort by date\r\n const difference = aDate.diff(bDate, \"years\", true);\r\n // const difference_days = difference.asDays();\r\n return difference > 0 ? 1 : -1;\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, row) => {\r\n if (filter.value == false) {\r\n return true;\r\n }\r\n let toDate = moment(filter.value.toDate);\r\n let fromDate = moment(filter.value.fromDate);\r\n let date = moment(row[displayProp]);\r\n return (\r\n date.isBetween(toDate, fromDate) ||\r\n date.isSame(fromDate) ||\r\n date.isSame(toDate)\r\n );\r\n },\r\n Filter: ({ filter, onChange }) => {\r\n return ;\r\n },\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Citations\":\r\n case \"Created Time\":\r\n case \"Filed Time\":\r\n case \"Id\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Agency\":\r\n case \"Title\":\r\n case \"Filing Type\":\r\n case \"Rule Number\":\r\n case \"Liaison\":\r\n case \"Document Type\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Document\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n show: true,\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: ({ row }) => (\r\n \r\n row[\"Document Type\"] == \"PROPOSED_RULE_TEXT\"\r\n ? S3API.getRuleText(row[displayProp], row[displayProp])\r\n : S3API.publicGetFile(\r\n \"uac-docx/\" + row[displayProp],\r\n row[displayProp]\r\n )\r\n }\r\n >\r\n {row[displayProp]}\r\n \r\n ),\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n default:\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n show: false,\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n }\r\n};\r\n","import React, { Component } from \"react\";\r\nimport moment from \"moment\";\r\nimport matchSorter from \"match-sorter\";\r\nimport { Badge } from \"react-bootstrap\";\r\nimport { IconContainter, StatusIconContainer } from \"../Icons\";\r\nimport { EditableCell, EditableCellContainer } from \"../Cells\";\r\nimport DateFilter from \"../components/DateFilter\";\r\nimport S3API from \"../../../../../util/api/s3\";\r\n\r\nexport function RulePacketColumnBuilder(\r\n displayProp,\r\n propertyName,\r\n columnStruct,\r\n dataModel,\r\n tableType\r\n) {\r\n switch (displayProp) {\r\n case \"Action\":\r\n columnStruct.push({\r\n Header: \"\",\r\n id: displayProp,\r\n // Add 40 width for every icon included\r\n maxWidth:\r\n this.props.iconMaxWidth != undefined\r\n ? this.props.iconMaxWidth\r\n : dataModel[propertyName].length * 120,\r\n // because it is Type we will return the table Icon for its type value\r\n width:\r\n this.props.iconMaxWidth != undefined\r\n ? this.props.iconMaxWidth\r\n : dataModel[propertyName].length * 40,\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: ({ row }) => {\r\n let displayValue = row[displayProp];\r\n return (\r\n \r\n );\r\n },\r\n // \r\n });\r\n break;\r\n case \"Actionid\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"actionId\",\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Id\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"User\":\r\n case \"Days To Expiration\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Public Comment Period\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Public Comment Period\",\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Expiration Date\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Expiration Date\",\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n sortMethod: (a, b) => {\r\n const aDate = moment(a);\r\n const bDate = moment(b);\r\n // Sort by date\r\n const difference = aDate.diff(bDate, \"years\", true);\r\n // const difference_days = difference.asDays();\r\n return difference > 0 ? 1 : -1;\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, row) => {\r\n if (filter.value == false) {\r\n return true;\r\n }\r\n let toDate = moment(filter.value.toDate);\r\n let fromDate = moment(filter.value.fromDate);\r\n let date = moment(row[displayProp]);\r\n return (\r\n date.isBetween(toDate, fromDate) ||\r\n date.isSame(fromDate) ||\r\n date.isSame(toDate)\r\n );\r\n },\r\n Filter: ({ filter, onChange }) => {\r\n return ;\r\n },\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n // fall through for all dates\r\n case \"Last Modified\":\r\n case \"Comment End\":\r\n case \"Comment Start\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n sortMethod: (a, b) => {\r\n const aDate = moment(a);\r\n const bDate = moment(b);\r\n // Sort by date\r\n const difference = aDate.diff(bDate, \"years\", true);\r\n // const difference_days = difference.asDays();\r\n return difference > 0 ? 1 : -1;\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, row) => {\r\n if (filter.value == false) {\r\n return true;\r\n }\r\n let toDate = moment(filter.value.toDate);\r\n let fromDate = moment(filter.value.fromDate);\r\n let date = moment(row[displayProp]);\r\n return (\r\n date.isBetween(toDate, fromDate) ||\r\n date.isSame(fromDate) ||\r\n date.isSame(toDate)\r\n );\r\n },\r\n Filter: ({ filter, onChange }) => {\r\n return ;\r\n },\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Allowextension\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Allowextension\",\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Status\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Status\",\r\n id: displayProp,\r\n show: true,\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: ({ row }) => {\r\n let displayValue = row[displayProp][0];\r\n return (\r\n
\r\n {row[displayProp]}\r\n {/* Display Expiration Badge when we are at 181 days left */}\r\n {parseInt(row[\"Days To Expiration\"]) <= 181 &&\r\n parseInt(row[\"Days To Expiration\"]) >= 0 &&\r\n row[\"Status\"] != \"Lapsed\" ? (\r\n \r\n {row[\"Days To Expiration\"]} to Expiration\r\n \r\n ) : parseInt(row[\"Days To Expiration\"]) < 0 ? (\r\n {\"Expired\"}\r\n ) : null}\r\n {displayValue == \"Public Comment Open\" ? (\r\n // calulate the time from the day open to public comment until now minus the comment period to display time left\r\n \r\n {moment(row[\"Comment End\"]).diff(\r\n moment().startOf(\"day\"),\r\n \"d\"\r\n )}{\" \"}\r\n days left{\" \"}\r\n \r\n ) : null}\r\n {displayValue == \"7 Day Comment Review Period\" ? (\r\n // calulate the time from the day open to public comment until now minus the comment period to display time left\r\n \r\n {moment(row[\"Comment End\"])\r\n .add(7, \"d\")\r\n .diff(moment().startOf(\"day\"), \"d\")}{\" \"}\r\n days left{\" \"}\r\n \r\n ) : null}\r\n
\r\n );\r\n },\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Status Icon\":\r\n // Add a hidden status table for the color settings on Due for 5 year reveiw\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: \"Status\",\r\n id: displayProp,\r\n show: true,\r\n // Allows flex to work correctly\r\n width: 60,\r\n // spits out the raw values\r\n accessor: (dataEntry) => (\r\n \r\n ),\r\n });\r\n break;\r\n case \"Days\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: 90,\r\n // spits out the raw values\r\n Cell: (props) => {props.value} days,\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n break;\r\n case \"Hidden Action\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n Cell: (props) => {props.value} days,\r\n accessor: (dataEntry) => \"hidden\",\r\n });\r\n break;\r\n case \"Rule Filing Name\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n case \"Number\":\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => parseInt(dataEntry[propertyName]),\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n break;\r\n default:\r\n if (\r\n this.props.editable &&\r\n (this.props.tabTitle == \"Email Templates\" ||\r\n this.props.tabTitle == \"Content Managment System\") &&\r\n displayProp != \"Last Modified\" &&\r\n displayProp != \"Last Modified By\" &&\r\n displayProp != \"Name\"\r\n ) {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n Cell: (props) => (\r\n \r\n ),\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n } else if (displayProp.includes(\"Hidden\")) {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n show: false,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n });\r\n } else {\r\n columnStruct.push({\r\n // Setup all the properties for the table\r\n Header: displayProp,\r\n id: displayProp,\r\n // Allows flex to work correctly\r\n width: \"unset\",\r\n // spits out the raw values\r\n accessor: (dataEntry) => dataEntry[propertyName],\r\n filterable: this.state.filterable,\r\n filterMethod: (filter, rows) => {\r\n return matchSorter(rows, filter.value, { keys: [filter.id] });\r\n },\r\n filterAll: true,\r\n });\r\n }\r\n break;\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Panel } from 'react-bootstrap';\r\nimport { CSVLink } from \"react-csv\";\r\nimport { css } from 'react-emotion';\r\nimport { SyncLoader } from 'react-spinners';\r\nimport ReactTable from 'react-table';\r\nimport 'react-table/react-table.css';\r\nimport FormModal from './../../../../components/FormModal';\r\nimport { SingleRulePacketModal } from './../../../../components/PacketFormModal';\r\nimport {TableBuilder} from \"./ColumnBuilders\";\r\nimport TableButton from './TableButton';\r\nimport './TableSection.css';\r\n\r\n// get the data object and destructure it into title and links list\r\n\r\n// iconMaxWidth can be passed in as a prop in order to setup a width for the icons on the table, otherwise it will default to the length of the first elements iconlist\r\nlet callFlag = true;\r\nclass TableSection extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ColumnBuilder = TableBuilder.bind(this);\r\n this.state = {\r\n columns: [],\r\n data: [],\r\n modalVisible: false,\r\n filterable: false,\r\n editRowId: null,\r\n editRowData: null,\r\n editableRow: null,\r\n empty: false,\r\n dataToDownload: \"\",\r\n tableButtonClicked: {},\r\n pendingIndex: \"\",\r\n rowsInError: [],\r\n dataFetched: false\r\n }\r\n };\r\n async componentDidMount() {\r\n // makes it possible to close the modal using the esc key\r\n document.onkeyup = (event) => {\r\n if (event.key === \"Escape\") {\r\n this.hideModal();\r\n }\r\n }\r\n this.loadTableData();\r\n\r\n }\r\n scrollToSelected = () => {\r\n let selectedRow = document.querySelector(`#rowContainer${this.state.rowFocus}`);\r\n if (selectedRow != null) {\r\n setTimeout(() => selectedRow.scrollIntoView({ behavior: \"smooth\", block: \"center\" }), 1);\r\n }\r\n }\r\n scrollToSelectedInstant = () => {\r\n let selectedRow = document.querySelector(`#rowContainer${this.state.rowFocus}`);\r\n if (selectedRow != null) {\r\n setTimeout(() => selectedRow.scrollIntoView({ behavior: \"instant\", block: \"center\" }), 1);\r\n }\r\n }\r\n componentDidUpdate = () => {\r\n this.scrollToSelected();\r\n }\r\n getModifiedData(newRowData) {\r\n // Get a local version of the state list\r\n let newStateData = [...this.state.data];\r\n // Create a promise object\r\n return new Promise((resolve, reject) => {\r\n let index = null;\r\n // Loop through the newStateData and if there is an id in existance for that object store the index\r\n for (var i = 0; i < newStateData.length; i += 1) {\r\n if (newStateData[i].id === newRowData.id) {\r\n index = i;\r\n }\r\n }\r\n // if the index was found than return the new array as part of the data set.\r\n if (index != null) {\r\n newStateData[index] = newRowData;\r\n resolve(newStateData);\r\n }\r\n else {\r\n reject(\"Cannot update data, Id not found in current Data Set\");\r\n }\r\n });\r\n }\r\n addNewRow = ({ data }) => {\r\n if (this.state.data.length) {\r\n if(data != null){\r\n let newStateData = [data, ...this.state.data];\r\n this.setState({ data: newStateData });\r\n }else{\r\n console.error(\"There was an error creating the filing, data: \", data);\r\n }\r\n } else {\r\n let newStateData = [data, ...this.state.data];\r\n this.setState({ data: newStateData });\r\n this.loadTableData(data);\r\n }\r\n }\r\n\r\n blockRow = (row) => {\r\n this.setState({ pendingIndex: row._viewIndex });\r\n }\r\n\r\n reloadRow = ({ data }) => {\r\n // Unset the pendingIndex to take off the row cover\r\n this.scrollToSelectedInstant();\r\n let newRowData = data;\r\n this.getModifiedData(data).then((newStateData) => {\r\n // Remove any previous error classes\r\n if (this.state.rowsInError.includes(this.state.pendingIndex)) {\r\n const rowsInError = this.state.rowsInError.filter(value => value != this.state.pendingIndex);\r\n this.setState({ rowsInError });\r\n }\r\n setTimeout(() => this.setState({ pendingIndex: \"\" }), 200)\r\n this.setState({ data: newStateData });\r\n // let getAllCells = document.getElementsByClassName(\"rt-td\");\r\n // for (let index = 0; index < getAllCells.length; index++) {\r\n // const element = getAllCells[index];\r\n // element.style.removeProperty('flex');\r\n // element.style.removeProperty('width');\r\n // }\r\n }).catch((rej) => {\r\n const rowsInError = [this.state.pendingIndex, ...this.state.rowsInError]\r\n setTimeout(() => this.setState({ rowsInError, pendingIndex: \"\" }), 300);\r\n });\r\n }\r\n editRow = (row = { id: null }) => {\r\n let { id } = row;\r\n this.setState({ editRowId: id });\r\n if(id!=null){\r\n this.setState({ rowFocus: id });\r\n }\r\n const entries = Object.entries(row)\r\n entries.forEach(entry => {\r\n // convert first letter to cap like it is in state\r\n entry[0] = entry[0].charAt(0).toUpperCase() + entry[0].slice(1)\r\n this.setState({ [entry[0]]: entry[1] });\r\n });\r\n }\r\n submitActiveRecordChange = (selector, id, updatingCall) => {\r\n let changedElements = document.querySelectorAll(selector);\r\n let objectToSend = {}\r\n changedElements.forEach(item => objectToSend[item.name] = item.value)\r\n let allRows = document.querySelectorAll(\".rt-tr\");\r\n // loop through all row classes\r\n allRows.forEach(row => {\r\n // take off selected if they have it\r\n row.classList.remove(\"rowSelected\")\r\n // get current cell\r\n let editableCell = row.querySelector(\".EditableCell\")\r\n if (editableCell != null) {\r\n // if the cell we are editing has the current id\r\n if (editableCell.classList.contains(`row${id}`)) {\r\n // set to updating class\r\n row.classList.add(\"rowPendingUpdate\")\r\n let halfSecondPassed = false;\r\n // Make call\r\n setTimeout(() => halfSecondPassed = true, 500)\r\n this.props.updateRecord(id, objectToSend).then((response) => {\r\n if (halfSecondPassed) {\r\n row.classList.remove(\"rowPendingUpdate\")\r\n this.reloadRow(response)\r\n } else {\r\n setTimeout(() => {\r\n row.classList.remove(\"rowPendingUpdate\")\r\n this.setState({ rowFocus: this.state.editRowId });\r\n this.setState({ editRowId: null });\r\n this.reloadRow(response)\r\n }, 200)\r\n }\r\n }).catch(err => {\r\n if (halfSecondPassed) {\r\n row.classList.remove(\"rowPendingUpdate\")\r\n row.classList.add(\"rowUpdateFailed\")\r\n } else {\r\n setTimeout(() => {\r\n row.classList.remove(\"rowPendingUpdate\")\r\n row.classList.add(\"rowUpdateFailed\")\r\n this.setState({ rowFocus: this.state.editRowId });\r\n this.setState({ editRowId: null });\r\n }, 200)\r\n }\r\n })\r\n // If we get back quick\r\n\r\n }\r\n } else {\r\n allRows.forEach(row => {\r\n // take off selected if they have it\r\n row.classList.remove(\"rowSelected\")\r\n let normalIcon = row.querySelector(\".normalIcon\")\r\n if (normalIcon != null) {\r\n if (normalIcon.classList.contains(`row${id}`)) {\r\n\r\n let halfSecondPassed = false;\r\n row.classList.add(\"rowPendingUpdate\")\r\n\r\n setTimeout(() => halfSecondPassed = true, 500)\r\n updatingCall.then((response) => {\r\n if (halfSecondPassed) {\r\n row.classList.remove(\"rowPendingUpdate\")\r\n } else {\r\n setTimeout(() => {\r\n row.classList.remove(\"rowPendingUpdate\")\r\n this.setState({ rowFocus: this.state.editRowId });\r\n this.setState({ editRowId: null });\r\n this.reloadRow(response)\r\n }, 200)\r\n }\r\n }).catch(err => {\r\n if (halfSecondPassed) {\r\n row.classList.remove(\"rowPendingUpdate\")\r\n row.classList.add(\"rowUpdateFailed\")\r\n } else {\r\n setTimeout(() => {\r\n row.classList.remove(\"rowPendingUpdate\")\r\n row.classList.add(\"rowUpdateFailed\")\r\n this.setState({ rowFocus: this.state.editRowId });\r\n this.setState({ editRowId: null });\r\n }, 200)\r\n }\r\n })\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n });\r\n }\r\n\r\n showModal = (button) => {\r\n this.setState({ modalVisible: true });\r\n this.setState({ tableButtonClicked: button })\r\n }\r\n hideModal = () => {\r\n this.setState({ modalVisible: false });\r\n }\r\n filterToggle = () => {\r\n this.setState({ filterable: !this.state.filterable })\r\n this.loadTableData();\r\n }\r\n fourDigitFormat = (number) => {\r\n return number > 999 ? `${number}` : number > 99 ? `00${number}` : number > 9 ? `00${number}` : `000${number}`\r\n }\r\n downloadCSV = (event) => {\r\n const currentRecords = this.reactTable.getResolvedState().sortedData;\r\n var data_to_download = []\r\n for (var index = 0; index < currentRecords.length; index++) {\r\n let record_to_download = {}\r\n const columns = this.state.columns;\r\n // const columns = this.state.data;\r\n for (var colIndex = 0; colIndex < columns.length; colIndex++) {\r\n const key = columns[colIndex].Header;\r\n if (key != \"Action\" && key != \"\" && key != \"actionId\") {\r\n\r\n const displayKey = columns[colIndex].Header.replace(\"Hidden \", \"\");\r\n const object = currentRecords[index];\r\n const value = object[key]\r\n record_to_download[displayKey] = value;\r\n }\r\n }\r\n data_to_download.push(record_to_download)\r\n }\r\n this.setState({ dataToDownload: data_to_download }, () => {\r\n // click the CSVLink component to trigger the CSV download\r\n this.csvLink.link.click()\r\n })\r\n\r\n }\r\n\r\n loadTableData(newRow) {\r\n // In order of this to work properly all property names should be in the following format Property_Name\r\n // Grab the first data element in order to make a table structure off its object\r\n this.props.tableData.then(\r\n (results) => {\r\n let data;\r\n // if this is reloading for a new row get in that data\r\n if (newRow) {\r\n data = [];\r\n data.push(newRow);\r\n }\r\n else {\r\n data = results.data;\r\n }\r\n let dataModel = [];\r\n if (data) {\r\n dataModel = data[0];\r\n } // create an empty column structure for the table\r\n let columnStruct = [];\r\n // loop through the dataTable object\r\n for (var prop in dataModel) {\r\n // Create the display name for the table header (replace _ with a space and then Capitalize the first letter of each word)\r\n let displayProp = prop.replace(/_/g, \" \").replace(/\\w\\S*/g, function (tStr) {\r\n return tStr.charAt(0).toUpperCase() + tStr.substr(1).toLowerCase();\r\n });\r\n // create a block scoped variable of props\r\n let propertyName = prop;\r\n\r\n if (this.props.tableType) {\r\n\r\n this.ColumnBuilder(displayProp, propertyName, columnStruct, dataModel, this.props.tableType);\r\n } else {\r\n this.ColumnBuilder(displayProp, propertyName, columnStruct, dataModel);\r\n }\r\n }\r\n // load in table structure\r\n this.setState({ columns: columnStruct })\r\n // load in data\r\n if (data) {\r\n if (!data.length) {\r\n this.setState({ empty: true })\r\n }\r\n this.setState({ data: data })\r\n } else {\r\n this.setState({ empty: true })\r\n }\r\n }\r\n )\r\n }\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 10vh auto;\r\n color: #115fa4;\r\n width: 8em;\r\n `;\r\n return override;\r\n }\r\n render() {\r\n return (\r\n
\r\n\r\n \r\n \r\n {this.props.iconTitleClass ? : null} {this.props.TableTitle ? this.props.TableTitle + \" \" : null}{this.state.data.length} records\r\n {/* If any header buttons are avalible loop through the list and populate the components */}\r\n {this.props.headerButtons ? this.props.headerButtons.map((button, key) => {\r\n // if it is a button with the title of New we are going to show the modal, otherwise do whatever the onclick indicates\r\n return (\r\n
\r\n {button.title == \"Download CSV\" ?\r\n this.csvLink = r}\r\n target=\"_blank\" />\r\n : null}\r\n {/* Turn off new button for Read Only Admin */}\r\n {(this.props.user.userType != \"Read Only Admin\" ? true : button.title != \"New\") ?\r\n this.showModal(button)\r\n : button.title == \"Filter\" ?\r\n this.filterToggle\r\n : button.title == \"Download CSV\" ?\r\n this.downloadCSV\r\n : (button.onclick)} title={button.title} iconClass={button.iconClass} />\r\n : null}\r\n
\r\n );\r\n }) : null}\r\n
\r\n \r\n\r\n\r\n
\r\n\r\n\r\n\r\n {this.state.columns.length && this.state.data.length ?\r\n this.reactTable = r}\r\n style={{}}\r\n getTrProps={(state, rowInfo = { row: [] }, column) => {\r\n // If this row is the pending row\r\n if (rowInfo.row._viewIndex === this.state.pendingIndex) {\r\n return { className: \"rowPendingUpdate\" };\r\n }\r\n if (this.state.rowsInError.includes(rowInfo.row._viewIndex)) {\r\n return { className: \"rowUpdateFailed\" };\r\n }\r\n // If table contains status column\r\n if (rowInfo.row) {\r\n return {\r\n style: {\r\n // if the status contaisn Due for 5 year Review set it to the color red\r\n background:\r\n // Take all coloring off of Emergency Rule Packets UTAH REQUESTED\r\n rowInfo.row[\"Hidden Packettype\"] == \"Emergency\" && rowInfo.row[\"Status\"][0] != \"Codified & Published\" ? \"none\"\r\n :\r\n parseInt(rowInfo.row[\"Days To Expiration\"]) < 32 ?\r\n \"red\"\r\n : parseInt(rowInfo.row[\"Days To Expiration\"]) < 121 ?\r\n \"orange\"\r\n : rowInfo.row[\"Status\"] == \"Inactive\" ?\r\n // grey\r\n \"rgba(192,192,192,0.3)\"\r\n : rowInfo.row[\"Status\"] == \"Pending\" ?\r\n // green\r\n \"rgba(0,255,0,0.3)\"\r\n : null\r\n }\r\n };\r\n }\r\n\r\n }}\r\n defaultPageSize={this.state.data.length < 100 && !this.props.workQueue ?\r\n 100\r\n : this.props.workQueue ?\r\n 5\r\n : 10}\r\n minRows={1}\r\n showPaginationBottom={this.state.data.length < 100 && !this.props.workQueue ? false\r\n :\r\n true}\r\n data={[...this.state.data]}\r\n resolveData={data => {\r\n return data.map(row => row)\r\n }\r\n }\r\n columns={this.state.columns}\r\n /> : !this.state.empty ?\r\n \r\n : \"No data to display...\"\r\n }\r\n\r\n
\r\n
\r\n
\r\n {/* If it has input fields defined create a modal for it */}\r\n {this.props.inputFields ?\r\n // If packetModal is true load the packet Modal otherwise just the normal Modal\r\n this.props.packetModal ?\r\n : : null}\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default TableSection;","import React, { Component } from 'react';\r\nimport { Panel, Table, Badge } from 'react-bootstrap';\r\nimport { withRouter } from 'react-router-dom';\r\nimport HistoryAPI from './../../../../util/api/history';\r\nimport TableSection from './../../components/TableSection';\r\nimport \"./WorkFlowBin.css\"\r\nclass WorkFlowBin extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.reload = this.reload.bind(this);\r\n }\r\n reload() {\r\n this.state.load === true ? this.setState({ load: 1 }) : this.setState({ load: true });\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\nexport default withRouter(WorkFlowBin);","import React from 'react';\r\nimport { Route, withRouter, } from 'react-router-dom';\r\nimport JumpPage from '../../JumpPage';\r\nconst RouteTabGenerator = (props) => (\r\n\r\n
\r\n } />\r\n {\r\n // Generates routes to each of the tabs with their corrosponding content\r\n props.tabOptions.map(\r\n (tab, key) => {\r\n return (\r\n \r\n
\r\n {tab.displayComponent}\r\n
} />\r\n )\r\n })}\r\n
\r\n);\r\n\r\nexport default withRouter(RouteTabGenerator);","import React, { Component } from 'react';\r\nimport { Route, withRouter, } from 'react-router-dom';\r\nimport LinkSection from './../../components/LinkSection';\r\nimport WorkFlowBin from './../../components/WorkFlowBin';\r\nimport TabNavigation from './../../components/TabNavigation';\r\nimport TableSection from './../../components/TableSection';\r\nimport HistoryAPI from './../../../../util/api/history';\r\nimport RulePacketAPI from './../../../../util/api/rulePacket';\r\nimport JumpPage from '../../../JumpPage';\r\nimport WebTextAPI from './../../../../util/api/webText';\r\nimport { Panel } from 'react-bootstrap';\r\nimport './AdminHome.css';\r\nimport RouteTabGenerator from '../../components/RouteTabGenerator';\r\n\r\n\r\nconst DisplayComponent = (props) => {\r\n\r\n return (\r\n
\r\n )\r\n}\r\nclass AdminHome extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.reload = this.reload.bind(this);\r\n // Setup default Tabs\r\n this.state = { modalVisible: false, tabOptions: [], workQueue: [], currentRules: [], tabs: [\"Work Queue\", \"Dashboard\", \"Current Rules\", \"Help\"] }\r\n }\r\n componentDidMount = () => {\r\n }\r\n reload() {\r\n this.state.load === true ? this.setState({ load: 1 }) : this.setState({ load: true });\r\n }\r\n render() {\r\n let tabOptions = [{\r\n tabTitle: \"Work Queue\"\r\n , displayComponent:\r\n
\r\n \r\n \r\n
\r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n },\r\n {\r\n tabTitle: \"Dashboard\"\r\n , displayComponent:\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n },\r\n {\r\n tabTitle: \"Current Rules\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n },\r\n {\r\n tabTitle: \"Help\"\r\n , displayComponent:\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n }];\r\n return (\r\n\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AdminHome);","import React, { Component } from 'react';\r\nimport $ from 'jquery';\r\nimport TableSection from './../../components/TableSection';\r\nimport AgencyAPI from './../../../../util/api/agency';\r\nimport ProgramAPI from './../../../../util/api/program';\r\nimport LiaisonAPI from '../../../../util/api/liaison';\r\nimport UsersAPI from './../../../../util/api/users';\r\nimport { Route, withRouter, } from 'react-router-dom';\r\nimport JumpPage from '../../../JumpPage';\r\nimport RouteTabGenerator from '../../components/RouteTabGenerator';\r\n\r\n\r\n\r\nclass AdminAgency extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.reload = this.reload.bind(this);\r\n this.state = {\r\n tabOptions: []\r\n , modalVisible: false\r\n , modalInputFields: []\r\n , agencyList: []\r\n , modalOnSubmit: () => { }\r\n };\r\n }\r\n\r\n reload() {\r\n this.state.load === true ? this.setState({ load: 1 }) : this.setState({ load: true });\r\n }\r\n\r\n newAgency = (data) => {\r\n // New agency object to prep for the add to the database\r\n // TODO:\r\n // What is exempt?\r\n // Dynamic statusId\r\n // User id's from centeral store or session storage\r\n // \r\n let agencyObj = {\r\n name: data.Name,\r\n num: data.Num,\r\n email: data.email,\r\n phone:data.phone,\r\n recordStatusId: 1,\r\n createdDate: new Date().toISOString(),\r\n createdByAuid: 1,\r\n lastModifiedDate: new Date().toISOString(),\r\n lastModifiedByAuid: 1,\r\n statusId: 101,\r\n exemptYn: \"N\"\r\n };\r\n\r\n AgencyAPI.createAgency(agencyObj).then((results) => {\r\n // reload without doing the whole page\r\n this.setState({ modalVisible: false });\r\n this.props.history.push();\r\n });\r\n\r\n }\r\n newProgram = (data) => {\r\n let programObj = {\r\n agencyId: data.AgencyId,\r\n name: data.Name,\r\n num: data.Num,\r\n createdByAuid: 1,\r\n lastModifiedByAuid: 1,\r\n statusId: 71,\r\n RecordStatusId: 1\r\n }\r\n ProgramAPI.createProgram(programObj.agencyId, programObj).then((results) => {\r\n // reload without doing the whole page\r\n this.setState({ modalVisible: false });\r\n this.props.history.push();\r\n })\r\n }\r\n camelize(str) {\r\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w|\\s+)/g, function (match, index) {\r\n if (+match === 0) return \"\"; // or if (/\\s+/.test(match)) for white spaces\r\n return index == 0 ? match.toLowerCase() : match.toUpperCase();\r\n });\r\n }\r\n newUser = (data) => {\r\n let fixedData = {};\r\n for (var property1 in data) {\r\n let camelCaseProperty = this.camelize(property1);\r\n fixedData[camelCaseProperty] = data[property1];\r\n }\r\n let userObj = {\r\n userName: fixedData.userName,\r\n email: fixedData.email,\r\n userTypeId: 23,\r\n firstName: fixedData.firstName,\r\n middleName: fixedData.middleName,\r\n lastName: fixedData.lastName,\r\n addr1: fixedData.addressLine1,\r\n addr2: fixedData.addressLine2,\r\n addr3: fixedData.addressLine3,\r\n city: fixedData.city,\r\n state: fixedData.state,\r\n postalCode: fixedData.postalCode,\r\n phone: fixedData.phone,\r\n agencyId: fixedData.titleId\r\n }\r\n UsersAPI.addUser(userObj).then((results) => {\r\n this.setState({ modalVisible: false });\r\n this.props.history.push();\r\n })\r\n }\r\n newLiaison = (data) => {\r\n let fixedData = {};\r\n for (var property1 in data) {\r\n\r\n let camelCaseProperty = this.camelize(property1);\r\n fixedData[camelCaseProperty] = data[property1];\r\n }\r\n let LiaisonObj = {\r\n email: fixedData.email,\r\n firstName: fixedData.firstName,\r\n middleName: fixedData.middleName,\r\n lastName: fixedData.lastName,\r\n addr1: fixedData.addressLine1,\r\n addr2: fixedData.addressLine2,\r\n addr3: fixedData.addressLine3,\r\n city: fixedData.city,\r\n state: fixedData.state,\r\n phone: fixedData.phone,\r\n postalCode: fixedData.postalCode,\r\n agencyId: fixedData.agencyId,\r\n programId: fixedData.programId\r\n }\r\n LiaisonAPI.addLiaison(LiaisonObj).then((results) => {\r\n this.setState({ modalVisible: false });\r\n this.props.history.push();\r\n })\r\n }\r\n\r\n render() {\r\n let tabOptionsHere = [{\r\n tabTitle: \"Agencies\"\r\n , displayComponent:\r\n \r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n },\r\n {\r\n tabTitle: \"Titles\"\r\n , displayComponent:\r\n\r\n \r\n\r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n },\r\n {\r\n tabTitle: \"Users\"\r\n , displayComponent:\r\n \r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n },\r\n {\r\n tabTitle: \"Liaisons\"\r\n , displayComponent:\r\n \r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n }\r\n ];\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AdminAgency);","import TableSection from './../../components/TableSection';\r\nimport React, { Component } from 'react';\r\nimport RulePacketAPI from './../../../../util/api/rulePacket';\r\n\r\nfunction tabOptions() {\r\n const options = [{\r\n tabTitle: \"Standard\"\r\n , displayComponent:\r\n
\r\n { RulePacketAPI.setAllToExpire().then(() => this.reload()) }\r\n // },\r\n // {\r\n // title: \"182 Days\",\r\n // iconClass: \"fa fa-thumb-tack\",\r\n // onclick: () => { RulePacketAPI.setAllTo182().then(() => this.reload()) }\r\n // },\r\n // {\r\n // title: \"181 Days\",\r\n // iconClass: \"fa fa-thumb-tack\",\r\n // onclick: () => { RulePacketAPI.setAllTo181().then(() => this.reload()) }\r\n // },\r\n // {\r\n // title: \"120 Days\",\r\n // iconClass: \"fa fa-thumb-tack\",\r\n // onclick: () => { RulePacketAPI.setAllTo120().then(() => this.reload()) }\r\n // },\r\n // {\r\n // title: \"31 Days\",\r\n // iconClass: \"fa fa-thumb-tack\",\r\n // onclick: () => { RulePacketAPI.setAllTo31().then(() => this.reload()) }\r\n // },\r\n // {\r\n // title: \"OverDue\",\r\n // iconClass: \"fa fa-thumb-tack\",\r\n // onclick: () => { RulePacketAPI.daysNeg().then(() => this.reload()) }\r\n // }\r\n ]}\r\n iconMaxWidth={150}\r\n reload={this.reload}\r\n tableData={RulePacketAPI.getStandardPackets()}\r\n modalVisible={this.state.modalVisible}\r\n newItem={this.newStandard}\r\n firstHeading=\"Rule Filing Managment\"\r\n secondHeading=\"Standard Rule Filing\"\r\n inputFields={[\r\n {\r\n displayName: \"Agency\",\r\n name: \"AgencyName\",\r\n type: \"dropdown\",\r\n options: [],\r\n required: true,\r\n editableAfterCreation: false\r\n }\r\n , {\r\n displayName: \"Title\",\r\n name: \"ProgramName\",\r\n type: \"dropdown\",\r\n options: [],\r\n required: true,\r\n editableAfterCreation: false\r\n }\r\n ,\r\n {\r\n displayName: \"Edit Rule Number\",\r\n name: \"RuleFilingNumber\",\r\n type: \"text\",\r\n options: [],\r\n required: false,\r\n editableAfterCreation: true,\r\n visibility: \"none\"\r\n },\r\n {\r\n displayName: \"Edit Rule Name\",\r\n name: \"RuleFilingName\",\r\n type: \"text\",\r\n options: [],\r\n required: false,\r\n editableAfterCreation: true,\r\n visibility: \"none\"\r\n }\r\n , \r\n {\r\n displayName: \"Rule\",\r\n name: \"RuleVersionName\",\r\n type: \"dropdown\",\r\n options: [],\r\n required: true,\r\n newRuleInputFields: [\r\n {\r\n displayName: \"Current Rule Numbers\",\r\n name: \"currentRuleNumbers\",\r\n type: \"blockDisplay\",\r\n required: true,\r\n editableAfterCreation: false\r\n\r\n },\r\n {\r\n displayName: \"Rule Number\",\r\n name: \"ChapterNum\",\r\n type: \"numberLetter\",\r\n pattern: \"[0-9]+[a-zA-Z]?\",\r\n validationMessage: \"This field will only accept a number letter combination, example: 10, 10a\",\r\n required: true,\r\n editableAfterCreation: false\r\n }, {\r\n displayName: \"Rule Name\",\r\n name: \"ChapterName\",\r\n type: \"text\",\r\n required: true,\r\n editableAfterCreation: false\r\n }]\r\n } \r\n , {\r\n displayName: \"Liaison\",\r\n name: \"LiaisonName\",\r\n type: \"dropdown\",\r\n options: [],\r\n required: true,\r\n editableAfterCreation: true\r\n },\r\n {\r\n displayName: \"Filing Name\",\r\n name: \"name\",\r\n type: \"text\",\r\n required: true,\r\n editableAfterCreation: true\r\n },\r\n {\r\n displayName: \"Public Comment Period(In Days)\",\r\n name: \"publicCommentPeriod\",\r\n type: \"public_comment_period\",\r\n additionalInfo: \"https://rules.utah.gov/agency-resources/time-frames/\",\r\n required: true,\r\n editableAfterCreation: true\r\n }, {\r\n displayName: \"Public Comment Resource:\",\r\n name: \"publicCommentResource\",\r\n type: \"email-url\",\r\n required: true,\r\n editableAfterCreation: true\r\n },\r\n {\r\n displayName: \"Citations:\",\r\n name: \"additionalInformation\",\r\n type: \"tags\",\r\n required: true,\r\n editableAfterCreation: true\r\n },\r\n {\r\n displayName: \"Contains IBR:\",\r\n name: \"IBR\",\r\n type: \"checkbox\",\r\n required: false,\r\n editableAfterCreation: true\r\n },\r\n {\r\n displayName: \"Proposed Rule Text\",\r\n name: \"ruleText\",\r\n type: \"upload\",\r\n required: true,\r\n editableAfterCreation: true\r\n }\r\n ]} />\r\n
\r\n },\r\n {\r\n tabTitle: \"Emergency\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n },\r\n {\r\n tabTitle: \"MISC\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n }];\r\n return options;\r\n}\r\n\r\nexport default tabOptions;","import TableSection from './../../components/TableSection';\r\nimport React, { Component } from 'react';\r\nimport DevelopmentAPI from './../../../../util/api/_development';\r\n\r\nfunction tabOptions() {\r\n const options = [\r\n {\r\n tabTitle: \"120 Days to Expiration\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n },\r\n {\r\n tabTitle: \"Expired Packets\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n },\r\n {\r\n tabTitle: \"Public End\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n }, {\r\n tabTitle: \"7 Day End\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n }, {\r\n tabTitle: \"120 Lapse\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n }, {\r\n tabTitle: \"Old System Filings\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n }];\r\n return options;\r\n}\r\n\r\nexport default tabOptions;","import React, { Component } from 'react';\r\nimport TableSection from './../../components/TableSection';\r\nimport { Route, withRouter, } from 'react-router-dom';\r\nimport RulePacketAPI from './../../../../util/api/rulePacket';\r\nimport JumpPage from '../../../JumpPage';\r\nimport { Panel } from 'react-bootstrap';\r\nimport Moment from 'moment';\r\nimport RouteTabGenerator from '../../components/RouteTabGenerator';\r\nimport Tabs from './Tabs';\r\nimport DevTabs from './DevTabs';\r\n\r\n\r\nclass AdminPackets extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.Tabs = Tabs.bind(this);\r\n this.DevTabs = DevTabs.bind(this);\r\n this.state = {\r\n tabOptions: []\r\n , load: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n reload = () => {\r\n this.state.load === true ? this.setState({ load: 1 }) : this.setState({ load: true });\r\n }\r\n createWarningDiv = (alertSection, text) => {\r\n let alertDiv = document.createElement(\"div\");\r\n alertDiv.className = \"alert alert-danger\";\r\n alertDiv.role = \"alert\";\r\n alertDiv.innerHTML = text;\r\n alertSection.prepend(alertDiv);\r\n }\r\n\r\n newPacketDataCheck = (data) => {\r\n if (data.ruleText) {\r\n data.FileDisplayName = data.ruleText.name;\r\n }\r\n if (data.RuleVersionId == null) {\r\n data.RuleVersionId = 0;\r\n }\r\n if (data.ruleAction == \"New Rule\") {\r\n if (data.additionalInfo == null) {\r\n data.additionalInfo = \"\";\r\n }\r\n }\r\n return data\r\n }\r\n newStandard = (data) => {\r\n data = this.newPacketDataCheck(data);\r\n return RulePacketAPI.submitStandardPacket(data)\r\n }\r\n newEmergency = (data) => {\r\n data = this.newPacketDataCheck(data);\r\n return RulePacketAPI.submitEmergencyPacket(data);\r\n }\r\n newMISC = (data) => {\r\n data = this.newPacketDataCheck(data);\r\n return RulePacketAPI.submitMISCPacket(data);\r\n }\r\n filter = () => {\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {this.state.load ? : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AdminPackets);","import React, { Component } from 'react';\r\nimport { Route, withRouter, Link } from 'react-router-dom';\r\nimport LinkSection from './../../components/LinkSection';\r\nimport RouteTabGenerator from '../../components/RouteTabGenerator';\r\nimport WebTextAPI from './../../../../util/api/webText';\r\nimport './AdminHelp.css';\r\n\r\nclass AdminHelp extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.reload = this.reload.bind(this);\r\n this.state = { tabOptions: [] }\r\n }\r\n\r\n async componentDidMount() {\r\n }\r\n reload() {\r\n this.state.load === true ? this.setState({ load: 1 }) : this.setState({ load: true });\r\n }\r\n render() {\r\n return (\r\n window.open(\"https://rules.utah.gov/help\")\r\n );\r\n }\r\n}\r\n\r\nexport default AdminHelp;","import React, { Component } from 'react';\r\nimport TableSection from './../../components/TableSection';\r\nimport { Route, withRouter, } from 'react-router-dom';\r\nimport RulePacketAPI from './../../../../util/api/rulePacket';\r\nimport JumpPage from '../../../JumpPage';\r\nimport { Panel } from 'react-bootstrap';\r\nimport Moment from 'moment';\r\nimport RouteTabGenerator from '../../components/RouteTabGenerator';\r\n\r\nclass AdminPackets extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.reload = this.reload.bind(this);\r\n this.state = {\r\n tabOptions: []\r\n , load: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n reload() {\r\n this.state.load === true ? this.setState({ load: 1 }) : this.setState({ load: true });\r\n }\r\n render() {\r\n let tabOptions = [{\r\n tabTitle: \"Current Rules\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n }];\r\n return (\r\n
\r\n\r\n {this.state.load ? : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AdminPackets);","import React, { Component } from 'react';\r\nimport TableSection from './../../components/TableSection';\r\nimport { Route, withRouter, } from 'react-router-dom';\r\nimport WebTextAPI from './../../../../util/api/webText';\r\nimport JumpPage from '../../../JumpPage';\r\nimport RouteTabGenerator from './../../components/RouteTabGenerator';\r\n\r\n\r\nclass AdminCMS extends Component {\r\n constructor(props) {\r\n super(props); this.state = {};\r\n this.reload = this.reload.bind(this);\r\n this.state = { tabOptions: [], data: [] };\r\n }\r\n componentDidMount() {\r\n WebTextAPI.getAllWebText().then(({data})=>{\r\n this.setState({data})\r\n })\r\n\r\n }\r\n reload() {\r\n this.state.load === true ? this.setState({ load: 1 }) : this.setState({ load: true });\r\n }\r\n\r\n render() {\r\n let tabOptions = [{\r\n tabTitle: \"Content Managment System\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n , userCanView: [\"admin, agency, read-only-admin\"]\r\n }];\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AdminCMS);","import axios from \"./apiConfig\";\r\nimport UserAPIContainer from \"./../ApiObjectClasses/UserAPIContainer\";\r\nimport download from \"downloadjs-next\";\r\nconst fileconfig = { headers: { \"Content-Type\": \"text/csv\" } };\r\n\r\nlet reportsCalls = {\r\n getRuleFilings: () => {\r\n return axios.get(`/api/reports/ruleFilings`);\r\n },\r\n getNoed: async () => {\r\n return axios\r\n .get(`/api/reports/noed`, {\r\n responseType: \"arraybuffer\",\r\n })\r\n .then((response) => {\r\n if (response.headers) {\r\n let fileName = response.headers[\"content-disposition\"].match(\r\n /filename=.*?;/g\r\n )[0];\r\n fileName = fileName.replace(/^filename=/g, \"\").replace(/;$/g, \"\");\r\n fileName = fileName.replace(/[\"\"]/g, \"\");\r\n let contentType = response.headers[\"content-type\"];\r\n let blob = new Blob([response.data], { type: contentType });\r\n download(blob, fileName, contentType);\r\n } else {\r\n alert(\"This file no longer exists\");\r\n }\r\n });\r\n },\r\n};\r\n\r\nexport default reportsCalls;\r\n","import React, { Component } from \"react\";\r\nimport { Route, withRouter } from \"react-router-dom\";\r\nimport TabNavigation from \"./../../components/TabNavigation\";\r\nimport LinkSection from \"./../../components/LinkSection\";\r\nimport TableSection from \"./../../components/TableSection\";\r\nimport EmailTemplateAPI from \"./../../../../util/api/emailTemplate\";\r\nimport ReportsAPI from \"./../../../../util/api/reports\";\r\nimport AppReportAPI from \"./../../../../util/api/appReport\";\r\nimport WebTextAPI from \"./../../../../util/api/webText\";\r\nimport JumpPage from \"../../../JumpPage\";\r\nimport RouteTabGenerator from \"./../../components/RouteTabGenerator\";\r\nimport \"./AdminReports.css\";\r\nimport { Button } from \"react-bootstrap\";\r\n\r\nclass AdminReports extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.reload = this.reload.bind(this);\r\n this.state = { tabOptions: [] };\r\n }\r\n\r\n // Grab data from an api and set it in the state for the table section\r\n async componentDidMount() {}\r\n componentDidMount = () => {};\r\n\r\n reload() {\r\n this.state.load === true\r\n ? this.setState({ load: 1 })\r\n : this.setState({ load: true });\r\n }\r\n render() {\r\n let tabOptions = [\r\n {\r\n tabTitle: \"IBR\",\r\n displayComponent: (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n tabTitle: \"Digest - Bulletin Prep\",\r\n displayComponent: (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n tabTitle: \"Register - Index of Changes\",\r\n displayComponent: (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n tabTitle: \"NOED\",\r\n displayComponent: (\r\n
\r\n \r\n
\r\n ),\r\n },\r\n {\r\n tabTitle: \"Email Templates\",\r\n displayComponent: (\r\n
\r\n \r\n
\r\n ),\r\n userCanView: [\"admin, agency, read-only-admin\"],\r\n },\r\n ];\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AdminReports);\r\n","import axios from './apiConfig';\r\nimport UserAPIContainer from './../ApiObjectClasses/UserAPIContainer';\r\n\r\nlet reportCalls = {\r\n getAllAppReport: () => {\r\n return axios.get(`/api/appreport`);\r\n },\r\n createAppReport: (appReport) => {\r\n return axios.post(`/api/appreport`, appReport);\r\n },\r\n};\r\nlet reportAPI = new UserAPIContainer(reportCalls)\r\n\r\nexport default reportAPI; ","import React from 'react';\r\n\r\nconst Options = (props) =>\r\n
\r\n
\r\n

Manage Subscriptions

\r\n \r\n
\r\n
\r\n

Upload Help Files

\r\n
\r\n

Public

\r\n \r\n \r\n
\r\n
\r\n

Admin

\r\n \r\n \r\n
\r\n
\r\n

Agency

\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\nexport default Options;","import axios from './apiConfig';\r\nimport UserAPIContainer from './../ApiObjectClasses/UserAPIContainer';\r\n\r\nlet appSettingsCalls = {\r\n getAllAppSetting: () => {\r\n // return axios.get(`/api/appsetting`);\r\n },\r\n createAppSetting: (appSetting) => {\r\n // return axios.post(`/api/appsetting`, appSetting);\r\n },\r\n};\r\n\r\n\r\nexport default appSettingsCalls; \r\n","import React, { Component } from 'react';\r\nimport './AdminOptions.css';\r\nimport Options from './Options'\r\nimport JumpPage from '../../../JumpPage';\r\nimport AppSettingAPI from './../../../../util/api/appSetting';\r\nimport TableSection from './../../components/TableSection';\r\nimport { Route, withRouter, } from 'react-router-dom';\r\nimport RouteTabGenerator from './../../components/RouteTabGenerator';\r\n\r\n\r\nclass AdminOptions extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.reload = this.reload.bind(this);\r\n this.state = { tabOptions: [] };\r\n }\r\n\r\n reload() {\r\n this.state.load === true ? this.setState({ load: 1 }) : this.setState({ load: true });\r\n }\r\n\r\n async componentDidMount() {\r\n await this.getTableData();\r\n }\r\n // Grab data from an api and set it in the state for the table sections\r\n getTableData = () => {\r\n let appSettings = AppSettingAPI.getAllAppSetting();\r\n this.setState({ appSettings });\r\n }\r\n render() {\r\n let tabOptions = [{\r\n tabTitle: \"Options\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n }, {\r\n tabTitle: \"App Settings\"\r\n , displayComponent:\r\n
\r\n \r\n
\r\n }]\r\n return (\r\n
\r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AdminOptions);","import React from 'react';\r\nimport Home from './pages/AdminHome';\r\nimport Agency from './pages/AdminAgency';\r\nimport Packets from './pages/AdminPackets';\r\nimport Help from './pages/AdminHelp';\r\nimport CurrentRules from './pages/AdminCurrentRules';\r\nimport CMS from './pages/AdminCMS';\r\nimport Reports from './pages/AdminReports';\r\nimport Options from './pages/AdminOptions';\r\n// TODO\r\n// Create a an initialization list, make a user type api call, or check local creds\r\n// run a filter map to get out the list items that this user can see and assign it to tabOptions\r\n\r\n\r\n// This is the config section for navigation on the back end\r\n// tabOptions contains a button title, and its corrasponding tab navigation.\r\n// you may also select which component will be displayed when the button is selected.\r\n// You can add or take away from this list at any time and the page will reflect changes\r\n//, \"Current Rules\", \"Help\"\r\n\r\nclass TabOptions {\r\n constructor(user, AdminPageThis) {\r\n this.user = user;\r\n this.AdminPageThis = AdminPageThis;\r\n this.options = this.getTabOptions();\r\n }\r\n getTabOptions = () => {\r\n if (this.user.userType == (\"System Admin\")) {\r\n return this.systemAdminOptions();\r\n }\r\n else if (this.user.userType == \"Read Only Admin\") {\r\n return this.readOnlyAdminOptions();\r\n }\r\n else if (this.user.userType == \"Agency User\") {\r\n return this.agencyUserOptions();\r\n }\r\n }\r\n systemAdminOptions = () => {\r\n let options = [\r\n new TabOption(\"my work\", [\"Work Queue\", \"Dashboard\"], < Home user={this.user} agency={this.AdminPageThis.agency} parentThis={this.AdminPageThis}/>),\r\n new TabOption(\"rule filings\", [\"Standard\", \"Emergency\", \"MISC\"\r\n // DEVELOPMENT TABS TO BE REMOVED\r\n // , \"120 Days to Expiration\", \"Expired Packets\" , \"Public End\", \"7 Day End\", \"120 Lapse\"\r\n ], < Packets user={this.user} agency={this.AdminPageThis.state.agency} openFilter={this.AdminPageThis.openFilter} />),\r\n new TabOption(\"current rules\", [\"Current Rules\"], < CurrentRules user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis} />),\r\n new TabOption(\"reports\", [\"NOED\", \"Email Templates\"], < Reports user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis}/>),\r\n new TabOption(\"agency admin\", [\"Agencies\",\"Titles\", \"Users\", \"Liaisons\"], < Agency user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis} />),\r\n new TabOption(\"help\", [\"Help\"], ),\r\n new TabOption(\"cms\", [\"Content Managment System\"], < CMS user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis} />),\r\n // new TabOption(\"options\", [\"Options\", \"App Settings\"], < Options user={this.user} agency={this.AdminPageThis.state.agency} />)\r\n ];\r\n return options;\r\n }\r\n readOnlyAdminOptions = () => {\r\n let options = [\r\n new TabOption(\"my work\", [\"Work Queue\", \"Dashboard\"], < Home user={this.user} agency={this.AdminPageThis.agency} parentThis={this.AdminPageThis} />),\r\n new TabOption(\"rule filings\", [\"Standard\", \"Emergency\", \"MISC\"], < Packets user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis} />),\r\n new TabOption(\"current rules\", [\"Current Rules\"], < CurrentRules user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis} />),\r\n new TabOption(\"reports\", [\"NOED\"], < Reports user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis}/>),\r\n new TabOption(\"agency admin\", [\"Agencies\",\"Titles\", \"Users\", \"Liaisons\"], < Agency user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis} />),\r\n new TabOption(\"help\", [\"Help\"], ),\r\n // new TabOption(\"cms\", [\"Content Managment System\"], < CMS user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis} />),\r\n // new TabOption(\"options\", [\"Options\", \"App Settings\"], < Options user={this.user} agency={this.AdminPageThis.state.agency} />)\r\n ];\r\n return options;\r\n }\r\n agencyUserOptions = () => {\r\n let options = [\r\n new TabOption(\"my work\", [\"Work Queue\", \"Dashboard\"], < Home user={this.user} agency={this.AdminPageThis.agency} parentThis={this.AdminPageThis}/>),\r\n new TabOption(\"rule filings\", [\"Standard\", \"Emergency\"], < Packets user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis} />),\r\n new TabOption(\"current rules\", [\"Current Rules\"], < CurrentRules user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis} />),\r\n new TabOption(\"reports\", [\"NOED\"], < Reports user={this.user} agency={this.AdminPageThis.state.agency} parentThis={this.AdminPageThis}/>),\r\n new TabOption(\"agency admin\", [\"Agencies\",\"Titles\", \"Liaisons\"], ),\r\n new TabOption(\"help\", [\"Help\"], )\r\n ];\r\n return options;\r\n }\r\n}\r\n\r\nclass TabOption {\r\n constructor(buttonTitle, tabs, displayComponent, userCanView) {\r\n this.buttonTitle = buttonTitle;\r\n this.tabs = tabs;\r\n this.displayComponent = displayComponent;\r\n }\r\n}\r\n\r\nexport default TabOptions;","import React, { Component } from 'react';\r\nimport { Button } from 'react-bootstrap';\r\nimport devAPI from '../../util/api/_development';\r\nimport { environment } from '../../util/settings/environmentOptions';\r\nimport { settings } from '../../util/settings/settings';\r\n\r\n\r\n\r\nexport default class DevelopmentButtons extends Component {\r\n constructor(){\r\n super();\r\n this.state ={\r\n production:true\r\n };\r\n }\r\n componentWillMount(){\r\n devAPI.isProduction().then(production => {\r\n this.setState({production:production});\r\n })\r\n }\r\n renderButtons = () => {\r\n switch (settings.developmentEnvironment) {\r\n case environment.local:\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 case environment.development:\r\n return(\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n case environment.qa:\r\n return(\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n case environment.production:\r\n return null; \r\n default:\r\n return null;\r\n }\r\n }\r\n render(){\r\n return(\r\n this.renderButtons()\r\n );\r\n }\r\n}","// Check url on load and setup tabKey state variables\r\nimport React, { Component } from 'react';\r\nimport Navigation from './components/Navigation';\r\nimport { Route, withRouter, } from 'react-router-dom';\r\nimport TabNavigation from './components/TabNavigation';\r\nimport JumpPage from '../../pages/JumpPage';\r\nimport { Panel, Button, Modal, FormGroup, ControlLabel } from 'react-bootstrap';\r\nimport './AdminPage.css';\r\nimport Filter from './components/Filter';\r\nimport TabOptions from './TabOptions';\r\nimport devAPI from './../../util/api/_development';\r\nimport DevelopmentButtons from './DevelopmentButtons';\r\n\r\n\r\nclass AdminPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n // All tabs have their own TabKey variable, like: homeTabKey, this represents the selected tab and it will re-load to that tab if we switch back in the same session\r\n this.state = {\r\n agency: \"\",\r\n user: props.user,\r\n displayFilter: false,\r\n isProduction:true\r\n };\r\n }\r\n\r\n getTabOptions = (buttonTitle) => {\r\n let tabs = this.state.tabOptions.map(tabOption =>\r\n // tabOption.userCanView.includes(this.state.user.userType) ?\r\n tabOption.buttonTitle.toLowerCase() === buttonTitle.toLowerCase() ?\r\n tabOption.tabs\r\n : null\r\n // :null\r\n )\r\n return tabs;\r\n }\r\n\r\n componentWillMount() {\r\n devAPI.isProduction().then(ProductionEnv=>{\r\n this.setState({isProduction:ProductionEnv});\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n devAPI.isProduction().then(ProductionEnv=>{\r\n this.setState({isProduction:ProductionEnv});\r\n });\r\n // setup TabKey variables for each entry in tabOptions, these variables are used to control the selected tab for each menu option\r\n let tabOptions = new TabOptions(this.state.user, this);\r\n this.setupTabVariables(tabOptions.options);\r\n\r\n // This makes sure that the tab selected coordinates with the url example: /state/packets/emergency the active tab on page load will be emergency\r\n this.setTabOnLoad(tabOptions.options);\r\n }\r\n\r\n setupTabVariables = (tabOptions) => {\r\n // for every property in the tabOptions list create a new tabKey variable in state set to 0 \r\n let sudoState = {}\r\n if(!tabOptions){\r\n this.props.history.push(\"/notAuthorized\");\r\n return;\r\n }\r\n for (let i = 0; i < tabOptions.length; i++) {\r\n const element = tabOptions[i];\r\n let tabKeyName = element.buttonTitle.toLowerCase() + \"TabKey\";\r\n sudoState[tabKeyName] = 0;\r\n }\r\n sudoState.tabOptions = tabOptions;\r\n this.setState(sudoState);\r\n }\r\n setTabOnLoad = (tabOptions) => {\r\n // grab the pathname and parse it into a list baised on the / in the url\r\n let pathName = this.props.location.pathname.split(\"/\");\r\n // grab the last item in the list that will refer to the tab\r\n let tabName = pathName[pathName.length - 1];\r\n // grab the second to last item on the list that will refer to the menu item\r\n let menuOption = pathName[pathName.length - 2];\r\n // Get all the possible button titles into an array\r\n if(!tabOptions){\r\n this.props.history.push(\"/notAuthorized\");\r\n return;\r\n }\r\n let buttonTitles = tabOptions.map(element => element.buttonTitle.toLowerCase());\r\n // Get the index of the menuOption in the url\r\n let buttonIndex = buttonTitles.indexOf(menuOption);\r\n // Make sure that the index is valid\r\n if (buttonIndex !== -1) {\r\n let stateVariable = menuOption + \"TabKey\";\r\n // Make list all lower case for comparison\r\n let tabKeyList = tabOptions[buttonIndex].tabs.map((tab) => tab.toLowerCase());\r\n // Get the index of the tab\r\n let tabKey = tabKeyList.indexOf(tabName.toLowerCase());\r\n // set the state variable for this menu item to the correct index\r\n this.handleInputChange(stateVariable, tabKey);\r\n }\r\n }\r\n populateButtonList() {\r\n return this.state.tabOptions.map(element => element.buttonTitle.toUpperCase());\r\n }\r\n logOut = () => {\r\n this.props.logout();\r\n }\r\n setAgency = (agency) => {\r\n this.setState({ agency });\r\n }\r\n // This handles the tab selected in the sub routes and any other state change needed\r\n handleInputChange = (name, value) => {\r\n this.setState({ [name]: value });\r\n }\r\n openFilter = () => {\r\n this.setState({ displayFilter: true })\r\n }\r\n closeFilter = () => {\r\n this.setState({ displayFilter: false })\r\n }\r\n // grabs the current route, the selected menu item, and the selected tab in order to populate the link options for menu buttons so that they\r\n // link to the most recently selected item\r\n returnRoute = (primaryRoute) => {\r\n\r\n // get the menuButton title in lower case \r\n // base name index in the list we are working with, (Home)\r\n let menuButtonTitle = primaryRoute.toLowerCase();\r\n // get all the button titles into an array of lower case elements\r\n let buttonTitles = this.state.tabOptions.map(element => element.buttonTitle.toLowerCase());\r\n // grab out the index of the TabKey we are working with (HomeTabKey)\r\n let menuItemIndex = buttonTitles.indexOf(menuButtonTitle.toLowerCase());\r\n // [Home][0] == Work Queue \r\n // Should turn out like localhost:3000/state / home /Work Queue\r\n let menuButtonRoute = `${this.props.match.path}/${menuButtonTitle}`\r\n // The selected tab index is stored under the state TabKey variable, so we reference it in order to build the \r\n // correct url \r\n let tabRoute = `${this.state.tabOptions[menuItemIndex].tabs[this.state[menuButtonTitle.toLowerCase() + \"TabKey\"]]}`;\r\n // Add the tab route (we derived from state) to the menuButtonRoute\r\n let determinedRoute = `${menuButtonRoute}/${tabRoute}`;\r\n // Return the calculated route\r\n return determinedRoute;\r\n }\r\n render() {\r\n return (\r\n
\r\n {/*
\r\n \r\n \r\n \r\n Error Code\r\n \r\n \r\n \r\n \r\n Error Message\r\n \r\n \r\n \r\n \r\n
*/}\r\n \r\n {this.state.tabOptions ?\r\n
\r\n \r\n
\r\n\r\n {/* Special rout to handel any non existant routes, it will jump to the first button rout defined in tabOptions*/}\r\n {\r\n\r\n return \r\n }} />\r\n\r\n\r\n {/* Each route gets in a state modifier(handleInputChange), a route name, a tabKey Value and their tab options. The tab key will be tracked by base route and changes on tab click */}\r\n {/* redirect /state route to home */}\r\n\r\n\r\n {/* Map over the tab options to create the routs and tab options for each button tab set */}\r\n {this.state.tabOptions.map(\r\n (tabOption, key) => {\r\n // get the lowercase title from the tabOptions object\r\n let title = tabOption.buttonTitle.toLowerCase()\r\n return (\r\n title == \"help\"? null:\r\n // return the rout with our new title\r\n \r\n
\r\n {this.state.displayFilter ? : null}\r\n {/* make sure tab navigation includes the rout, and correct tabKey, and tabOptions*/}\r\n \r\n\r\n\r\n {tabOption.displayComponent}\r\n {/* {tabOption.displayComponent2} */}\r\n\r\n
} />\r\n );\r\n })}\r\n\r\n {/*
Nothing
} /> */}\r\n
\r\n
: null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AdminPage);","import React, { Component } from 'react';\r\nimport { Redirect, withRouter } from 'react-router-dom';\r\nimport { css } from 'react-emotion';\r\n\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n redirectToReferrer: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // if it is not Authenticated then get user to set the authentication and marke the authcheck as done\r\n if (!this.props.authCheck) {\r\n this.getUser()\r\n this.props.authCheckDone();\r\n }\r\n }\r\n componentWillReceiveProps = () => {\r\n \r\n }\r\n \r\n getUser = async () => {\r\n this.props.authService.getUser().then(async user => {\r\n if (user) {\r\n this.props.authenticate(user)\r\n } \r\n else{\r\n await this.props.authService.silentLogout();\r\n this.props.authService.login();\r\n }\r\n });\r\n }\r\n render() {\r\n // If the state for the location is set get the from out of it, otherwise we set the pathname to state\r\n const { from } = this.props.location.state || { from: { pathname: '/state' } };\r\n return (\r\n
\r\n {this.props.isAuthenticated ?\r\n //
Referrer is set
\r\n \r\n :\r\n
}\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default withRouter(Login);","import axios from 'axios';\r\nimport {openIdSettings} from './../../../util/settings/settings';\r\nimport AuthService from './AuthService';\r\n\r\nclass ApiService {\r\n constructor() {\r\n this.authService = new AuthService();\r\n }\r\n\r\n callApi = () =>{\r\n return this.authService.getUser().then(user => {\r\n if (user && user.access_token) {\r\n return this._callApi(user.access_token).catch(error => {\r\n if (error.response.status === 401) {\r\n return this.authService.renewToken().then(renewedUser => {\r\n return this._callApi(renewedUser.access_token);\r\n });\r\n }\r\n throw error;\r\n });\r\n } else if (user) {\r\n return this.authService.renewToken().then(renewedUser => {\r\n return this._callApi(renewedUser.access_token);\r\n });\r\n } else {\r\n throw new Error('user is not logged in');\r\n }\r\n });\r\n }\r\n\r\n _callApi = (token) => {\r\n const headers = {\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + token\r\n };\r\n\r\n return axios.get(openIdSettings.apiRoot + 'test', { headers });\r\n }\r\n}\r\n\r\nexport default ApiService;\r\n","import React from 'react';\r\nimport {Button} from 'react-bootstrap'\r\n\r\nconst Buttons = (props) =>(\r\n
\r\n \r\n \r\n
\r\n);\r\n\r\nexport default Buttons;","import React, {Component} from 'react';\r\n\r\nconst NoMatch = (props) =>(
404 Not Found
);\r\n\r\nexport default NoMatch;","import React, { Component } from 'react';\r\nimport toastr from 'toastr';\r\nimport ApiService from './services/ApiService';\r\nimport AuthService from './services/AuthService';\r\nimport Buttons from './components/Buttons';\r\n\r\nclass OpenIdLogin extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.authService = new AuthService();\r\n this.apiService = new ApiService();\r\n this.state = { user: {}, api: {} };\r\n this.shouldCancel = false;\r\n }\r\n componentDidMount() {\r\n // check storage for user\r\n this.getUser();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.shouldCancel = true;\r\n }\r\n\r\n login = () => {\r\n this.authService.login();\r\n };\r\n\r\n logout = () => {\r\n this.authService.logout();\r\n };\r\n\r\n getUser = () => {\r\n this.authService.getUser().then(user => {\r\n if (user) {\r\n alert('User has been successfully loaded from store.');\r\n } else {\r\n alert('You are not logged in.');\r\n }\r\n\r\n if (!this.shouldCancel) {\r\n this.setState({ user });\r\n }\r\n });\r\n };\r\n render() {\r\n return (\r\n
\r\n
Test Login
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default OpenIdLogin;","import React, { Component } from 'react';\r\nimport { Route, Switch, Redirect, withRouter } from 'react-router-dom';\r\nimport AdminPage from './../pages/AdminPage';\r\nimport OpenIdLogin from './OpenIdLogin';\r\nimport Login from './Login';\r\nimport NoMatch from './../pages/NoMatch';\r\nimport ApiService from './OpenIdLogin/services/ApiService';\r\n\r\n\r\nconst PrivateRoute = ({ component: Component, ...rest }) => {\r\n return(\r\n (\r\n rest.isAuthenticated === true\r\n ? \r\n : \r\n )} />\r\n)}\r\nexport default PrivateRoute;","import React, { Component } from 'react';\r\nimport { Route, Switch, } from 'react-router-dom';\r\nimport AdminPage from './../pages/AdminPage';\r\nimport Login from './Login';\r\nimport PrivateRoute from './PrivateRoute';\r\nimport NoMatch from './../pages/NoMatch';\r\nimport AuthService from './OpenIdLogin/services/AuthService';\r\nimport User from './../util/ApiObjectClasses/User';\r\nimport UserAPI from './../util/api/users';\r\nimport { Modal, Button, ButtonGroup } from 'react-bootstrap';\r\nimport { css } from 'react-emotion';\r\nimport { DotLoader } from 'react-spinners';\r\nimport moment from 'moment';\r\nimport AgencyAPI from './../util/api/agency';\r\nimport { Scrollbars } from 'react-custom-scrollbars';\r\nimport './AdminPortal.css';\r\n\r\n\r\nclass PublicPortal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.authService = new AuthService();\r\n this.state = {\r\n expireModal: false,\r\n timeClock: false,\r\n isAuthenticated: false,\r\n authCheck: false,\r\n user: null,\r\n selectAgencyModal: false,\r\n modal: false,\r\n modalChoice: true,\r\n modalMessage: \"You are not authorized to access this system, would you like to petition for access?\",\r\n expires_at: null,\r\n agencies: [],\r\n fullAgencyList: []\r\n };\r\n }\r\n componentDidMount = () => {\r\n AgencyAPI.getPublicAgencyList().then(({ data }) => {\r\n this.setState({ agencies: data })\r\n this.setState({ fullAgencyList: data })\r\n })\r\n }\r\n\r\n login = () => {\r\n this.authService.login();\r\n };\r\n logout = () => {\r\n this.authService.logout();\r\n };\r\n agencySelected = (agencyId) => {\r\n let agency = this.state.agencies.filter(agency => agency.id === agencyId)\r\n this.setState({ agencies: agency })\r\n this.setState({ modalMessage: \"Would you like to petition for access as a member of this agency?\" })\r\n this.setState({ modalChoice: true });\r\n }\r\n openAgencySelection = () => {\r\n this.setState({ modal: false });\r\n this.setState({ modalMessage: \"Please Select the Agency you belong to:\" });\r\n this.setState({ agencies: this.state.fullAgencyList })\r\n this.setState({ selectAgencyModal: true });\r\n this.setState({ modalChoice: false });\r\n }\r\n\r\n authenticate = (userProfile) => {\r\n let user = new User(userProfile.profile)\r\n this.setAutoLogOut(userProfile);\r\n user.verifyUser().then((isValid) => {\r\n // The user has been validated though our system\r\n if (isValid && user.userType !== \"New User\") {\r\n this.setState({ user, expires_in: userProfile.expires_in});\r\n localStorage.setItem(\"userType\", user.userType);\r\n this.setState({ isAuthenticated: true });\r\n }\r\n // The user has been validated but is a New User\r\n else if (isValid) {\r\n this.accessPetitioned(user.userName);\r\n this.setState({ user,expires_in: userProfile.expires_in });\r\n this.modalToggle();\r\n }\r\n // The user does not exist in our system\r\n else {\r\n this.setState({ user,expires_in: userProfile.expires_in });\r\n this.modalToggle();\r\n }\r\n })\r\n\r\n }\r\n\r\n setAutoLogOut = (userProfile) => {\r\n let expires_at = moment(new Date(userProfile.expires_at * 1000));\r\n if (moment().add(1, \"minutes\").isAfter(expires_at)) {\r\n this.login();\r\n }\r\n this.setState({ expires_at });\r\n this.setState({ timeClock: true });\r\n }\r\n\r\n authCheckDone = () => {\r\n this.setState({ authCheck: true });\r\n }\r\n\r\n modalToggle = () => {\r\n this.setState({ modal: !this.state.modal })\r\n }\r\n\r\n accessPetitioned = (userName) => {\r\n let newMessage = `Your username: ${userName} has been submitted for approval.`\r\n this.setState({ modalMessage: newMessage });\r\n this.setState({ selectAgencyModal: false });\r\n this.setState({ modal: true });\r\n this.setState({ modalChoice: false });\r\n }\r\n\r\n petitionAccess = () => {\r\n let { user } = this.state;\r\n let { agencies } = this.state;\r\n let agency = agencies[0];\r\n user.agencyId = agency.id;\r\n UserAPI.addUser(user).then(({ data }) => {\r\n if (data) {\r\n this.accessPetitioned(data.userName)\r\n }\r\n });\r\n }\r\n\r\n loaderOverride = () => {\r\n const override = css`\r\n display: block;\r\n margin: 0 auto;\r\n border-color: red;\r\n`;\r\n return override;\r\n }\r\n attemptSilentAuth = () => {\r\n try {\r\n this.authService.renewToken();\r\n this.setState({ expireModal: false });\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n }\r\n />\r\n {\r\n return(\r\n );\r\n }} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {this.state.modalMessage}\r\n \r\n \r\n \r\n {this.state.modalChoice ?\r\n \r\n this.openAgencySelection()}>Yes\r\n this.logout()}\r\n >No\r\n \r\n : this.logout()}\r\n >Proceed to Public Page}\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n {this.state.modalMessage}\r\n \r\n \r\n \r\n\r\n
\r\n \r\n {Array.isArray(this.state.agencies) ? this.state.agencies.map((agency, key) => ) : null}\r\n \r\n
\r\n\r\n {this.state.modalChoice ?\r\n \r\n this.petitionAccess()}>Yes\r\n this.openAgencySelection()}\r\n >No\r\n \r\n :\r\n this.logout()}\r\n >Stop Petition\r\n }\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PublicPortal;","import React from 'react';\r\nimport { UserManager } from 'oidc-client';\r\n\r\nconst SignIn = (props) => {\r\n let mgr = new UserManager();\r\n mgr.signinRedirectCallback().then(function (results) {\r\n window.history.replaceState({},\r\n window.document.title,\r\n window.location.origin);\r\n window.location = \"/state/my work/work queue\";\r\n }, function (error) {\r\n alert(\"There was an error authenticating your signIn, please contact your system Admin.\")\r\n window.history.replaceState({},\r\n window.document.title,\r\n window.location.origin);\r\n window.location = \"/\";\r\n console.error(error);\r\n });\r\n return (
)\r\n\r\n}\r\n\r\nexport default SignIn;","\r\nimport { UserManager } from 'oidc-client';\r\nconst SilentRenewal = (props) => {\r\n let mgr = new UserManager();\r\n mgr.signinSilentCallback().catch(function (error) {\r\n console.error(error);\r\n });\r\n}\r\n\r\nexport default SilentRenewal;","import React, { Component } from 'react';\r\nimport { Alert } from 'react-bootstrap';\r\nimport AuthService from './../routes/OpenIdLogin/services/AuthService';\r\n\r\nconst NotAuthorized = (props) => {\r\n AuthService.logout();\r\n\r\n return (\r\n \r\n You are not authorized to reach this page\r\n \r\n );\r\n}\r\n\r\nexport default NotAuthorized; ","import React, { Component } from \"react\";\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\r\nimport PublicPortal from './routes/PublicPortal';\r\nimport AdminPortal from './routes/AdminPortal';\r\nimport './App.css';\r\nimport JumpPage from \"./pages/JumpPage\";\r\nimport smoothscroll from 'smoothscroll-polyfill';\r\nimport SignIn from './routes/SignIn';\r\nimport SilentRenewal from './routes/SilentRenewal';\r\nimport S3API from './util/api/s3';\r\nimport NotAuthorized from \"./pages/NotAutorized\";\r\n\r\n// kick off the polyfill!\r\nsmoothscroll.polyfill();\r\nDate.prototype.subtractDays = function (days) {\r\n var newsubtractiondate = new Date(this.valueOf());\r\n newsubtractiondate.setDate(newsubtractiondate.getDate() - days);\r\n return newsubtractiondate;\r\n};\r\nDate.prototype.addDays = function (days) {\r\n var newadditiondate = new Date(this.valueOf());\r\n newadditiondate.setDate(newadditiondate.getDate() + days);\r\n return newadditiondate;\r\n};\r\nclass App extends Component {\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}\r\n\r\nexport default App;","// 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 // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n } else {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(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 } 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 }\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 from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\nregisterServiceWorker();\r\n"],"sourceRoot":""}