{"version":3,"sources":["utils/reportWebVitals.ts","redux/slices/counter.ts","redux/slices/legal.ts","cookies/cookies.ts","api/Config.ts","api/DateUtils.ts","api/ICompliance.ts","api/ISiteDetails.ts","api/LicenceVersion.ts","api/LicenceProfile.ts","redux/slices/licenceProfile.ts","redux/slices/compliance.ts","api/ISiteVisit.ts","redux/slices/siteVisit.ts","api/IComplianceInvestigation.ts","api/LicenceDetails.ts","api/ILicenseeReturns.ts","redux/slices/licenseeReturn.ts","api/RequestForInformation.ts","redux/slices/requestForInformation.ts","api/IFindingAndRecommendation.ts","redux/slices/findingAndRecommendation.ts","api/Instruction.ts","redux/slices/instruction.ts","api/ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions.ts","api/IEpaCorrespondence.ts","api/ITask.ts","api/IEdenMessage.ts","redux/slices/edenMessage.ts","redux/slices/complianceInvestigation.ts","api/IIncident.ts","redux/slices/incident.ts","api/IComplaint.ts","redux/slices/complaint.ts","api/Incident/IIncidentUpdateRequestDetails.ts","redux/slices/incidentUpdateRequest.ts","api/IMeeting.ts","redux/slices/meeting.ts","api/INonCompliance.ts","redux/slices/nonCompliance.ts","redux/slices/actionOrInstruction.ts","redux/slices/epaCorrespondence.ts","api/IThirdPartyCorrespondence.ts","redux/slices/thirdPartyCorrespondence.ts","api/CircularEconomy/Config.ts","api/CircularEconomy/INotifiers.ts","apps/circulareconomy/redux/slices/notifier.ts","api/CircularEconomy/CertificateOfRegistration/Config.ts","api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration.ts","apps/circulareconomy/redux/slices/certificateOfRegistration.ts","apps/circulareconomy/redux/slices/certificateOfRegistrationList.ts","redux/store.ts","i18n.ts","components/Main.tsx","constants.ts","hooks/useLocalStorage.ts","hooks/useSettingsState.ts","hooks/useAppSelector.ts","apps/leap/ThemeContext.tsx","hooks/useTheme.ts","contexts/SidebarContext.tsx","hooks/useSidebar.ts","contexts/LayoutContext.tsx","components/Settings.tsx","components/Wrapper.tsx","components/Content.tsx","ScrollToTop.tsx","layouts/LeapDashboard.tsx","pages/auth/Page404.tsx","leap-components/EpaCard.tsx","leap-components/EpaField.tsx","leap-components/Grid/FetchGrid/ColumnFilter.tsx","leap-components/icons/Spinner.tsx","leap-components/Grid/FetchGrid/index.tsx","leap-components/Grid/NoFetchGrid/DefaultColumnFilter.tsx","leap-components/Grid/NoFetchGrid/index.tsx","leap-components/Grid/index.tsx","leap-components/Grid/NoFetchGrid/SelectColumnFilter.tsx","leap-components/icons/LeapIcons.tsx","assets/img/leap/leap-logo.svg","assets/img/leap/leap-logo-tagline.svg","hooks/useAppDispatch.ts","pages/auth/Page500.tsx","leap-components/Loading.tsx","leap-components/Grid/FetchGrid/StaticSelectColumnFilter.tsx","leap-components/Grid/FetchGrid/DateRangeColumnFilter.tsx","leap-pages/LicenceProfile/ComplianceTab/index.tsx","leap-components/SiteVisits/SiteVisitsGridProps.ts","leap-pages/LicenceProfile/LicenseeReturn/RelatedComplianceRecords.tsx","leap-components/EdenMessages/EdenMessagesGridProps.ts","leap-components/EdenMessages/EdenMessagesGrid.tsx","leap-components/ComplianceInvestigations/ComplianceInvestigationOutcomesGrid.tsx","hooks/usePalette.ts","utils/ChartJsDefaults.ts","utils/axios.ts","utils/jwt.ts","contexts/JWTContext.tsx","apps/leap/App.tsx","apps/circulareconomy/layouts/CircularEconomyDashboard.tsx","apps/circulareconomy/pages/CertificateOfRegistration/List/BreadCrumbs.tsx","apps/circulareconomy/components/CircularEconomyHeaderComponent/index.tsx","apps/circulareconomy/pages/CertificateOfRegistration/List/Header.tsx","apps/circulareconomy/pages/CertificateOfRegistration/List/CircularEconomyHomeContainer.tsx","apps/circulareconomy/pages/CertificateOfRegistration/List/index.tsx","apps/circulareconomy/pages/CertificateOfRegistration/Details/BreadCrumbs.tsx","external-apps/Config.ts","apps/circulareconomy/pages/CertificateOfRegistration/Details/CertificateFields.tsx","apps/circulareconomy/pages/CertificateOfRegistration/Details/DocumentsGrid.tsx","apps/circulareconomy/pages/CertificateOfRegistration/Details/ContactUs.tsx","apps/circulareconomy/pages/CertificateOfRegistration/Details/index.tsx","apps/circulareconomy/pages/home/BreadCrumbs.tsx","apps/circulareconomy/pages/home/Header.tsx","apps/circulareconomy/pages/home/CircularEconomyHomeContainer.tsx","apps/circulareconomy/pages/home/ByProduct/index.tsx","apps/circulareconomy/pages/home/Details/NotifierDetails.tsx","apps/circulareconomy/components/CircularEconomyHeaderComponent/NotifierResponseComponentFactory.tsx","apps/circulareconomy/pages/home/Details/DocumentsGrid.tsx","apps/circulareconomy/pages/home/Details/details.tsx","apps/circulareconomy/pages/home/EowBreadCrumbs.tsx","apps/circulareconomy/pages/home/Details/EowDetails.tsx","apps/circulareconomy/pages/home/ContactUs.tsx","apps/circulareconomy/pages/home/Details/detailseow.tsx","apps/circulareconomy/pages/home/EndOfWaste/index.tsx","apps/circulareconomy/routes.tsx","apps/circulareconomy/ThemeContext.tsx","apps/circulareconomy/App.tsx","assets/img/logo.svg","assets/img/avatars/avatar.jpg","assets/img/avatars/avatar-3.jpg","assets/img/avatars/avatar-4.jpg","assets/img/avatars/avatar-5.jpg","components/sidebar/dashboardItems.ts","components/sidebar/docItems.ts","components/guards/AuthGuard.tsx","assets/img/illustrations/customer-support.png","assets/img/illustrations/searching.png","pages/dashboards/Analytics/WorldMap.tsx","assets/img/illustrations/social.png","assets/img/avatars/avatar-2.jpg","assets/img/photos/unsplash-1.jpg","assets/img/photos/unsplash-2.jpg","assets/img/photos/unsplash-3.jpg","pages/dashboards/SaaS/USAMap.tsx","pages/dashboards/Crypto/Chart.tsx","components/auth/ResetPassword.tsx","pages/tables/data.ts","pages/icons/Feather.tsx","pages/icons/FontAwesome/iconsSolid.ts","pages/forms/Formik.tsx","pages/tables/RowExpanding.tsx","pages/tables/ColumnFiltering.tsx","contexts/NotyfContext.tsx","apps/theme/App.tsx","mocks/adapter.ts","mocks/auth.ts","layouts/SlimEpaHeader.tsx","layouts/SlimEpaFooter.tsx","index.tsx"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","fetchCount","amount","Promise","resolve","setTimeout","data","incrementAsync","createAsyncThunk","response","counterSlice","createSlice","name","initialState","value","status","reducers","increment","state","decrement","incrementByAmount","action","payload","extraReducers","builder","addCase","pending","fulfilled","actions","LegalCookieName","acceptedTermsOfService","cookieName","ca","decodeURIComponent","document","cookie","split","i","length","c","charAt","substring","indexOf","getCookie","confirm","legalSlice","acceptTermsOfService","toggleAcceptance","ENV","API_URL","padTo2Digits","num","toString","padStart","formatDate","dateString","date","Date","getDate","getMonth","getFullYear","join","formatDateTime","datePart","timePart","getHours","getMinutes","formatDateForFiltering","GetComplianceListFetchUrl","profileId","pageNo","recordsPerPage","searchText","filters","params","filterParams","f","filterId","id","date_from","date_to","encodeURIComponent","GetComplianceRecordTypesAsync","url","fetch","json","body","list","map","item","type","GetComplianceRecordStatusesAsync","GetComplianceListByProfileIdAsync","pageRequest","page","per_page","compliancerecord_id","licence_id","licenceregno","profile_id","profilenumber","reference","related_compliance_recordid","subject","GetSiteDetailsByProfileIdAsync","GetAllLicenceVersionsAsync","reg_no","licenceprofile_id","licence_type","licence_name","date_of_licence","ceased_date","licence_status","licence_substatus","licence_application_status","licenceprofile_number","urban_areape","GetLicenceVersionAsync","licenceId","GetLicenceProfileAsync","profileNo","ok","httpStatusCode","httpErr","statusText","licence_profile_id","siteDetails","complianceList","versions","active_licence_id","activeVersion","profile","county","dateIssued","active_licence_startdate","firstIssued","first_issue_date","iedActivity","ied_activity","majorActivity","major_class_of_activity","organisation","organisation_name","profileName","profile_number","sector","active_licence_sector","active_licence_status","subStatus","active_licence_substatus","active_licence_type","version","active_licence_regno","prioritySite","uww_priority_site","licenceVersionsList","activeLicenceVersion","licenceProfile","error","undefined","fetchStatus","licenceProfileResponse","loadLicenceProfileAsync","licenceProfileSlice","rejected","complianceRecordTypes","complianceStatuses","loadComplianceOptionsAsync","recordTypes","recordStatuses","complianceOptionsSlice","GetSiteVisitDetailsAsync","siteVisitId","sitevisitid","licenseesubmission_id","visit_date","report_issued_date","compliance","summary","announced","visittype","instigated_by","sampletaken","odourassessment","adourassessmentcompliant","licence_regno","siteVisit","loadSiteVisitAsync","siteVisitSlice","GetComplianceInvestigationDetailsAsync","complianceInvestigationId","complianceinvestigationid","licenceid","licenceprofileid","responselevel","title","origin","receptors","description","closedate","dateraised","GetLicenseDetailsAsync","GetLicenseeReturnDetailsAsync","licenceDetails","complianceInvestigationDetails","licenseereturnid","datereceived","closeddate","doctype","docsubtype","decision","documentcategory","licenseeReturn","loadLicenseeReturnAsync","licenseeReturnId","licenseeReturnSlice","GetRequestForInformationDetailsAsync","requestForInformationId","licenseesubmisionid","rfiid","datesubmitted","duedate","responsereceiveddate","question","licensee_return_reference","requestForInformation","loadRequestForInformationAsync","reuestForInformationId","requestForInformationSlice","GetFindingAndRecommendationDetailsAsync","taskId","regardingobjectid","taskid","sender","recipient","details","category","subcategory","observation","findingAndRecommendation","loadFindingAndRecommendationAsync","findingAndRecommendationSlice","GetInstructionDetailsAsync","instructionId","licenseesubmissionid","licenseeReturnDetails","epainitiatedcorrespondenceid","licensingnotification","correspondencetype","regno","instruction","loadInstructionAsync","instructionSlice","GetComplianceInvestigationActionOrInstructionDetailsAsync","complianceInvestigation","complianceInvestidationDetails","GetEpaCorrespondenceDetailsAsync","epaCorrespondenceId","isFindingOrRecommentation","GetTaskDetailsAsync","GetEdenMessageDetailsAsync","edenMessageId","isSiteVisit","isComplianceInvestigation","taskDetails","actionOrInstructionDetails","epaCorrespondenceDetails","lr","edenmessageid","message","edenMessage","loadEdenMessageAsync","edenMessageSlice","loadComplianceInvestigationAsync","complianceInvestigationSlice","GetIncidentDetailsAsync","incidentId","incidentid","incidentcategory","nature","vulnerablereceptors","likelihoodofreoccurence","likelycause","newrecurring","datenotified","firstnoticed","approximatestart","finishtime","notifiedparties","dischargepoint","emissionpointname","uncontrolledrelease","otherrelevantinformation","impactonenvironment","activityinprogress","dischargedetails","incident","loadIncidentAsync","incidentSlice","GetComplaintDetailsAsync","complaintId","complaintid","dateoccurred","durationofoccurance","complaint","loadComplaintAsync","complaintSlice","GetIncidentUpdateRequestDetailsAsync","incidentUpdateRequestId","incidentDetails","incidentupdaterequestid","request","incidentUpdatRequest","loadIncidentUpdateRequestAsync","incidentUpdateRequestSlice","GetMeetingDetailsAsync","meetingId","meetingid","meetingdate","meetingtime","organisationid","location","regarding","attendeesepa","attendeesnoepa","actionitems","originalmeetingid","organisationname","meeting","loadMeetingAsync","meetingSlice","GetNonComplianceDetailsAsync","nonComplianceId","complaintDetails","noncomplianceid","condition","dateofnoncompliance","dateofnotification","nonCompliance","loadNonComplianceAsync","nonComplianceSlice","actionOrInstruction","loadActionOrInstructionAsync","actionOrInstructionSlice","epaCorrespondence","loadEpaCorrespondenceAsync","epaCorrespondenceSlice","GetThirdPartyCorrespondenceDetailsAsync","thirdPartyCorrespondenceId","thirdpartycorrespondenceid","receivedfrom","dateoriginalcorrespondencereceived","dateoforiginalcorrespondence","inspectorsupdate","thirdPartyCorrespondence","loadThirdPartyCorrespondenceAsync","thirdPartyCorrespondenceSlice","GetNotifierByIdFetchUrl","notifier_id","notifier","notifier_name","date_received","source_local_authority","use_local_authority","open_for_submissions","GetFilteredNotifiersCsv","orderBy","orderByParam","orderByName","orderByAscending","GetFilteredEowsCsv","NotifierResponse","loadNotifierAsync","notifierId","notifierSlice","selectNotifierResponse","notifierResponse","GetCertificateOfRegistrationByIdFetchUrl","certificateOfRegistration","valid_application_date","site_name","site_computed","local_authority_org_name","main_class_of_activity","waste_category","expiry_date","convertColumnNameToFilterParam","filterName","GetCertificatesOfRegistrationCsv","GetStatusFilterValues","GetLocalAuthorityFilterValues","local_authority","GetWasteCategoryFilterValues","GetClassOfActivityFilterValues","class_of_activity","certificateOfRegistrationResponse","loadCertificateOfRegistrationAsync","licenseId","certificateOfRegistrationSlice","selectCertificateOfRegistrationResponse","statusFilterValues","count","localAuthorityFilterValues","wasteCategoryFilterValues","classOfActivityFilterValues","loadCertificateOfRegistrationFilterValuesAsync","certificateOfRegistrationFilterValuesSlice","selectCertificateOfRegistrationFilterValuesResponse","certificateOfRegistrationListResponse","store","configureStore","reducer","counter","counterReducer","legal","legalReducer","licenceProfileReducer","complianceOptions","complianceOptionsReducer","siteVisitReducer","licenseeReturnReducer","requestForInformationReducer","findingAndRecommendationReducer","instructionReducer","edenMessageReducer","complianceInvestigationReducer","incidentReducer","complaintReducer","incidentUpdateRequest","incidentUpdateRequestReducer","meetingReducer","nonComplianceReducer","actionOrInstructionReducer","epaCorrespondenceReducer","thirdPartyCorrespondenceReducer","notifierReducer","certificationOfRegistrationReducer","certificateOfRegistrationListReducer","i18n","use","initReactI18next","init","resources","en","translation","Search","fr","de","nl","lng","fallbackLng","interpolation","escapeValue","Main","className","children","classNames","SIDEBAR_POSITION","SIDEBAR_BEHAVIOR","LAYOUT","THEME","THEME_PALETTE_LIGHT","primary","secondary","success","info","warning","danger","white","black","THEME_PALETTE_DARK","useLocalStorage","key","initialValue","useState","window","localStorage","getItem","JSON","parse","console","log","storedValue","setStoredValue","valueToStore","setItem","stringify","useSettingsState","setValue","useEffect","dataset","theme","querySelector","setAttribute","useAppSelector","useSelector","setTheme","layout","ThemeContext","React","createContext","useTheme","useContext","isOpen","setIsOpen","open","setPosition","position","setBehavior","behavior","SidebarContext","SidebarProvider","Provider","setLayout","LayoutContext","LayoutProvider","Wrapper","Content","ScrollToTop","useLocation","useLayoutEffect","getElementsByTagName","scrollTop","pathname","Page404","Fragment","to","Button","variant","size","EpaCard","content","Card","Header","Title","Body","EpaField","label","labelClassName","valueClassName","Row","Col","Form","Label","ColumnFilter","column","filterValue","setFilter","onChange","useAsyncDebounce","placeholder","e","target","Spinner","style","color","icon","faSpinner","FetchGrid","props","quickFindSearch","setQuickFindSearch","setRecordsPerPage","totalCount","setTotalCount","tableData","setTableData","totalPage","setTotalPages","loading","setLoading","columns","exportToCsvFn","exportToCsvFunction","fetchUrlFn","fetchUrlFunction","formatFn","formatFunction","formatAnyResponseFn","formatResponseFunction","enablePagination","enableQuickFind","propsSearchText","orderByColumnName","setOrderByColumnName","setOrderByAscending","fetchRowData","useCallback","orderByAsc","fetchUrl","res","reponseData","responseTableData","Math","floor","defaultColumn","useMemo","Filter","useTable","manualPagination","manualGlobalFilter","manualFilters","manualSortBy","pageIndex","pageSize","pageCount","useFilters","useGlobalFilter","usePagination","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","canPreviousPage","canNextPage","pageOptions","gotoPage","nextPage","previousPage","setPageSize","setGlobalFilter","globalFilter","sm","md","Control","Table","striped","headerGroup","getHeaderGroupProps","headers","getHeaderProps","render","enabledOrderByColumns","filter","colName","onClick","columnName","faSortUp","faSortDown","faSort","canFilter","colSpan","textAlign","row","getRowProps","cells","cell","getCellProps","Select","Number","defaultValue","width","Pagination","First","disabled","Prev","Next","Last","DefaultColumnFilter","preFilteredRows","NoFetchGrid","filterTypes","text","rowValue","values","String","toLowerCase","startsWith","Grid","SelectColumnFilter","options","Set","forEach","add","option","_image","_excluded","_extends","Object","assign","bind","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgLeapLogo","_ref","svgRef","titleId","xmlns","xmlnsXlink","height","viewBox","ref","xlinkHref","ForwardRef","useAppDispatch","useDispatch","Page500","Loading","CreateStaticSelectColumnFilter","start","stop","step","Array","from","_","SiteVisitRegardingObjectTypes","EdenMessagesGridType","usePalette","palette","setPalette","ChartJsDefaults","defaults","global","defaultFontColor","defaultFontFamily","Chart","elements","Rectangle","draw","left","right","top","bottom","signX","signY","borderSkipped","ctx","_chart","vm","_view","borderWidth","horizontal","base","x","y","barSize","min","abs","halfStroke","borderLeft","borderRight","borderTop","borderBottom","beginPath","fillStyle","backgroundColor","strokeStyle","borderColor","lineWidth","corners","startCorner","cornerAt","index","corner","moveTo","radius","lastVisible","findLast","findLastTo","datasets","getDatasetMeta","hidden","_datasetIndex","lineTo","quadraticCurveTo","fill","stroke","axiosInstance","axios","create","interceptors","reject","isValidToken","accessToken","decoded","jwtDecode","currentTime","now","exp","setSession","common","Authorization","removeItem","INITIALIZE","SIGN_IN","SIGN_OUT","SIGN_UP","isAuthenticated","isInitialized","user","JWTReducer","AuthContext","AuthProvider","useReducer","dispatch","initialize","get","signIn","email","password","post","signOut","signUp","firstName","lastName","method","resetPassword","CircularEconomyDashboard","BreadCrumbs","xs","Breadcrumb","Item","href","CircularEconomyHeaderComponent","headerContent","marginBottom","paddingLeft","paddingRight","HeaderSubComponent","CircularEconomyHomeContainer","GetDetailsUrl","CertificatesOfRegistrationList","certificateOfRegistrationListSelector","tableColumnsBig","accessor","Cell","rowInfo","rowData","sortType","tableColumnsSmall","GetCertificatesOfRegistrationFetchUrl","results","contentElement","SUBMISSIONS_DOMAIN","MakeASubmission","regNo","certificateOfRegistrationDetails","isVisible","visibility","rel","CertificateFields","bodyElements","DocumentsGrid","GetFilteredDocumentsFetchUrl","getFetchUrlFactory","ContactUs","fontWeight","CertificateOfRegistrationDetails","certificateOfRegistrationSelector","useParams","GetNotReadyComponent","corDetails","countyFilterValues","typeFilterValues","GetUrlForNotifier","NotifierId","CircularEconomyHome","n","GetFilteredNotifiersFetchUrl","GetSubmissionUrl","NotifierDetails","notifierDetails","faRssSquare","IsNotifierReady","GetNotifierNotReadyComponent","document_url","CircularEconomyDetails","notifierSelector","EowBreadCrumbs","EowDetails","DetailsEndOfWaste","EowHome","GetFilteredEowsFetchUrl","routes","path","element","ThemeProvider","App","useRoutes","titleTemplate","defaultTitle","Sliders","Layout","Users","BookOpen","Heart","CheckSquare","List","PieChart","Bell","MapPin","Calendar","Share","Info","Code","ArrowRightCircle","Shield","Globe","Mail","AuthGuard","WorldMap","USAMap","ResetPassword","tableColumns","faAd","faAddressBook","faAddressCard","faAdjust","faAirFreshener","faAlignCenter","faAlignJustify","faAlignLeft","faAlignRight","faAllergies","faAmbulance","faAmericanSignLanguageInterpreting","faAnchor","faAngleDoubleDown","faAngleDoubleLeft","faAngleDoubleRight","faAngleDoubleUp","faAngleDown","faAngleLeft","faAngleRight","faAngleUp","faAngry","faAnkh","faAppleAlt","faArchive","faArchway","faArrowAltCircleDown","faArrowAltCircleLeft","faArrowAltCircleRight","faArrowAltCircleUp","faArrowCircleDown","faArrowCircleLeft","faArrowCircleRight","faArrowCircleUp","faArrowDown","faArrowLeft","faArrowRight","faArrowUp","faArrowsAlt","faArrowsAltH","faArrowsAltV","faAssistiveListeningSystems","faAsterisk","faAt","faAtlas","faAtom","faAudioDescription","faAward","faBaby","faBabyCarriage","faBackspace","faBackward","faBacon","faBalanceScale","faBan","faBandAid","faBarcode","faBars","faBaseballBall","faBasketballBall","faBath","faBatteryEmpty","faBatteryFull","faBatteryHalf","faBatteryQuarter","faBatteryThreeQuarters","faBed","faBeer","faBell","faBellSlash","faBezierCurve","faBible","faBicycle","faBinoculars","faBiohazard","faBirthdayCake","faBlender","faBlenderPhone","faBlind","faBlog","faBold","faBolt","faBomb","faBone","faBong","faBook","faBookDead","faBookMedical","faBookOpen","faBookReader","faBookmark","faBowlingBall","faBox","faBoxOpen","faBoxes","faBraille","faBrain","faBreadSlice","faBriefcase","faBriefcaseMedical","faBroadcastTower","faBroom","faBrush","faBug","faBuilding","faBullhorn","faBullseye","faBurn","faBus","faBusAlt","faBusinessTime","faCalculator","faCalendar","faCalendarAlt","faCalendarCheck","faCalendarDay","faCalendarMinus","faCalendarPlus","faCalendarTimes","faCalendarWeek","faCamera","faCameraRetro","faCampground","faCandyCane","faCannabis","faCapsules","faCar","faCarAlt","faCarBattery","faCarCrash","faCarSide","faCaretDown","faCaretLeft","faCaretRight","faCaretSquareDown","faCaretSquareLeft","faCaretSquareRight","faCaretSquareUp","faCaretUp","faCarrot","faCartArrowDown","faCartPlus","faCashRegister","faCat","faCertificate","faChair","faChalkboard","faChalkboardTeacher","faChargingStation","faChartArea","faChartBar","faChartLine","faChartPie","faCheck","faCheckCircle","faCheckDouble","faCheckSquare","faCheese","faChess","faChessBishop","faChessBoard","faChessKing","faChessKnight","faChessPawn","faChessQueen","faChessRook","faChevronCircleDown","faChevronCircleLeft","faChevronCircleRight","faChevronCircleUp","faChevronDown","faChevronLeft","faChevronRight","faChevronUp","faChild","faChurch","faCircle","faCircleNotch","faCity","faClinicMedical","faClipboard","faClipboardCheck","faClipboardList","faClock","faClone","faClosedCaptioning","faCloud","faCloudDownloadAlt","faCloudMeatball","faCloudMoon","faCloudMoonRain","faCloudRain","faCloudShowersHeavy","faCloudSun","faCloudSunRain","faCloudUploadAlt","faCocktail","faCode","faCodeBranch","faCoffee","faCog","faCogs","faCoins","faColumns","faComment","faCommentAlt","faCommentDollar","faCommentDots","faCommentMedical","faCommentSlash","faComments","faCommentsDollar","faCompactDisc","faCompass","faCompress","faCompressArrowsAlt","faConciergeBell","faCookie","faCookieBite","faCopy","faCopyright","faCouch","faCreditCard","faCrop","faCropAlt","faCross","faCrosshairs","faCrow","faCrown","faCrutch","faCube","faCubes","faCut","faDatabase","faDeaf","faDemocrat","faDesktop","faDharmachakra","faDiagnoses","faDice","faDiceD20","faDiceD6","faDiceFive","faDiceFour","faDiceOne","faDiceSix","faDiceThree","faDiceTwo","faDigitalTachograph","faDirections","faDivide","faDizzy","faDna","faDog","faDollarSign","faDolly","faDollyFlatbed","faDonate","faDoorClosed","faDoorOpen","faDotCircle","faDove","faDownload","faDraftingCompass","faDragon","faDrawPolygon","faDrum","faDrumSteelpan","faDrumstickBite","faDumbbell","faDumpster","faDumpsterFire","faDungeon","faEdit","faEgg","faEject","faEllipsisH","faEllipsisV","faEnvelope","faEnvelopeOpen","faEnvelopeOpenText","faEnvelopeSquare","faEquals","faEraser","faEthernet","faEuroSign","faExchangeAlt","faExclamation","faExclamationCircle","faExclamationTriangle","faExpand","faExpandArrowsAlt","faExternalLinkAlt","faExternalLinkSquareAlt","faEye","faEyeDropper","faEyeSlash","faFastBackward","faFastForward","faFax","faFeather","faFeatherAlt","faFemale","faFighterJet","faFile","faFileAlt","faFileArchive","faFileAudio","faFileCode","faFileContract","faFileCsv","faFileDownload","faFileExcel","faFileExport","faFileImage","faFileImport","faFileInvoice","faFileInvoiceDollar","faFileMedical","faFileMedicalAlt","faFilePdf","faFilePowerpoint","faFilePrescription","faFileSignature","faFileUpload","faFileVideo","faFileWord","faFill","faFillDrip","faFilm","faFilter","faFingerprint","faFire","faFireAlt","faFireExtinguisher","faFirstAid","faFish","faFistRaised","faFlag","faFlagCheckered","faFlagUsa","faFlask","faFlushed","faFolder","faFolderMinus","faFolderOpen","faFolderPlus","faFont","faFontAwesomeLogoFull","faFootballBall","faForward","faFrog","faFrown","faFrownOpen","faFunnelDollar","faFutbol","faGamepad","faGasPump","faGavel","faGem","faGenderless","faGhost","faGift","faGifts","faGlassCheers","faGlassMartini","faGlassMartiniAlt","faGlassWhiskey","faGlasses","faGlobe","faGlobeAfrica","faGlobeAmericas","faGlobeAsia","faGlobeEurope","faGolfBall","faGopuram","faGraduationCap","faGreaterThan","faGreaterThanEqual","faGrimace","faGrin","faGrinAlt","faGrinBeam","faGrinBeamSweat","faGrinHearts","faGrinSquint","faGrinSquintTears","faGrinStars","faGrinTears","faGrinTongue","faGrinTongueSquint","faGrinTongueWink","faGrinWink","faGripHorizontal","faGripLines","faGripLinesVertical","faGripVertical","faGuitar","faHSquare","faHamburger","faHammer","faHamsa","faHandHolding","faHandHoldingHeart","faHandHoldingUsd","faHandLizard","faHandMiddleFinger","faHandPaper","faHandPeace","faHandPointDown","faHandPointLeft","faHandPointRight","faHandPointUp","faHandPointer","faHandRock","faHandScissors","faHandSpock","faHands","faHandsHelping","faHandshake","faHanukiah","faHardHat","faHashtag","faHatWizard","faHdd","faHeading","faHeadphones","faHeadphonesAlt","faHeadset","faHeart","faHeartBroken","faHeartbeat","faHelicopter","faHighlighter","faHiking","faHippo","faHistory","faHockeyPuck","faHollyBerry","faHome","faHorse","faHorseHead","faHospital","faHospitalAlt","faHospitalSymbol","faHotTub","faHotdog","faHotel","faHourglass","faHourglassEnd","faHourglassHalf","faHourglassStart","faHouseDamage","faHryvnia","faICursor","faIceCream","faIcicles","faIdBadge","faIdCard","faIdCardAlt","faIgloo","faImage","faImages","faInbox","faIndent","faIndustry","faInfinity","faInfo","faInfoCircle","faItalic","faJedi","faJoint","faJournalWhills","faKaaba","faKey","faKeyboard","faKhanda","faKiss","faKissBeam","faKissWinkHeart","faKiwiBird","faLandmark","faLanguage","faLaptop","faLaptopCode","faLaptopMedical","faLaugh","faLaughBeam","faLaughSquint","faLaughWink","faLayerGroup","faLeaf","faLemon","faLessThan","faLessThanEqual","faLevelDownAlt","faLevelUpAlt","faLifeRing","faLightbulb","faLink","faLiraSign","faList","faListAlt","faListOl","faListUl","faLocationArrow","faLock","faLockOpen","faLongArrowAltDown","faLongArrowAltLeft","faLongArrowAltRight","faLongArrowAltUp","faLowVision","faLuggageCart","faMagic","faMagnet","faMailBulk","faMale","faMap","faMapMarked","faMapMarkedAlt","faMapMarker","faMapMarkerAlt","faMapPin","faMapSigns","faMarker","faMars","faMarsDouble","faMarsStroke","faMarsStrokeH","faMarsStrokeV","faMask","faMedal","faMedkit","faMeh","faMehBlank","faMehRollingEyes","faMemory","faMenorah","faMercury","faMeteor","faMicrochip","faMicrophone","faMicrophoneAlt","faMicrophoneAltSlash","faMicrophoneSlash","faMicroscope","faMinus","faMinusCircle","faMinusSquare","faMitten","faMobile","faMobileAlt","faMoneyBill","faMoneyBillAlt","faMoneyBillWave","faMoneyBillWaveAlt","faMoneyCheck","faMoneyCheckAlt","faMonument","faMoon","faMortarPestle","faMosque","faMotorcycle","faMountain","faMousePointer","faMugHot","faMusic","faNetworkWired","faNeuter","faNewspaper","faNotEqual","faNotesMedical","faObjectGroup","faObjectUngroup","faOilCan","faOm","faOtter","faOutdent","faPager","faPaintBrush","faPaintRoller","faPalette","faPallet","faPaperPlane","faPaperclip","faParachuteBox","faParagraph","faParking","faPassport","faPastafarianism","faPaste","faPause","faPauseCircle","faPaw","faPeace","faPen","faPenAlt","faPenFancy","faPenNib","faPenSquare","faPencilAlt","faPencilRuler","faPeopleCarry","faPepperHot","faPercent","faPercentage","faPersonBooth","faPhone","faPhoneSlash","faPhoneSquare","faPhoneVolume","faPiggyBank","faPills","faPizzaSlice","faPlaceOfWorship","faPlane","faPlaneArrival","faPlaneDeparture","faPlay","faPlayCircle","faPlug","faPlus","faPlusCircle","faPlusSquare","faPodcast","faPoll","faPollH","faPoo","faPooStorm","faPoop","faPortrait","faPoundSign","faPowerOff","faPray","faPrayingHands","faPrescription","faPrescriptionBottle","faPrescriptionBottleAlt","faPrint","faProcedures","faProjectDiagram","faPuzzlePiece","faQrcode","faQuestion","faQuestionCircle","faQuidditch","faQuoteLeft","faQuoteRight","faQuran","faRadiation","faRadiationAlt","faRainbow","faRandom","faReceipt","faRecycle","faRedo","faRedoAlt","faRegistered","faReply","faReplyAll","faRepublican","faRestroom","faRetweet","faRibbon","faRing","faRoad","faRobot","faRocket","faRoute","faRss","faRubleSign","faRuler","faRulerCombined","faRulerHorizontal","faRulerVertical","faRunning","faRupeeSign","faSadCry","faSadTear","faSatellite","faSatelliteDish","faSave","faSchool","faScrewdriver","faScroll","faSdCard","faSearch","faSearchDollar","faSearchLocation","faSearchMinus","faSearchPlus","faSeedling","faServer","faShapes","faShare","faShareAlt","faShareAltSquare","faShareSquare","faShekelSign","faShieldAlt","faShip","faShippingFast","faShoePrints","faShoppingBag","faShoppingBasket","faShoppingCart","faShower","faShuttleVan","faSign","faSignInAlt","faSignLanguage","faSignOutAlt","faSignal","faSignature","faSimCard","faSitemap","faSkating","faSkiing","faSkiingNordic","faSkull","faSkullCrossbones","faSlash","faSleigh","faSlidersH","faSmile","faSmileBeam","faSmileWink","faSmog","faSmoking","faSmokingBan","faSms","faSnowboarding","faSnowflake","faSnowman","faSnowplow","faSocks","faSolarPanel","faSortAlphaDown","faSortAlphaUp","faSortAmountDown","faSortAmountUp","faSortNumericDown","faSortNumericUp","faSpa","faSpaceShuttle","faSpider","faSplotch","faSprayCan","faSquare","faSquareFull","faSquareRootAlt","faStamp","faStar","faStarAndCrescent","faStarHalf","faStarHalfAlt","faStarOfDavid","faStarOfLife","faStepBackward","faStepForward","faStethoscope","faStickyNote","faStop","faStopCircle","faStopwatch","faStore","faStoreAlt","faStream","faStreetView","faStrikethrough","faStroopwafel","faSubscript","faSubway","faSuitcase","faSuitcaseRolling","faSun","faSuperscript","faSurprise","faSwatchbook","faSwimmer","faSwimmingPool","faSynagogue","faSync","faSyncAlt","faSyringe","faTable","faTableTennis","faTablet","faTabletAlt","faTablets","faTachometerAlt","faTag","faTags","faTape","faTasks","faTaxi","faTeeth","faTeethOpen","faTemperatureHigh","faTemperatureLow","faTenge","faTerminal","faTextHeight","faTextWidth","faTh","faThLarge","faThList","faTheaterMasks","faThermometer","faThermometerEmpty","faThermometerFull","faThermometerHalf","faThermometerQuarter","faThermometerThreeQuarters","faThumbsDown","faThumbsUp","faThumbtack","faTicketAlt","faTimes","faTimesCircle","faTint","faTintSlash","faTired","faToggleOff","faToggleOn","faToilet","faToiletPaper","faToolbox","faTools","faTooth","faTorah","faToriiGate","faTractor","faTrademark","faTrafficLight","faTrain","faTram","faTransgender","faTransgenderAlt","faTrash","faTrashAlt","faTrashRestore","faTrashRestoreAlt","faTree","faTrophy","faTruck","faTruckLoading","faTruckMonster","faTruckMoving","faTruckPickup","faTshirt","faTty","faTv","faUmbrella","faUmbrellaBeach","faUnderline","faUndo","faUndoAlt","faUniversalAccess","faUniversity","faUnlink","faUnlock","faUnlockAlt","faUpload","faUser","faUserAlt","faUserAltSlash","faUserAstronaut","faUserCheck","faUserCircle","faUserClock","faUserCog","faUserEdit","faUserFriends","faUserGraduate","faUserInjured","faUserLock","faUserMd","faUserMinus","faUserNinja","faUserNurse","faUserPlus","faUserSecret","faUserShield","faUserSlash","faUserTag","faUserTie","faUserTimes","faUsers","faUsersCog","faUtensilSpoon","faUtensils","faVectorSquare","faVenus","faVenusDouble","faVenusMars","faVial","faVials","faVideo","faVideoSlash","faVihara","faVolleyballBall","faVolumeDown","faVolumeMute","faVolumeOff","faVolumeUp","faVoteYea","faVrCardboard","faWalking","faWallet","faWarehouse","faWater","faWeight","faWeightHanging","faWheelchair","faWifi","faWind","faWindowClose","faWindowMaximize","faWindowMinimize","faWindowRestore","faWineBottle","faWineGlass","faWineGlassAlt","faWonSign","faWrench","faXRay","faYenSign","faYinYang","Yup","shape","required","username","city","zip","getToggleAllRowsExpandedProps","isAllRowsExpanded","canExpand","getToggleRowExpandedProps","depth","isExpanded","Notyf","duration","types","tagName","axiosMockAdapter","AxiosMockAdapter","delayResponse","JWT_SECRET","JWT_EXPIRES_IN","users","displayName","avatar","fakeRequest","time","mock","onPost","reply","config","find","_user","sign","userId","expiresIn","faker","datatype","uuid","onGet","verify","SlimEpaHeader","src","alt","SlimEpaFooter","ReactDOM","getElementById"],"mappings":"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lB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,EAAG,GAIlB,IAAIA,KAAK,KAAM,GAAI,GAInB,IAAIA,KAAK,KAAM,GAAI,G,yJC/Df21B,I,u/EC0cTC,ICxhBK,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KAIA,KCxJDC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,KAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAxsB,MAIAysB,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAC,MAIAv/B,MAIAw/B,MAIAC,MAIAC,MAIAC,MAIA5/B,MAIA6/B,MAIAC,MAIA//B,MAIAggC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","file":"static/js/main.25927553.chunk.js","sourcesContent":["import { ReportHandler } from \"web-vitals\";\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { RootState, AppThunk } from \"../store\";\r\n\r\nexport interface CounterState {\r\n value: number;\r\n status: \"idle\" | \"loading\" | \"failed\";\r\n}\r\n\r\nconst initialState: CounterState = {\r\n value: 0,\r\n status: \"idle\",\r\n};\r\n\r\n// A mock function to mimic making an async request for data\r\nexport function fetchCount(amount = 1) {\r\n return new Promise<{ data: number }>((resolve) =>\r\n setTimeout(() => resolve({ data: amount }), 500)\r\n );\r\n}\r\n\r\n// The function below is called a thunk and allows us to perform async logic. It\r\n// can be dispatched like a regular action: `dispatch(incrementAsync(10))`. This\r\n// will call the thunk with the `dispatch` function as the first argument. Async\r\n// code can then be executed and other actions can be dispatched. Thunks are\r\n// typically used to make async requests.\r\nexport const incrementAsync = createAsyncThunk(\r\n \"counter/fetchCount\",\r\n async (amount: number) => {\r\n const response = await fetchCount(amount);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response.data;\r\n }\r\n);\r\n\r\nexport const counterSlice = createSlice({\r\n name: \"counter\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {\r\n increment: (state) => {\r\n // Redux Toolkit allows us to write \"mutating\" logic in reducers. It\r\n // doesn't actually mutate the state because it uses the Immer library,\r\n // which detects changes to a \"draft state\" and produces a brand new\r\n // immutable state based off those changes\r\n state.value += 1;\r\n },\r\n decrement: (state) => {\r\n state.value -= 1;\r\n },\r\n // Use the PayloadAction type to declare the contents of `action.payload`\r\n incrementByAmount: (state, action: PayloadAction) => {\r\n state.value += action.payload;\r\n },\r\n },\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(incrementAsync.pending, (state) => {\r\n state.status = \"loading\";\r\n })\r\n .addCase(incrementAsync.fulfilled, (state, action) => {\r\n state.status = \"idle\";\r\n state.value += action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const { increment, decrement, incrementByAmount } = counterSlice.actions;\r\n\r\n// The function below is called a selector and allows us to select a value from\r\n// the state. Selectors can also be defined inline where they're used instead of\r\n// in the slice file. For example: `useSelector((state: RootState) => state.counter.value)`\r\nexport const selectCount = (state: RootState) => state.counter.value;\r\n\r\n// We can also write thunks by hand, which may contain both sync and async logic.\r\n// Here's an example of conditionally dispatching actions based on current state.\r\nexport const incrementIfOdd =\r\n (amount: number): AppThunk =>\r\n (dispatch, getState) => {\r\n const currentValue = selectCount(getState());\r\n if (currentValue % 2 === 1) {\r\n dispatch(incrementByAmount(amount));\r\n }\r\n };\r\n\r\nexport default counterSlice.reducer;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\nimport { getCookie } from \"../../cookies/cookies\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface LegalState {\r\n acceptedTermsOfService: boolean;\r\n confirm: boolean;\r\n}\r\n\r\nexport const LegalCookieName = \"acceptedTermsOfService\";\r\n\r\n// Retrieve if acceptance of terms of service was stored as a cookie\r\nexport function getAcceptedTermsOfServiceCookie() {\r\n return getCookie(LegalCookieName) === \"true\";\r\n}\r\n\r\nconst initialState: LegalState = {\r\n acceptedTermsOfService: getAcceptedTermsOfServiceCookie(),\r\n confirm: false,\r\n};\r\n\r\nexport const legalSlice = createSlice({\r\n name: \"legal\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {\r\n acceptTermsOfService: (state) => {\r\n // Redux Toolkit allows us to write \"mutating\" logic in reducers. It\r\n // doesn't actually mutate the state because it uses the Immer library,\r\n // which detects changes to a \"draft state\" and produces a brand new\r\n // immutable state based off those changes\r\n state.acceptedTermsOfService = true;\r\n },\r\n toggleAcceptance: (state) => {\r\n state.confirm = !state.confirm;\r\n },\r\n },\r\n});\r\n\r\nexport const { acceptTermsOfService, toggleAcceptance } = legalSlice.actions;\r\n\r\n// The function below is called a selector and allows us to select a value from\r\n// the state. Selectors can also be defined inline where they're used instead of\r\n// in the slice file. For example: `useSelector((state: RootState) => state.counter.value)`\r\nexport const selectAcceptedTermsOfService = (state: RootState) =>\r\n state.legal.acceptedTermsOfService;\r\n\r\nexport const selectConfirm = (state: RootState) => state.legal.confirm;\r\n\r\nexport default legalSlice.reducer;\r\n","export function setCookie(cookieName: string, cvalue: string, exdays: number) {\r\n const d = new Date();\r\n d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\r\n let expires = \"expires=\" + d.toUTCString();\r\n document.cookie = cookieName + \"=\" + cvalue + \";\" + expires + \";path=/\";\r\n}\r\n\r\nexport function getCookie(cookieName: string) {\r\n let name = cookieName + \"=\";\r\n let decodedCookie = decodeURIComponent(document.cookie);\r\n let ca = decodedCookie.split(\";\");\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) == \" \") {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n}\r\n\r\nexport function areCookiesEnabled() {\r\n return navigator.cookieEnabled;\r\n}\r\n","let API_DOMAIN = \"http://localhost:3001\";\r\nlet IdPropertyName = \"id\";\r\n\r\nswitch (process.env.REACT_APP_EPA_ENV) {\r\n case \"localhost\":\r\n API_DOMAIN = \"http://localhost:3001\"; //using https://github.com/typicode/json-server#alternative-port\r\n break;\r\n\r\n case \"inttest\":\r\n API_DOMAIN = \"https://data-int.epa.ie/leap/api/v1\";\r\n break;\r\n\r\n case \"bustest\":\r\n API_DOMAIN = \"https://data-tst.epa.ie/leap/api/v1\";\r\n //API_DOMAIN = \"http://leapapi-tst.edenireland.ie:8188/api/v1\";\r\n break;\r\n\r\n case \"staging\":\r\n API_DOMAIN = \"https://data-stg.epa.ie/leap/api/v1\";\r\n break;\r\n\r\n case \"production\":\r\n API_DOMAIN = \"https://data.epa.ie/leap/api/v1\";\r\n break;\r\n}\r\nexport const ENV = API_DOMAIN;\r\nexport const API_URL_ODATA = `${ENV}/odata`;\r\nexport const API_URL = `${ENV}`;\r\n","function padTo2Digits(num: number) {\r\n return num.toString().padStart(2, \"0\");\r\n}\r\n\r\nexport function formatDate(dateString: string): string {\r\n if (!dateString) return \"-\";\r\n\r\n var date = new Date(dateString);\r\n\r\n return [\r\n padTo2Digits(date.getDate()),\r\n padTo2Digits(date.getMonth() + 1),\r\n date.getFullYear(),\r\n ].join(\"/\");\r\n}\r\n\r\nexport function formatDateTime(dateString: string): string {\r\n if (!dateString) return \"-\";\r\n\r\n var date = new Date(dateString);\r\n\r\n const datePart = [\r\n padTo2Digits(date.getDate()),\r\n padTo2Digits(date.getMonth() + 1),\r\n date.getFullYear(),\r\n ].join(\"/\");\r\n\r\n const timePart = [\r\n padTo2Digits(date.getHours()),\r\n padTo2Digits(date.getMinutes()),\r\n ].join(\":\");\r\n\r\n return `${datePart} ${timePart}`;\r\n}\r\n\r\nexport function formatDateForFiltering(dateString: string): string {\r\n if (!dateString) return \"\";\r\n\r\n var date = new Date(dateString);\r\n\r\n return [\r\n padTo2Digits(date.getDate()),\r\n padTo2Digits(date.getMonth() + 1),\r\n date.getFullYear(),\r\n ].join(\"-\");\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\nimport { PageResult, PageRequest } from \"./Pagination\";\r\n\r\nexport interface ICompliance {\r\n compliancerecord_id: string;\r\n type: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n date: string;\r\n licence_id: string;\r\n profile_id: string;\r\n related_compliance_recordid: string;\r\n licenceregno: string;\r\n profilenumber: string;\r\n}\r\n\r\nexport interface IComplianceList extends PageResult {\r\n list: ICompliance[];\r\n}\r\n\r\nexport interface IComplianceRecordType {\r\n type: string;\r\n}\r\n\r\nexport interface IComplianceRecordTypesList extends PageResult {\r\n list: IComplianceRecordType[];\r\n}\r\n\r\nexport interface IComplianceStatus {\r\n status: string;\r\n}\r\n\r\nexport interface IComplianceStatusesList extends PageResult {\r\n list: IComplianceStatus[];\r\n}\r\n\r\nexport const GetComplianceListFetchUrl = (\r\n profileId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n var params = `&page=${pageNo}&per_page=${recordsPerPage}&order_by=date[desc]`;\r\n\r\n var filterParams = \"\";\r\n if (filters) {\r\n for (var i = 0; i < filters.length; i++) {\r\n var f = filters[i];\r\n let filterId = f.id;\r\n if (filterId === \"licenceregno\") {\r\n filterId = \"activelicence\";\r\n filterParams += `&${filterId}=${f.value}`;\r\n } else if (filterId === \"date\") {\r\n const date_from = formatDateForFiltering(f.value[0]);\r\n if (f.value[1]) {\r\n const date_to = formatDateForFiltering(f.value[1]);\r\n filterParams += `&date_from=${date_from}&date_to=${date_to}`;\r\n } else {\r\n const date_to = formatDateForFiltering(f.value[1]);\r\n filterParams += `&date_from=${date_from}&date_to=${date_to}`;\r\n }\r\n } else {\r\n filterParams += `&${filterId}=${f.value}`;\r\n }\r\n }\r\n }\r\n\r\n if (searchText && searchText.length > 0) {\r\n filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n let url = `${API_URL}/ComplianceList/compliancelist?licence_profile_id=${profileId}${filterParams}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/compliancelist`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport function FormatComplianceList(rows: Array) {\r\n return rows.map((item) => {\r\n return {\r\n compliancerecord_id: item.compliancerecord_id,\r\n date: formatDate(item.date),\r\n licence_id: item.licence_id,\r\n licenceregno: item.licenceregno,\r\n profile_id: item.profile_id,\r\n profilenumber: item.profilenumber,\r\n reference: item.reference,\r\n related_compliance_recordid: item.related_compliance_recordid,\r\n status: item.status,\r\n subject: item.subject,\r\n type: item.type,\r\n };\r\n });\r\n}\r\n\r\nexport async function GetComplianceRecordTypesAsync(\r\n profileId: string\r\n): Promise {\r\n let url = `${API_URL}/ComplianceList/compliancerecordtypesbyprofile?licence_profile_id=${profileId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/compliance-record-types`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n body.list = body.list.map((item) => {\r\n return {\r\n type: item.type,\r\n };\r\n });\r\n return body;\r\n}\r\n\r\nexport async function GetComplianceRecordStatusesAsync(): Promise {\r\n let url = `${API_URL}/ComplianceList/compliancerecordstatus`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/compliance-record-status`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n body.list = body.list.map((item) => {\r\n return {\r\n status: item.status,\r\n };\r\n });\r\n return body;\r\n}\r\n\r\nexport async function GetComplianceListByProfileIdAsync(\r\n profileId: string,\r\n pageRequest: PageRequest\r\n): Promise {\r\n const url = GetComplianceListFetchUrl(\r\n profileId,\r\n pageRequest.page,\r\n pageRequest.per_page,\r\n \"\",\r\n null\r\n );\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n body.list = body.list.map((item) => {\r\n return {\r\n compliancerecord_id: item.compliancerecord_id,\r\n date: formatDate(item.date),\r\n licence_id: item.licence_id,\r\n licenceregno: item.licenceregno,\r\n profile_id: item.profile_id,\r\n profilenumber: item.profilenumber,\r\n reference: item.reference,\r\n related_compliance_recordid: item.related_compliance_recordid,\r\n status: item.status,\r\n subject: item.subject,\r\n type: item.type,\r\n };\r\n });\r\n return body;\r\n}\r\n\r\nexport const GetComplianceListDummy = (profileId: string): IComplianceList => {\r\n return {\r\n count: 1,\r\n length: 50,\r\n page: 1,\r\n list: [],\r\n };\r\n};\r\n","import { API_URL } from \"./Config\";\r\nimport { GetDummyResponse, IDetailsResponse } from \"./IDetailsResponse\";\r\n\r\nexport interface ISiteDetails extends IDetailsResponse {\r\n address1: string;\r\n address2: string;\r\n address3: string;\r\n city: string;\r\n county: string;\r\n eircode: string;\r\n nacecode: string;\r\n nutscode: string;\r\n urbanareape: string;\r\n plantcapacitype: string;\r\n treatmenttype: string;\r\n uvtreatment: string;\r\n licenceprofileid: string;\r\n}\r\n\r\nexport async function GetSiteDetailsByProfileIdAsync(\r\n profileId: string\r\n): Promise {\r\n var url = `${API_URL}/Site/byprofileid?licence_profile_id=${profileId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/site`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n return body;\r\n}\r\n\r\nexport const GetSiteByProfileId = (profileId: string): ISiteDetails => {\r\n return GetSiteDetailsDummy(profileId);\r\n};\r\n\r\nexport const GetSiteDetailsDummy = (profileId: string): ISiteDetails => {\r\n return {\r\n response: GetDummyResponse(),\r\n address1: \"A building\",\r\n address2: \"A street\",\r\n address3: \"-\",\r\n city: \"Sligo (city)\",\r\n county: \"Sligo\",\r\n eircode: \"F99Z999\",\r\n nacecode: \"3821\",\r\n nutscode: \"IE051\",\r\n urbanareape: \"Urban Area PE\",\r\n plantcapacitype: \"capacity\",\r\n treatmenttype: \"treatment type\",\r\n uvtreatment: \"uv treatment\",\r\n licenceprofileid: profileId,\r\n };\r\n};\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\n\r\nexport interface ILicenceVersion {\r\n licence_id: string;\r\n reg_no: string;\r\n licenceprofile_id: string;\r\n licence_type: string;\r\n licence_name: string;\r\n date_of_licence: string;\r\n ceased_date: string;\r\n licence_status: string;\r\n licence_substatus: string;\r\n licence_application_status: string;\r\n licenceprofile_number: string;\r\n urban_areape: string;\r\n}\r\n\r\nexport interface ILicenceVersionsList {\r\n list: ILicenceVersion[];\r\n count: number;\r\n length: number;\r\n page: number;\r\n}\r\n\r\nexport async function GetAllLicenceVersionsAsync(\r\n profileId: string\r\n): Promise {\r\n var url = `${API_URL}/Licence/listbyprofileid?licence_profile_id=${profileId}&order_by=regno%5Bdesc%5D`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/licence-versions`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n body.list = body.list.map((item) => {\r\n return {\r\n licence_id: item.licence_id,\r\n reg_no: item.reg_no,\r\n licenceprofile_id: item.licenceprofile_id,\r\n licence_type: item.licence_type,\r\n licence_name: item.licence_name,\r\n date_of_licence: formatDate(item.date_of_licence),\r\n ceased_date: formatDate(item.ceased_date),\r\n licence_status: item.licence_status,\r\n licence_substatus: item.licence_substatus,\r\n licence_application_status: item.licence_application_status,\r\n licenceprofile_number: item.licenceprofile_number,\r\n urban_areape: item.urban_areape,\r\n };\r\n });\r\n return body;\r\n}\r\n\r\nexport async function GetLicenceVersionAsync(\r\n licenceId: string\r\n): Promise {\r\n var url = `${API_URL}/Licence/byid?licence_id=${licenceId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/licence-version-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n return {\r\n licence_id: licenceId,\r\n reg_no: body.reg_no,\r\n licenceprofile_id: body.licenceprofile_id,\r\n licence_type: body.licence_type,\r\n licence_name: body.licence_name,\r\n date_of_licence: formatDate(body.date_of_licence),\r\n ceased_date: formatDate(body.ceased_date),\r\n licence_status: body.licence_status,\r\n licence_substatus: body.licence_substatus,\r\n licence_application_status: body.licence_application_status,\r\n licenceprofile_number: body.licenceprofile_number,\r\n urban_areape: body.urban_areape,\r\n };\r\n}\r\n\r\nexport const GetLicencesByMeetingFetchUrl = (\r\n meetingId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n let url = `${API_URL}/Licence/listbymeetingid?meeting_id=${meetingId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/licences-by-meeting`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetLicenceVersionsDummy = (\r\n profileId: string\r\n): ILicenceVersionsList => {\r\n return {\r\n count: 1,\r\n length: 50,\r\n page: 1,\r\n list: [\r\n {\r\n licence_id: \"15019058-e564-e811-a2d5-0050568a66b2\",\r\n reg_no: \"W0297-01\",\r\n licenceprofile_id: \"e4915db9-de64-e811-a2d5-0050568a66b2\",\r\n licence_type: \"Waste\",\r\n licence_name: \"Harp Refrigerants Limited\",\r\n date_of_licence: \"2018-07-24T00:00:00\",\r\n ceased_date: \"2021-07-24T00:00:00\",\r\n licence_status: \"Ceased (Never Commenced)\",\r\n licence_substatus: \"\",\r\n licence_application_status: \"Licensed\",\r\n licenceprofile_number: \"W0297\",\r\n urban_areape: \"\",\r\n },\r\n {\r\n licence_id: \"15019058-e568-e811-a2d5-0050568a66b2\",\r\n reg_no: \"W0297-02\",\r\n licenceprofile_id: \"e4915db9-de64-e811-a2d5-0050568a66b2\",\r\n licence_type: \"Waste\",\r\n licence_name: \"Harp Refrigerants Limited\",\r\n date_of_licence: \"2018-07-24T00:00:00\",\r\n ceased_date: \"2021-07-24T00:00:00\",\r\n licence_status: \"Licensed\",\r\n licence_substatus: \"\",\r\n licence_application_status: \"Licensed\",\r\n licenceprofile_number: \"W0297\",\r\n urban_areape: \"\",\r\n },\r\n ],\r\n };\r\n};\r\n\r\nexport const GetActiveLicenceVersionDummy = (\r\n profileId: string\r\n): ILicenceVersion => {\r\n return {\r\n licence_id: \"15019058-e564-e811-a2d5-0050568a66b2\",\r\n reg_no: \"W0297-01\",\r\n licenceprofile_id: \"e4915db9-de64-e811-a2d5-0050568a66b2\",\r\n licence_type: \"Waste\",\r\n licence_name: \"Harp Refrigerants Limited\",\r\n date_of_licence: \"2018-07-24T00:00:00\",\r\n ceased_date: \"2021-07-24T00:00:00\",\r\n licence_status: \"Ceased (Never Commenced)\",\r\n licence_substatus: \"\",\r\n licence_application_status: \"Licensed\",\r\n licenceprofile_number: \"W0297\",\r\n urban_areape: \"Urban Area PE\",\r\n };\r\n};\r\n\r\nexport const IsIndustrialEmissionsLicense = (licence: ILicenceVersion) => {\r\n return licence.licence_type === \"Industrial Emissions\";\r\n};\r\n\r\nexport const IsWasteLicense = (licence: ILicenceVersion) => {\r\n return licence.licence_type === \"Waste\";\r\n};\r\n\r\nexport const IsWasteWaterDischargeAuthorisation = (\r\n licence: ILicenceVersion\r\n) => {\r\n return licence.licence_type === \"Waste Water Discharge Licence\";\r\n};\r\n\r\nexport const IsCoALicense = (licence: ILicenceVersion) => {\r\n return licence.licence_type === \"Waste Water Certificate of Authorisation\";\r\n};\r\n\r\nexport const IsDumpingAtSeaLicense = (licence: ILicenceVersion) => {\r\n return licence.licence_type === \"Dumping at Sea\";\r\n};\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { FetchResponse } from \"./FetchResponse\";\r\n\r\nimport {\r\n GetComplianceListByProfileIdAsync,\r\n GetComplianceListDummy,\r\n IComplianceList,\r\n} from \"./ICompliance\";\r\n\r\nimport {\r\n GetSiteDetailsByProfileIdAsync,\r\n GetSiteDetailsDummy,\r\n ISiteDetails,\r\n} from \"./ISiteDetails\";\r\nimport {\r\n GetActiveLicenceVersionDummy,\r\n GetAllLicenceVersionsAsync,\r\n GetLicenceVersionAsync,\r\n GetLicenceVersionsDummy,\r\n ILicenceVersion,\r\n ILicenceVersionsList,\r\n} from \"./LicenceVersion\";\r\n\r\nexport interface ILicenceProfile {\r\n id: string;\r\n profileNo: string;\r\n profileName: string;\r\n version: string;\r\n dateIssued: string;\r\n type: string;\r\n status: string;\r\n subStatus: string;\r\n sector: string;\r\n majorActivity: string;\r\n iedActivity: string;\r\n organisation: string;\r\n firstIssued: string;\r\n county: string;\r\n prioritySite: string;\r\n\r\n siteDetails: ISiteDetails;\r\n complianceList: IComplianceList;\r\n licenceVersionsList: ILicenceVersionsList;\r\n activeLicenceVersion: ILicenceVersion;\r\n}\r\n\r\ninterface ILicenceProfileApiResponse {\r\n licence_profile_id: string;\r\n name: string;\r\n profile_number: string;\r\n active_licence_id: string;\r\n active_licence_type: string;\r\n active_licence_regno: string;\r\n active_licence_startdate: string;\r\n active_licence_status: string;\r\n active_licence_substatus: string;\r\n active_licence_sector: string;\r\n first_issue_date: string;\r\n county: string;\r\n town: string;\r\n organisation_id: string;\r\n organisation_name: string;\r\n uww_priority_site: string;\r\n major_class_of_activity: string;\r\n ied_activity: string;\r\n site_id: string;\r\n}\r\n\r\nexport interface ILicenceProfileResponse {\r\n response: FetchResponse;\r\n licenceProfile?: ILicenceProfile;\r\n}\r\n\r\nexport async function GetLicenceProfileAsync(\r\n profileNo: string\r\n): Promise {\r\n var url = `${API_URL}/LicenceProfile/byprofileno?licence_profile_no=${profileNo}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n if (profileNo === \"XXXX\") {\r\n url = `${API_URL}/notfound`;\r\n } else {\r\n url = `${API_URL}/licenceprofile`;\r\n }\r\n }\r\n\r\n var response = await fetch(url);\r\n if (!response.ok) {\r\n return {\r\n response: {\r\n ok: false,\r\n httpStatusCode: response.status,\r\n httpErr: response.statusText,\r\n },\r\n };\r\n }\r\n\r\n var body = await response.json();\r\n\r\n var profileId = body.licence_profile_id;\r\n\r\n var siteDetails = await GetSiteDetailsByProfileIdAsync(profileId);\r\n var complianceList = await GetComplianceListByProfileIdAsync(profileId, {\r\n page: 1,\r\n per_page: 5,\r\n });\r\n\r\n var versions = await GetAllLicenceVersionsAsync(profileId);\r\n var activeVersion = await GetLicenceVersionAsync(body.active_licence_id);\r\n\r\n const profile = {\r\n county: body.county,\r\n dateIssued: formatDate(body.active_licence_startdate),\r\n firstIssued: formatDate(body.first_issue_date),\r\n id: body.licence_profile_id,\r\n iedActivity: body.ied_activity,\r\n majorActivity: body.major_class_of_activity,\r\n organisation: body.organisation_name,\r\n profileName: body.name,\r\n profileNo: body.profile_number,\r\n sector: body.active_licence_sector,\r\n status: body.active_licence_status,\r\n subStatus: body.active_licence_substatus,\r\n type: body.active_licence_type,\r\n version: body.active_licence_regno,\r\n prioritySite: body.uww_priority_site,\r\n siteDetails: siteDetails,\r\n complianceList: complianceList,\r\n licenceVersionsList: versions,\r\n activeLicenceVersion: activeVersion,\r\n };\r\n\r\n return {\r\n response: {},\r\n licenceProfile: profile,\r\n };\r\n}\r\n\r\nexport const ParseGetLicenceProfileResponse = (response: any) => {\r\n return response as ILicenceProfile;\r\n};\r\n\r\nexport function GetLicenceProfile(profileNo: string): ILicenceProfile {\r\n return GetLicenceProfileDummy(profileNo);\r\n}\r\n\r\nexport const GetLicenceProfileDummy = (profileNo: string): ILicenceProfile => {\r\n return {\r\n id: \"{guid}\",\r\n profileNo: profileNo,\r\n profileName: \"XYZ Company\",\r\n version: \"P9999-04\",\r\n dateIssued: \"12 Mar 2019\",\r\n type: \"IEL\",\r\n status: \"Licensed\",\r\n subStatus: \"Licensed Activity Commenced\",\r\n sector: \"Surface Coating Sector\",\r\n majorActivity: \"12.2.1 - Surface Coatings\",\r\n iedActivity: \"6.7 - Other Activities\",\r\n organisation: \"XYZ Company\",\r\n firstIssued: \"01 Jan 2015\",\r\n county: \"Sligo\",\r\n prioritySite: \"Priority Site\",\r\n siteDetails: GetSiteDetailsDummy(\"\"),\r\n complianceList: GetComplianceListDummy(\"\"),\r\n licenceVersionsList: GetLicenceVersionsDummy(\"\"),\r\n activeLicenceVersion: GetActiveLicenceVersionDummy(\"\"),\r\n };\r\n};\r\n\r\nexport const isRadiologicalProtection = (licenceProfile: ILicenceProfile) => {\r\n return licenceProfile.type === \"Radiological Protection\";\r\n};\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetLicenceProfileAsync,\r\n ILicenceProfileResponse,\r\n} from \"../../api/LicenceProfile\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface LicenceProfileState {\r\n fetchStatus: string;\r\n error: any;\r\n licenceProfileResponse?: ILicenceProfileResponse;\r\n}\r\n\r\nconst initialState: LicenceProfileState = {\r\n error: undefined,\r\n fetchStatus: \"Loading...\",\r\n licenceProfileResponse: undefined,\r\n};\r\n\r\nexport const loadLicenceProfileAsync = createAsyncThunk(\r\n \"licenceProfile/load\",\r\n async (profileNo: string) => {\r\n const response = await GetLicenceProfileAsync(profileNo);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const licenceProfileSlice = createSlice({\r\n name: \"licenceProfile\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadLicenceProfileAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadLicenceProfileAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.licenceProfileResponse = action.payload;\r\n })\r\n .addCase(loadLicenceProfileAsync.rejected, (state, action) => {\r\n state.fetchStatus = \"rejected\";\r\n state.error = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectLicenceProfileResponse = (state: RootState) =>\r\n state.licenceProfileResponse;\r\n\r\nexport default licenceProfileSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetComplianceRecordStatusesAsync,\r\n GetComplianceRecordTypesAsync,\r\n IComplianceRecordTypesList,\r\n IComplianceStatusesList,\r\n} from \"../../api/ICompliance\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ComplianceState {\r\n fetchStatus: string;\r\n complianceRecordTypes?: IComplianceRecordTypesList;\r\n complianceStatuses?: IComplianceStatusesList;\r\n}\r\n\r\nconst initialState: ComplianceState = {\r\n fetchStatus: \"Loading...\",\r\n complianceRecordTypes: undefined,\r\n complianceStatuses: undefined,\r\n};\r\n\r\nexport const loadComplianceOptionsAsync = createAsyncThunk(\r\n \"compliance/loadOptions\",\r\n async (profileId: string) => {\r\n const recordTypes = await GetComplianceRecordTypesAsync(profileId);\r\n const recordStatuses = await GetComplianceRecordStatusesAsync();\r\n // The value we return becomes the `fulfilled` action payload\r\n return {\r\n recordTypes: recordTypes,\r\n recordStatuses: recordStatuses,\r\n };\r\n }\r\n);\r\n\r\nexport const complianceOptionsSlice = createSlice({\r\n name: \"complianceOptions\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadComplianceOptionsAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadComplianceOptionsAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.complianceRecordTypes = action.payload.recordTypes;\r\n state.complianceStatuses = action.payload.recordStatuses;\r\n });\r\n },\r\n});\r\n\r\nexport const selectComplianceOptions = (state: RootState) =>\r\n state.complianceOptions;\r\n\r\nexport default complianceOptionsSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { PageResult, PageRequest } from \"./Pagination\";\r\n\r\n//https://data-int.epa.ie/leap/api/v1/SiteVisit/byid?sv_id=804D4B88-ED4E-E811-A2DD-0050568A2D1A\r\n\r\n/*\r\n\"sitevisitid\": \"804d4b88-ed4e-e811-a2dd-0050568a2d1a\",\r\n \"type\": \"Site Visit\",\r\n \"subject\": \"Air Visit - Sampling Infrastructure\",\r\n \"reference\": \"SV15542\",\r\n \"status\": \"Closed\",\r\n \"licence_id\": \"24c8e87d-7c61-e211-9eb5-0050568a69e2\",\r\n \"licenceprofile_id\": null,\r\n \"licenseesubmission_id\": \"4e8aadee-e69b-e811-a308-0050568a2d1a\",\r\n \"visit_date\": \"2018-04-11T00:00:00\",\r\n \"report_issued_date\": \"2018-07-25T00:00:00\",\r\n \"compliance\": \"Yes\",\r\n \"summary\": null,\r\n \"instigated_by\": \"Enforcement Plan Visit\",\r\n \"sampletaken\": \"No\",\r\n \"odourassessment\": null,\r\n \"adourassessmentcompliant\": \"n/a\",\r\n \"licence_regno\": \"P0815-02\",\r\n \"profile_number\": \"P0815\"\r\n*/\r\n\r\n//Site Visit Details\r\nexport interface ISiteVisitDetails extends IDetailsResponse {\r\n sitevisitid: string;\r\n type: string;\r\n subject: string;\r\n reference: string;\r\n status: string;\r\n licence_id: string;\r\n licenceprofile_id: string;\r\n licenseesubmission_id: string;\r\n visit_date: string;\r\n report_issued_date: string;\r\n compliance: string;\r\n summary: string;\r\n instigated_by: string;\r\n announced: string;\r\n visittype: string;\r\n sampletaken: string;\r\n odourassessment: string;\r\n adourassessmentcompliant: string;\r\n licence_regno: string;\r\n profile_number: string;\r\n}\r\n\r\n//Site Visit Row\r\nexport interface ISiteVisit {\r\n sitevisitid: string;\r\n type: string;\r\n subject: string;\r\n reference: string;\r\n status: string;\r\n licence_id: string;\r\n licenceprofile_id: string;\r\n licenseesubmission_id: string;\r\n visit_date: string;\r\n visit_type: string;\r\n licence_regno: string;\r\n profile_number: string;\r\n}\r\n\r\nexport async function GetSiteVisitDetailsAsync(\r\n siteVisitId: string\r\n): Promise {\r\n var url = `${API_URL}/SiteVisit/byid?sv_id=${siteVisitId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/sitevisit-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n return {\r\n response: response,\r\n sitevisitid: body.sitevisitid,\r\n type: body.type,\r\n subject: body.subject,\r\n reference: body.reference,\r\n status: body.status,\r\n licence_id: body.licence_id,\r\n licenceprofile_id: body.licenceprofile_id,\r\n licenseesubmission_id: body.licenseesubmission_id,\r\n visit_date: formatDate(body.visit_date),\r\n report_issued_date: formatDate(body.report_issued_date),\r\n compliance: body.compliance,\r\n summary: body.summary,\r\n announced: body.announced,\r\n visittype: body.visittype,\r\n instigated_by: body.instigated_by,\r\n sampletaken: body.sampletaken,\r\n odourassessment: body.odourassessment,\r\n adourassessmentcompliant: body.adourassessmentcompliant,\r\n licence_regno: body.licence_regno,\r\n profile_number: body.profile_number,\r\n };\r\n}\r\n\r\nexport const GetSiteVisitsFromLicenseeReturnFetchUrl = (\r\n licenseeReturnId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/SiteVisit/listbylrid?lr_id=${licenseeReturnId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/sitevisit-licenseereturns`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetSiteVisitsFromComplianceInvestigationFetchUrl = (\r\n complianceInvestigationId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/SiteVisit/listbyciid?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/sitevisits-ci`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetSiteVisitsFromNonComplianceFetchUrl = (\r\n nonComplianceId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/SiteVisit/listbyncid?nc_id=${nonComplianceId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/sitevisit-noncompliance`;\r\n }\r\n\r\n return url;\r\n};\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetSiteVisitDetailsAsync,\r\n ISiteVisitDetails,\r\n} from \"../../api/ISiteVisit\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface SiteVisitState {\r\n fetchStatus: string;\r\n siteVisit?: ISiteVisitDetails;\r\n}\r\n\r\nconst initialState: SiteVisitState = {\r\n fetchStatus: \"Loading...\",\r\n siteVisit: undefined,\r\n};\r\n\r\nexport const loadSiteVisitAsync = createAsyncThunk(\r\n \"siteVisit/load\",\r\n async (siteVisitId: string) => {\r\n const response = await GetSiteVisitDetailsAsync(siteVisitId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const siteVisitSlice = createSlice({\r\n name: \"siteVisit\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadSiteVisitAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadSiteVisitAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.siteVisit = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectSiteVisit = (state: RootState) => state.siteVisit;\r\n\r\nexport default siteVisitSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { PageResult, PageRequest } from \"./Pagination\";\r\n\r\nexport interface IComplianceInvestigation {\r\n complianceinvestigationid: string;\r\n issue: string;\r\n reference: string;\r\n status: string;\r\n title: string;\r\n dateraised: string;\r\n svid: string;\r\n}\r\n\r\nexport interface IComplianceInvestigationList extends PageResult {\r\n list: IComplianceInvestigation[];\r\n}\r\n\r\nexport interface IComplianceInvestigationDetails extends IDetailsResponse {\r\n complianceinvestigationid: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n licenceid: string;\r\n licenceprofileid: string;\r\n responselevel: string;\r\n title: string;\r\n origin: string;\r\n receptors: string;\r\n description: string;\r\n closedate: string;\r\n dateraised: string;\r\n licence_regno: string;\r\n}\r\n\r\n/*\r\n \"complianceinvestigationid\": \"8e457ace-b626-e811-a2c7-0050568a2d1a\",\r\n \"reference\": \"CI001626\",\r\n \"subject\": \"Water Quality\",\r\n \"status\": \"Closed\",\r\n \"licenceid\": \"7e8aad0c-f8fd-434e-9cac-24a99738e069\",\r\n \"licenceprofileid\": \"2c551f0e-eb4b-457c-9d4e-54d689f192f4\",\r\n \"responselevel\": \"Low\",\r\n \"title\": \"P0690-03, Unauthorised emissions to sewer\",\r\n \"origin\": \"Instances of Non compliance\",\r\n \"receptors\": \"Water\",\r\n \"description\": \"A meeting was held with C&F Automotive on Thursday 8th March 2018 regarding recurring exceedances of ELV limits for sewer water and trigger levels for storm water. Actions agreed at the meeting are required to be carried out by the licensee.\",\r\n \"closedate\": \"2021-10-12T00:00:00\",\r\n \"dateraised\": \"2018-03-21T00:00:00\"\r\n*/\r\n\r\nexport const GetComplianceInvestigationsBySiteVisitFetchUrl = (\r\n siteVisitId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n let url = `${API_URL}/Ci/listbysvid?sv_id=${siteVisitId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/cis-by-sitevisitid`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport function FormatComplianceList(rows: Array) {\r\n return rows.map((item) => {\r\n return {\r\n complianceinvestigationid: item.complianceinvestigationid,\r\n dateraised: formatDate(item.dateraised),\r\n issue: item.issue,\r\n reference: item.reference,\r\n status: item.status,\r\n title: item.title,\r\n svid: item.svid,\r\n };\r\n });\r\n}\r\n\r\nexport async function GetComplianceInvestigationDetailsAsync(\r\n complianceInvestigationId: string\r\n): Promise {\r\n var url = `${API_URL}/Ci/byid?ci_id=${complianceInvestigationId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/ci-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n return {\r\n response: response,\r\n complianceinvestigationid: body.complianceinvestigationid,\r\n reference: body.reference,\r\n subject: body.subject,\r\n status: body.status,\r\n licenceid: body.licenceid,\r\n licenceprofileid: body.licenceprofileid,\r\n responselevel: body.responselevel,\r\n title: body.title,\r\n origin: body.origin,\r\n receptors: body.receptors,\r\n description: body.description,\r\n closedate: formatDate(body.closedate),\r\n dateraised: formatDate(body.dateraised),\r\n licence_regno: body.licence_regno,\r\n };\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateForFiltering } from \"./DateUtils\";\r\n\r\n/*\r\n \"licence_id\": \"24c8e87d-7c61-e211-9eb5-0050568a69e2\",\r\n \"reg_no\": \"P0815-02\",\r\n \"licenceprofile_id\": \"373122fb-8a6d-4f9c-bef1-142252f47d33\",\r\n \"licence_type\": \"Industrial Emissions\",\r\n \"licence_name\": \"Lacpatrick Dairies Limited\",\r\n \"date_of_licence\": \"2013-03-25T00:00:00\",\r\n \"ceased_date\": null,\r\n \"licence_status\": \"Licensed\",\r\n \"licence_substatus\": \"Licensable Activity Commenced\",\r\n \"licence_application_status\": \"Replaced\",\r\n \"licenceprofile_number\": \"P0815\",\r\n \"urban_areape\": null\r\n*/\r\n\r\nexport interface ILicenceDetails {\r\n licence_id: string;\r\n reg_no: string;\r\n licenceprofile_id: string;\r\n licence_type: string;\r\n date_of_licence: string;\r\n ceased_date: string;\r\n licence_status: string;\r\n licence_substatus: string;\r\n licence_application_status: string;\r\n licenceprofile_number: string;\r\n urban_areape: string;\r\n}\r\n\r\nexport async function GetLicenseDetailsAsync(\r\n licenceId: string\r\n): Promise {\r\n var url = `${API_URL}/Licence/byid?licence_id=${licenceId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/licence-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n return {\r\n licence_id: body.licence_id,\r\n reg_no: body.reg_no,\r\n licenceprofile_id: body.licenceprofile_id,\r\n licence_type: body.licence_type,\r\n date_of_licence: formatDate(body.date_of_licence),\r\n ceased_date: formatDate(body.ceased_date),\r\n licence_status: body.licence_status,\r\n licence_substatus: body.licence_substatus,\r\n licence_application_status: body.licence_application_status,\r\n licenceprofile_number: body.licenceprofile_number,\r\n urban_areape: body.urban_areape,\r\n };\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport {\r\n GetComplianceInvestigationDetailsAsync,\r\n IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\nimport { PageResult } from \"./Pagination\";\r\n\r\n/*\r\n \"licenseereturnid\": \"4e8aadee-e69b-e811-a308-0050568a2d1a\",\r\n \"reference\": \"LR036244\",\r\n \"subject\": \"Site Updates/Notifications Licensee Public Response\",\r\n \"datereceived\": \"2018-08-09T00:00:00\",\r\n \"doctype\": \"Site Updates/Notifications\",\r\n \"docsubtype\": \"Licensee Public Response\",\r\n \"decision\": \"Assessed\"\r\n*/\r\nexport interface ILicenseeReturn {\r\n licenseereturnid: string;\r\n reference: string;\r\n subject: string;\r\n datereceived: string;\r\n doctype: string;\r\n docsubtype: string;\r\n decision: string;\r\n}\r\n\r\nexport interface ILicenseeReturnDetails extends IDetailsResponse {\r\n licenseereturnid: string;\r\n type: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n licenceid: string;\r\n licence_regno: string;\r\n licenceprofileid: string;\r\n datereceived: string;\r\n closeddate: string;\r\n title: string;\r\n doctype: string;\r\n docsubtype: string;\r\n decision: string;\r\n description: string;\r\n documentcategory: string;\r\n complianceinvestigationid: string;\r\n complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n}\r\n\r\nexport interface ILicenseeReturnList extends PageResult {\r\n list: ILicenseeReturn[];\r\n}\r\n\r\nexport const GetLicenseeReturnFromSiteVisitFetchUrl = (\r\n siteVisitId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n let url = `${API_URL}/LicenseeReturns/listbysvid?sv_id=${siteVisitId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/licenseereturns-sitevisit`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetLicenseeReturnFromComplianceInvestigationFetchUrl = (\r\n complianceInvestigationId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n let url = `${API_URL}/LicenseeReturns/listbyciid?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/licenseereturns-ci`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport async function GetLicenseeReturnDetailsAsync(\r\n siteVisitId: string\r\n): Promise {\r\n var url = `${API_URL}/LicenseeReturns/byid?lr_id=${siteVisitId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/licenseereturn-details-notfound`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n if (body.complianceinvestigationid) {\r\n body.complianceInvestigationDetails =\r\n await GetComplianceInvestigationDetailsAsync(\r\n body.complianceinvestigationid\r\n );\r\n }\r\n\r\n return {\r\n response: response,\r\n licenseereturnid: body.licenseereturnid,\r\n type: body.type,\r\n reference: body.reference,\r\n subject: body.subject,\r\n status: body.status,\r\n licenceid: body.licenceid,\r\n licence_regno: licenceDetails.reg_no,\r\n licenceprofileid: body.licenceprofileid,\r\n datereceived: formatDate(body.datereceived),\r\n closeddate: formatDate(body.closeddate),\r\n title: body.title,\r\n doctype: body.doctype,\r\n docsubtype: body.docsubtype,\r\n decision: body.decision,\r\n description: body.description,\r\n documentcategory: body.documentcategory,\r\n complianceinvestigationid: body.complianceinvestigationid,\r\n complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetLicenseeReturnDetailsAsync,\r\n ILicenseeReturnDetails,\r\n} from \"../../api/ILicenseeReturns\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface LicenseeReturnState {\r\n fetchStatus: string;\r\n licenseeReturn?: ILicenseeReturnDetails;\r\n}\r\n\r\nconst initialState: LicenseeReturnState = {\r\n fetchStatus: \"Loading...\",\r\n licenseeReturn: undefined,\r\n};\r\n\r\nexport const loadLicenseeReturnAsync = createAsyncThunk(\r\n \"licenseeReturn/load\",\r\n async (licenseeReturnId: string) => {\r\n const response = await GetLicenseeReturnDetailsAsync(licenseeReturnId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const licenseeReturnSlice = createSlice({\r\n name: \"licenseeReturn\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadLicenseeReturnAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadLicenseeReturnAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.licenseeReturn = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectLicenseeReturn = (state: RootState) => state.licenseeReturn;\r\n\r\nexport default licenseeReturnSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseeReturnDetailsAsync } from \"./ILicenseeReturns\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface IRequestForInformation {\r\n rfiid: string;\r\n type: string;\r\n licenceid: string;\r\n reference: string;\r\n status: string;\r\n datesubmitted: string;\r\n duedate: string;\r\n subject: string;\r\n responsereceiveddate: string;\r\n question: string;\r\n response: string;\r\n licenseesubmisionid: string; // LR Id\r\n profileNo: string;\r\n licence_regno: string;\r\n licensee_return_reference: string; //LR's ref no.\r\n}\r\n\r\nexport const GetRequestsForInformationFromLicenseeReturnFetchUrl = (\r\n licenseeReturnId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/LicenseeReturns/rfilistbylrid?lr_id=${licenseeReturnId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/rfis-by-licensee-return`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport async function GetRequestForInformationDetailsAsync(\r\n requestForInformationId: string\r\n): Promise {\r\n var url = `${API_URL}/LicenseeReturns/rfibyid?rfi_id=${requestForInformationId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/rfi-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n const licenseeReturn = await GetLicenseeReturnDetailsAsync(\r\n body.licenseesubmisionid\r\n );\r\n\r\n return {\r\n rfiid: body.rfiid,\r\n type: body.type,\r\n licenceid: body.licenceid,\r\n reference: body.reference,\r\n status: body.status,\r\n datesubmitted: formatDate(body.datesubmitted),\r\n duedate: formatDate(body.duedate),\r\n subject: body.subject,\r\n responsereceiveddate: formatDate(body.responsereceiveddate),\r\n question: body.question,\r\n response: body.response,\r\n licenseesubmisionid: body.licenseesubmisionid,\r\n profileNo: licenceDetails.licenceprofile_number,\r\n licence_regno: licenceDetails.reg_no, // LR,\r\n licensee_return_reference: licenseeReturn.reference,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetRequestForInformationDetailsAsync,\r\n IRequestForInformation,\r\n} from \"../../api/RequestForInformation\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface RequestForInformationState {\r\n fetchStatus: string;\r\n requestForInformation?: IRequestForInformation;\r\n}\r\n\r\nconst initialState: RequestForInformationState = {\r\n fetchStatus: \"Loading...\",\r\n requestForInformation: undefined,\r\n};\r\n\r\nexport const loadRequestForInformationAsync = createAsyncThunk(\r\n \"requestForInformation/load\",\r\n async (reuestForInformationId: string) => {\r\n const response = await GetRequestForInformationDetailsAsync(\r\n reuestForInformationId\r\n );\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const requestForInformationSlice = createSlice({\r\n name: \"requestForInformation\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadRequestForInformationAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadRequestForInformationAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.requestForInformation = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectRequestForInformation = (state: RootState) =>\r\n state.requestForInformation;\r\n\r\nexport default requestForInformationSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { GetSiteVisitDetailsAsync, ISiteVisitDetails } from \"./ISiteVisit\";\r\nimport { ITaskDetails } from \"./ITask\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface IFindingAndRecommendation {\r\n taskid: string;\r\n datesubmitted: string;\r\n type: string;\r\n category: string;\r\n status: string;\r\n observation: string;\r\n reference: string;\r\n}\r\n\r\nexport interface IFindingAndRecommendationDetails extends ITaskDetails {\r\n siteVisit?: ISiteVisitDetails;\r\n}\r\n\r\n//https://data-int.epa.ie/leap/api/v1/Task/listbyregardingobjectid?regardingobject_id=71DC08F0-BABA-E511-987F-0050568A69E2&page=1&per_page=50\r\n\r\nexport const GetFindingsAndRecommendationsFetchUrl = (\r\n regardingObjectId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/Task/listbyregardingobjectid?regardingobject_id=${regardingObjectId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/sitevisit-findings`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport async function GetFindingAndRecommendationDetailsAsync(\r\n taskId: string\r\n): Promise {\r\n var url = `${API_URL}/Task/byid?task_id=${taskId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/finding-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n const siteVisit = await GetSiteVisitDetailsAsync(body.regardingobjectid);\r\n\r\n return {\r\n response: response,\r\n taskid: body.taskid,\r\n type: body.type,\r\n licenceid: body.licenceid,\r\n reference: body.reference,\r\n status: body.status,\r\n datesubmitted: formatDate(body.datesubmitted),\r\n duedate: formatDate(body.duedate),\r\n subject: body.subject,\r\n sender: body.sender,\r\n recipient: body.recipient,\r\n details: body.details,\r\n category: body.category,\r\n subcategory: body.subcategory,\r\n observation: body.observation,\r\n description: body.description,\r\n profileNo: licenceDetails.licenceprofile_number,\r\n licence_regno: licenceDetails.reg_no,\r\n siteVisit: siteVisit,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetFindingAndRecommendationDetailsAsync,\r\n IFindingAndRecommendationDetails,\r\n} from \"../../api/IFindingAndRecommendation\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface FindingAndRecommendationState {\r\n fetchStatus: string;\r\n findingAndRecommendation?: IFindingAndRecommendationDetails;\r\n}\r\n\r\nconst initialState: FindingAndRecommendationState = {\r\n fetchStatus: \"Loading...\",\r\n findingAndRecommendation: undefined,\r\n};\r\n\r\nexport const loadFindingAndRecommendationAsync = createAsyncThunk(\r\n \"findingAndRecommendation/load\",\r\n async (taskId: string) => {\r\n const response = await GetFindingAndRecommendationDetailsAsync(taskId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const findingAndRecommendationSlice = createSlice({\r\n name: \"findingAndRecommendation\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadFindingAndRecommendationAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadFindingAndRecommendationAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.findingAndRecommendation = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectFindingAndRecommendation = (state: RootState) =>\r\n state.findingAndRecommendationReducer;\r\n\r\nexport default findingAndRecommendationSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport {\r\n GetLicenseeReturnDetailsAsync,\r\n ILicenseeReturnDetails,\r\n} from \"./ILicenseeReturns\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface IInstruction {\r\n epainitiatedcorrespondenceid: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n datesubmitted: string;\r\n duedate: string;\r\n licensingnotification: string;\r\n correspondencetype: string;\r\n regno: string;\r\n licenseesubmissionid: string;\r\n}\r\n\r\nexport interface IInstructionDetails extends IDetailsResponse {\r\n epainitiatedcorrespondenceid: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n datesubmitted: string;\r\n duedate: string;\r\n licensingnotification: string;\r\n correspondencetype: string;\r\n regno: string;\r\n licenseesubmissionid: string;\r\n licenseeReturn?: ILicenseeReturnDetails;\r\n profileNo: string;\r\n}\r\n\r\nexport const GetInstructionsFromLicenseeReturnFetchUrl = (\r\n licenseeReturnId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/LicenseeReturns/lrintructionlistbylrid?lr_id=${licenseeReturnId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/instructions-by-licensee-return`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport async function GetInstructionDetailsAsync(\r\n instructionId: string\r\n): Promise {\r\n var url = `${API_URL}/LicenseeReturns/lrintructionbyid?lrintruction_id=${instructionId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/instruction-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenseeReturnDetails = await GetLicenseeReturnDetailsAsync(\r\n body.licenseesubmissionid\r\n );\r\n const licenceDetails = await GetLicenseDetailsAsync(\r\n licenseeReturnDetails.licenceid\r\n );\r\n\r\n return {\r\n response: response,\r\n epainitiatedcorrespondenceid: body.epainitiatedcorrespondenceid,\r\n reference: body.reference,\r\n subject: body.subject,\r\n status: body.status,\r\n datesubmitted: formatDate(body.datesubmitted),\r\n duedate: formatDate(body.duedate),\r\n licensingnotification: body.licensingnotification,\r\n correspondencetype: body.correspondencetype,\r\n regno: body.regno,\r\n licenseesubmissionid: body.licenseesubmissionid,\r\n licenseeReturn: licenseeReturnDetails,\r\n profileNo: licenceDetails.licenceprofile_number,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetInstructionDetailsAsync,\r\n IInstructionDetails,\r\n} from \"../../api/Instruction\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface InstructionState {\r\n fetchStatus: string;\r\n instruction?: IInstructionDetails;\r\n}\r\n\r\nconst initialState: InstructionState = {\r\n fetchStatus: \"Loading...\",\r\n instruction: undefined,\r\n};\r\n\r\nexport const loadInstructionAsync = createAsyncThunk(\r\n \"instruction/load\",\r\n async (instructionId: string) => {\r\n const response = await GetInstructionDetailsAsync(instructionId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const instructionSlice = createSlice({\r\n name: \"instruction\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadInstructionAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadInstructionAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.instruction = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectInstruction = (state: RootState) => state.instruction;\r\n\r\nexport default instructionSlice.reducer;\r\n","import { API_URL } from \"../Config\";\r\nimport { formatDate } from \"../DateUtils\";\r\nimport {\r\n GetComplianceInvestigationDetailsAsync,\r\n IComplianceInvestigationDetails,\r\n} from \"../IComplianceInvestigation\";\r\nimport { ITaskDetails } from \"../ITask\";\r\nimport { GetLicenseDetailsAsync } from \"../LicenceDetails\";\r\n\r\nexport interface IComplianceInvestigationActionOrInstruction {\r\n taskid: string;\r\n datesubmitted: string;\r\n type: string;\r\n category: string;\r\n subcategory: string;\r\n status: string;\r\n observation: string;\r\n reference: string;\r\n subject: string;\r\n description: string;\r\n regardingobjectid: string;\r\n}\r\n\r\nexport interface IComplianceInvestigationActionOrInstructionDetails\r\n extends ITaskDetails {\r\n complianceInvestidationDetails?: IComplianceInvestigationDetails;\r\n}\r\n\r\nexport const GetComplianceInvestigationActionsAndInstructionsFetchUrl = (\r\n regardingObjectId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/Task/listbyregardingobjectid?regardingobject_id=${regardingObjectId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/ci-actions-instructions`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport async function GetComplianceInvestigationActionOrInstructionDetailsAsync(\r\n taskId: string\r\n): Promise {\r\n var url = `${API_URL}/Task/byid?task_id=${taskId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/ci-action-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = (\r\n await response.json()\r\n );\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n const complianceInvestigation = await GetComplianceInvestigationDetailsAsync(\r\n body.regardingobjectid\r\n );\r\n\r\n return {\r\n taskid: body.taskid,\r\n type: body.type,\r\n licenceid: body.licenceid,\r\n reference: body.reference,\r\n status: body.status,\r\n datesubmitted: formatDate(body.datesubmitted),\r\n duedate: formatDate(body.duedate),\r\n subject: body.subject,\r\n sender: body.sender,\r\n recipient: body.recipient,\r\n details: body.details,\r\n category: body.category,\r\n subcategory: body.subcategory,\r\n observation: body.observation,\r\n description: body.description,\r\n profileNo: licenceDetails.licenceprofile_number,\r\n licence_regno: licenceDetails.reg_no,\r\n regardingobjectid: body.regardingobjectid,\r\n complianceInvestidationDetails: complianceInvestigation,\r\n };\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"./LicenceDetails\";\r\n\r\nexport interface IEpaCorrespondenceDetails extends IDetailsResponse {\r\n epainitiatedcorrespondenceid: string;\r\n type: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n datesubmitted: string;\r\n duedate: string;\r\n licensingnotification: string;\r\n correspondencetype: string;\r\n licenseesubmissionid?: string;\r\n licenceid: string;\r\n licenceprofileid: string;\r\n licenceDetails?: ILicenceDetails;\r\n}\r\n\r\nexport async function GetEpaCorrespondenceDetailsAsync(\r\n epaCorrespondenceId: string\r\n): Promise {\r\n var url = `${API_URL}/MeetingCorrespondence/epainiciatedcorrespondencebyid?epainitiatedcorrespondence_id=${epaCorrespondenceId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/epa-correspondence-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n body.licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n return {\r\n response: response,\r\n epainitiatedcorrespondenceid: body.epainitiatedcorrespondenceid,\r\n type: body.type,\r\n reference: body.reference,\r\n subject: body.subject,\r\n status: body.status,\r\n datesubmitted: formatDate(body.datesubmitted),\r\n duedate: formatDate(body.duedate),\r\n licensingnotification: body.licensingnotification,\r\n correspondencetype: body.correspondencetype,\r\n licenceid: body.licenceid,\r\n licenceprofileid: body.licenceprofileid,\r\n licenceDetails: body.licenceDetails,\r\n };\r\n}\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface ITaskDetails extends IDetailsResponse {\r\n taskid: string;\r\n type: string;\r\n licenceid: string;\r\n reference: string;\r\n status: string;\r\n datesubmitted: string;\r\n duedate: string;\r\n subject: string;\r\n sender: string;\r\n recipient: string;\r\n details: string;\r\n category: string;\r\n subcategory: string;\r\n observation: string;\r\n description: string;\r\n regardingobjectid: string;\r\n licence_regno?: string;\r\n profileNo?: string;\r\n}\r\n\r\nexport const isFindingOrRecommentation = (type: string) => {\r\n return type === \"SV Finding\" || type === \"SV Recommendation\";\r\n};\r\n\r\nexport const isActionOrInstruction = (type: string) => {\r\n return type === \"Action\" || type === \"Instruction\";\r\n};\r\n\r\nexport async function GetTaskDetailsAsync(\r\n taskId: string\r\n): Promise {\r\n var url = `${API_URL}/Task/byid?task_id=${taskId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/finding-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n return {\r\n response: response,\r\n taskid: body.taskid,\r\n type: body.type,\r\n licenceid: body.licenceid,\r\n reference: body.reference,\r\n status: body.status,\r\n datesubmitted: formatDate(body.datesubmitted),\r\n duedate: formatDate(body.duedate),\r\n subject: body.subject,\r\n sender: body.sender,\r\n recipient: body.recipient,\r\n details: body.details,\r\n category: body.category,\r\n subcategory: body.subcategory,\r\n observation: body.observation,\r\n description: body.description,\r\n profileNo: licenceDetails.licenceprofile_number,\r\n licence_regno: licenceDetails.reg_no,\r\n };\r\n}\r\n","import {\r\n GetComplianceInvestigationActionOrInstructionDetailsAsync,\r\n IComplianceInvestigationActionOrInstructionDetails,\r\n} from \"./ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions\";\r\nimport { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport {\r\n GetComplianceInvestigationDetailsAsync,\r\n IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport {\r\n GetEpaCorrespondenceDetailsAsync,\r\n IEpaCorrespondenceDetails,\r\n} from \"./IEpaCorrespondence\";\r\nimport {\r\n GetFindingAndRecommendationDetailsAsync,\r\n IFindingAndRecommendationDetails,\r\n} from \"./IFindingAndRecommendation\";\r\nimport {\r\n GetLicenseeReturnDetailsAsync,\r\n ILicenseeReturn,\r\n ILicenseeReturnDetails,\r\n} from \"./ILicenseeReturns\";\r\nimport { GetSiteVisitDetailsAsync, ISiteVisitDetails } from \"./ISiteVisit\";\r\nimport { GetTaskDetailsAsync, isFindingOrRecommentation } from \"./ITask\";\r\nimport {\r\n GetThirdPartyCorrespondenceDetailsAsync,\r\n IThirdPartyCorrespondenceDetails,\r\n} from \"./IThirdPartyCorrespondence\";\r\n\r\n//https://data-int.epa.ie/leap/api/v1/EdenMessage/listbytaskid?task_id=D984E9E7-8AC0-EC11-A341-0050568A2D1A&page=1&per_page=50\r\n\r\nexport interface IEdenMessage {\r\n edenmessageid: string;\r\n type: string;\r\n licenceid: string;\r\n reference: string;\r\n status: string;\r\n dateraised: string;\r\n closeddate: string;\r\n subject: string;\r\n message: string;\r\n response: string;\r\n regardingobjectid: string;\r\n taskid: string;\r\n}\r\n\r\nexport interface IEdenMessageDetails {\r\n edenmessageid: string;\r\n type: string;\r\n licenceid: string;\r\n reference: string;\r\n status: string;\r\n dateraised: string;\r\n closeddate: string;\r\n subject: string;\r\n message: string;\r\n response: string;\r\n regardingobjectid: string;\r\n taskid: string;\r\n siteVisit?: ISiteVisitDetails;\r\n findingAndRecommendation?: IFindingAndRecommendationDetails;\r\n licenseeReturn?: ILicenseeReturnDetails;\r\n actionOrInstructionDetails?: IComplianceInvestigationActionOrInstructionDetails;\r\n complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n epaCorrespondenceDetails?: IEpaCorrespondenceDetails;\r\n}\r\n\r\nexport const GetEdenMessagesByTaskFetchUrl = (\r\n taskId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/EdenMessage/listbytaskid?task_id=${taskId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/edenmessages-bytaskid`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetEdenMessagesByRegardingFetchUrl = (\r\n regardingObjectId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/EdenMessage/listbyregardingid?regarding_id=${regardingObjectId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/edenmessages-byregardingid`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport async function GetEdenMessageDetailsAsync(\r\n edenMessageId: string\r\n): Promise {\r\n var url = `${API_URL}/EdenMessage/byid?eden_message_id=${edenMessageId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/edenmessage-details`;\r\n }\r\n\r\n const response = await fetch(url);\r\n const body = await response.json();\r\n\r\n let isSiteVisit = false;\r\n let isComplianceInvestigation = false;\r\n\r\n if (body.taskid) {\r\n const taskDetails = await GetTaskDetailsAsync(body.taskid);\r\n if (isFindingOrRecommentation(taskDetails.type)) {\r\n isSiteVisit = true;\r\n body.findingAndRecommendation =\r\n await GetFindingAndRecommendationDetailsAsync(body.taskid);\r\n } else {\r\n isComplianceInvestigation = true;\r\n body.actionOrInstructionDetails =\r\n await GetComplianceInvestigationActionOrInstructionDetailsAsync(\r\n body.taskid\r\n );\r\n }\r\n }\r\n\r\n if (body.regardingobjectid) {\r\n if (isSiteVisit) {\r\n body.siteVisit = await GetSiteVisitDetailsAsync(body.regardingobjectid);\r\n } else if (isComplianceInvestigation) {\r\n body.complianceInvestigationDetails =\r\n await GetComplianceInvestigationDetailsAsync(body.regardingobjectid);\r\n } else {\r\n body.epaCorrespondenceDetails = await GetEpaCorrespondenceDetailsAsync(\r\n body.regardingobjectid\r\n );\r\n\r\n const lr = await GetLicenseeReturnDetailsAsync(body.regardingobjectid);\r\n\r\n if (lr.response.ok) {\r\n body.licenseeReturn = lr;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n edenmessageid: body.edenmessageid,\r\n type: body.type,\r\n licenceid: body.licenceid,\r\n reference: body.reference,\r\n status: body.status,\r\n dateraised: formatDate(body.dateraised),\r\n closeddate: formatDate(body.closeddate),\r\n message: body.message,\r\n subject: body.subject,\r\n response: body.response,\r\n regardingobjectid: body.regardingobjectid,\r\n taskid: body.taskid,\r\n siteVisit: body.siteVisit,\r\n findingAndRecommendation: body.findingAndRecommendation,\r\n complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n licenseeReturn: body.licenseeReturn,\r\n actionOrInstructionDetails: body.actionOrInstructionDetails,\r\n epaCorrespondenceDetails: body.epaCorrespondenceDetails,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetEdenMessageDetailsAsync,\r\n IEdenMessageDetails,\r\n} from \"../../api/IEdenMessage\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface EdenMessageState {\r\n fetchStatus: string;\r\n edenMessage?: IEdenMessageDetails;\r\n}\r\n\r\nconst initialState: EdenMessageState = {\r\n fetchStatus: \"Loading...\",\r\n edenMessage: undefined,\r\n};\r\n\r\nexport const loadEdenMessageAsync = createAsyncThunk(\r\n \"edenMessage/load\",\r\n async (edenMessageId: string) => {\r\n const response = await GetEdenMessageDetailsAsync(edenMessageId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const edenMessageSlice = createSlice({\r\n name: \"edenMessage\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadEdenMessageAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadEdenMessageAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.edenMessage = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectEdenMessage = (state: RootState) => state.edenMessage;\r\n\r\nexport default edenMessageSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetComplianceInvestigationDetailsAsync,\r\n IComplianceInvestigationDetails,\r\n} from \"../../api/IComplianceInvestigation\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ComplianceInvestigationState {\r\n fetchStatus: string;\r\n complianceInvestigation?: IComplianceInvestigationDetails;\r\n}\r\n\r\nconst initialState: ComplianceInvestigationState = {\r\n fetchStatus: \"Loading...\",\r\n complianceInvestigation: undefined,\r\n};\r\n\r\nexport const loadComplianceInvestigationAsync = createAsyncThunk(\r\n \"complianceInvestigation/load\",\r\n async (complianceInvestigationId: string) => {\r\n const response = await GetComplianceInvestigationDetailsAsync(\r\n complianceInvestigationId\r\n );\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const complianceInvestigationSlice = createSlice({\r\n name: \"complianceInvestigation\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadComplianceInvestigationAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadComplianceInvestigationAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.complianceInvestigation = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectComplianceInvestigation = (state: RootState) =>\r\n state.complianceInvestigation;\r\n\r\nexport default complianceInvestigationSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate, formatDateTime } from \"./DateUtils\";\r\nimport {\r\n GetComplianceInvestigationDetailsAsync,\r\n IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\n/*\r\n {\r\n \"incidentid\": \"79723798-92dc-e611-a4f6-0050568a69e2\",\r\n \"reference\": \"INCI011462\",\r\n \"subject\": \"Trigger Level Reached\",\r\n \"status\": \"Closed\",\r\n \"incidentcategory\": \"1. Minor\",\r\n \"approximatestart\": \"2017-01-14T08:00:00\"\r\n },\r\n*/\r\n\r\nexport interface IIncident {\r\n incidentid: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n incidentcategory: string;\r\n approximatestart: string;\r\n}\r\n\r\nexport interface IIncidentDetails extends IDetailsResponse {\r\n incidentid: string;\r\n type: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n licenceid: string;\r\n licenceprofileid: string;\r\n complianceinvestigationid: string;\r\n incidentcategory: string;\r\n nature: string;\r\n vulnerablereceptors: string;\r\n receptors: string;\r\n likelihoodofreoccurence: string;\r\n likelycause: string;\r\n newrecurring: string;\r\n datenotified: string;\r\n closeddate: string;\r\n approximatestart: string;\r\n firstnoticed: string;\r\n finishtime: string;\r\n notifiedparties: string;\r\n dischargepoint: string;\r\n emissionpointname: string;\r\n uncontrolledrelease: string;\r\n description: string;\r\n otherrelevantinformation: string;\r\n impactonenvironment: string;\r\n activityinprogress: string;\r\n dischargedetails: string;\r\n licence_regno: string;\r\n complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n}\r\n\r\nexport const GetIncidentsFromComplianceInvestigationFetchUrl = (\r\n complianceInvestigationId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/Incident/incidentlistbyci?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/incidents-ci`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport async function GetIncidentDetailsAsync(\r\n incidentId: string\r\n): Promise {\r\n var url = `${API_URL}/Incident/byid?incident_id=${incidentId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/incident-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n if (body.complianceinvestigationid) {\r\n body.complianceInvestigationDetails =\r\n await GetComplianceInvestigationDetailsAsync(\r\n body.complianceinvestigationid\r\n );\r\n }\r\n\r\n return {\r\n response: response,\r\n incidentid: body.incidentid,\r\n type: body.type,\r\n reference: body.reference,\r\n subject: body.subject,\r\n status: body.status,\r\n licenceid: body.licenceid,\r\n licenceprofileid: body.licenceprofileid,\r\n complianceinvestigationid: body.complianceinvestigationid,\r\n incidentcategory: body.incidentcategory,\r\n nature: body.nature,\r\n vulnerablereceptors: body.vulnerablereceptors,\r\n receptors: body.receptors,\r\n likelihoodofreoccurence: body.likelihoodofreoccurence,\r\n likelycause: body.likelycause,\r\n newrecurring: body.newrecurring,\r\n datenotified: formatDate(body.datenotified),\r\n firstnoticed: formatDate(body.firstnoticed),\r\n closeddate: formatDate(body.closeddate),\r\n approximatestart: formatDateTime(body.approximatestart),\r\n finishtime: formatDateTime(body.finishtime),\r\n notifiedparties: body.notifiedparties,\r\n dischargepoint: body.dischargepoint,\r\n emissionpointname: body.emissionpointname,\r\n uncontrolledrelease: body.uncontrolledrelease,\r\n description: body.description,\r\n otherrelevantinformation: body.otherrelevantinformation,\r\n impactonenvironment: body.impactonenvironment,\r\n activityinprogress: body.activityinprogress,\r\n dischargedetails: body.dischargedetails,\r\n complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n licence_regno: licenceDetails.reg_no,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport { GetIncidentDetailsAsync, IIncidentDetails } from \"../../api/IIncident\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface IncidentState {\r\n fetchStatus: string;\r\n incident?: IIncidentDetails;\r\n}\r\n\r\nconst initialState: IncidentState = {\r\n fetchStatus: \"Loading...\",\r\n incident: undefined,\r\n};\r\n\r\nexport const loadIncidentAsync = createAsyncThunk(\r\n \"incident/load\",\r\n async (incidentId: string) => {\r\n const response = await GetIncidentDetailsAsync(incidentId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const incidentSlice = createSlice({\r\n name: \"incident\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadIncidentAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadIncidentAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.incident = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectIncident = (state: RootState) => state.incident;\r\n\r\nexport default incidentSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport {\r\n GetComplianceInvestigationDetailsAsync,\r\n IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync } from \"./LicenceDetails\";\r\n\r\nexport interface IComplaint {\r\n complaintid: string;\r\n type: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n licenceid: string;\r\n licenceprofileid: string;\r\n datereceived: string;\r\n closeddate: string;\r\n complianceinvestigationid: string;\r\n dateoccurred: string;\r\n durationofoccurance: string;\r\n}\r\n\r\nexport interface IComplaintDetails extends IDetailsResponse {\r\n complaintid: string;\r\n type: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n licenceid: string;\r\n licenceprofileid: string;\r\n datereceived: string;\r\n closeddate: string;\r\n complianceinvestigationid: string;\r\n dateoccurred: string;\r\n durationofoccurance: string;\r\n licence_regno: string;\r\n complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n}\r\n\r\n/*\r\n \"complaintid\": \"4dc8ca34-a149-ea11-a324-0050568a2d1a\",\r\n \"type\": \"Complaint\",\r\n \"reference\": \"COM009932\",\r\n \"subject\": \"P0510-01, 06/02/20, Noise\",\r\n \"status\": \"Closed\",\r\n \"licenceid\": \"2ec7e87d-7c61-e211-9eb5-0050568a69e2\",\r\n \"licenceprofileid\": \"17481eff-ef09-4b71-b89d-f99ff3094e0f\",\r\n \"datereceived\": \"2020-02-06T00:00:00\",\r\n \"closeddate\": \"2020-03-27T00:00:00\",\r\n \"complianceinvestigationid\": null,\r\n \"dateoccurred\": \"2020-02-06T00:00:00\",\r\n \"durationofoccurance\": \"Ongoing\"\r\n*/\r\n\r\nexport const GetComplaintsFromComplianceInvestigationFetchUrl = (\r\n complianceInvestigationId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n let url = `${API_URL}/Complaint/listbyciid?ci_id=${complianceInvestigationId}${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/complaints-ci`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport async function GetComplaintDetailsAsync(\r\n complaintId: string\r\n): Promise {\r\n var url = `${API_URL}/Complaint/byid?complaint_id=${complaintId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/complaint-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n if (body.complianceinvestigationid) {\r\n body.complianceInvestigationDetails =\r\n await GetComplianceInvestigationDetailsAsync(\r\n body.complianceinvestigationid\r\n );\r\n }\r\n\r\n return {\r\n response: response,\r\n complaintid: body.complaintid,\r\n type: body.type,\r\n reference: body.reference,\r\n subject: body.subject,\r\n status: body.status,\r\n licenceid: body.licenceid,\r\n licenceprofileid: body.licenceprofileid,\r\n datereceived: formatDate(body.datereceived),\r\n closeddate: formatDate(body.closeddate),\r\n dateoccurred: formatDate(body.dateoccurred),\r\n durationofoccurance: body.durationofoccurance,\r\n complianceinvestigationid: body.complianceinvestigationid,\r\n complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n licence_regno: licenceDetails.reg_no,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetComplaintDetailsAsync,\r\n IComplaintDetails,\r\n} from \"../../api/IComplaint\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ComplaintState {\r\n fetchStatus: string;\r\n complaint?: IComplaintDetails;\r\n}\r\n\r\nconst initialState: ComplaintState = {\r\n fetchStatus: \"Loading...\",\r\n complaint: undefined,\r\n};\r\n\r\nexport const loadComplaintAsync = createAsyncThunk(\r\n \"complaint/load\",\r\n async (complaintId: string) => {\r\n const response = await GetComplaintDetailsAsync(complaintId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const complaintSlice = createSlice({\r\n name: \"complaint\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadComplaintAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadComplaintAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.complaint = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectComplaint = (state: RootState) => state.complaint;\r\n\r\nexport default complaintSlice.reducer;\r\n","import { API_URL } from \"../Config\";\r\nimport { formatDate } from \"../DateUtils\";\r\nimport { IDetailsResponse } from \"../IDetailsResponse\";\r\nimport { GetIncidentDetailsAsync, IIncidentDetails } from \"../IIncident\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"../LicenceDetails\";\r\n\r\nexport interface IIncidentUpdateRequestDetails extends IDetailsResponse {\r\n incidentupdaterequestid: string;\r\n reference: string;\r\n status: string;\r\n request: string;\r\n licenceid: string;\r\n incidentid: string;\r\n datesubmitted: string;\r\n duedate: string;\r\n incidentDetails?: IIncidentDetails;\r\n licenceDetails?: ILicenceDetails;\r\n}\r\n\r\nexport async function GetIncidentUpdateRequestDetailsAsync(\r\n incidentUpdateRequestId: string\r\n): Promise {\r\n var url = `${API_URL}/Incident/incidentupdaterequestbyid?incident_update_request_id=${incidentUpdateRequestId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/incident-update-request-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n if (body.incidentid) {\r\n body.incidentDetails = await GetIncidentDetailsAsync(body.incidentid);\r\n }\r\n\r\n return {\r\n response: response,\r\n incidentupdaterequestid: body.incidentupdaterequestid,\r\n reference: body.reference,\r\n status: body.status,\r\n request: body.request,\r\n licenceid: body.licenceid,\r\n incidentid: body.incidentid,\r\n datesubmitted: formatDate(body.datesubmitted),\r\n duedate: formatDate(body.duedate),\r\n incidentDetails: body.incidentDetails,\r\n licenceDetails: licenceDetails,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetIncidentUpdateRequestDetailsAsync,\r\n IIncidentUpdateRequestDetails,\r\n} from \"../../api/Incident/IIncidentUpdateRequestDetails\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface IncidentUpdateRequestState {\r\n fetchStatus: string;\r\n incidentUpdatRequest?: IIncidentUpdateRequestDetails;\r\n}\r\n\r\nconst initialState: IncidentUpdateRequestState = {\r\n fetchStatus: \"Loading...\",\r\n incidentUpdatRequest: undefined,\r\n};\r\n\r\nexport const loadIncidentUpdateRequestAsync = createAsyncThunk(\r\n \"incidentUpdateRequest/load\",\r\n async (incidentUpdateRequestId: string) => {\r\n const response = await GetIncidentUpdateRequestDetailsAsync(\r\n incidentUpdateRequestId\r\n );\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const incidentUpdateRequestSlice = createSlice({\r\n name: \"incidentUpdateRequest\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadIncidentUpdateRequestAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadIncidentUpdateRequestAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.incidentUpdatRequest = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectIncidentUpdateRequest = (state: RootState) =>\r\n state.incidentUpdateRequest;\r\n\r\nexport default incidentUpdateRequestSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"./LicenceDetails\";\r\n\r\nexport interface IMeetingDetails extends IDetailsResponse {\r\n meetingid: string;\r\n type: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n meetingdate: string;\r\n meetingtime: string;\r\n organisationid: string;\r\n location: string;\r\n regarding: string;\r\n attendeesepa: string;\r\n attendeesnoepa: string;\r\n actionitems: string;\r\n licenceid: string;\r\n originalmeetingid: string;\r\n organisationname: string;\r\n licence_regno: string;\r\n licenceDetails: ILicenceDetails;\r\n}\r\n\r\nexport async function GetMeetingDetailsAsync(\r\n meetingId: string\r\n): Promise {\r\n var url = `${API_URL}/MeetingCorrespondence/meetingbyid?meeting_id=${meetingId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/meeting-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n return {\r\n response: response,\r\n meetingid: body.meetingid,\r\n type: body.type,\r\n reference: body.reference,\r\n subject: body.subject,\r\n status: body.status,\r\n meetingdate: formatDate(body.meetingdate),\r\n meetingtime: body.meetingtime,\r\n organisationid: body.organisationid,\r\n location: body.location,\r\n regarding: body.regarding,\r\n attendeesepa: body.attendeesepa,\r\n attendeesnoepa: body.attendeesnoepa,\r\n actionitems: body.actionitems,\r\n originalmeetingid: body.originalmeetingid,\r\n organisationname: body.organisationname,\r\n licence_regno: licenceDetails.reg_no,\r\n licenceDetails: licenceDetails,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport { GetMeetingDetailsAsync, IMeetingDetails } from \"../../api/IMeeting\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface MeetingState {\r\n fetchStatus: string;\r\n meeting?: IMeetingDetails;\r\n}\r\n\r\nconst initialState: MeetingState = {\r\n fetchStatus: \"Loading...\",\r\n meeting: undefined,\r\n};\r\n\r\nexport const loadMeetingAsync = createAsyncThunk(\r\n \"meeting/load\",\r\n async (meetingId: string) => {\r\n const response = await GetMeetingDetailsAsync(meetingId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const meetingSlice = createSlice({\r\n name: \"meeting\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadMeetingAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadMeetingAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.meeting = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectMeeting = (state: RootState) => state.meeting;\r\n\r\nexport default meetingSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { GetComplaintDetailsAsync, IComplaintDetails } from \"./IComplaint\";\r\nimport {\r\n GetComplianceInvestigationDetailsAsync,\r\n IComplianceInvestigationDetails,\r\n} from \"./IComplianceInvestigation\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetIncidentDetailsAsync, IIncidentDetails } from \"./IIncident\";\r\nimport {\r\n GetLicenseeReturnDetailsAsync,\r\n ILicenseeReturnDetails,\r\n} from \"./ILicenseeReturns\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"./LicenceDetails\";\r\nimport { PageResult } from \"./Pagination\";\r\n\r\nexport interface INonCompliance {\r\n noncomplianceid: string;\r\n type: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n licenceid: string;\r\n licenceprofileid: string;\r\n datesubmitted: string;\r\n condition: string;\r\n complianceinvestigationid: string;\r\n licenseesubmissionid: string;\r\n incidentid: string;\r\n complaintid: string;\r\n description: string;\r\n dateofnoncompliance: string;\r\n dateofnotification: string;\r\n}\r\n\r\nexport interface InonCompliancesList extends PageResult {\r\n list: INonCompliance[];\r\n}\r\n\r\nexport interface INonComplianceDetails extends IDetailsResponse {\r\n noncomplianceid: string;\r\n type: string;\r\n reference: string;\r\n subject: string;\r\n status: string;\r\n licenceid: string;\r\n licenceprofileid: string;\r\n datesubmitted: string;\r\n condition: string;\r\n complianceinvestigationid: string;\r\n licenseesubmissionid: string;\r\n incidentid: string;\r\n complaintid: string;\r\n description: string;\r\n dateofnoncompliance: string;\r\n dateofnotification: string;\r\n complianceInvestigationDetails?: IComplianceInvestigationDetails;\r\n licenseeReturnDetails?: ILicenseeReturnDetails;\r\n licenceDetails: ILicenceDetails;\r\n incidentDetails?: IIncidentDetails;\r\n complaintDetails?: IComplaintDetails;\r\n}\r\n\r\nexport const GetNonCompliancesByComplianceInvestigationFetchUrl = (\r\n complianceInvestigationId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n var filterParams = \"\";\r\n if (searchText && searchText.length > 0) {\r\n filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n let url = `${API_URL}/NonCompliance/listbyciid?ci_id=${complianceInvestigationId}${params}${filterParams}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/noncompliances-list-byci`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetNonCompliancesByLicenseeReturnFetchUrl = (\r\n licenseeReturnId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n var filterParams = \"\";\r\n if (searchText && searchText.length > 0) {\r\n filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n let url = `${API_URL}/NonCompliance/listbylrid?lr_id=${licenseeReturnId}${params}${filterParams}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/noncompliances-list-byci`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetNonCompliancesByIncidentFetchUrl = (\r\n incidentId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n var filterParams = \"\";\r\n if (searchText && searchText.length > 0) {\r\n filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n let url = `${API_URL}/NonCompliance/listbyincidentid?incident_id=${incidentId}${params}${filterParams}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/noncompliances-list-byci`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetNonCompliancesByComplaintFetchUrl = (\r\n complaintId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n var filterParams = \"\";\r\n if (searchText && searchText.length > 0) {\r\n filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n let url = `${API_URL}/NonCompliance/listbycomplaintid?complaint_id=${complaintId}${params}${filterParams}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/noncompliances-list-byci`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetNonCompliancesBySiteVisitFetchUrl = (\r\n siteVisitId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n var params = `&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n var filterParams = \"\";\r\n if (searchText && searchText.length > 0) {\r\n filterParams += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n let url = `${API_URL}/NonCompliance/listbysvid?sv_id=${siteVisitId}${params}${filterParams}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/noncompliances-list-svci`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport async function GetNonComplianceDetailsAsync(\r\n nonComplianceId: string\r\n): Promise {\r\n var url = `${API_URL}/NonCompliance/byid?nc_id=${nonComplianceId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/noncompliance-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n const licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n if (body.complianceinvestigationid) {\r\n body.complianceInvestigationDetails =\r\n await GetComplianceInvestigationDetailsAsync(\r\n body.complianceinvestigationid\r\n );\r\n }\r\n\r\n if (body.licenseesubmissionid) {\r\n body.licenseeReturnDetails = await GetLicenseeReturnDetailsAsync(\r\n body.licenseesubmissionid\r\n );\r\n }\r\n\r\n if (body.incidentid) {\r\n body.incidentDetails = await GetIncidentDetailsAsync(body.incidentid);\r\n }\r\n\r\n if (body.complaintid) {\r\n body.complaintDetails = await GetComplaintDetailsAsync(body.complaintid);\r\n }\r\n\r\n return {\r\n response: response,\r\n noncomplianceid: body.noncomplianceid,\r\n type: body.type,\r\n reference: body.reference,\r\n subject: body.subject,\r\n status: body.status,\r\n licenceid: body.licenceid,\r\n licenceprofileid: body.licenceprofileid,\r\n datesubmitted: formatDate(body.datesubmitted),\r\n condition: body.condition,\r\n complianceinvestigationid: body.complianceinvestigationid,\r\n licenseesubmissionid: body.licenseesubmissionid,\r\n incidentid: body.incidentid,\r\n complaintid: body.complaintid,\r\n description: body.description,\r\n dateofnoncompliance: formatDate(body.dateofnoncompliance),\r\n dateofnotification: formatDate(body.dateofnotification),\r\n complianceInvestigationDetails: body.complianceInvestigationDetails,\r\n licenseeReturnDetails: body.licenseeReturnDetails,\r\n licenceDetails: licenceDetails,\r\n incidentDetails: body.incidentDetails,\r\n complaintDetails: body.complaintDetails,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetNonComplianceDetailsAsync,\r\n INonComplianceDetails,\r\n} from \"../../api/INonCompliance\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface NonComplianceState {\r\n fetchStatus: string;\r\n nonCompliance?: INonComplianceDetails;\r\n}\r\n\r\nconst initialState: NonComplianceState = {\r\n fetchStatus: \"Loading...\",\r\n nonCompliance: undefined,\r\n};\r\n\r\nexport const loadNonComplianceAsync = createAsyncThunk(\r\n \"nonCompliance/load\",\r\n async (nonComplianceId: string) => {\r\n const response = await GetNonComplianceDetailsAsync(nonComplianceId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const nonComplianceSlice = createSlice({\r\n name: \"nonCompliance\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadNonComplianceAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadNonComplianceAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.nonCompliance = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectNonCompliance = (state: RootState) => state.nonCompliance;\r\n\r\nexport default nonComplianceSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetComplianceInvestigationActionOrInstructionDetailsAsync,\r\n IComplianceInvestigationActionOrInstructionDetails,\r\n} from \"../../api/ComplianceInvestigation/IComplianceInvestigationActionsAndInstructions\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ActionOrInstructionState {\r\n fetchStatus: string;\r\n actionOrInstruction?: IComplianceInvestigationActionOrInstructionDetails;\r\n}\r\n\r\nconst initialState: ActionOrInstructionState = {\r\n fetchStatus: \"Loading...\",\r\n actionOrInstruction: undefined,\r\n};\r\n\r\nexport const loadActionOrInstructionAsync = createAsyncThunk(\r\n \"actionOrInstruction/load\",\r\n async (taskId: string) => {\r\n const response =\r\n await GetComplianceInvestigationActionOrInstructionDetailsAsync(taskId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const actionOrInstructionSlice = createSlice({\r\n name: \"actionOrInstruction\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadActionOrInstructionAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadActionOrInstructionAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.actionOrInstruction = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectActionOrInstruction = (state: RootState) =>\r\n state.actionOrInstruction;\r\n\r\nexport default actionOrInstructionSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetEpaCorrespondenceDetailsAsync,\r\n IEpaCorrespondenceDetails,\r\n} from \"../../api/IEpaCorrespondence\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface EpaCorrespondenceState {\r\n fetchStatus: string;\r\n epaCorrespondence?: IEpaCorrespondenceDetails;\r\n}\r\n\r\nconst initialState: EpaCorrespondenceState = {\r\n fetchStatus: \"Loading...\",\r\n epaCorrespondence: undefined,\r\n};\r\n\r\nexport const loadEpaCorrespondenceAsync = createAsyncThunk(\r\n \"epaCorrespondence/load\",\r\n async (epaCorrespondenceId: string) => {\r\n const response = await GetEpaCorrespondenceDetailsAsync(\r\n epaCorrespondenceId\r\n );\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const epaCorrespondenceSlice = createSlice({\r\n name: \"epaCorrespondence\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadEpaCorrespondenceAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadEpaCorrespondenceAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.epaCorrespondence = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectEpaCorrespondence = (state: RootState) =>\r\n state.epaCorrespondence;\r\n\r\nexport default epaCorrespondenceSlice.reducer;\r\n","import { API_URL } from \"./Config\";\r\nimport { formatDate } from \"./DateUtils\";\r\nimport { IDetailsResponse } from \"./IDetailsResponse\";\r\nimport { GetLicenseDetailsAsync, ILicenceDetails } from \"./LicenceDetails\";\r\n\r\nexport interface IThirdPartyCorrespondenceDetails extends IDetailsResponse {\r\n thirdpartycorrespondenceid: string;\r\n type: string;\r\n reference: string;\r\n receivedfrom: string;\r\n subject: string;\r\n status: string;\r\n dateoriginalcorrespondencereceived: string;\r\n dateoforiginalcorrespondence: string;\r\n inspectorsupdate: string;\r\n correspondencetype: string;\r\n licenceid: string;\r\n licenceprofileid: string;\r\n licenceDetails?: ILicenceDetails;\r\n}\r\n\r\nexport async function GetThirdPartyCorrespondenceDetailsAsync(\r\n thirdPartyCorrespondenceId: string\r\n): Promise {\r\n var url = `${API_URL}/MeetingCorrespondence/thirdpartycorrespondencebyid?thirdpartycorrespondence_id=${thirdPartyCorrespondenceId}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/3rdparty-correspondence`;\r\n }\r\n\r\n var response = await fetch(url);\r\n var body = await response.json();\r\n\r\n body.licenceDetails = await GetLicenseDetailsAsync(body.licenceid);\r\n\r\n return {\r\n response: response,\r\n thirdpartycorrespondenceid: body.thirdpartycorrespondenceid,\r\n type: body.type,\r\n reference: body.reference,\r\n receivedfrom: body.receivedfrom,\r\n subject: body.subject,\r\n status: body.status,\r\n dateoriginalcorrespondencereceived: formatDate(\r\n body.dateoriginalcorrespondencereceived\r\n ),\r\n dateoforiginalcorrespondence: formatDate(body.dateoforiginalcorrespondence),\r\n inspectorsupdate: body.inspectorsupdate,\r\n correspondencetype: body.correspondencetype,\r\n licenceid: body.licenceid,\r\n licenceprofileid: body.licenceprofileid,\r\n licenceDetails: body.licenceDetails,\r\n };\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetThirdPartyCorrespondenceDetailsAsync,\r\n IThirdPartyCorrespondenceDetails,\r\n} from \"../../api/IThirdPartyCorrespondence\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport interface ThirdPartyCorrespondenceState {\r\n fetchStatus: string;\r\n thirdPartyCorrespondence?: IThirdPartyCorrespondenceDetails;\r\n}\r\n\r\nconst initialState: ThirdPartyCorrespondenceState = {\r\n fetchStatus: \"Loading...\",\r\n thirdPartyCorrespondence: undefined,\r\n};\r\n\r\nexport const loadThirdPartyCorrespondenceAsync = createAsyncThunk(\r\n \"thirdPartyCorrespondence/load\",\r\n async (thirdPartyCorrespondenceId: string) => {\r\n const response = await GetThirdPartyCorrespondenceDetailsAsync(\r\n thirdPartyCorrespondenceId\r\n );\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const thirdPartyCorrespondenceSlice = createSlice({\r\n name: \"thirdPartyCorrespondence\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadThirdPartyCorrespondenceAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadThirdPartyCorrespondenceAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.thirdPartyCorrespondence = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectThirdPartyCorrespondence = (state: RootState) =>\r\n state.thirdPartyCorrespondence;\r\n\r\nexport default thirdPartyCorrespondenceSlice.reducer;\r\n","let API_DOMAIN = \"http://localhost:3001\";\r\n\r\nswitch (process.env.REACT_APP_EPA_ENV) {\r\n case \"localhost\":\r\n API_DOMAIN = \"http://localhost:3001\"; //using https://github.com/typicode/json-server#alternative-port\r\n break;\r\n\r\n case \"inttest\":\r\n API_DOMAIN = \"https://data-int.epa.ie/byproduct/api/v1\";\r\n break;\r\n\r\n case \"bustest\":\r\n API_DOMAIN = \"https://data-tst.epa.ie/byproduct/api/v1\";\r\n break;\r\n\r\n case \"staging\":\r\n API_DOMAIN = \"https://data-stg.epa.ie/byproduct/api/v1\";\r\n break;\r\n\r\n case \"production\":\r\n API_DOMAIN = \"https://data.epa.ie/byproduct/api/v1\";\r\n break;\r\n}\r\nexport const ENV = API_DOMAIN;\r\nexport const API_URL_ODATA = `${ENV}/odata`;\r\nexport const API_URL = `${ENV}`;\r\n","import { EpaGridOrderByFetchParams } from \"../../leap-components/Grid/EpaGridProps\";\r\nimport { API_URL } from \"./Config\";\r\nimport { FetchResponse } from \".././FetchResponse\";\r\n\r\nexport interface INotifier {\r\n notifier_id: string;\r\n notifier_name: string;\r\n date_received: string;\r\n date_closed: string;\r\n notified_material: string;\r\n reg_no: string;\r\n status: string;\r\n open_for_submissions: boolean;\r\n notified_material_description: string;\r\n quantity: number;\r\n greenfield_or_brownfield: string;\r\n material_production_process: string;\r\n activities_taken: string;\r\n specific_use: string;\r\n source_county: string;\r\n source_name_and_address: string;\r\n source_eircode: string;\r\n source_eastings: string;\r\n source_northings: string;\r\n source_local_authority: string;\r\n use_county: string;\r\n use_name_and_address: string;\r\n use_eir_code: string;\r\n use_eastings: string;\r\n use_northings: string;\r\n use_local_authority: string;\r\n planning_status: string;\r\n planning_refno: string;\r\n planning_grant_ref_date: string;\r\n planning_expiry_date: string;\r\n planning_quantity_authorised: number;\r\n environmental_authorisation: string;\r\n environmental_authorisation_details: string;\r\n type: string;\r\n decision_ref_no: string;\r\n hyperlink: string;\r\n waste_authorisation_type: string;\r\n epa_waste_authorisation: string;\r\n local_authority_id: string;\r\n waste_authorisation_regno: string;\r\n waste_authorisation_expiry_date: string;\r\n licence_type: string;\r\n}\r\n\r\nexport interface INotifierDetails {\r\n notifier_id: string;\r\n notifier_name: string;\r\n date_received: string;\r\n reg_no: string;\r\n status: string;\r\n open_for_submissions: boolean;\r\n source_local_authority: string;\r\n use_local_authority: string;\r\n}\r\n\r\nexport interface INotifierResponse {\r\n response: FetchResponse;\r\n notifier?: INotifierDetails;\r\n}\r\n\r\nexport async function GetNotifierByIdFetchUrl(\r\n notifier_id: string\r\n): Promise {\r\n var url = `${API_URL}/Notifiers/byid?notifier_id=${notifier_id}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/notifier`;\r\n }\r\n\r\n var response = await fetch(url);\r\n\r\n if (!response.ok) {\r\n return {\r\n response: {\r\n ok: false,\r\n httpStatusCode: response.status,\r\n httpErr: response.statusText,\r\n },\r\n };\r\n }\r\n\r\n var body = await response.json();\r\n\r\n const notifier = {\r\n notifier_id: body.notifier_id,\r\n notifier_name: body.notifier_name,\r\n date_received: body.date_received,\r\n reg_no: body.reg_no,\r\n status: body.status,\r\n source_local_authority: body.source_local_authority,\r\n use_local_authority: body.use_local_authority,\r\n open_for_submissions: body.open_for_submissions,\r\n };\r\n\r\n return {\r\n response: {},\r\n notifier: notifier,\r\n };\r\n}\r\n\r\nexport const GetNotifiersFetchUrl = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n filters: any\r\n) => {\r\n let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n let url = `${API_URL}/Notifiers${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/notifiers`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetFilteredNotifiersFetchUrl = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (filters) {\r\n for (var i = 0; i < filters.length; i++) {\r\n var f = filters[i];\r\n let filterId = f.id;\r\n\r\n if (f.value != \"All\") params += `&${filterId}=${f.value}`;\r\n }\r\n }\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n if (orderBy) {\r\n let orderByParam = \"\";\r\n switch (orderBy?.orderByName) {\r\n case \"Date Closed\":\r\n orderByParam = \"date_closed\";\r\n break;\r\n\r\n case \"Date Received\":\r\n orderByParam = \"date_received\";\r\n break;\r\n\r\n case \"Reg Number\":\r\n default:\r\n orderByParam = \"notification_number\";\r\n }\r\n\r\n params += `&order_by=${encodeURIComponent(orderByParam)}&ascending=${\r\n orderBy.orderByAscending ? \"true\" : \"false\"\r\n }`;\r\n }\r\n\r\n let url = `${API_URL}/Notifiers/filteredregistrationslist${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/notifiers`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetFilteredNotifiersCsv = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (filters) {\r\n for (var i = 0; i < filters.length; i++) {\r\n var f = filters[i];\r\n let filterId = f.id;\r\n params += `&${filterId}=${f.value}`;\r\n }\r\n }\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n if (orderBy) {\r\n let orderByParam = \"\";\r\n switch (orderBy?.orderByName) {\r\n case \"Date Closed\":\r\n orderByParam = \"date_closed\";\r\n break;\r\n\r\n case \"Date Received\":\r\n orderByParam = \"date_received\";\r\n break;\r\n\r\n case \"Reg Number\":\r\n default:\r\n orderByParam = \"notification_number\";\r\n }\r\n\r\n params += `&order_by=${encodeURIComponent(orderByParam)}&ascending=${\r\n orderBy.orderByAscending ? \"true\" : \"false\"\r\n }`;\r\n }\r\n\r\n let url = `${API_URL}/Notifiers/filteredresitrationscsv${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/notifiers`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetFilteredEowsFetchUrl = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (filters) {\r\n for (var i = 0; i < filters.length; i++) {\r\n var f = filters[i];\r\n let filterId = f.id;\r\n\r\n if (f.value != \"All\") params += `&${filterId}=${f.value}`;\r\n }\r\n }\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n if (orderBy) {\r\n let orderByParam = \"\";\r\n switch (orderBy?.orderByName) {\r\n case \"Registration Date\":\r\n orderByParam = \"date_received\";\r\n break;\r\n\r\n case \"Operator\":\r\n orderByParam = \"notifier_name\";\r\n break;\r\n\r\n case \"Reg Number\":\r\n default:\r\n orderByParam = \"notification_number\";\r\n }\r\n\r\n params += `&order_by=${encodeURIComponent(orderByParam)}&ascending=${\r\n orderBy.orderByAscending ? \"true\" : \"false\"\r\n }`;\r\n }\r\n\r\n let url = `${API_URL}/Notifiers/filteredeowlist${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/eows`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetFilteredEowsCsv = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (filters) {\r\n for (var i = 0; i < filters.length; i++) {\r\n var f = filters[i];\r\n let filterId = f.id;\r\n params += `&${filterId}=${f.value}`;\r\n }\r\n }\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n if (orderBy) {\r\n let orderByParam = \"\";\r\n switch (orderBy?.orderByName) {\r\n case \"Registration Date\":\r\n orderByParam = \"date_received\";\r\n break;\r\n\r\n case \"Operator\":\r\n orderByParam = \"notifier_name\";\r\n break;\r\n\r\n case \"Reg Number\":\r\n default:\r\n orderByParam = \"notification_number\";\r\n }\r\n\r\n params += `&order_by=${encodeURIComponent(orderByParam)}&ascending=${\r\n orderBy.orderByAscending ? \"true\" : \"false\"\r\n }`;\r\n }\r\n\r\n let url = `${API_URL}/Notifiers/filteredeowcsv${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/eows`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetFilteredDocumentsFetchUrl = (\r\n notifierId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `?notifier_id=${notifierId}&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (filters) {\r\n for (var i = 0; i < filters.length; i++) {\r\n var f = filters[i];\r\n let filterId = f.id;\r\n params += `&${filterId}=${f.value}`;\r\n }\r\n }\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n let url = `${API_URL}/Documents/bynotifier${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/documents`;\r\n }\r\n\r\n return url;\r\n};\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetNotifierByIdFetchUrl,\r\n INotifierResponse,\r\n} from \"../../../../api/CircularEconomy/INotifiers\";\r\nimport { RootState } from \"../../../../redux/store\";\r\n\r\nexport interface NotifierState {\r\n fetchStatus: string;\r\n error: any;\r\n NotifierResponse?: INotifierResponse;\r\n}\r\n\r\nconst initialState: NotifierState = {\r\n error: undefined,\r\n fetchStatus: \"Loading...\",\r\n NotifierResponse: undefined,\r\n};\r\n\r\nexport const loadNotifierAsync = createAsyncThunk(\r\n \"notifier/load\",\r\n async (notifierId: string) => {\r\n const response = await GetNotifierByIdFetchUrl(notifierId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const notifierSlice = createSlice({\r\n name: \"notifier\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadNotifierAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(loadNotifierAsync.fulfilled, (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.NotifierResponse = action.payload;\r\n })\r\n .addCase(loadNotifierAsync.rejected, (state, action) => {\r\n state.fetchStatus = \"rejected\";\r\n state.error = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectNotifierResponse = (state: RootState) =>\r\n state.notifierResponse;\r\n\r\nexport default notifierSlice.reducer;\r\n","let API_DOMAIN = \"http://localhost:3001\";\r\nlet IdPropertyName = \"id\";\r\n\r\nswitch (process.env.REACT_APP_EPA_ENV) {\r\n case \"localhost\":\r\n API_DOMAIN = \"http://localhost:3001\";\r\n break;\r\n\r\n case \"inttest\":\r\n API_DOMAIN = \"https://data-int.epa.ie/leap/api/v1\";\r\n break;\r\n\r\n case \"bustest\":\r\n API_DOMAIN = \"https://data-tst.epa.ie/leap/api/v1\";\r\n break;\r\n\r\n case \"staging\":\r\n API_DOMAIN = \"https://data-stg.epa.ie/leap/api/v1\";\r\n break;\r\n\r\n case \"production\":\r\n API_DOMAIN = \"https://data.epa.ie/leap/api/v1\";\r\n break;\r\n}\r\nexport const ENV = API_DOMAIN;\r\nexport const API_URL_ODATA = `${ENV}/odata`;\r\nexport const API_URL = `${ENV}`;\r\n","import { EpaGridOrderByFetchParams } from \"../../../leap-components/Grid/EpaGridProps\";\r\nimport { API_URL } from \"./Config\";\r\nimport { FetchResponse } from \"../../FetchResponse\";\r\nimport { PageResult } from \"../../Pagination\";\r\n\r\nexport interface ICertificateOfRegistration {\r\n licence_id: string;\r\n reg_no: string;\r\n licence_type: string;\r\n licence_name: string;\r\n valid_application_date: string;\r\n site_name: string;\r\n site_computed: string;\r\n local_authority_org_name: string;\r\n date_of_licence: string;\r\n licence_status: string;\r\n licence_application_status: string;\r\n main_class_of_activity: string;\r\n waste_category: string;\r\n expiry_date: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationDetails {\r\n licence_id: string;\r\n reg_no: string;\r\n licence_type: string;\r\n licence_name: string;\r\n valid_application_date: string;\r\n site_name: string;\r\n site_computed: string;\r\n local_authority_org_name: string;\r\n date_of_licence: string;\r\n licence_status: string;\r\n licence_application_status: string;\r\n main_class_of_activity: string;\r\n waste_category: string;\r\n expiry_date: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationDetailsResponse {\r\n response: FetchResponse;\r\n certificateOfRegistration?: ICertificateOfRegistrationDetails;\r\n}\r\n\r\nexport async function GetCertificateOfRegistrationByIdFetchUrl(\r\n licence_id: string\r\n): Promise {\r\n var url = `${API_URL}/Licence/corbyid?licence_id=${licence_id}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/cor-details`;\r\n }\r\n\r\n var response = await fetch(url);\r\n\r\n if (!response.ok) {\r\n return {\r\n response: {\r\n ok: false,\r\n httpStatusCode: response.status,\r\n httpErr: response.statusText,\r\n },\r\n };\r\n }\r\n\r\n var body = await response.json();\r\n\r\n const certificateOfRegistration = {\r\n licence_id: body.licence_id,\r\n reg_no: body.reg_no,\r\n licence_type: body.licence_type,\r\n licence_name: body.licence_name,\r\n valid_application_date: body.valid_application_date,\r\n site_name: body.site_name,\r\n site_computed: body.site_computed,\r\n local_authority_org_name: body.local_authority_org_name,\r\n date_of_licence: body.date_of_licence,\r\n licence_status: body.licence_status,\r\n licence_application_status: body.licence_application_status,\r\n main_class_of_activity: body.main_class_of_activity,\r\n waste_category: body.waste_category,\r\n expiry_date: body.expiry_date,\r\n };\r\n\r\n return {\r\n response: {},\r\n certificateOfRegistration: certificateOfRegistration,\r\n };\r\n}\r\n\r\nconst convertColumnNameToFilterParam = (filterName: string) => {\r\n switch (filterName) {\r\n case \"licence_status\":\r\n return \"status\";\r\n case \"local_authority_org_name\":\r\n return \"local_authority\";\r\n case \"waste_category\":\r\n return \"waste_category\";\r\n case \"main_class_of_activity\":\r\n return \"class_of_activity\";\r\n default:\r\n return filterName;\r\n }\r\n};\r\n\r\nexport const GetCertificatesOfRegistrationFetchUrl = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (filters) {\r\n for (var i = 0; i < filters.length; i++) {\r\n var f = filters[i];\r\n let filterId = f.id;\r\n\r\n if (f.value != \"All\")\r\n params += `&${convertColumnNameToFilterParam(filterId)}=${f.value}`;\r\n }\r\n }\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n if (orderBy) {\r\n let orderByParam = \"\";\r\n switch (orderBy?.orderByName) {\r\n case \"Date Received\":\r\n orderByParam = \"date\";\r\n break;\r\n\r\n case \"Reg Number\":\r\n default:\r\n orderByParam = \"regno\";\r\n }\r\n\r\n params += `&order_by=${encodeURIComponent(orderByParam)}${\r\n orderBy.orderByAscending ? \"\" : \"[desc]\"\r\n }`;\r\n }\r\n\r\n let url = `${API_URL}/Licence/corlicenceslist${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/certificates-of-registration`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetCertificatesOfRegistrationCsv = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n) => {\r\n let params = `?page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (filters) {\r\n for (var i = 0; i < filters.length; i++) {\r\n var f = filters[i];\r\n let filterId = f.id;\r\n\r\n if (f.value != \"All\")\r\n params += `&${convertColumnNameToFilterParam(filterId)}=${f.value}`;\r\n }\r\n }\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n if (orderBy) {\r\n let orderByParam = \"\";\r\n switch (orderBy?.orderByName) {\r\n case \"Date Received\":\r\n orderByParam = \"date\";\r\n break;\r\n\r\n case \"Reg Number\":\r\n default:\r\n orderByParam = \"regno\";\r\n }\r\n\r\n params += `&order_by=${encodeURIComponent(orderByParam)}${\r\n orderBy.orderByAscending ? \"\" : \"[desc]\"\r\n }`;\r\n }\r\n\r\n let url = `${API_URL}/Licence/corlicenceslistcsv${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/certificates-of-registration`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport const GetFilteredDocumentsFetchUrl = (\r\n licenceId: string,\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n) => {\r\n let params = `?licence_id=${licenceId}&page=${pageNo}&per_page=${recordsPerPage}`;\r\n\r\n if (filters) {\r\n for (var i = 0; i < filters.length; i++) {\r\n var f = filters[i];\r\n let filterId = f.id;\r\n params += `&${filterId}=${f.value}`;\r\n }\r\n }\r\n\r\n if (searchText.length > 0) {\r\n params += `&search_term=${encodeURIComponent(searchText)}`;\r\n }\r\n\r\n let url = `${API_URL}/Document/listbylicenceid${params}`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/cor-documents`;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexport interface ICertificateOfRegistrationStatusFilterValue {\r\n status: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationStatusesList extends PageResult {\r\n list: ICertificateOfRegistrationStatusFilterValue[];\r\n}\r\n\r\nexport async function GetStatusFilterValues(): Promise {\r\n let url = `${API_URL}/Licence/corlicencestatusfilter`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/cor-licences-status-filter`;\r\n }\r\n\r\n let response = await fetch(url);\r\n let body = await response.json();\r\n body.list = body.list.map((item) => {\r\n return {\r\n status: item.status,\r\n };\r\n });\r\n return body;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationLocalAuthorityValue {\r\n local_authority: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationLocalAuthoritiesList\r\n extends PageResult {\r\n list: ICertificateOfRegistrationLocalAuthorityValue[];\r\n}\r\n\r\nexport async function GetLocalAuthorityFilterValues(): Promise {\r\n let url = `${API_URL}/Licence/corlicencelocalauthoritiesfilter`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/cor-licences-local-authorities-filter`;\r\n }\r\n\r\n let response = await fetch(url);\r\n let body = (\r\n await response.json()\r\n );\r\n body.list = body.list.map((item) => {\r\n return {\r\n local_authority: item.local_authority,\r\n };\r\n });\r\n return body;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationWasteCategoryValue {\r\n waste_category: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationWasteCategoriesList\r\n extends PageResult {\r\n list: ICertificateOfRegistrationWasteCategoryValue[];\r\n}\r\n\r\nexport async function GetWasteCategoryFilterValues(): Promise {\r\n let url = `${API_URL}/Licence/corlicencewastecategoriesfilter`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/cor-licences-waste-categories-filter`;\r\n }\r\n\r\n let response = await fetch(url);\r\n let body = (\r\n await response.json()\r\n );\r\n body.list = body.list.map((item) => {\r\n return {\r\n waste_category: item.waste_category,\r\n };\r\n });\r\n return body;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationClassOfActivityValue {\r\n class_of_activity: string;\r\n}\r\n\r\nexport interface ICertificateOfRegistrationClassesOfActivityList\r\n extends PageResult {\r\n list: ICertificateOfRegistrationClassOfActivityValue[];\r\n}\r\n\r\nexport async function GetClassOfActivityFilterValues(): Promise {\r\n let url = `${API_URL}/Licence/corlicenceclassessofactivitiesfilter`;\r\n\r\n if (process.env.REACT_APP_EPA_ENV === \"localhost\") {\r\n url = `${API_URL}/cor-licences-classes-of-activity-filter`;\r\n }\r\n\r\n let response = await fetch(url);\r\n let body = (\r\n await response.json()\r\n );\r\n body.list = body.list.map((item) => {\r\n return {\r\n class_of_activity: item.class_of_activity,\r\n };\r\n });\r\n return body;\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetCertificateOfRegistrationByIdFetchUrl,\r\n ICertificateOfRegistrationDetailsResponse,\r\n} from \"../../../../api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration\";\r\nimport { RootState } from \"../../../../redux/store\";\r\n\r\nexport interface CertificateOfRegistrationState {\r\n fetchStatus: string;\r\n error: any;\r\n certificateOfRegistrationResponse?: ICertificateOfRegistrationDetailsResponse;\r\n}\r\n\r\nconst initialState: CertificateOfRegistrationState = {\r\n error: undefined,\r\n fetchStatus: \"Loading...\",\r\n certificateOfRegistrationResponse: undefined,\r\n};\r\n\r\nexport const loadCertificateOfRegistrationAsync = createAsyncThunk(\r\n \"certificateOfRegistration/load\",\r\n async (licenseId: string) => {\r\n const response = await GetCertificateOfRegistrationByIdFetchUrl(licenseId);\r\n // The value we return becomes the `fulfilled` action payload\r\n return response;\r\n }\r\n);\r\n\r\nexport const certificateOfRegistrationSlice = createSlice({\r\n name: \"certificateOfRegistration\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loadCertificateOfRegistrationAsync.pending, (state) => {\r\n state.fetchStatus = \"loading\";\r\n })\r\n .addCase(\r\n loadCertificateOfRegistrationAsync.fulfilled,\r\n (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.certificateOfRegistrationResponse = action.payload;\r\n }\r\n )\r\n .addCase(loadCertificateOfRegistrationAsync.rejected, (state, action) => {\r\n state.fetchStatus = \"rejected\";\r\n state.error = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectCertificateOfRegistrationResponse = (state: RootState) =>\r\n state.certificateOfRegistrationResponse;\r\n\r\nexport default certificateOfRegistrationSlice.reducer;\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport {\r\n GetClassOfActivityFilterValues,\r\n GetLocalAuthorityFilterValues,\r\n GetStatusFilterValues,\r\n GetWasteCategoryFilterValues,\r\n ICertificateOfRegistrationClassesOfActivityList,\r\n ICertificateOfRegistrationLocalAuthoritiesList,\r\n ICertificateOfRegistrationStatusesList,\r\n ICertificateOfRegistrationWasteCategoriesList,\r\n} from \"../../../../api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration\";\r\nimport { RootState } from \"../../../../redux/store\";\r\n\r\nexport interface CertificateOfRegistrationListState {\r\n fetchStatus: string;\r\n error: any;\r\n statusFilterValues: ICertificateOfRegistrationStatusesList;\r\n localAuthorityFilterValues: ICertificateOfRegistrationLocalAuthoritiesList;\r\n wasteCategoryFilterValues: ICertificateOfRegistrationWasteCategoriesList;\r\n classOfActivityFilterValues: ICertificateOfRegistrationClassesOfActivityList;\r\n}\r\n\r\nconst initialState: CertificateOfRegistrationListState = {\r\n error: undefined,\r\n fetchStatus: \"Loading...\",\r\n statusFilterValues: { count: 0, list: [], length: 0, page: 1 },\r\n localAuthorityFilterValues: { count: 0, list: [], length: 0, page: 1 },\r\n wasteCategoryFilterValues: { count: 0, list: [], length: 0, page: 1 },\r\n classOfActivityFilterValues: { count: 0, list: [], length: 0, page: 1 },\r\n};\r\n\r\nexport const loadCertificateOfRegistrationFilterValuesAsync = createAsyncThunk(\r\n \"certificateOfRegistrationFilterValues/load\",\r\n async () => {\r\n let statusFilterValues = await GetStatusFilterValues();\r\n let localAuthorityFilterValues = await GetLocalAuthorityFilterValues();\r\n let wasteCategoryFilterValues = await GetWasteCategoryFilterValues();\r\n let classOfActivityFilterValues = await GetClassOfActivityFilterValues();\r\n\r\n // The value we return becomes the `fulfilled` action payload\r\n return {\r\n statusFilterValues: statusFilterValues,\r\n localAuthorityFilterValues: localAuthorityFilterValues,\r\n wasteCategoryFilterValues: wasteCategoryFilterValues,\r\n classOfActivityFilterValues: classOfActivityFilterValues,\r\n };\r\n }\r\n);\r\n\r\nexport const certificateOfRegistrationFilterValuesSlice = createSlice({\r\n name: \"certificateOfRegistrationFilterValues\",\r\n initialState,\r\n // The `reducers` field lets us define reducers and generate associated actions\r\n reducers: {},\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(\r\n loadCertificateOfRegistrationFilterValuesAsync.pending,\r\n (state) => {\r\n state.fetchStatus = \"loading\";\r\n }\r\n )\r\n .addCase(\r\n loadCertificateOfRegistrationFilterValuesAsync.fulfilled,\r\n (state, action) => {\r\n state.fetchStatus = \"idle\";\r\n state.statusFilterValues = action.payload.statusFilterValues;\r\n state.localAuthorityFilterValues =\r\n action.payload.localAuthorityFilterValues;\r\n state.wasteCategoryFilterValues =\r\n action.payload.wasteCategoryFilterValues;\r\n state.classOfActivityFilterValues =\r\n action.payload.classOfActivityFilterValues;\r\n }\r\n )\r\n .addCase(\r\n loadCertificateOfRegistrationFilterValuesAsync.rejected,\r\n (state, action) => {\r\n state.fetchStatus = \"rejected\";\r\n state.error = action.payload;\r\n }\r\n );\r\n },\r\n});\r\n\r\nexport const selectCertificateOfRegistrationFilterValuesResponse = (\r\n state: RootState\r\n) => state.certificateOfRegistrationListResponse;\r\n\r\nexport default certificateOfRegistrationFilterValuesSlice.reducer;\r\n","import { configureStore, ThunkAction, Action } from \"@reduxjs/toolkit\";\r\nimport counterReducer from \"./slices/counter\";\r\nimport legalReducer from \"./slices/legal\";\r\nimport licenceProfileReducer from \"./slices/licenceProfile\";\r\nimport complianceOptionsReducer from \"./slices/compliance\";\r\nimport siteVisitReducer from \"./slices/siteVisit\";\r\nimport licenseeReturnReducer from \"./slices/licenseeReturn\";\r\nimport requestForInformationReducer from \"./slices/requestForInformation\";\r\nimport findingAndRecommendationReducer from \"./slices/findingAndRecommendation\";\r\nimport instructionReducer from \"./slices/instruction\";\r\nimport edenMessageReducer from \"./slices/edenMessage\";\r\nimport complianceInvestigationReducer from \"./slices/complianceInvestigation\";\r\nimport incidentReducer from \"./slices/incident\";\r\nimport complaintReducer from \"./slices/complaint\";\r\nimport incidentUpdateRequestReducer from \"./slices/incidentUpdateRequest\";\r\nimport meetingReducer from \"./slices/meeting\";\r\nimport nonComplianceReducer from \"./slices/nonCompliance\";\r\nimport actionOrInstructionReducer from \"./slices/actionOrInstruction\";\r\nimport epaCorrespondenceReducer from \"./slices/epaCorrespondence\";\r\nimport thirdPartyCorrespondenceReducer from \"./slices/thirdPartyCorrespondence\";\r\nimport notifierReducer from \"../apps/circulareconomy/redux/slices/notifier\";\r\nimport certificationOfRegistrationReducer from \"../apps/circulareconomy/redux/slices/certificateOfRegistration\";\r\nimport certificateOfRegistrationListReducer from \"../apps/circulareconomy/redux/slices/certificateOfRegistrationList\";\r\n\r\nexport const store = configureStore({\r\n reducer: {\r\n counter: counterReducer,\r\n legal: legalReducer,\r\n licenceProfileResponse: licenceProfileReducer,\r\n complianceOptions: complianceOptionsReducer,\r\n siteVisit: siteVisitReducer,\r\n licenseeReturn: licenseeReturnReducer,\r\n requestForInformation: requestForInformationReducer,\r\n findingAndRecommendationReducer: findingAndRecommendationReducer,\r\n instruction: instructionReducer,\r\n edenMessage: edenMessageReducer,\r\n complianceInvestigation: complianceInvestigationReducer,\r\n incident: incidentReducer,\r\n complaint: complaintReducer,\r\n incidentUpdateRequest: incidentUpdateRequestReducer,\r\n meeting: meetingReducer,\r\n nonCompliance: nonComplianceReducer,\r\n actionOrInstruction: actionOrInstructionReducer,\r\n epaCorrespondence: epaCorrespondenceReducer,\r\n thirdPartyCorrespondence: thirdPartyCorrespondenceReducer,\r\n notifierResponse: notifierReducer,\r\n certificateOfRegistrationResponse: certificationOfRegistrationReducer,\r\n certificateOfRegistrationListResponse: certificateOfRegistrationListReducer,\r\n },\r\n});\r\n\r\nexport type AppDispatch = typeof store.dispatch;\r\nexport type RootState = ReturnType;\r\nexport type AppThunk = ThunkAction<\r\n ReturnType,\r\n RootState,\r\n unknown,\r\n Action\r\n>;\r\n","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\nconst resources = {\r\n en: {\r\n translation: {\r\n Search: \"Search projects…\",\r\n \"Welcome back\": \"Welcome back\",\r\n },\r\n },\r\n fr: {\r\n translation: {\r\n Search: \"Rechercher…\",\r\n \"Welcome back\": \"Bon retour\",\r\n },\r\n },\r\n de: {\r\n translation: {\r\n Search: \"Suchen…\",\r\n \"Welcome back\": \"Willkommen zurück\",\r\n },\r\n },\r\n nl: {\r\n translation: {\r\n Search: \"Zoeken…\",\r\n \"Welcome back\": \"Welkom terug\",\r\n },\r\n },\r\n};\r\n\r\ni18n.use(initReactI18next).init({\r\n resources,\r\n lng: \"en\",\r\n fallbackLng: \"en\",\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n});\r\n","import React from \"react\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface AuthGuardType {\r\n className?: string;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst Main = ({ className, children }: AuthGuardType) => (\r\n
{children}
\r\n);\r\n\r\nexport default Main;\r\n","export const SIDEBAR_POSITION = {\r\n LEFT: \"left\",\r\n RIGHT: \"right\",\r\n};\r\n\r\nexport const SIDEBAR_BEHAVIOR = {\r\n STICKY: \"sticky\",\r\n FIXED: \"fixed\",\r\n COMPACT: \"compact\",\r\n};\r\n\r\nexport const LAYOUT = {\r\n FLUID: \"fluid\",\r\n BOXED: \"boxed\",\r\n};\r\n\r\nexport const THEME = {\r\n DEFAULT: \"default\",\r\n COLORED: \"colored\",\r\n DARK: \"dark\",\r\n LIGHT: \"light\",\r\n};\r\n\r\nexport const THEME_PALETTE_LIGHT = {\r\n primary: \"#3B82EC\",\r\n \"primary-dark\": \"#1659c7\",\r\n \"primary-light\": \"#84aef2\",\r\n secondary: \"#495057\",\r\n success: \"#4BBF73\",\r\n info: \"#1F9BCF\",\r\n warning: \"#f0ad4e\",\r\n danger: \"#d9534f\",\r\n white: \"#fff\",\r\n \"gray-100\": \"#f4f7f9\",\r\n \"gray-200\": \"#e2e8ee\",\r\n \"gray-300\": \"#dee6ed\",\r\n \"gray-400\": \"#ced4da\",\r\n \"gray-500\": \"#adb5bd\",\r\n \"gray-600\": \"#6c757d\",\r\n \"gray-700\": \"#495057\",\r\n \"gray-800\": \"#020202\",\r\n \"gray-900\": \"#212529\",\r\n black: \"#000\",\r\n};\r\n\r\nexport const THEME_PALETTE_DARK = {\r\n ...THEME_PALETTE_LIGHT,\r\n \"primary-dark\": \"#84aef2\",\r\n \"primary-light\": \"#1659c7\",\r\n white: \"#293042\",\r\n \"gray-100\": \"#3e4555\",\r\n \"gray-200\": \"#545968\",\r\n \"gray-300\": \"#696e7b\",\r\n \"gray-400\": \"#7f838e\",\r\n \"gray-500\": \"#9498a1\",\r\n \"gray-600\": \"#a9acb3\",\r\n \"gray-700\": \"#bfc1c6\",\r\n \"gray-800\": \"#d4d6d9\",\r\n \"gray-900\": \"#eaeaec\",\r\n black: \"#fff\",\r\n};\r\n","import { useState } from \"react\";\r\n\r\nfunction useLocalStorage(key: any, initialValue: any) {\r\n // State to store our value\r\n // Pass initial state function to useState so logic is only executed once\r\n const [storedValue, setStoredValue] = useState(() => {\r\n try {\r\n // Get from local storage by key\r\n const item = window.localStorage.getItem(key);\r\n // Parse stored json or if none return initialValue\r\n return item ? JSON.parse(item) : initialValue;\r\n } catch (error) {\r\n // If error also return initialValue\r\n console.log(error);\r\n return initialValue;\r\n }\r\n });\r\n\r\n // Return a wrapped version of useState's setter function that\r\n // persists the new value to localStorage.\r\n const setValue = (value: any) => {\r\n try {\r\n // Allow value to be a function so we have same API as useState\r\n const valueToStore =\r\n value instanceof Function ? value(storedValue) : value;\r\n // Save state\r\n setStoredValue(valueToStore);\r\n // Save to local storage\r\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\r\n } catch (error) {\r\n // A more advanced implementation would handle the error case\r\n console.log(error);\r\n }\r\n };\r\n\r\n return [storedValue, setValue];\r\n}\r\n\r\nexport default useLocalStorage;\r\n","import { useEffect } from \"react\";\r\nimport useLocalStorage from \"./useLocalStorage\";\r\n\r\nfunction useSettingsState(key: any, initialValue: string) {\r\n const [value, setValue] = useLocalStorage(key, initialValue);\r\n\r\n useEffect(() => {\r\n // Set data attribute on body element\r\n document.body.dataset[key] = value;\r\n\r\n // Replace style sheet if dark theme gets toggled\r\n if (key === \"theme\") {\r\n const theme = value === \"dark\" ? \"dark\" : \"light\";\r\n const stylesheet = document.querySelector(\".js-stylesheet\");\r\n stylesheet!.setAttribute(\"href\", `/css/${theme}.css`);\r\n }\r\n }, [value, key]);\r\n\r\n return [value, setValue];\r\n}\r\n\r\nexport default useSettingsState;\r\n","import { TypedUseSelectorHook, useSelector } from \"react-redux\";\r\nimport type { RootState } from \"../redux/store\";\r\n\r\n// Use throughout your app instead of plain `useSelector`\r\nconst useAppSelector: TypedUseSelectorHook = useSelector;\r\n\r\nexport default useAppSelector;\r\n","import React from \"react\";\r\nimport { Navigate, useNavigate } from \"react-router-dom\";\r\nimport { THEME } from \"../../constants\";\r\nimport useSettingsState from \"../../hooks/useSettingsState\";\r\n\r\nimport useAppSelector from \"../../hooks/useAppSelector\";\r\n\r\nimport { selectAcceptedTermsOfService } from \"../../redux/slices/legal\";\r\n\r\nconst initialState = {\r\n theme: THEME.DEFAULT,\r\n setTheme: (layout: string) => {},\r\n};\r\n\r\nconst ThemeContext = React.createContext(initialState);\r\n\r\ninterface ThemeProviderType {\r\n children: React.ReactNode;\r\n}\r\n\r\nfunction ThemeProvider({ children }: ThemeProviderType) {\r\n const [theme, setTheme] = useSettingsState(\"theme\", THEME.DEFAULT);\r\n\r\n const acceptedTermsOfService = useAppSelector(selectAcceptedTermsOfService);\r\n\r\n const currentUrl = window.location.href;\r\n if (currentUrl.toLowerCase().indexOf(\"/confirm\") <= 0) {\r\n if (!acceptedTermsOfService) {\r\n var newUrl = \"/confirm?returnUrl=\" + encodeURIComponent(currentUrl);\r\n return ;\r\n }\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport { ThemeProvider, ThemeContext };\r\n","import { useContext } from \"react\";\r\nimport { ThemeContext } from \"../apps/leap/ThemeContext\";\r\n\r\nconst useTheme = () => useContext(ThemeContext);\r\n\r\nexport default useTheme;\r\n","import React, { useState } from \"react\";\r\n\r\nimport { SIDEBAR_POSITION, SIDEBAR_BEHAVIOR } from \"../constants\";\r\nimport useSettingsState from \"../hooks/useSettingsState\";\r\n\r\nconst initialState = {\r\n isOpen: true,\r\n setIsOpen: (open: boolean) => {},\r\n setPosition: (position: string) => {},\r\n setBehavior: (behavior: string) => {},\r\n position: SIDEBAR_POSITION.LEFT,\r\n behavior: SIDEBAR_BEHAVIOR.STICKY,\r\n};\r\n\r\nconst SidebarContext = React.createContext(initialState);\r\n\r\ninterface SidebarProviderType {\r\n children: React.ReactNode;\r\n}\r\n\r\nfunction SidebarProvider({ children }: SidebarProviderType) {\r\n const [isOpen, setIsOpen] = useState(true);\r\n const [position, setPosition] = useSettingsState(\r\n \"sidebarPosition\",\r\n SIDEBAR_POSITION.LEFT\r\n );\r\n const [behavior, setBehavior] = useSettingsState(\r\n \"sidebarBehavior\",\r\n SIDEBAR_BEHAVIOR.STICKY\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport { SidebarProvider, SidebarContext };\r\n","import { useContext } from \"react\";\r\nimport { SidebarContext } from \"../contexts/SidebarContext\";\r\n\r\nconst useSidebar = () => useContext(SidebarContext);\r\n\r\nexport default useSidebar;\r\n","import React from \"react\";\r\n\r\nimport { LAYOUT } from \"../constants\";\r\nimport useSettingsState from \"../hooks/useSettingsState\";\r\n\r\nconst initialState = {\r\n layout: LAYOUT.FLUID,\r\n setLayout: (layout: string) => {},\r\n};\r\n\r\nconst LayoutContext = React.createContext(initialState);\r\n\r\ninterface LayoutProviderType {\r\n children: React.ReactNode;\r\n}\r\n\r\nfunction LayoutProvider({ children }: LayoutProviderType) {\r\n const [layout, setLayout] = useSettingsState(\"layout\", LAYOUT.FLUID);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport { LayoutProvider, LayoutContext };\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nimport { Alert, Button } from \"react-bootstrap\";\r\n\r\nimport { Sliders, BookOpen } from \"react-feather\";\r\n\r\nimport {\r\n SIDEBAR_POSITION,\r\n SIDEBAR_BEHAVIOR,\r\n LAYOUT,\r\n THEME,\r\n} from \"../constants\";\r\nimport useOuterClick from \"../hooks/useOuterClick\";\r\nimport useTheme from \"../hooks/useTheme\";\r\nimport useSidebar from \"../hooks/useSidebar\";\r\nimport useLayout from \"../hooks/useLayout\";\r\n\r\nconst themeOptions = [\r\n {\r\n name: \"Default\",\r\n value: THEME.DEFAULT,\r\n },\r\n {\r\n name: \"Colored\",\r\n value: THEME.COLORED,\r\n },\r\n {\r\n name: \"Dark\",\r\n value: THEME.DARK,\r\n },\r\n {\r\n name: \"Light\",\r\n value: THEME.LIGHT,\r\n },\r\n];\r\n\r\nconst sidebarPositionOptions = [\r\n {\r\n name: \"Left\",\r\n value: SIDEBAR_POSITION.LEFT,\r\n },\r\n {\r\n name: \"Right\",\r\n value: SIDEBAR_POSITION.RIGHT,\r\n },\r\n];\r\n\r\nconst sidebarBehaviorOptions = [\r\n {\r\n name: \"Sticky\",\r\n value: SIDEBAR_BEHAVIOR.STICKY,\r\n },\r\n {\r\n name: \"Fixed\",\r\n value: SIDEBAR_BEHAVIOR.FIXED,\r\n },\r\n {\r\n name: \"Compact\",\r\n value: SIDEBAR_BEHAVIOR.COMPACT,\r\n },\r\n];\r\n\r\nconst layoutOptions = [\r\n {\r\n name: \"Fluid\",\r\n value: LAYOUT.FLUID,\r\n },\r\n {\r\n name: \"Boxed\",\r\n value: LAYOUT.BOXED,\r\n },\r\n];\r\n\r\nfunction useQuery() {\r\n return new URLSearchParams(useLocation().search);\r\n}\r\n\r\nconst Settings = () => {\r\n const query = useQuery();\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const { theme, setTheme } = useTheme();\r\n const { position, setPosition, behavior, setBehavior } = useSidebar();\r\n const { layout, setLayout } = useLayout();\r\n\r\n const innerRef = useOuterClick(() => {\r\n setIsOpen(false);\r\n });\r\n\r\n const setSettingByQueryParam = (name: string, set: any) => {\r\n const value = query.get(name);\r\n if (value) {\r\n set(value);\r\n }\r\n };\r\n\r\n // Read from query parameter (e.g. ?theme=dark)\r\n // only for demo purposes\r\n useEffect(() => {\r\n setSettingByQueryParam(\"theme\", setTheme);\r\n setSettingByQueryParam(\"sidebarPosition\", setPosition);\r\n setSettingByQueryParam(\"sidebarBehavior\", setBehavior);\r\n setSettingByQueryParam(\"layout\", setLayout);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n setIsOpen(true)}\r\n >\r\n Builder\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n setIsOpen(false)}\r\n >\r\n

Theme Builder

\r\n
\r\n
\r\n \r\n
\r\n Hey there! Set your own customized style below.\r\n Choose the ones that best fits your needs.\r\n
\r\n
\r\n\r\n
\r\n Color scheme\r\n \r\n The perfect color mode for your app.\r\n \r\n
\r\n {themeOptions.map(({ name, value }) => (\r\n
\r\n
\r\n \r\n {name}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Sidebar position\r\n \r\n \r\n Toggle the position of the sidebar.\r\n \r\n
\r\n {sidebarPositionOptions.map(({ name, value }) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Sidebar behavior\r\n \r\n \r\n Change the behavior of the sidebar.\r\n \r\n
\r\n {sidebarBehaviorOptions.map(({ name, value }) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n Layout\r\n \r\n Toggle container layout system.\r\n \r\n
\r\n {layoutOptions.map(({ name, value }) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Purchase\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Settings;\r\n","import React from \"react\";\r\n\r\nconst Wrapper: React.FC = ({ children }) => (\r\n
{children}
\r\n);\r\n\r\nexport default Wrapper;\r\n","import React from \"react\";\r\n\r\nconst Content: React.FC = ({ children }) => (\r\n
{children}
\r\n);\r\n\r\nexport default Content;\r\n","import React, { Fragment, ReactNode, useLayoutEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nfunction ScrollToTop({ children }: { children: ReactNode }) {\r\n const location = useLocation();\r\n useLayoutEffect(() => {\r\n document.getElementsByTagName(\"body\")[0].scrollTop = 0;\r\n }, [location.pathname]);\r\n return {children};\r\n}\r\n\r\nexport { ScrollToTop };\r\n","import React from \"react\";\r\nimport { Outlet } from \"react-router-dom\";\r\nimport Wrapper from \"../components/Wrapper\";\r\nimport Main from \"../components/Main\";\r\nimport Content from \"../components/Content\";\r\nimport { ScrollToTop } from \"../ScrollToTop\";\r\n\r\nconst LeapDashboard: React.FC = ({ children }) => (\r\n \r\n \r\n \r\n
\r\n \r\n {children}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default LeapDashboard;\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet-async\";\r\n\r\nimport { Button } from \"react-bootstrap\";\r\n\r\nconst Page404 = () => (\r\n \r\n \r\n
\r\n

404

\r\n

Page not found.

\r\n

\r\n The page you are looking for might have been removed.\r\n

\r\n \r\n \r\n \r\n
\r\n
\r\n);\r\n\r\nexport default Page404;\r\n","import React from \"react\";\r\nimport { Card } from \"react-bootstrap\";\r\n\r\ninterface IEpaCard {\r\n title?: string;\r\n content?: JSX.Element;\r\n}\r\n\r\nconst EpaCard = ({ title, content }: IEpaCard) => (\r\n \r\n \r\n \r\n

{title}

\r\n
\r\n
\r\n {content}\r\n
\r\n);\r\n\r\nexport default EpaCard;\r\n","import { Col, Form, Row } from \"react-bootstrap\";\r\n\r\ninterface IEpaField {\r\n label: string;\r\n value: string | JSX.Element;\r\n labelClassName?: string;\r\n valueClassName?: string;\r\n}\r\n\r\nconst EpaField = ({\r\n label,\r\n value,\r\n labelClassName,\r\n valueClassName,\r\n}: IEpaField) => {\r\n if (!labelClassName) labelClassName = \"col-4 col-md-4\";\r\n\r\n if (!valueClassName) valueClassName = \"col-8 col-md-8\";\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n {value}\r\n \r\n );\r\n};\r\n\r\nexport default EpaField;\r\n","import { useState } from \"react\";\r\nimport { useAsyncDebounce } from \"react-table\";\r\n\r\n//https://gist.github.com/srsandy/033aeb3d3f5b0cba3553fe65b6c0de09#file-globalfilter-js-L10\r\n\r\nconst ColumnFilter = ({ column }: any) => {\r\n const { filterValue, setFilter } = column;\r\n const [value, setValue] = useState(filterValue);\r\n const onChange = useAsyncDebounce((value) => {\r\n setFilter(value || undefined);\r\n }, 300);\r\n return (\r\n \r\n {\r\n setValue(e.target.value);\r\n onChange(e.target.value);\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ColumnFilter;\r\n","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faSpinner } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nvar foreGroundColor = \"#014891\";\r\n\r\nconst Spinner = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport { Spinner };\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport {\r\n usePagination,\r\n useTable,\r\n useFilters,\r\n useGlobalFilter,\r\n TableOptions,\r\n} from \"react-table\";\r\nimport { Button, Col, Form, Pagination, Row, Table } from \"react-bootstrap\";\r\nimport ColumnFilter from \"./ColumnFilter\";\r\nimport { Spinner } from \"../../icons/Spinner\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faSort,\r\n faSortDown,\r\n faSortUp,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { EpaGridOrderBy, EpaGridOrderByFetchParams } from \"../EpaGridProps\";\r\n\r\n//https://react-table-v7.tanstack.com/docs/examples/data-driven-classes-and-styles\r\n\r\n// Server side pagination: https://react-table-v7.tanstack.com/docs/faq#how-can-i-debounce-rapid-table-state-changes\r\nexport interface FetchGridProps extends TableOptions> {\r\n enableQuickFind?: boolean;\r\n enablePagination?: boolean;\r\n exportToCsvFunction?: (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n ) => string;\r\n fetchUrlFunction: (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n ) => string;\r\n //format an array response into other formatting\r\n formatFunction?: (rows: Array) => Array;\r\n //format any response format to convert into an already formatted response with an OpenApi equivalent format\r\n formatResponseFunction?: (response: any) => any;\r\n searchText?: string;\r\n orderBy?: EpaGridOrderBy;\r\n}\r\n\r\nconst FetchGrid = (props: FetchGridProps) => {\r\n const PAGE_NO = 0;\r\n\r\n const [quickFindSearch, setQuickFindSearch] = useState(\"\");\r\n const [recordsPerPage, setRecordsPerPage] = useState(10);\r\n const [totalCount, setTotalCount] = useState(0);\r\n const [tableData, setTableData] = useState([]);\r\n const [totalPage, setTotalPages] = useState(1);\r\n const [loading, setLoading] = useState(true);\r\n const { columns, data } = props;\r\n const exportToCsvFn = props.exportToCsvFunction;\r\n const fetchUrlFn = props.fetchUrlFunction;\r\n const formatFn = props.formatFunction;\r\n const formatAnyResponseFn = props.formatResponseFunction;\r\n const enablePagination = props.enablePagination === true;\r\n const enableQuickFind = props.enableQuickFind === true;\r\n const propsSearchText = props.searchText;\r\n const [orderByColumnName, setOrderByColumnName] = useState(\"\");\r\n const [orderByAscending, setOrderByAscending] = useState(false);\r\n const orderBy = props.orderBy;\r\n\r\n const fetchRowData = useCallback(\r\n async (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n fetchUrlFn: any,\r\n orderByName: string,\r\n orderByAsc: boolean\r\n ) => {\r\n try {\r\n const fetchUrl = fetchUrlFn(\r\n pageNo,\r\n recordsPerPage,\r\n propsSearchText ? propsSearchText : searchText,\r\n filters,\r\n orderBy\r\n ? { orderByName: orderByName, orderByAscending: orderByAsc }\r\n : null\r\n );\r\n const res = await fetch(fetchUrl);\r\n const json = await res.json();\r\n\r\n const reponseData = formatAnyResponseFn\r\n ? formatAnyResponseFn(json)\r\n : json;\r\n\r\n const responseTableData = formatFn\r\n ? formatFn(reponseData)\r\n : reponseData?.list || [];\r\n\r\n setTableData(responseTableData);\r\n setTotalCount(reponseData?.count || 0);\r\n setTotalPages(\r\n (recordsPerPage > 0 &&\r\n Math.floor(reponseData?.count / recordsPerPage) + 1) ||\r\n 1\r\n );\r\n setLoading(false);\r\n } catch (err) {}\r\n },\r\n []\r\n );\r\n\r\n const defaultColumn = React.useMemo(\r\n () => ({\r\n // Let's set up our default Filter UI\r\n Filter: ColumnFilter,\r\n }),\r\n []\r\n );\r\n\r\n const toggleSortBy = (columnName: string) => {\r\n if (columnName === orderByColumnName) {\r\n setOrderByAscending(!orderByAscending);\r\n } else {\r\n setOrderByColumnName(columnName);\r\n setOrderByAscending(true);\r\n }\r\n };\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n rows,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageOptions,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n setPageSize,\r\n setGlobalFilter,\r\n // Get the state from the instance\r\n state: { pageIndex, pageSize, globalFilter, filters },\r\n } = useTable(\r\n {\r\n columns,\r\n data: tableData,\r\n defaultColumn,\r\n manualPagination: true,\r\n manualGlobalFilter: true,\r\n manualFilters: true,\r\n manualSortBy: true,\r\n initialState: {\r\n pageIndex: PAGE_NO,\r\n pageSize: recordsPerPage,\r\n },\r\n pageCount: totalPage,\r\n },\r\n useFilters,\r\n useGlobalFilter,\r\n usePagination\r\n );\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n fetchRowData(\r\n pageIndex + 1,\r\n recordsPerPage,\r\n propsSearchText ? propsSearchText : quickFindSearch,\r\n filters,\r\n fetchUrlFn,\r\n orderByColumnName,\r\n orderByAscending\r\n );\r\n }, [\r\n pageIndex,\r\n recordsPerPage,\r\n quickFindSearch,\r\n filters,\r\n fetchUrlFn,\r\n propsSearchText,\r\n orderByColumnName,\r\n orderByAscending,\r\n ]);\r\n\r\n useEffect(() => {\r\n setRecordsPerPage(pageSize);\r\n gotoPage(0);\r\n }, [pageSize, gotoPage]);\r\n\r\n return (\r\n
\r\n {enableQuickFind && (\r\n \r\n \r\n {\r\n setQuickFindSearch(e.target.value);\r\n }}\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n {!loading &&\r\n rows.map((row, i) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {row.cells.map((cell) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n
\r\n {column.render(\"Header\")}\r\n {/* Add a sort direction indicator */}\r\n {orderBy &&\r\n orderBy.enabledOrderByColumns &&\r\n orderBy.enabledOrderByColumns?.filter(\r\n (colName) => colName === column.Header\r\n ).length > 0 && (\r\n toggleSortBy(column.Header as string)}\r\n >\r\n {column.Header === orderByColumnName ? ( //isSorted\r\n orderByAscending ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n
{column.canFilter ? column.render(\"Filter\") : null}
\r\n
\r\n \r\n
{cell.render(\"Cell\")}
\r\n {enablePagination && (\r\n \r\n \r\n \r\n {\"Page \"}\r\n \r\n {pageIndex + 1} of {pageOptions.length}\r\n \r\n \r\n Show:\r\n {\r\n setPageSize(Number(e.target.value));\r\n }}\r\n >\r\n {[5, 10, 20, 30, 40, 50].map((pageSize) => (\r\n \r\n ))}\r\n \r\n\r\n Go to page:\r\n {\r\n const page = e.target.value ? Number(e.target.value) - 1 : 0;\r\n gotoPage(page);\r\n }}\r\n style={{ width: \"75px\" }}\r\n />\r\n \r\n {\"Total number of records: \"}\r\n {totalCount}\r\n \r\n \r\n \r\n \r\n gotoPage(0)}\r\n disabled={!canPreviousPage}\r\n />\r\n previousPage()}\r\n disabled={!canPreviousPage}\r\n />\r\n nextPage()}\r\n disabled={!canNextPage}\r\n />\r\n gotoPage(pageCount - 1)}\r\n disabled={!canNextPage}\r\n />\r\n \r\n \r\n \r\n )}\r\n {exportToCsvFn && (\r\n \r\n \r\n {\r\n window.open(\r\n exportToCsvFn(\r\n pageIndex + 1,\r\n recordsPerPage,\r\n propsSearchText ? propsSearchText : quickFindSearch,\r\n filters\r\n ),\r\n \"_blank\"\r\n );\r\n }}\r\n >\r\n Export to CSV\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport { FetchGrid };\r\n","import { Form } from \"react-bootstrap\";\r\n\r\nfunction DefaultColumnFilter({\r\n column: { filterValue, preFilteredRows, setFilter },\r\n}: {\r\n column: any;\r\n}) {\r\n const count = preFilteredRows.length;\r\n\r\n return (\r\n {\r\n setFilter(e.target.value || undefined); // Set undefined to remove the filter entirely\r\n }}\r\n placeholder={`Search ${count} records...`}\r\n className=\"mt-2\"\r\n />\r\n );\r\n}\r\n\r\nexport { DefaultColumnFilter };\r\n","import React from \"react\";\r\nimport {\r\n useTable,\r\n useFilters,\r\n useGlobalFilter,\r\n TableOptions,\r\n} from \"react-table\";\r\n\r\n//https://react-table-v7.tanstack.com/docs/examples/data-driven-classes-and-styles\r\n\r\n// Server side pagination: https://react-table-v7.tanstack.com/docs/faq#how-can-i-debounce-rapid-table-state-changes\r\n\r\nimport { Table, Form } from \"react-bootstrap\";\r\nimport { DefaultColumnFilter } from \"./DefaultColumnFilter\";\r\n\r\nconst NoFetchGrid = (props: TableOptions>) => {\r\n const { columns, data } = props;\r\n\r\n const filterTypes = React.useMemo(\r\n () => ({\r\n // Or, override the default text filter to use\r\n // \"startWith\"\r\n text: (rows: any, id: any, filterValue: any) => {\r\n return rows.filter((row: any) => {\r\n const rowValue = row.values[id];\r\n return rowValue !== undefined\r\n ? String(rowValue)\r\n .toLowerCase()\r\n .startsWith(String(filterValue).toLowerCase())\r\n : true;\r\n });\r\n },\r\n }),\r\n []\r\n );\r\n\r\n const defaultColumn = React.useMemo(\r\n () => ({\r\n // Let's set up our default Filter UI\r\n Filter: DefaultColumnFilter,\r\n }),\r\n []\r\n );\r\n\r\n const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } =\r\n useTable(\r\n {\r\n columns,\r\n data,\r\n defaultColumn, // Be sure to pass the defaultColumn option\r\n filterTypes,\r\n },\r\n useFilters, // useFilters!\r\n useGlobalFilter // useGlobalFilter!\r\n );\r\n\r\n return (\r\n \r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n {rows.map((row, i) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {row.cells.map((cell) => {\r\n return ;\r\n })}\r\n \r\n );\r\n })}\r\n \r\n
\r\n {column.render(\"Header\")}\r\n
{column.canFilter ? column.render(\"Filter\") : null}
\r\n
{cell.render(\"Cell\")}
\r\n );\r\n};\r\n\r\nexport { NoFetchGrid };\r\n","import { EpaGridProps } from \"./EpaGridProps\";\r\nimport { FetchGrid } from \"./FetchGrid\";\r\nimport { NoFetchGrid } from \"./NoFetchGrid\";\r\n\r\nconst Grid = (props: EpaGridProps) => {\r\n const {\r\n fetchUrlFunction,\r\n formatFunction,\r\n formatResponseFunction,\r\n enablePagination,\r\n enableQuickFind,\r\n columns,\r\n data,\r\n searchText,\r\n orderBy,\r\n exportToCsvFunction,\r\n } = props;\r\n\r\n if (!fetchUrlFunction) {\r\n return ;\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n};\r\n\r\nexport { Grid };\r\n","// This is a custom filter UI for selecting values where values are populated based on the distinct values on the grid\r\n\r\nimport React from \"react\";\r\nimport { Form } from \"react-bootstrap\";\r\n\r\n// a unique option from a list\r\nfunction SelectColumnFilter({\r\n column: { filterValue, setFilter, preFilteredRows, id },\r\n}: {\r\n column: any;\r\n}) {\r\n // Calculate the options for filtering\r\n // using the preFilteredRows\r\n const options = React.useMemo(() => {\r\n const options = new Set();\r\n preFilteredRows.forEach((row: any) => {\r\n options.add(row.values[id]);\r\n });\r\n return [...options.values()];\r\n }, [id, preFilteredRows]);\r\n\r\n // Render a multi-select box\r\n return (\r\n {\r\n setFilter(e.target.value || undefined);\r\n }}\r\n >\r\n \r\n {options.map((option: any, i: any) => (\r\n \r\n ))}\r\n \r\n );\r\n}\r\n\r\nexport { SelectColumnFilter };\r\n","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faCircle,\r\n faQuestionCircle,\r\n faExclamationTriangle,\r\n faCommentDots,\r\n faSearch,\r\n faWindowClose,\r\n faIndustry,\r\n faHandshake,\r\n faEnvelope,\r\n faEnvelopeOpenText,\r\n faFileExport,\r\n faExternalLinkAlt,\r\n faClipboardCheck,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nvar foreGroundColor = \"#014891\";\r\nvar backGroundColor = \"#dae3ec\";\r\n\r\nconst IncidentIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst IncidentUpdateRequestIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst ComplianceInvestigationIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst ComplaintIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst MeetingIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst NonComplianceIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst SiteVisitIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst EPAInitiatedCorrespondenceIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst ThirdPartyCorrespondenceIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst LicenseeReturnIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst ActionOrInstructionIcon = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst ExternalLinkIcon = () => (\r\n \r\n);\r\n\r\nconst getIconForType = (type: string) => {\r\n switch (type) {\r\n case \"Incident\":\r\n return ;\r\n case \"Complaint\":\r\n return ;\r\n case \"Compliance Investigation\":\r\n return ;\r\n case \"Non Compliance\":\r\n return ;\r\n case \"Site Visit\":\r\n return ;\r\n case \"Meeting\":\r\n return ;\r\n case \"3rd Party Correspondence\":\r\n return ;\r\n case \"EPA Initiated Correspondence\":\r\n return ;\r\n default:\r\n return ;\r\n }\r\n};\r\n\r\nexport {\r\n IncidentIcon,\r\n ComplianceInvestigationIcon,\r\n ComplaintIcon,\r\n NonComplianceIcon,\r\n SiteVisitIcon,\r\n LicenseeReturnIcon,\r\n getIconForType,\r\n ExternalLinkIcon,\r\n IncidentUpdateRequestIcon,\r\n ActionOrInstructionIcon,\r\n EPAInitiatedCorrespondenceIcon,\r\n ThirdPartyCorrespondenceIcon,\r\n};\r\n","var _image;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLeapLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"For_SVG_-_no_tagline\",\n \"data-name\": \"For SVG - no tagline\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 1281,\n height: 394,\n viewBox: \"0 0 1281 394\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _image || (_image = /*#__PURE__*/React.createElement(\"image\", {\n id: \"Rectangle_7\",\n \"data-name\": \"Rectangle 7\",\n width: 1281,\n height: 394,\n xlinkHref: \"data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAABQEAAAGKCAYAAAC8QodkAAAgAElEQVR4nOzdd5xU1f3G8c8ZsGAXCypYsUfRiF1RowFvBCsiCbbETiwXG8ESSzRRMajXHiPGXmPBem1g771Lk0WQtvS+u8z5/XEHxfxAYGdmv3PvPO/Xa15LWWYeYGd25plzztd57xEREalGud9dn8pvgj4OnXUGERERERFJl5x1ABERERERERERESkvlYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxza0DiFSz3PXn+WKvI3/GFa4UWUREREREREQku7QSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMq65dQARERERSR8XROsArYH1Fvi4RuHSsvBxBaAFsFrhx8ss5mqnAbMLl6nATGASUAtMLFxGA2OAUcAoH4fTS/n3EskSF0TLAmuT3EdbkdxP1yn82qqFyyoL/HhVwBUuq/zCVU8H8iT31enADJL77zRgMjAOmACMLXz8ARjh43BaSf+CIlI2LohWAtoCG5M8bqxL8jjSqvDztUg6pZUKH1fk/3dMUwsf55A8Tkxc4DK+8HEE8B3wnY/DsWX7CwmgErAqOedOZ+2Wo/y4iY9bZxEREZHKVXgBsBXwK2BbYBOSFwRtSUq9UluFXy4e/h8XRLXAcGAoMAz4AvgSGOzjsL7kCUUqjAui5YGtgU0Ll7Yk99VNSco/V4abXbnwcVWSMmCJuCCa/4J/BMl99iuS++w3Pg5nlTaiiCwJF0TNSR5DdgTaAduQfN9f4vv2L1h1gY+tSB6ffinLbJJC8Gvgk8LlUx+H35cgiwDOe2+dQYzkOu/Vl7br78vQkYP8kJED/ZCa56wzVZvc9ecVfQfMn3FFOZ7YiVSF3O+uT+U3QR+Hut9LyRUKv52B9iQvBHYiefc/rRpIXkR8AHwIvAd85uNwrmkqkSK4IFof2IHkhfq2hY+bkf5jnjxJMfgh8D7J/fVDrfQVKT0XRCsCHYA9gb1JHlPK8cZeKU0ieWx4BXgDeM/HYZ1popRSCVjlXOtW3V33oCcbrbc3dfUNfDf6XT+kZhCDawb6EaMHWefLOpWAIrZUAko1c0HUEtgH2IvkhcCvSX+RsDhzgXdIXkC8Bryh1UdSqVwQtSAp5XcHdgF2I9mOVy3yJCsFXwVeBl71cTjJNpKUkguiXsC11jkW49c+Dj+xDlEsF0S/Ag4E9gf2YPHHc1S62cDbwEDgSR+HnxvnSQ2VgAKA69D+PNdl78tpsdxPT/7nzJ3DsO/f8oNrBjKkZpAfNe4tw4iZpBJQxJZKQKkmLohyJCXC/oXLjmS/9FucuSSFYAw85+PwS+M8UsUK5/ftBuxXuOyMjm9akAc+BZ4HngTe8XGYt40kxVAJWF4uiHYAfg8cSnI8QJaNAAaQPDa8ruNAFk0loPxM7rhD72X7LY9c6G/OnD2DITWv+iEjBzGkZqAfW/txE8fLHJWAIrZUAkrWuSBaDugIHAIcRHKItyzacOAx4HFUMEgTcEG0OcnqnI4kq3Jb2CZKlfHA08ATQKwX/emjErD0XBC1Af4IHAVsYZvGTC1wP3CXj8OPrMNUGpWA8v+4bTYL3eEdz6Hlqm1+8ROnzpiYlII1AxlcM8hPnPJVE0XMDJWAIrZUAkoWuSBqBvwG6AF0ZSkHbciPRpO8iLjXx+Fn1mEkGworcncFDiYp5re0TZQZk4CHgXuAt30cpvL7e7VRCVgahceVzsApQIBW+S/oS+Au4G4fh+Osw1QClYCySLlD9/sne+94NrklfAyZOGUMQ2oGJduHRw7yU6cPL2/C9FMJKGJLJaBkiQuiTYETgGMpzUQ/+clnwO3APT4Op1iHkXQpvEDvAPyBZFve2raJMm848G+gv4/DCdZhZNFUAhanMNDrBOB0kongsmh1wAPAdZX6/9lUVALKL3Lrr3OU6x70ZIN1d1/qPzy2dgTJ1OFBDB050M+Y9UMZIqaaSkARWyoBJe1cEDUHDgdOJhnyIeU1m2S10c0+Dt+zDiOVrXAeVw+SM7laG8epRnX8dH992zqM/H8qARvHBdGaJMXfaUBL4zhp9CpwHclAkao79kMloCwRt89OF7jOe13Gcss27oWn9zB6/DcMqRnoh9QM8l8M/W+JI6aSSkARWyoBJa1cEK1BUvz9GZULVt4ErgGeqMYXEbJwLojWJjmP609oq28leRP4O8nZgan83p9FKgGXjgui1YAzgbOBFY3jZMHXwN+Ah6vp+7hKQFkquRO63k+7zf9Q9BXl83lGjvmcwTUD/ZCRA/233z1dgnipoxJQxJZKQEkbF0QbkDz5PwlY3jiOJIYBl5OcHdhgHUaaXmG7byfgRJJz/jTRt3J9AlwJPFJNL/orlUrAJVMY8nU6cCGwqmWWjPoUuAQYUA1vEqgElKXm2m0eusM79WG1lUt33lB9QwM1P3yYnCdYM9AP+/6lkl13BVMJKGJLJaCkReG8v/NJpv0tYxxHFq6GpFzoryml1cEF0Vokxd/JwAbGcWTpfAz8xcfhi9ZBqplKwMVzQfR7ku8tG1plqCIfA2f5OHzFOkg5qQSURst17XgtHdr3IleG16Jz6+YyfNQ7fkjNIAbXvOxHjnmj9DdiTyWgiC2VgFLpXBC1IXnn/3i0uigthgLnAY9Ww4qCauSCaFsgBI5EK3LT7iWgt4/Dj62DVCOVgIvmgmhr4EbgN01928ITwLk+DodaBykHlYBSFLfhuse47kFP2qyza1lvaNacmQwb+YYfMnIQ344Y6MdMeL+st9dEVAKK2FIJKJXKBdGqJOXfaahkSKv3gTN9HL5pHUSK54LIAV2AXsC+xnGktPLArcD5Pg6nWoepJioB/z8XRMsDfwV6ozf/LNUDEXCZj8Np1mFKSSWglIT7zc5/dQd0uLTRg0OW1vSZUxgy8jU/pGYgg2sG+gmTPm+S2y0xlYAitlQCSqUpTPs9EbgUWMs4jpTGPSQrjcZaB5GlV7hPdgMuAH5lHEfKaxxwto/D+6yDVAuVgD/ngqgD0B/YrCluT5bIKODPPg6fsg5SKioBpaRyJ3V7mG027dbkNzx52niG1LxSOFNwkJ88bXCTZ2gElYAitlQCSiVxQbQncDOwrXUWKbnpJCs7btAwgnRwQbQsyZTf3kBb2zTSxGLgeB+HP1gHyTqVgAkXRC2AK4AzAD3Hq0wPA2EW3tBTCSgl57bf8kzXteN5rLqS3QqG8ZNGMWTkQD9kxECGjhzkp80caZblF6gEFLGlElAqgQuiNYG+wJ+ss0jZvQuc4OPwC+sgsnCF8u8EkkE8rY3jiJ1JJKt/HrIOkmUqAcEF0a+B+4Ety3UbUjKTgV4+Du+2DlIMlYBSNrlunSL23OEMnPFrVQ+MmTCUITUD/eCaQf7zwQ/aBvqJSkARWyoBxZoLoiOB64GW1lmkydQD/wAu93HYYB1GEi6ImgFHAxcDG9mmkQpyP3CKj8Pp1kGyqJpLwMI5o71IJv8uW+rrl7J6iORxYYp1kMZQCShl5TZqfbzrHvSk9drtrbP8KO89o8Z+xeCal/2QmkH+6+FPWEVRCShiSyWgWHFB1JrkIPou1lnEzIfAUT4Ov7EOUs0KL8QPAy4DtjKOI5XpW6Crj8MvrYNkTbWWgIXhX3cCh5TyeqVJ1QBHpnH4V846gGSbHzG6f/6q/jv6JwddQl29dZxEzjk2WPdX/HbXM1zP7o/nru3dkOt19Ae5Azr0dZttGFjHExGRbHNB1AP4EhWA1a498IkLojMKRZQ0scI5nO8B/0UFoCzaFsC7hcdukaK4IGoHfIQKwLTbEHjNBdFFafserpWA0mTcmqv/1h3esSdbtz3MOssvqquv57vR7/04eXjE6FfKdVNaCShiSysBpSm5IFoNuAX4vXUWqThPAX/ycTjROkg1cEG0MXAVydRfkaXRF+jj4zCVzx8qTbWtBHRBdBhwN7BiKa5PKsYzJCv7U7E9WCsBpcn42skv5W99uKu/c8DZTJs52TrPIi27zDJssdEersvef3VnHTMo1/esWbmTu73kfrPzBa5Nq92s44mISPq4INoN+BQVgLJwBwKfFlamSZm4IFrFBdFVwNeoAJTG6Q08XJjmKrLEXBBdCDyKCsAs6gy854Joa+sgS0IrAcVMrntwE7tv/2fzwSFLa+bs6Qypec0PGTmIITUD/djajxt7VVoJKGJLKwGl3ApbRM4GrgCaG8eRytcAnOPjMLIOkiWF++GRQD9gbeM4kg1vAYf4OJxgHSTNqmElYGHi+L+AP5YskVSqGcDRPg7NZg4sCa0EFDP5h+JT/fX3ncyYCWUbuV4WK7ZYme237Oy6dfqnO//Ej3KXnV6bO+agR91u253q1lgtFe2/iIiUX+Hg7wHA1agAlCXTHLjOBdGDLohWsA6TBYWVGQOBe1ABKKWzOzDQBVEb6yBSuQqP40+jArBarAQ86oIotA7yS7QSUCqC67T7pW7/PS5imQy8Rpo4ZQxDagb5wTUDGTJykJ86ffiiPlUrAUVsaSWglIsLoi2BJ0gOlBdpjI+Bg3wcjrIOkkaFF99/JVmJu4xxHMmuYcA+up82TpZXArogWgN4Fti59JEkBfoB51bi+aE559xJbtMNTnZbbNzRrbl6W+tAUp38C29d7K+8/Xd8O+JJ6yxFW2O1ddl1ux7umINud5edNix3/onf5brt399tv+VRbqUV1rOOJyIi5eWC6ECSiaMqAKUYvwbed0GkF5BLyQXR/iTn/vVBBaCUV1uSCaGbWgeRyuGCaC3gFVQAVrOzgQcL28Eryo8rAXNdO/6TvXY8m3y+gclTR1I7ZRi1U4b7iVOGM3HKMGonD6d2yjA/Z+4048yScW6nbc52h+x3MSuvsLJ1lpLzHkaP/4YhNQP9kJpB7qRujxR7lVoJKNJ4WgkopeaC6AySVQ06ckVKZTbQo9LPGKoEhQnc1wHHWmeRqjMM2NPH4VjrIGmSxZWALojWAV4EtilfJEmRQUAXH4ezrIPM97PtwG6LjU5zPTqfw+qrbLjIPzF9Vi0LFIN+YlIWUjtluJ8y7fumCC3VIfeHA25h1+1OQS91f5FKQJHGUwkopeKCqBlJ+XCadRbJpDzwZx+H/7IOUqlcEB0C3Aysa51FqtbnQAcfh1Otg6RF1krABVYA6px4WVBFFYELPRMwd1SXW9l525OX+trqG+YWCsLhhVWEP64gZNLU4b6ufk4pQkv1cJtucKrrHvSk1Rq/ss5SqVQCijSeSkAphcJWjweBQ62zSOZd5uPwIusQlcQF0Uokkzd7WGcRAd4A9q+UF/uVLksloAui1YHX0ApAWbhBwME+DqdbB1nkYBC3/Zah67b/31h5hVVKcksemDp9dFIQ/mwFYbKicMas8SW5HckkF+x5meu424WZGBxSYioBRRpPJaAUywXRKiQDQH5jnUWqxjXAOZV42LiFQgk/FFjfOotIwYMkW/h1H12MrJSAhUFELwO7Nk0kSan3gN9aF4GLnQ6cO+nwe9hms6PKnmTO3BksUAz6iZOHU5tsO/YTJg8t++1LxXOt1ujiunXqyeYbHWCdpZKoBBRpPJWAUozCtp9ngJ2ss0jVuZVke3AqH8NKzQXRacAN1jlEFnC+j8MrrENUuiyUgC6ImgNPAr9rukiSYgOB3/k4rLMKsNgSEMDttt057tD9+rL8cjYvOvL5eUyeNvLHswfnbzMulIZ+9pwpJrnEhNt523PdoftdyootWlhnqQgfff2kH1IzkME1A/2ESZ9bxxFJE5WA0liFAnAg2vYjdlQEFrggagEMB9axziJS4IGDfBw+bR2kkmWkBLwdOL4J80j6PQYc4eNwnsWNL1EJOF/ujCMHsOkGB5UxT+PMnD2psK14GBOnDPe1U34qCCdPHWkdT8ojd2SX29h52xM1OGQBk6eNZ0jNID+4ZiBDagb5ydOGWEcSqWQqAaUxVABKBVERWOCCqA+glVdSSaaRFEjDrYNUqrSXgC6I/gJc2cR5JBv6AydafP9eqhIQwO27ywWu816Xp+ZstoZ5c5k4ZcSPW4uTMwmHFX4+3NfV69DWFHObb3SaO2L/U1m75ZbWWSrS+EnfM2TkID9kxMsMHTnIT5upCd4iC1AJKEvLBdGqJAe/qwBsvNlAHTCXZOptC6A5sKJlqBS73sdhaB3CWmFAyPfAatZZRBbwDsnE4AbrIJUozSWgC6KDSM4E1nMyaax/+Di8oKlvdKlLQAC37lq/d0d36UmbdfYqQ6amNXX6mB8Lwh9XEE5OCsJpM8dax5Mlkzugw9/puNv5NGtmHaVyeWDMhCHzVwr6zwc/ZB1JxJpKQFkaLohWBl4CdrbOUqHqSQY0DC5chgKjgVpgHDDOx+HsX7oCF0TLA61ItnWuCbQBNgM2B7YANiEpDOXnLvZx+DfrENZcEF0CXGydQ+R/mLzQT4O0loAuiLYkGfKwsk0kyZBjfRze3ZQ32KgScL7cAXtdTqfdLiCXK2GkCjK3biYLFIPJKsLCNuMJkwZbx5Ofc+usebDrHvSk7fr7W2dJhbz3jBr7JYNrBvohNQP918MHWEcSaWoqAWVJFSaQxmgK8IK+Bt5d4PJ5uVe7FP4ftgd2IZnCuBuwcTlvM0VO9XF4s3UISy6I1gBq0KrSBc0ARgEjCx/HAJOBKYWPk0lW5s4sfP5cktW6K/FT4b4ayb/pSiTlfCtgLZKJzBsCGxV+TxYuD+zj4/B16yCVJo0lYOENwQ9I3pwSKVY9sK+Pwzea6gaLKgEB3Eate7ojO/ek1RrbliZSSuT9PCZPHcXEH1cRzp9snPx81uzJ1hGrldttu97u4H0vZ4Xll7HOkirz5s3jk28f8k+9coufNLXJHoRELKkElCXhgsgBDwHdrLMYm0KyEvI54Hkfh6ON8wDggqgtyVTGANiXZHtxNcoDh/o4fNI6iCUXRH2Bc61zGBgDfAh8Q1LQfwN84+NwUlPcuAuiNiSrdbcB2hcuW6GtkvMNBrbzcTjHOkglSWkJ+CDQ3TCPZE8tsLOPw++a4saKLgHnyx3eqR8d2p+lh/mCWXMmzx9UQu2U4UlJmEw09pOm1ljHqwa5ow/sz07bHGedI3XqG2DQe9fkn371bOsoIuWmElCWhAuia4Fe1jmMzASeBO4DXvBxWG+c5xcVpsQeDPQgKQWr7Q3B2STnj31oHcSKC6J1SSYFL2+dpYzmkpw19wbJlsQPK6WUX5ALopbAXsA+JPfHLUwD2bvcx+FfrUNUkrSVgC6I/gzcZJxHsukrYBcfhzPKfUMlKwEB3JYbn+Z6HNCb1VZZv2RXmkUN8+qYNLWG2inDmDh5+I+rCOevKpxbN3PxVyJLwm258enuiP3PYM3VN7XOkjozZs3yz71xuX/9Q03ak8xSCSiL44LoVOBG6xwG3iX5ez/RFE9Iy6FQQPweOBXY2jhOUxpLsqKgaoeBuSC6GehpnaOEPPA+8CLwMvB2GleUuSDaFDgE+AOwg3EcCw3ADj4OP7cOUinSVAK6INqGZBvwctaBJLMe8HHYo9w3UtIScL7cMQfdyo6/OrnkV1wtps0YlxSEU4b72sI04/kF4dQZY6zjpVGuy95Xst8uf9HgkEYYW/utf2LgLf6rYZF1FJFSUwkov8QF0W9JzgGslm8e9STbnm/wcfiedZhSKWzn3hc4HTiI6tie+AGw1+IGsWSVC6INgGGke4jMHJLS7yngKR+HmRpYWBiscCJwLLCGcZym9JqPw72tQ1SKtJSAJFvs3wPaGWcplwaSFdTfkUxZH8tPZ4Z6YBrJ6uplSZ4TrUpyv12D5JzQDUkGd7Vs6uAZVPbzfctSAgK47bfs5boHl7Jii1XKcgPVqq5+9vwVhNROGe4nThn2Y2E4buK31vEqmVtv7a7uiP17skmb/ayzpNLXw1/0Awbd4n8Y/7h1FJFSUQkoi+KCaDOSJ/yrWWdpAvXAHSQTLEdahyknF0RbAxcBR5D9MvBeH4dHW4ew4oLoTpKCKU3yJCv97gMe83E43ThP2bkgWg44BjiH6hm0cJiPQz2fJlUl4JEkX6NZ0EByfuhbhY8fAUNLcdyHC6JVSLb9/5pkiFf7wo+r7WiOYtSRHOtRtjdjy1YCzpc7udt9/GrTsi9pFCDv80yZNqpwDuEwn5xBWJhuPGW4nzl7onXESuD2+HUfd9A+f6fF8hkda11G3sO7n/87f/8zJ1lHESkFlYCyMC6IViQpALO+hXQe0B/4e9bLv/9VRWVg6OPweusQFlwQbUGyeicN/7+DgduA+30cVuWuHxdEOZJhC5cBbY3jlNsQ4FeVfsZqU0hJCdiT5BzANL92HAI8SzLY63Ufh7Oa6oZdEK0A7E5yNugBJKWg/LIaYHsfh1PKceVlLwEB3G7b93aH7Xclyy2bhm/C2TVrzpSfnT1YGFRSWFHYJJNoKknu2IPvpP3WaXuHuDLMrcv7l97p659/8zzrKCLFUAkoC+OC6H6SM6uy7FXgDB+Hn1kHseSCaCfgemBX6yxlUg/smaXt3Uujwqd41gNPALcCg3wcpvL7Uam5IGoO/JmkDMzyjrIzfBzeYB3CWkpKwOnAytYhGmE4cC/w30o6h9IF0frAgSRvwmlr/KI96OOwLM9Fm6QEnC8XHvU0bdfv3GQ3KEtu3rx6Jk2r+XGCcW0y1TgpCScP93PrMrkdwW3d9nTXrdNZrLHaRtZZUmnytEn+mdeu9O99frV1FJHGUAko/6sKBoGMAs7xcfiQdZBKUTgz8EigL7CucZxyGEEyjGCydZCm5oLo1yRb3SrJRJLi78asnfNXSi6IWpGUQ1l9Q2YssEm1nts5X0pKwDSZDTxKcsTHK5X+5oILoo2Ao4HjgI1Mw1SmHj4OHyj1lTZpCQjg9tv1QndAh8tYJs3n9Fah6TPH/7iKMNlqnJxDOOz7162jlULuoN/0Zd+dzyWX5lXehkaN+8A//vItfkjNHdZRRJaGSkBZkAui7Uim4mZ18t/twNk+DqdZB6lELohWA/4JHG+dpQz+6+Owm3UICy6IngYqYRHCYJKy465qL36Whguiw0lK0ywOD/mzj8NbrENYUglYMkOA60jOgk3d9/jCcQAHAr1Itg1LYgqwrY/DUaW80iYvAQHcemv3cEd16UmbVns2+Y1L6cyZOy3f+5pVrWOUimvdqrvrHvRko/W0LLmxPhv8pB8w6BY/YVJsHUVkSagElPlcELUgOSB7K+ssZfA9cIKPwxesg6SBC6JOJIXp+tZZSuxPPg7vtA7R1FwQ7Qq8bRjhE+AKkiI2b5gjtVwQtQH+C+xinaXEvgc29XFYZx3EikrAor1D8ubV41l5fCms4L4YONg6S4UYCPy2lKs6TZY9+R/G35/ve0cHXnz77+Qz8bVanRrmzbWOUEp+9LiH8tfctY9/5IXzmT1XX5iN0W7zg9z5JzyX69qx6s84EZHUuZZsFoBPkLyLrAJwCRX+rbYl2VKVJTe4INrYOkRT83H4DvCKwU2/S/Iidgcfhw9n5QW6hcIqmL2Af1tnKbH1SY4iEFlaL5JMkN3Nx+GjWXp88XH4sY/DQ4AdgCet81SAfYETSnmFJisBfxZg49Z/dkcd2JO1Vt/GNIgsvcnTRuYvvmlD6xjlkjvu0HvZfkt9Y26s2XMa/PNvXe4HvnupdRSRRdFKQIEfV349b52jxBqAvwDXVvqZQJWssC3gjyMAACAASURBVEqlL7CMdZYSeQXYt9q+JlwQ7Qe81EQ39wlwoY/DZ5ro9qqKC6LzgH9Y5yihT3wcVu20VK0EXGrvA318HA60DtJUXBB1AK4BdrTOYmgqsGWpzpE1PwDNfzf65vxlt27L6x9dS1U9HcmAuXWpO29gaeTvePwof9t/ezFpakn34FeNFss3d4fse0nuolNGue22OMs6jojIwrggWoVk62eWjAP29nF4TbWVPaXm4/A6YE/gB+ssJbIPyeTVquLj8GWSlXnlNIRkiMUOKgDLx8fhFWTra3h7F0R7WIeQivctcDiwSzUVgAA+Dl8HdiYZIDLeOI6VVYGoVFdmXgLOl3/k+bP8LQ+ewZTpKlzSor4hU9uBF8Z/MSTKX3Lz+gx6r5+2rjfSmqu3dscf1i/X6+jX3MatszrhTUTSqx/ZOvvtK5IXCW9ZB8kKH4fvkbwA+dQ6S4lc6YJoA+sQBsq1emw8cDKwtY/DB1W8l19hmMbJ1jlKKEulppTWLKAPybEej1br44uPQ+/j8F5gS5JBQdX473CEC6IupbiiiikBAfw3392Qv+jG9fngy6yd95BN9Q1VM9ks//jL5/h+dx3FyDFvWmdJrU3adHC9jrk/d+zB97uWq3awjiMi4oJob0p8zoqxl4DdfRzWWAfJGh+Ho4EOwHPWWUpgJeAm6xAGngI+K+H1zSEpFjf1cXibj8OGEl63LIaPw9uAc61zlEg3F0RrWYeQijOA5M2Fq3wc1luHqQQ+Dif7OOxJsqp9hG0aEzcWBtkVpaJKwPnydz95kv/PE2cyc/ZM6yzyC+bUTbeO0JT892Pvy//zzj39Yy9dyNy6anz3oXgOaL/1H9wFJ72W67J3P+s4IlK9XBAtR/JuclbcD3T2cTjVOkhW+TicDhxI8m+ddl1cEFXV5MXCCporSnR19wNb+Di8oPB1IQZ8HP6TbBTaywDdrUNIxfgeOMjH4SF6U2/hfBy+RjLAK2vHuSzOhkDRx2xVZAkI4D/++rr8edetxJfDHrDOIoswL/vbgRfGv/L+3/Pn9svx2WB9bTbWMs2h0+5n5a7oNdN1aH+edRwRqUq9SbaVZMH9wDE+Duusg2Sdj8N5wDFAf+ssJXC9C6IVrUM0sYeBoUX8+c9IJnIe6eNwZIkySXF6AVk4I03DCAXgLqCdj8OnrINUOh+HM3wcngh0AzI9q+B/nOeCaL1irqBiS8D58v96uId/KP4Lc/W8tuLUNcyyjmApf/ujPfztj/ZiyvSSTOmpSiu2WMF16/SP3Pknfuu2bhtaxxGR6lA4Dy0rb0DcTVIAzrMOUi0K/9Ynkv6VpBuQTJCuGj4O8zTubMBpQAi093H4RmlTSTEK27B/D6T9+fiuLojaWocQM1OAw30c/tHH4RTrMGni4/C/wA5k59zexVmRIs+4rfgSEMC/+XFff9UdXRg+SpO2KsncuhnWEaz5zwZH+YtuXJdXP7iOvHYIN9o6a27uTjniulzP7i+41msfah1HRDLvaqDoM1UqwCPAn1QANr3C1tI/A/daZynSuVU4JOQ+ku12S+peYDMfh9fr3L/K5ONwAskK3bTTAL3q9C6wnY/DR62DpJWPw2HA7iSrvavBMS6IdmzsH05FCQjgayc/k7/uni7+yVcuokHPdStCw7yq3A68MPlHXzzTX3vXsYwa+451llTbapOOrvdxj+V6dL7NOoqIZJMLor2AI6xzlMDLwFGFlU1ioFAEHg+8YJ2lCMtTunPyUqGwbb7vEnzqcKCTj8OjfRyOL3MsKZKPwxeBf1nnKNIh1gGkyd0C7KXjBYrn43AWyargS62zNAFHEd+7U1MCzudfevsy/887j2b0+Less1S9unoNblmArxlzd77vf3bzj798kQaHFME52LXdibmrz57n9t+jql6YiEh5uSBywD+tc5TAx8BhOgPQXuH/oCvwoXWWIvRwQdTeOkQT68+it4/OA64Cti0US5IevYEx1iGK0N4F0brWIaRJNAAn+Tj8s76Xl46PQ+/j8BLgWJJ/4yz7rQuifRrzB1NXAgL4H8bfm7+q/x68+PYV2oJpx2s78EL5Qe9dlj+3X44vhj5inSXVlls25zrv1Sd36akT3c7bnmsdR0Qy4TBgJ+sQRRpLMgW4mg7Brmg+DmeQTA1O85lkRZ0vlDY+DmcD0UJ+61NgRx+HfQqrSiRFCo+LaT/vtbN1ACm7aUDg4/Df1kGyysfh3cDBwGzrLGX2t8b8oVSWgPPln3rlfB/deyq1k7+2zlKVtB34F+Vve+QIf8fjZzF1hraQFGP1VVq6o7r0zfU+7n232YbHWccRkXRyQdSc9Bcd9SQrANO80iWTCv8n3Uj+j9KoU2NXFKTYjSSH8UOyYuRSYCcfh5/YRZISuAf4yDpEEbpYB5CyGksyYfxl6yBZ5+PwWeC3ZHtycAcXRMHS/qFUl4AA/rtRN+f/duvWvPFxhBYFNq26Om0HXgz/yTfX5v96Qyte//B6vL5Ai9Km1Y7u9B79cyd0HeDWarnUD3YiUvWOAja3DlGk03wcvm0dQhauMDX2LOscRUh7Sb5UCis4I5LVfzv5OLzEx2FaS1wpKJyTerF1jiL8xgVRM+sQUhbDgD19HH5mHaRa+Dh8C+hEtovAS5b2D6S+BJwv/3Dcy9/60BlMnf6DdZaqMVdnAi6p/CMvhP7ae45n9PgPrLOkXrvND3Lnn/BcrmvHG6yjiEg6FFYBXmido0j3+DjU0KQK5+PwRtI7nXC3KlwN+E+0+i+LngHS+n+6CvBr6xBScsOAfQpTbKUJ+Th8l6QIzOoRD7ss7ffuzJSAAP7r4Tfk/3pjaz76Wvvrm4K2Ay8VP2L0Hfmr+u/knxx0CXV6o7kozZrB3juelrvqzHq37y6XWMcRkYp3FNDWOkQRvgNOsw4hS6wnkNY3pS+xDtCUfBzO0Oq/7ClM7r7GOkcROlgHkJIaRVIAjrIOUq0KReBhpPfIjsXpvTSfnKkScL78nU+c5O984ixmzclq21sZ6jQYpDH8S+9c6q/s35Gvhj1mnSX1Wizf3B2y78W5i04Z5bbbIs1bsESkTFwQ5YDzrXMUYR5wlAaBpIePw0nAn6xzNNLeLoj2sA4hUgIPAWk9l3tv6wBSMrXAvioA7fk4fB74o3WOMvmdC6Jtl/STM1kCAviPvr423+faFflq+EPWWTJrbr1K1kbytZNfyt/6cFd/54CzmTZzsnWe1Ftz9dbu+MP65Xod/ZrbuPUfrOOISEU5GNjMOkQRriycaSMp4uPwBeAW6xyNdI51AJFi+TisA+62ztFIKuKzYTbJFOAh1kEk4ePwftI/QXxRlng1YGZLwPnytz70e/9Q3EfbL8ugYd4c6whp5z/66pr8hde35M2Pb9bgkBLYpE0H1+uY+3PHHvyAa7nqXtZxRKQipLnQGApcbh1CGu080rkS6WAXRGkfoiMCcK91gEZa0wXRBtYhpCh54A8+Dj+0DiI/5+PwSuB+6xxl8HsXROstySdmvgQE8G9+fJW/qv/BDB8VW2fJFG0HLpn8Q/Gp/vr7TmbMhLQeYlw5HNB+69+7C056Nddl737WcUTEjgui3YDdrXMU4c8+DvWGW0r5OJxKOktoB/SyDiFSLB+HnwJfW+doJA0HSbeLfRwOsA4hi3QC8L51iBJrTvL3WqyqKAEB/ITJT+avu+d3/qlXLqZhnnWcbKjTduBS8sO+vy1/xe2/9k+/+jfqG6zjpN8yzaHT7mflrug103Von9Vl3yLyy9I8TOMBH4cvWoeQot0LvGYdohGOdkG0inUIkRJ40jpAI+1gHUAa7Wng79YhZNF8HM4GugFTrLOU2IkuiJov7pOqpgScz7/49t/8NXcdy+jx71hnST1NBy4L/8JbF/srb/8d33yX1ictlWXFFiu4bp3+kTv/xMFu67ahdRwRaRouiNYmeYKXRnOAv1iHkOIVppSeaZ2jEVYCjrEOIVICz1gHaCStBEynscAfC4/9UsF8HNYAx1nnKLE2QJfFfVLVlYAAftS4u/NX9d+Nl965grzun402t266dYSs8hMmx/mbHzzY3/PUOUyfpYmQpbDOmpu5U464Ltez+wuudatDreOISNmdCCxjHaKRbvVx+L11CCkNH4cfAU9Y52iEP1sHECmBd0kGNKTNr6wDSKMc7+NwonUIWTI+Dh8HbrLOUWI9F/cJVVkCzpd/ctD5/ob7TqV2yjfWWVKpriGN31BTxb//Rb/8BdGqvP3praivLo2tNunoev/psVyPzrdZRxGR8nBB5FjCc1Eq0Ey0jSiLLoDUfSffygVRms/UFJk/JTiNE9Y3dEGU1jeyqtWDPg6ftQ4hS603ySC2rOjogmjDX/qEqi4BAfyw72/O/+2WrXjrk+tT99TMkvfeNzTUWceoFvkHnu3pb7jvVMZN/MI6SyY4B7u2OzF39dnz3P57XGEdR0RK7jfARtYhGukaH4e11iGktHwcfgU8bJ2jEf5kHUCkBNJYAjYDNrEOIUtsOnCWdQhZej4OZ5FsC85KG+SAI3/pE6q+BJwv/+Bzof/Xw2cwbcZY6yypMKdOW1SbmB868ub832/b1j/7+uUaHFIiyy2bc5336pO79NSJbpd251rHEZGS+aN1gEaaC9xgHULK5irrAI3Q3QXRCtYhRIr0iXWARtrcOoAssb4+DsdYh5DG8XH4OnCLdY4SOuqXflMl4AL8V8NuyF94w7p8/PUd1lkqXr22Alvx8Rt/9X3vOJDBI7TcvFRWX6WlO7Jz31zv4953m22YtQNiRaqKC6KVgK7WORrpPh+HE6xDSHn4OPyY9E0KXhk4yDqESJE+sg7QSJtaB5AlMg64zjqEFO1CICvPwbZyQbTI4UIqARci/58njvd3DTiLWXM0/XZRGhr0b2PIj5v4dP7GBzr7e5/uzczZKmRLpU2rHd3pPfrnTug6wK3VMrCOIyKN0gVI68olvYjIvjT+H//eOoBIkUaSTF1Pm9bWAWSJXOvjcIZ1CCmOj8PJQB/rHCV09KJ+QyXgIvgPv7o23+fa5fl6+CPWWSqStgNXBP/e51fnz7tuBd79/N+ZOcWgErTb/CB3/gnP5Q7vpG15IunT3TpAI73i4/Bz6xBSdgOAGusQS+l3LohWtQ4h0lg+DvOk8+D/NtYBZLFmAP+yDiEl8x/Su3L4f3UvDMr7f1QCLkb+loeO8I8834e6eusolaWhIY3vpmVW/r6nT/I3PXA64ydp0nWpNGsGe7U/LXfVmfVu310utY4jIotXKCoOsM7RSHdZB5DyK5QR91jnWErLoi3Bkn5pK98B1rMOIIt1t4/DKdYhpDR8HHqysxpwPWDHhf2GSsAl4F//6Cp/1R2HMGL089ZZKka9tgNXGj94xI35y/+1FfEb/2DePOs42dFi+ebukH0vyl10yii33Raa+iVS2QKSwiJt5gCPWYeQJpO2EhDgYOsAIkUaZR2gEdaxDiCLpVkCGePj8EVgoHWOEjlwYb+oEnAJ+QmTBuSvuTvwT796iQoWYE7dVOsIsnD5Z1+/wF91xyEMHanSupTWXL21O/6wfrkzj3nNbdz6D9ZxRGSh0rpaaYCPQx2zUSV8HA4G3rPOsZQCF0TLWYcQKUIaJ7fqTMDK9pWPww+tQ0hZXGAdoEQW+gaeSsCl5F9461Lf764/MmbCu9ZZTGkwSEXzY2sH5K+/L/APPPsXZs2ps86TKRu37uB6HXN/7tiDH3QtV93bOo6IJFwQLUN6twLfbx1Amtx91gGW0orAftYhRIow2TpAI6zggqi5dQhZJK3gzygfh+8Ar1rnKIF2Log2+t9fVAnYCH7UuLvyV9y+Ky+/cxW+SqcxNMzTmYAp4N/+tG++z7XL8f4XWqpeSg5ov3V3d8FJr+S67N3POo6IALA7sJp1iEaYC7xkHUKa3JPWARohsA4gUoS07mLSUJ7K9YR1ACmrK60DlEiX//0FlYBFyA8Y1Mdff99pTJwy2DpLk5s9N63fSKtS/p6njvc3P3gGtZOHWGfJlGWaQ6fdz8pd0Wum69D+POs4IlXut9YBGulVH4ezrENI0/JxOAL4yjrHUupkHUCkCGl97aISsDJNBj62DiHl4+MwBj6zzlEC+/7vL6gELJIf9v1N+Utv2YK3PrnBOkuT0nbg1PHffHdD/m+3bs4Lb12lcy1LbMUWK7hunf6RO//EIW7rtqF1HJEqtb91gEZ6zjqAmHnGOsBS2sIF0QbWIUSqjErAyvRGYdq7ZNvN1gFKYB8XRD/r/VQClkj+wefO8Lc9cgbTZoy3ztIktB04tfJPv9rHX33n4Qwf9bJ1lsxZZ81N3SlHXJfr2f0F17rVodZxRKqFC6LVgfbWORpJQ5yqV9pKQIDfWAcQaaSZ1gEaSSVgZZpkHUCaxL3AdOsQRVodaLfgL6gELCH/xdAb8hfe0IpPvsn8+Wt+zlxNMUwx/8P4R/PX3fNb/1B8HrPn6F2sUttqk46u958ey/XofJt1FJEqsTvpfE4zycfh19YhxMy7QNqGd3WwDiDSSPXWARpJg0FEjPg4nAncbZ2jBH52ZE4anzBXvPwdjx/v737y7ExPZa3XduAs8G9+fGX+L9c248Ov7rLOkjnOwa7tTsxdffY8t/8eV1jHEcm4tBYT71oHEDs+DucAH1rnWEp7WgcQqTIrWQcQqXL3WAcogb0X/IlKwDLxH3x5Tb7Ptcvx7Yj/Wmcpi4aG2dYRpHTydw34o7/14TOYOGWEdZbMWW7ZnOu8V5/cpadOdLu0O9c6jkhGpbWYeNs6gJh7wzrAUtrCBdFa1iFERESago/Dd4G0D9fcecGfqAQss/xND3Tzj7xwHnVpXYG+CHPq0r43Xv6H/2rYDflLb9mYl965mrx2CJfc6qu0dEd27pvrfdz7brMNj7OOI5IVLoiWAXa0ztFIWgkob1oHaISdrAOIiIg0ofusAxRp7QUHe6kEbAL+9Q+v9H3v6MqIH16yzlIyDfO0HTij8k8O6u2vvvP3jBj9qnWWTGrTakd3eo/+uRO6DnBrtQys44hkwLbActYhGulT6wBi7mPrAI2Q1tJdJI00GETE3mPWAUrgx9WAOmi0ifjxkx4DHnOddr/E/a7DxTRLef9aXz/LOoKUjx897iHgIdeh/Xmuy96X02K5lH/BVqB2mx/kftX2oNzhnW7M//eF063jiKRYWqcCT/VxOM46hNjycTjSBdE0YBXrLEtBJWAFcUG0GrAesH7h47rAGsBqJAXSagv8eCWgReGPNgdWXMTVTgfmbwuZSTJUY+pCLtMKH8cBYwqXscAEH4faVlIazjqASLXzcfi5C6IRwEbGUYqxI/BfUAnY5PwLb13i1l9npDuqS0/WXSu9T6K0Hbgq+Nc/vAK4Infcofey/ZZHWufJnGbNYK/2p+WuOvMU//xbV/iB715kHUkkhdJaAn5rHUAqxhckE67TYjvrANXGBVFrYHNgi8Jls8JlfX4q9Upp5QV+3JiVaPNcEI0HfgBGAcMXuAwDRvg41K4iEUmTJ4EzrEMU4cejPFQCGvDfj70DuCN3yL5X8pud/4JL4Rs82g5cVfJ3PH6U22az993hHc+m5arrW+fJnBbLN3eH7PvX3EWnHOcHDLrGf/rtNdaRRFJkW+sAjfSNdQCpGF+SrhJwAxdEq/g4nGYdJGtcEOVIyr4dSbZutQfakb4Jsc1IViSuy8LfqPEuiEaRFIJfkRThXwKf+Tic0mQpRUSW3HOkuwT88fmySkBD+ScG9nGbbvC9O7JzyBqrbWadZ6loO3DV8V8MiYAod+h+/2TvHc8mpx3CJbfm6q3d8Yf1y511zCH+8Zdv8d+NfsA6kkgKpLUEHGodQCrGV9YBGmEb4C3rEGnngmgFkgJ4H6ADsAPpK/waw5GsYlyf5O/+028E0Q/A5ySl4IfAez4O9XgpItbeAOaRvMmRRmu5IGrp43CSSkBjfujIm4Cbcj0OuIFdtzvNOs8Sm1M3wzqC2Mg//vI5bv11Pnbdg55ssO4e1nkyaaPWHVyvYzrkjj34EP/UK7f4SVNfsY4kUokKk85WXuwnVqax1gGkYoy0DtAIW6EScKm5IGoG7An8BtgX2BVYxjRU5VmvcNl//i+4IKoF3gPeIZmq/p5WDIpIU/JxOMMF0QfALtZZirAV8KZKwAqRv//Z0902mw1xf/jdhay84lrWeRZL24Grmv9+7H3AfW6fnS5wnfe6jOWWTeGe9grngPZbH+HabX5Ersve1+SffvVs60giFWhL6wBFGG0dQCrG99YBGiFdO1gMuSBakaTQOhjoArS0TZRKawIHFC4AuCD6DHi5cHnVx6EWKIhIub1CukvALVAJWFn8F0OuB67PHX/YnWy3xbHWeX5Rff1M6whiz7/y/t+Bv+dO6Ho/7Tb/g3WeTFqmOXTa/azcFb1O8c++fnlhWIuIJNJcRIy3DiAVI40rAdtaB6hkheLvMKA7sB+wvG2iTGpXuJwJNLggehd4CXgReMfH4TzLcCKSSe9ZByjSr0BnAlakfP/H/uh22uZzd3jHK2mxfGX+H82tUwkoP8rf/mgP127zd93hnfqw2srrWOfJpBVbrOC6dfpH7vwTj/dPDLzBfzUsso4kUgE2sQ5QhOYuiDayDiEVo4F0PS/f1DpApSkM9dgbOBboSnWc7VcpmgN7FC4XAxNcED0JPA68pEnEIlIiH1gHKNKmkK4nG1XFv/9FP6Bf7tQ/PMoWGx1mnedn8vkGPy/fYB1DKov/bHAyOKRrx2vp0L4XOe0QLot11mzrTjniulzP7p39U6/c4keNe9w6koihNK9Gets6gEgR1rcOUClcEK0LnEJS/m1oHEcSawHHFy4zXBA9C9TYRhKRtPNxOLJwRuma1lkaqQ2AxntWuPxND3T1j754HnX11lF+MldbgWXR8o++eKa/9q5j+X7sO9ZZMm2rTTq6c//0WK5H59uso4gY0gtuERtruCCq6i2uLoh2dEF0D0m5dBF6PKpUKwFHAOdaBxGRTPjMOkARVAKmhX/1gyv91f85nJofXrbOAkCdtgLLL/M1Y+7OX/2f3fzjL1/E3DpvnSeznINd252Yu/rseW7/PXRWoFSj9awDiFSxNtYBmpoLopwLom4uiN4E3geOQtN9RUSqydfWAYqwtgui5VQCpoQfN/HRfL+7fuufff1S5uVtw2gysCwhP+i9y/Ln9svxxdBHrLNk2nLL5lznvfrkLj11otu1nd7plqrggmhZYG3rHCJVrGrOAHZB5FwQHQJ8ATwM7G4cSUREbAy2DlCkNioBU8bHb1zir7n7BMbWfmgWYm79DLPbllTK3/bIEf6Ox89i6gxNwyyn1Vdp6Xp07pvrfdz7brMNj7OOI1JmWgUoYmst6wDltkD59xHJkImtjCOJiIittJeA66oETCH//Zj++X/8e0cGvXc13mCnZV39rKa/UUk7/8k31+b/ekMrXv/wepOv22rSptWO7vQe/XMndB3g1moZWMcRKROtAhSxldaD0ZeIC6IOJFt+Hwe2N44jIiKVIe1DhtZSCZhi+cdf7u1vfOA0Jk0d3qQ33NCg7cDSaPlHXgj9tfccz+jxaR+xXvnabX6QO/+E53LdOt1gHUWkDFpaBxCpcmtYBygHF0QbuCB6BHgNaG+dR0REKspo6wBFWl0lYMr5ITU35S+5uS3vfHZTk93o3PrpTXZbkkl+xOg78lf138k/OeiSipp8nUXNmkGH9qflrjqz3u27y9+s44iUUCYLCJEUWck6QCm5IFrGBVEfkkPfD7fOIyIilcfH4TQgzcejqQTMivz9z5zm//1oyPSZk8p+Y/XaDiyl4V9651J/Zf+OfDXsMessmddi+ebukH3/mrvolFFuuy3Oso4jUgJaCShiKzMloAuiHUm2/l4BrGAcR0REKttY6wBFUAmYJf7zwdfnL7h+DT799q6y3lC9tgNL6fjayS/lb324q79zwNlMmznZOk/mrbl6a3f8Yf1yZx3zmtu49R+s44gUYRXrACJVLvX3wcLqv8uAd4DtrPOIiEgqpPk1q0rALMr3f+yP/r5nzmH23HxZbkDbgaUM/EdfXZO/8PqWvPnxzRoc0gQ2at3B9Trm/tyxBz/kWq66j3UckUZoYR1ApMotYx2gGC6INgPeAi4EmhnHERGR9JhiHaAIK6oEzCj/7mf98n+5phmDax4v+ZXX188u+XWKFOQfik/11993Mj9M+MQ6S+Y5oP3WR7gLThqU67J3P+s4IkspM1sRRVJqZesAjeWC6PfAR8CO1llERCR10lwCohIw4/I33n+Yf+ylC6hvKN2VNszTdmApKz/s+9vyV97+a//0q38r6deuLNwyzaHT7mflrug103Vof551HJEllNoCQkRsFLb/3gA8gN5IEBGRxknzjITVVAJWAf/K+//wV//nCEaOGVSS65szd1oprkdkcfwLb13sr7z9d3zz3ZPWWarCii1WcN06/SN3/olD3dZtQ+s4Iouh7XsissRcEK0JvACcZp1FRETEikrAKuHH1j6S/+ed+/rnXr+MfJFHBdY3zClNKpHF8xMmx/mbHzzY3/PUOUyfpQK6KayzZlt3yhHX5Xp2f8G1aXWodRwREZFiuCDanGT4xz7GUUREJP3S/Jo0pxKwyvjn3rjIX3v3yYytbdx5aw3z5jK3TtuBpcn597/ol78gWpW3P70VzQ1pGltt0tGd+6fHcj0632YdRUREpDFcEO0CvA20tc4iIiKZUJ4BrE1jlebWCaTp+ZoxtwG35Q777dXstl1PZs2pZdrMccycVcvM2bXMmFXrZ8wax/RZE5g5q5YZs2uZMWsC02eO83PmTuesvtZ/Bali+Qee7ek23eBz1z3oSas1trHOk3nOwa7tTsxdffYJ/qV3rvLPv6kzA0VEBFKwEsIF0W+BJ9E0cREREYC8SsAqln/spXOBc61ziCwtP3TkzcDNLtjzMtdxtwtZRg9lZbfcJ0oDUAAAIABJREFUss513qtP7tJTT/LPvXGlf+fTq60jiYiIqYpeCeGC6CDgv8Ay1llERCRTVrEOUIRp2g4sIqnl4zf+6vvecSCDRzxrnaVqrL5KS9fjgL653sd94Dbb8HjrOCIiYmaedYBFUQEoIiJllOoeLdXhRUT8uIlP5298oLO/9+nezJw92zpP1WjTqr07vcftuRO6DnBrtQys40hVmmIdQKTKTbYOsDAuiH4DPIQKQBERKY/lrQMUQ3voRCQT/HufXw1cnTuyy23svO2JOOtEVaLd5ge5X7U9KNdt/xvzjzx/unUcERFpMpOsA/wvF0TtgSdI+Qu0MqkDhgPDgB+AWmAiML7wcSIwl5/eYJkL/O+bq8sAKxZ+3AJYAVgdaFn4OP/HawBtgA0KH1cqx19IRMTIatYBijBDJaCIZEr+vqdPcptv9Kk7Yv/TWLvlltZ5qkKzZtBhh9NyV515in/+rSv8wHcvso4kVaHeOoBIlauolYAuiDYAnibdZzWVwhzgU+BD4GOS0m8YMMrHYSnOcZywtH/ABdGq/FQKbgZsDmxV+NimBJlERJrSqtYBilCvElBEMscPHnETcFPugA5/p+Nu59OsmXWk7Js3r55J04a6Ddbd0u2w9SV8/PWX3vtHrGNJpmk7sIitilkJ6IJoJZICcB3rLAZGAoOAN0mKv898HDbYRvo5H4dTganAl8BzC/6eC6IVScrAbYEdgV8D26PVgyJSudK8EnCqSkARyaz8s69f4NZZ8z13xP492XSD/a3zZMK8fAPjJw5j7MQv/JgJXzG29kvGTPjSj5v4hXU0qToVU0CIVKla6wAALogccCdJiVQNGoBXgGeAZ3wcDrGNUxwfhzNJVix+DNwN4IIoR1IMtgd2AvYkKQd1nr2IVIJ1rQMUYbZKQBHJND+2dgAwwO22XW938L6XscLyy1pnSoV5+XnUTv6OMRM+Z2zt135MbeHjhE+to4kUVNRWRJEqNMo6QEFvoKt1iDLzwEDgAeBxH4eZfhOksG35m8LlPvhxS3EHYJ/CRaWgiDQ5F0QtSPd24CkqAUWkKvi3P+0L9M0dfWB/dtrmOOs8FSOfz1M75TvGTPiSsbVf+jG1XzK29iv/w/iPraOJLEamXwSLpIB5CeiCaDfg79Y5ymgs8C/gTh+HI4yzmCpsKX66cJlfCu4PHAj/1959h8tV1fsff6+UU5KQEEgAQbFQ7AJiR8TOEgteC3rtvV+3V69dr3Lt7epSLD/16rVgwXLtbqwgoIgiqBS7gkKCCUoKKSdl//7YcyBiQs45M2fW7D3v1/PMQ07Oycwn4ZSZz17ruziO+kASSZptN8odoEuWgJKGy/ZPfPWp4RY3PT+ccOy/sWzpIbnz9M32quJvV/2Ry1ddxBVXXljVpd9F1V+uODd3NGmGLAGlfNZ0tnFmE2JaDHwGaOPg3/OBtwGfr8piIneYQdQpBU8BTgkxzQXuRl0IPoj60BFJmg1NLwH/bgkoaehUv/rje4D3zHnQMW/mPnd+aasODqkquHLNn1i56mJWrL6gWrn6IlauvrD688qf5I4m9di0T6iU1DOX5A4AvJP6tNk2ORd4DfCNqiyq3GGaoiqLbcAZndtLQky3Ax4LPAZPH5bUW01fRGIJKGl4bf/a6S8L++/zk3DCsc/mZje8T+4801IBf7vqUlZeeTErVk2WfRdwxZUXV5sn1uWOJ/XB5cB2nAkl5fC7nA8eYopAm0Z7/BF4GfA5y7/uVWXxC+AXIaaXA/egLgQfSbPneEkaDIfmDtClyy0BJQ216vK/fgH4QjjqiJeFh9zzDYyPDV6h8Lc1l7HyyovqU3hXX8iK1RewcvXF1eaJNbmjSblUZbElxLQCOCB3FmkIZTuRtjOU/b25Hr/HNgFvAt5alcWm3GHapnPAyGnAaSGmT1EfriJJ3Wh6CbjKElCSgOqs894MvHnOE4//X4681ROzhLhq7UpWXnkBK1ZdVK288kIm5/Zt2uwpqNLOXUpzS8DNwH65Q0gztDHjY78MuFnGx++VM4GnVGWRrVAdMq6wlNQLh+UO0IVtWAJK0j/a/rEvPync6qBzwyPv/+/svedNZ+VB1qz767Vl3+oLWbH6Qq5YfWG1YZMHHUjTcylw19whZmgUGKvKYmXuIFJThJhuCLw4d44ubQNeDbyls1JNktQAIaZlNHvO6OVVWVSWgJJ0HdVFv68PDnnIvd7Kve/0YubMcIfw2quvZOWqX7LyyourFasuoDO3r7p64+qeBpaG16W5A3TpZoAloDR1rwPGc4fowhXAI6qyODN3EEnStB2RO0CXLgWwBJSkXdj+le+/JByw77nhUcc+m5sccMwuP3D9hr9x+aoLueLKC6vOFl5Wrr6gWr/hr32MKw2jX+UO0KWbAT/MHUJqghDTwcDjc+fowvnA8VVZNP3ihSQNqzvlDtAlS0BJ2p3qsis+C3w2HH3ky8N97vwf/G3Nr1h55QXXlH0rVl1Qrd/gSh4pj4tyB+hSG+aaSf3yKmBu7hAz9APgIVVZeKCXJDXX0bkDdOkSsASUpCmpzjj3TdQn+EkaHE0vAW+TO4DUBCGmGwGPy51jhr4PPKgqiw25g0iSZibENJfmzqGe9FuAGQ66kiRJyqsqi7XAn3Pn6EKTT5iT+qmgmasAfwI82AJQkhrvcGBx7hBdsgSUJEmN1+TVgIeEmBbmDiENshDTGPCU3Dlm4FLqAvDq3EEkSV17QO4APWAJKEmSGu/nuQN0IQC3zR1CGnCPBJbmDjFNE8BDq7K4IncQSVJPHJs7QJfWVGWxEiwBJUlSs52dO0CXjsgdQBpwT84dYAZeUpXFeblDSJK6F2Lak+bPA7xg8heWgJIkqcmaXgIekzuANKhCTPsD98ydY5p+CLw7dwhJUs88mGbOpd2RJaAkSWq+qixWAH/JnaMLR+cOIA2wE6i3zTfFNuDpVVlUuYNIknrmhNwBeuAXk7+wBJQkSU33o9wBurB/iOng3CGkAXV87gDT9NGqLJp8WJGkqblDiKlJFyg0QyGmJcD9c+fogZ9N/sISUJIkNV2TS0CAu+cOIA2azguvJn1tbAVelzuEpL64NfCg3CHUF48ERnKH6NI2djhIzxJQkiQ13XdyB+jScbkDSAPoXsC83CGm4ZSqLC7NHUJS37w8dwD1RRMPp7qui6qy2Dj5hiWgJElquguAK3KH6MKxIab5uUNIA+beuQNM0/tyB5DUV3cNMd0zdwjNnhDTocDdcufogXN2fMMSUJIkNVpnCP+3c+fowmKadwKqNNua9MLrj9SnAksaLm/OHUCz6pm5A/TIWTu+YQkoSZLaoOlbgp0tJHWEmMaBw3PnmIYveiKwNJTuHGLy53cLhZgWAk/JnaNHLAElSVLrNL0EfHiIyedlUu0wYG7uENPwjdwBJGXzBn9+t9JjgT1zh+iBVVVZ/GbH3/CTVZIkNV5VFpcBP86dowsH0LwZaNJsuW3uANOwDTg7dwhJ2dwOeFruEOqdTqn7gtw5euT06/6GJaAkSWqLL+UO0KUn5A4gDYjb5A4wDT+vymJD7hCSsnp9iGlJ7hDqmeOBW+YO0SP/tFPGElCSJLXF53MH6NLDQkyLcoeQBsBBuQNMwwW5A0jKbjnwn7lDqGdemTtAD333ur9hCShJklqhKovf0ewX5AuBR+cOIQ2Am+UOMA2/zR1A0kAoQkxH5A6h7oSYjgOOzJ2jR/7UeW78DywBJUlSmzR9NWCRO4A0AG6cO8A0XJY7gKZkLHcAtd5c4IMhpiYdaqQddGYBviF3jh76+s5+0xJQkiS1ycm5A3TpNiGm++YOIeUSYloILMidYxpW5g6gKWnDKZ8afHcA/i13CM3Yo4HDc4fooZ2eXG8JKEmSWqOz7eGM3Dm61JYT6aSZuEHuANO0MXcATcnBuQNoaLwpxHSL3CE0PSGmMdq1CnAj8P2dvcMSUJIktc3/5g7QpeNCTLfKHULKZHHuANPkycDNcPfcATQ0xoBPhJjm5Q6iaXkxcJPcIXrom1VZ7PQilSWgJElqm8/R7BfmgXZdjZamo2kl4EjuALp+nRltloDqpzvgacGNEWK6EfDy3Dl67Iu7eocloCRJapWqLNYBX8ido0sP9ZRBDammzW5ztc/gO4769HWpn14ZYrpP7hCakpOA8dwhemgC+Nqu3mkJKEmS2uh9uQP0wBtzB5C0W3vnDqDdemruABpKc4CTQ0z75Q6iXQsxPQp4SO4cPXZqVRZrdvVOS0BJktQ6VVmcDZyTO0eXYojpfrlDqHshpkN9Idha++cOoF0LMd0YeFDuHBpa+wKfDTE5NmAAhZj2Bt6TO8csOPn63mkJKEmS2irlDtAD7/HFQyt8AlgRYvpZiOn1Iaa7d+aUqfkOzB1A1+tEwK815XQP2vF8pI0+CCzPHaLH1gFfub4PsASUJKlhLIWm7PPAytwhunRz4IW5Q2jmQkx3BO7UefMI4JXAGcCqENOnQ0xPCDHtky3g4FmbO8A03SZ3AO1c55T1x+XOIQHPCjE9M3cIXSvE9DTgYblzzIIv7OpU4EmWgJIkNc+C3AGaoCqLCeC9uXP0wKtDTK42aq6X7eL3lwKPBj4GrAwx/TTEdGKI6c4hpmF+jr49d4Bpul3uANqld+IqQA2Ok0JMx+YOIQgx3QJ4V+4cs+Qju/uA1p1mFebNG2VsZDHjo0sYH1vC+NiejI0sYXx0CWOjixkbXRJ2fP/Y6J6d9y1hbHTx9le/x7kekiS1x/uoS5gmnwy5APhwiOnYqiyq3GE0dSGmWwP/MpUPBY7s3P4TuDLEVAIlUFZlsXr2Ug6cXQ4zH1D7h5huUpXFn3IH0bU6w/7vnzuHtIN5wOdDTMdUZfGz3GGGVYhpEfAFmv28cFd+U5XFGbv7oIEvAcMRt3xkXd6NLAnjdYk3+Xan5Ft6Tek3Nro4/PeLx3JnliRplg38z+9BUZXF30JMJwEvzZ2lS/cDnkM7VjYOkzdQF3zTtTfw2M5te4jpHOCbwDeAn1Vl0bTVctOxKXeAGbg3U1h9of4IMe1Je1f5qNkWAV8PMR1dlcXvcocZUh8GbpU7xCz50FQ+aOBfRIQnP/SU3Bl6Kcyft4DRkYWMje7B2MgSRuYvYmT+QsbHJt9eyMj8RWF8bA9GO2+Pzl/I+Njif3j7gt+dtv0L335S7r+PJCmLPYFhWhnUrbcDz6P5V33fFmL6VlUWv80dRLsXYjoGOL4HdzUHuEvndiL1LMES+Drwraos/t6DxxgkK3IHmIEHYgk4SN4FeBq3BtV+wLdCTPeoyuIvucMMkxDTy4FH5c4xSzYDH53KBw58CTjowj3v+AJG5i8KY6OLGBvdk9H5CxmZ3yn5rvv2yJ7hHS+eydXgf7Zowfye3I8kqYmW5g7QJFVZrA4xfQh4Qe4sXRoHPh1iOqoqi825w2jXQkzzmL1Vm8uBx3du20NMP6LeNvwN4LymbxmvyuKqENNmYDR3lmk4LsS0qCqL9bmDDLsQ0wOBJ+bOIe3GTYHTOj/Pr8gdZhiEmE4A3pg7xyz6dFUWV07lAy0BuxSOO/qNjI2O584hSRoqloDT91bgWUDTx4YcCbwHeEbuILpeLwVu3YfHmQMc1bm9DljRWSX4DeA7VVlc1YcMs+Fy6hfJTTFGfcrkx3MHGWYhpmXAB3PnkKboIOD7Iab7uyJwdoWY7kZ9CFebvXuqHzjMJ4/1RsVE7giSpKGzLHeApqnKYgXwjtw5euTpIaYn5w6hnQsx3Y76cI8cbgA8GfgcsDrE9IMQ00s7mZpkZe4AM/Ds3AGGWYgpUG/J9pBHNcktqVcE3ix3kLYKMR1OPVO36ReBr8+ZVVmcN9UPtgSUJKl5bpw7QEO9FViVO0SPvC/EdMfcIfSPQkzjwKeBkdxZgLnA0cCbgZ+HmP4SYvpwiOlhIaY9MmfbnSYOzL9LiOnI3CGG2POAB+cOIc3AQcAPQkxtPawimxDTrYFvA4tzZ5llb5nOB7sduKlCaHOTnUUIYS7jY4sJwMj8JcydO4d5cxcyMn+EEEYYH10IzGFsdAkh1B8zb+4c5s5dwOj8UWAkjI8tBAJjo3syJ8D8eYuZP28uc+eMMzIyBsxnwdgiAEZHljJ3Dsybtwfz581j7pyx7S9+x4J8/wKSGsQScAaqslgbYvov6u20TTdGfcLgXauy+H3uMLrG+xncUwcPAJ7auW0JMZ1JvW34m1VZXJg12T+7IHeAGXo18NDcIYZNiOkOwNty55C6cADwwxDTv1Rl8f3cYdogxHRb4Lu0f/fMxdQHhU2ZJWBTjY40aVjywJjz4if/lNGRPZk7JzBv3iLmz5vPnDDK2OiCkF6WO54kTdVBuQM02AeA5wOH5A7SA8uBb3YGi7dlhWNjhZieT3MOJJgP3KtzuzuDV1wNWik5VceHmI6syuLc3EGGRYhpL+DzNOsgGWlnlgCnhpieWpXFJ3KHabIQ052ptwAPwwztt073QDBLwG5NTGxm3J85jXGj/Vq9TWPO2150Fdu2bwe2sXHTWgC2btvIxJZNAExsWcvWbduA7WzctAaAbds3s3liQ+f969m6bQtQVZs2X0VVwfZqgk2brwZgy9ar2bK1noO5eeIqtm+vqNjKxk3rOo+1gYkt9YmVExNrJrNUV29c259/AWloHJY7QFNVZbE1xPQi4Cu5s/TIIcCXQ0z3rcpiQ+4wwyrE9BDgnblzzNAbcgfYiaaWgADvCjHdo+mnNDdBiGkO8ClcHa/2mA98vDPH7iVVWWzLHahpQkwROAUY9LEXvfB74JPT/UOWgN3aXm3KHUG6xujIkmt+vWCsq6XPoesw15rz7pfXv9i2fRObJzYCsGXLOrZu2wpU2098/8E9fDhpGCwPMR1QlcVluYM0UVUWXw0xfRk4PneWHrkr8LUQ04MsAvsvxHQ08BmaOWv71KosfpI7xE5cAqylmXOc7g48mno2pGZJiGku9UEgx+bOMssW5Q6gLF4I3D7EdIIr/acuxPQc6pEvTfx5PBNvqMpi63T/0LD840gaBHPnjLFgbCkLxpayZI8D2XvPm7H3nm5rlGbmzrkDNNzzgTYVZvcCvhViWrLbj1TPdLYcfQ0Yz51lhgZxFSCdVXRn5s7RhXeHmJbnDtFWnQN4/g94Qu4sfbBv7gDK5p7A+SGme+UOMuhCTCMhppOA9zI8HdclwMkz+YPD8g/URoNw6pwkKZ+2r36YVVVZXAq8NneOHjuKuggchhk42YWY7gl8i2auVoP6QJAzcoe4HoOcbXeWUR8Sox4LMe1LPex/WE4CvmHuAMpqf+C7IaY3hpjm5w4ziEJMBwI/AJ6bO0uf/WdVFhMz+YOWgE01PtrUK86SpN54QIiplzv3h9E7ae4ppLtyJ+oTBp2RNYtCTMdTn6zb1AJwG/CS3CF24/TcAbr08M5hMeqRzpy0c6hHIAyLQ3MHUHYBeDnw487XgDpCTA8Ffsbw7Y65gBnMApxkCditiS1bckeQJA2lGwH3zh2iyTpzVJ4MTHueyoC7BXB2iOn2uYO0UYjpBcAXae4WYICPVGUx6AX4ucDG3CG69PYQ01G5Q7RBiOkpwFnAgbmz9NnhISbn+AvgCOAnIab/CjEN9cmkIabFIaaPUo8F2Dt3ngxeUZXF9pn+YUvAbm3b3qZ5QpKkZnl27gBNV5XFTxnQuWhd2g/4QYjpUbmDtEWIaSzE9L/UK0ib/Bx6HfDq3CF2p7PNqcydo0vzgS+FmFzNNUMhpkUhpk8C/wMsyJ0ngwXAXXKH0MCYR/39+4LOKbhDp7MS/wLgSZmj5PKdqiy+2s0dNPkJjCRJw+5hIaYjcodogddTrzpqm4XAZ0JMyVlC3QkxHQKcDTwxd5YeeFVVFlfkDjFF/5c7QA8sA8oQk7PdpqlzIMIvgcfmzpLZCbkDaOAcDHwzxPSVENPBucP0Q4jpwBDTl4AvUe+GGUbbqE+O7oolYHPNzR1Aklqg6au5A3BSiMmfCV3obAt+PLA5d5ZZ8nzg9M7wbE1TiOlpwHnAYbmz9MA5wEm5Q0zDV2nHdv2bAqdZBE5NiGmPEFMCvgfcJHOcQfDEENOeuUNoID0YuDjE9L4Q0w1yh5kNIaYlIaY3Ar8Gjs+dJ7MPVWXxy27vxBKwqUZHFuWOIEktsDZ3gB64G/CW3CF2JsQ0N8R0r85KtEsG+QlqVRYXA/+RO8csuiv19qGn5g7SFCGmG4WYvg58iHpVZdNtBZ7WzRyhfqvK4irqk2Db4CDqIvCQ3EEGWYjpkcDF1BcvVFsMvC53CA2sedTjYX4XYnrLID/Xmo4Q04LODN7fUx+MMpY5Um6rgFf04o4sAbu1deu2LI8bPBBSknqgDSUgwItCTO8ahBWBnRUc/xJi+hj1E5bvUb+YO5ABX0lVlcVJwBdy55hFewAfDjF9PcS0f+4wgyrENK/zwuMi4LjceXrozb1YQZDBybkD9NBBwI88LOSfhZhuG2L6FnAKcEDuPAPoeSGmx+UOoYG2gPrU9z+EmD4QYjood6CZCDHtGWJ6JXAp9QzeYTz4Y2deVJXF33txR5401K2t29bnjiBJmrErcwfooQK4RYjpif2c9xViCsBtgQcAxwJ3px6GvzOHM/iD/p9MXVa2ecbOcdTbh04E3t3ZDi0gxHRf6hcdt8mdpcfOAf4rd4gZ+hyQgKW5g/TI3sD3QkzPr8ri/+UOk1uI6QDqz80nU4+40K59LMS0tCqL9+QOIr5FfWDL4txBdmIMeCbwjE6x/gHgq1VZ5Fm8NEUhpjtR5340w3kI0PU5Dfhkr+7MElCSNMwuzx2gx46l3vL5KuDDs/WEL8S0L3DPzuNFYKpbTwZ6JSBAVRbrOtvRzgZGc+eZRYuBdwBPCzH9W1UWbdlyOSMhpjsDJ1J/TrfNeuAxVVlsyR1kJqqy2NRZWfyC3Fl6aAT4QIjpaOA5VVm0ZVX6lHW2LL6U+kX/sG/zm6o5wLtDTA+nPuDnzNyBhtgK6q2ZgzxjNVD/TDsWWBFi+jRwSlUWP84b61ohplsADwMeBdwuc5xBtRF4RlUWVa/u0BKwubxSJknda8oJmdOxjPqq78tCTO8BPlOVxYzLzhDTAuAW1Kv4jqJe6XfoDO/u8Jnm6KeqLM4PMT0H+J/cWfrglsB3Qkwl8IqqLM7LHaifQky3o16F1OZh48+ryuL3uUN06QO0qwSc9Fjg7iGmJ1dl8f3cYfqhczjKf2D5141jgDNCTBcCXwTOAM6vymJV3lhD5/3Uh4rdOXeQKbgB9amyLwwx/RH4OnAq8L2qLPp2SF6IaSFwNHBf6nKybavuZ8MrqrL4bS/v0BKwqUbmD+LSY0lqmj/kDjCLbkK90uvtIaafAj8ELgAuAVYDk1cUx6lXvC2kfpK4H/U8phsCt+7cT68uPB0aYlrQzyecM1WVxUdCTLcB/j13lj6JQAwxfRl4ZVUWF+YONJtCTPei/n/7INp9YfVjVVl8LHeIblVl8esQ06m0c6Xmjam3B38YeHlVFqtzB5oNIabDqMu/R7HrkRGanlt3bgCEmNYBv6nK4g75Ig2Pqiy2h5ieBJxPs3YO3BR4Xuc2EWL6GfXuh7OB84A/9GJMSIhpCXAIcARwJPWF4Nvj1/90nAm8u9d3agnYra3berYsc1rmeqaLJPVAm0vASQG4Y+eW2xzqq77n5A4yRS8Gbk67DofYneOB4zsrA98JfLuXW1ByCjGNUs8a+ncasDW9B84BnpU7RA+9lnaWgJOeBjw8xPRq4ENVWUzkDtStENMI8FDqz8N7ZY4zDPag3fNsB05VFr/qjGB5W+4sMzRCPdvwLjv83tYQ0++onyNfTn3I2yrqw/S2AeuoLyDPoy70FlHvQtm7898bUR+C5IEe3VkHPL4qi+29vmNLwG5t2Tp0MzwkqUV+kzvAEDqchpSAVVlsCzH9K/Aj4Fa58/RZ7NwuCjGdBHy6KourMmeakRDTXYAnUK9A2itznH65AnhYVRabcgfplaoszg4xnUY9j7StllLPGHtJiOk1wMlNnOXY2Wb/eOCJwPLMcXbnaupDCNq8Iliz67+pD0e7d+4gPTKPegzMLXIHGXLPqcriT7Nxx5aAkqRh9mtggvpKqPqjEXMBJ1VlsTbE9CDgxwz+i9nZcCvgfcC7QkxfAT4BfHOQi4nOidWHUa9qfCz1dqRhsgV4eFUWl+UOMgtOpN0l4KQDgY8CbwgxfRD4QD9PfZ+JzviER1Cvtr155jjT8RTq7Xb75g6iZupsC34C8Evac4q58jq5KouenQZ8XZaAkqShVZXF1hDTxQzH1sBB0bh/66os/hhiOhY4jfpU3WE0Qv0C/xHAmhDTt4CvAd8YhBlmndlDxwAP7NwOyJsomwp4XFUWZ+UOMhuqsjit87l3/9xZ+mR/6m3QrwoxfRc4BfjiIKzKDTHtBdyDegXUA6i3ADbNu6qyOCXE9DIsAdWFqiwuCzE9EfhK7ixqvIuZ5VEeloBNNW/eHrkjSFJL/JgGFlMNdrsQ05zZmHEym6qyOC/E9BDgm9SzcIbZEuCRnVsVYjqfesv0WcAPZ2v7yqQQ03zquVd3Au7Wud0at/MBvLAqi1Nyh5hlLwB+wXC9jplHPQ/xWOCDIaZzgO9SX5j4aVUWa2bzwUNMY9Srgg+nnh12d+qTxZvsu9RzXwFW5gyidqjK4qshprdx7eeVNF0bgEdWZbF+Nh9kmH54zo7t2/I87jxPBpGkHvkh8IzcIYbIIuBmwO9yB5muqixO78wI/CL1ISeqi7cjOrfnAISY1lBfyZ68XUo9XPyvwOVVWay73juMaZx6Vc5+nf/egHqV0a2oZxQdjM9hd+btVVm8K3eI2VaVxcUhpvcCRe4smcwF7tq5vQqgM8T/58BvqYf5/4n6a+5K4Mrr277f2T6/F/UQ/72ov+5ussPtFtRb6tv0Pe831C+0J09A/UvOMGqVV1AfxHbPzDnUTE+pyuK9TO16AAAVKklEQVTC2X4Qn0B1a8KDQSSp4c7MHWAIHU4DS0CAqiy+3Jn983Ha9aK4l5bwz6cNXiPEBLAJ2AxspC41RqhXWDqfc2Y+ALwkd4g+ei3wGIZzTufOHMz1nAobYtpIPf92O/UJn4upv3/Npz4UY5isBh5UlcXfd/g9VwKqJzpjZk4AfgLcOHceNcqbqrL4bD8eyCev3atyB5AkzVxVFr+nXjmh/mnU4SDXVZXFydSnzTZqS/OAGaMuC/ejLnKWYAE4Ux+gPkVwaJ6TdmbiDetKwJkYp/4aW0pdTCztvD1sBeBG4MFVWfz2Or9/eY4waqeqLFYBD6U+eVqaiq/SWdndD4NfAp570af49Z++w2V//QVr1l3Otm0TuSNJklrnm7kDDJnGz2C0CNSA+AhDVgBOqsri08Dnc+dQY2wBTqjK4uydvM8SUD1VlcX51Cdl+xxBu/Mz4NH9nJU98NuBt3/sy4+97u+F8bEl7LFgXxYuWMaiBctYNL6cRQv2DYs6by9csJxFC/ZhjwXLWTi+jJH57RvgPW/uwtwRJKlF/g94bu4QQ6TRKwEnVWVxcmdrq1uDlcNHgGcMYwG4g+dQn1C7T+4gGmjbgcdXZfG1Xbzf7cDquaosvhZiej5wUu4sGliXAA+symJDPx904EvAnak2bloDrKEe6rpbYXRkEYsWLGePBft0isPlLBxfFvZYsC+LFizvFIfLWLRg+k8gtve4sN2waS0TW65m88R6Jras3eHtq5nYsoYNm9ZWE1uuZmLL1byotw8tSUPsNGAVzpfqlxuGmPauyuLK3EG61SkCJ4BP4nZW9c+bgFcOeQFIVRarQkzPAL6UO4sG1nbgCbuZtfXnfoXRcKnK4r0hpn2A/8ydRQNnNXD/qiz6fhGikSXgdFWbJ9YD64E/9vzO12+4mqvWXs7mLevZvGUdGzetYWLiajZvuZrNW9aycdOa6jpvX/P+a0q+ifVs3nJ1tXnCQ0YkKYOqLLaFmE7B1YD9dBjwvdwheqEqi8+FmK6gnumyOHcetd4Lq7J4Z+4Qg6JzWM978fu3/tlkAXjybj7ur52PdUW3eq4qi9eEmJYDz86dRQNjLXUBOKVFbb02FCXgbNr+f999Ru4MkqSe+B98EdlPrSkBAaqy+EGI6SigBA7InUettAV4SlUWn8wdZAC9ELgjcKfcQTQwtgBP7MyOvF6dC4F/pT6oSJoNz6U+oOdJmXMov43UJ5SflyuAVzskSQI6P4x/kjvHEGnFXMAdVWVxAXAX4KLcWdQ6q4D7WADuXFUWE8DDcLabahuBh06lANzBZbMVRuqMbnga8KncWZTVZAF4Rs4QloCSJF3rv3MHGCKtKwEBqrL4C3BXYFcD6KXpugC4U+4XDYOuKovLgIdSv8jS8FoN3K8qi29M889dOhthpElVWWwDnkB9qJOGzwbqAjD7LhhLQEmSrvV54Pe5QwyJW4WY5ucOMRuqslgLHA+8PncWNd7XgLtVZfGn3EGaoCqLHwOPo57vpuHzW+qvl7Nm8Gd/2esw0nV1isCnAe/NnUV99Xfg3oNQAIIloCRJ16jKYisWN/0yD7h17hCzpSqL7VVZvBp4BHB17jxqnG3Ay4GHVGWxLneYJqnK4ovAc3LnUN99D7hLVRa/neGf/3kvw0i7UpVFVZXF84ATc2dRX6wAjulcpBoIloCSJP2jTwK/yh1iSLRyS/COqrL4AvWcwItzZ1FjrADuWZXFmztzpDRNVVn8P+oSVcMhUZ+0+bcu7uMMwK839U1VFq+lPjHYlcvt9SvgqKosBmqlsSWgJEk76KwGfEHuHEPisNwB+qFzYMgdgA/lzqKBdypweFUWZ+YO0nRVWbwZi8C2Ww/8a1UWL+hss5yxqixWAb/oTSxpaqqy+ADwQOrPZbXLGdTjCf6YO8h1WQJKknQdVVmcCnwxd44h0PqVgJOqsthQlcUzgBOAq3Ln0cDZADwPeEBVFn/NHaYtOkXgi3Pn0Kz4JXDHqiw+08P7/FwP70uakqosSuAo4JLcWdQzHwXuW5XF33MH2RlLQA2XNetWsGXrltwxJDXCc4FuthZp94amBJxUlcXnqP/ep2WOosFxNvXqv/e6/bf3qrJ4O/B03HLXJu+iLgB7Pbrj5B7fnzQlVVn8AjgS+H7uLOrKNqCoyuIpVVlM5A6zK/NyB5D6afurT9ofIIyNLmbh+LLObe/ObVlYuOCaX7NwfBmLJt+/YG/mzxvNnV9S/1RlsTLE9DzgU7mztNieIaYDq7K4NHeQfqrK4pIQ072BZwFvAfbIHEl5bAReC7yj262Mun5VWXw4xLQC+CywMHcezdifgadWZfHt2bjzqiz+FGIqgTgb9y9dn6osrgwx3R94A/CS3Hk0bVdQjycY+CLXElBDqdq0eS2wFvjDVP9MGB1ZxIJOQbhofPk15eDC8b3DtUXi8vr9nTJxZP747P0tJM22qiw+HWK6D/DU3Fla7HBgqEpAqE8HBN4fYvo68EHg2MyR1F/fBJ47iLOC2qoqi6+HmI4GvgQcmDuPpu3DwIuqslg7y4/zZiwBlUlnLvVLQ0xnAf8LLM2bSFP0PeCxVVmszB1kKiwBpSmqNk+spx7aOuV5DWFk/oJOcbg3C8f3YdE/FYfLOu9fzh4L9p699JK68G/UWzSGbutqnxwGfCV3iFw6qyBjiOkJwNuAfTJH0uxaATy/KovP5w4yjKqyOC/EdCfqFYHH5M6jKfkV8KyqLE7vx4NVZXF6iOl0/PxQRlVZfCXEdBjwSeAeufNol7YBJwJvbNKKfktAaRZVE1s2UA/7/nNfHu+tHz2S5UsPYfnSQ8LyvQ5ln70OYZ+9DmHhuAWjNENVWWwMMT0YOAe4Qe48LWS5ClRl8fEQ05eB11AXzz5Ha5dNwDuAt1RlsS53mGFWlcUVnRXer+7cnJE+mDZQb4t8e4bZWgXwM/zcUEZVWfy5MzrkJdSjI0byJtJ1/I569d85uYNMV6gq5w9LbRcWjO/FPksPYdnSQ8I+e9+c5UsPZvleh7J86cGMjy7OnW/7898UcmfQcAph6p96IabDgdOB7F8zLfOHqiwOyh1ikISYbgkk4H65s6hrFfVhA6+oyqIvFwQ1dSGmY6jnvu6fO4v+wcnAS6uyuCxXgBDTO4EX5Hr8LqypymLP3CGmKsT0AuCduXPMwMeqsnhSvx6ssyrwY9S7J5RXBbwHeGVVFutzh5kJS0BpyIXFC/erC8G9DgmdVYQs3+tgli89lJH5Y/3IYAmoXKZTAgKEmO4KfBdw3mdvLXZ11D8LMT0EeB1wu9xZNCOnAq+qyuKnuYNo10JMy4CTgEflziK+R13+Zf+aCTGNAecCt8qdZZosAfujryUgQIhpPvAy4JWAB1bm8WvgKVVZ/DB3kG5YAkrapbB0yYEsX3oI+yw9JCxbegj71GUhy/a8GXPnzu/V41gCKpfploBwTRFY4orAXjq6Koszc4cYRCGmOdTlxOsAV0w2w6nAa6uyODt3EE1dZ+zDe4Eb5c4yhH4MvKYqi1NzB9lRiOk2wI+ARbmzTIMlYH/0vQScFGK6OfB+4F45Hn9IbQBeD/x3VRabc4fpliWgpBkJy5YexPKl9QrCfTrzB5ctPYS9lhzInDB3OvdlCahcZlICAoSYjgC+jjMCe+XfqrI4KXeIQRZimgc8mXqGmSXFYPou8J9NXyEwzEJMi4E3As8BfG4y+35MXZiXuYPsSqcc/hLNmQ9oCdgf2UrASSGmR1MfKHbDnDmGwOeoTyZvzUgPS0BJPRf23fuW7LP3oZ0DSg6ZXE3IksU33NlTaktA5TLTEhAgxHRD4Kt4sEUvfLgqi6fnDtEEnTLwX6kHhd8mcxzBFuqTZt9elcXPc4dRb4SYbge8HedyzpYSeHO/TvztVojp2cD7cueYIkvA/sheAgKEmBYCL6J+TrAwc5y2ORN4cRtX9VsCSuqbMDqygGVLD2WfvQ5m2Z6Hhn32Opjle918+7s+cVTubBpO3ZSAACGmcerhwE/tSaDhczHwEeATVVlckTtMk4SYAnAc8FLg6MxxhtHfgQ8B7855eIFmV4gpUq+0sXDv3nrg48B7q7K4KHeY6QoxPZ/6wKZBZwnYHwNRAk4KMe0LvAp4GtCXme4tdj71eIKv5A4yWywBJUlDq9sS8Jr7ielfqQfL79WTO2y3dcBngI+08epqDiGmI4FnAY8BFmSO03ZnAh8EPleVxabcYTT7OqtvHw28Arhl5jhN9CvqVXQfq8pibe4w3QgxPZ16Ftu0xt70mSVgfwxUCTgpxHQD6ouDz8QycLrOBk4ETq3KotUlmSWgJGlo9aoEBAgx7UddBD68Z3faHmuBrwCfB75VlcXGzHlaqTPP7HHAM4DDMsdpk1XAp4APNnEFk3qjc0jPQ6hP5rxD5jiDbgP1HL2PAN9r0wvqENO9gE8D++bOsguWgP0xkCXgpBDTcuB51PNNl2WOM8gq6u9V76jK4qzcYfrFElCSNLR6WQJec58x3Rd4F3Drnt95s/yVembi54HvVmWxJXOeoRJiuiP16qVH4kEiM7GW+oXBp4HvVGWxNXMeDZAQ072pV98+FJifOc6gqKgPx/kk8IWqLNZnzjNrQkxLqYurJ+bOshOWgP0x0CXgpBDTGPVzgWcCd8kcZ5BcQX2R4oNVWfwpc5a+swSUJA2t2SgB4ZoVI48BXgscNCsPMngmgLOAb3Vu51dlsT1vJHVmB94ZOIH6hYAnWu/alcA3qcu/b7hiVbsTYtqHeibs04GbZo6Tw3bqLfJfBj47bPMxQ0zHAK8H7p47yw4sAfujESXgjkJMhwFPAB7L4K5knU0TwNeoL1R8bZgvTlsCSpKG1myVgNfcf10G/gvw70DbDsDZBpxHXfx9GzitKour80bS9ekUgkcAxwL3p/6cHPZVTL8Avt65nV2VxbbMedRAne/1dwYeQftX315NfaHny9QvpK/MnCe7ENOx1NsuH0j+eYGWgP3RuBJwUohpLnBf6uenDwOW5000qyaon6P+H/UK5asy5xkIloCSpKE12yXgPzxWTLcGngL8K81cjbUO+BH1qo+zgB9b+jVbiGkRcG/gPsBdqQvCeVlDza6KuvQ7AzgdOL0qi1V5I6ltdlh9+zDgftTzOfv3w6b3tgDnAKd1bmd6KM7OdWYDP566DDyK2f9+uhm4mPr72i87twuatCLTEjCvTiF4VyACx1E/D2i6P1NfqCiBss2jCWbKElCSNLT6WQJe85j1ipGjqK/A3p/BnB14FfUqvx1vv3KVVLuFmMapXwDcjXp20O2Bm9DcAuOPwLnUn78/A86pyuJveSNp2ISYlgH3pF55cwxwcwb7a+oK6q+Zn1KX5T+symJD3kjN0zmo6RjgjsCRwOHA/tO8m3XAZZ3bpZ3bn4BLOrdLmz6v1BJwsHQOFDmK+nvWUdQXMQZ9x8DvqS9On0V9ce/XmfMMPEtASdLQylEC/lOGmA6gnid0FPWLhdsCC/v08FcAvwV+17ldBJw3jEOStXMhpgXALYDbALfq3A6h3u7Yr8/T67MF+APwa+rP5V91/vtzt/1oEIWY9qB+YX176lOGb0c9O3ZRn6Osp/6+/3vqlWTnAT9r0iqypukc0nCTzm1fYDGwhPr//d+pVzCtAC4H/jIMq+0tAQdbiGmU+uLg4dTPTyefC+Q4cfhq6p/1k6tfzwPO9eLe9FkCSpKG1iCUgNfVWSl4E+ri5aDOrw+gfsGwD7AH175wuK511IPa11DP7FtFXfStoD6td/K/fwR+U5XFutn7m6jtOidkHkhdCN6Iepv70uvc9gLGufbzdR47Lw+3U3/+Qr3F7arObc0Ov14F/IX6BfLlnV9f4QE0aoPOISMHU3/fP5D6e/6yHW57UX8dBWAMGL3OXayn/r6/kfpraDX118zkz4HV1D8Dfg/8tiqLv87u30jaPUvAZuqsdJ18jnrDzm0/6u9Ve1N/v1pAXXAvZternzdSf+9aD6yl/n41+b3rcurVr5cAl1Rl8ZfZ+dsMH0tASdLQGsQScCZCTKEqC3+gq1H8vJW6E2KaYwmuJrMEHC7+3B8Mc3IHkCRJ3fEJlZrIz1upOxaAkprEn/uDwRJQkiRJkiRJajlLQEmSJEmSJKnlLAElSZIkSZKklrMElCRJkiRJklrOElCSJEmSJElqOUtASZIkSZIkqeUsASVJkiRJkqSWswSUJEmSJEmSWs4SUJIkSZIkSWo5S0BJkiRJkiSp5SwBJUmSJEmSpJazBJQkSZIkSZJazhJQkiRJkiRJajlLQEmSJEmSJKnlLAElSZIkSZKklrMElCRJkiRJklrOElCSJEmSJElqOUtASZIkSZIkqeUsASVJkiRJkqSWswSUJEmSJEmSWs4SUJIkSZIkSWo5S0BJkiRJkiSp5SwBJUmSJEmSpJazBJQkSZIkSZJazhJQkiRJkiRJajlLQEmSJEmSJKnlLAElSZIkSZKklrMElCRJkiRJklrOElCSJEmSJElqOUtASZIkSZIkqeUsASVJkiRJkqSWswSUJEmSJEmSWs4SUJIkSZIkSWo5S0BJkiRJkiSp5SwBJUmSJEmSpJazBJQkSZIkSZJazhJQkiRJkiRJajlLQEmSJEmSJKnlLAElSZIkSZKklrMElCRJkiRJklrOElCSJEmSJElqOUtASZIkSZIkqeUsASVJkiRJkqSWswSUJEmSJEmSWs4SUJIkSZIkSWo5S0BJkiRJkiSp5SwBJUmSJEmSpJazBJQkSZIkSZJazhJQkiRJkiRJajlLQEmSJEmSJKnlLAElSZIkSZKklrMElCRJkiRJklrOElCSJEmSJElqOUtASZIkSZIkqeUsASVJkiRJkqSWswSUJEmSJEmSWs4SUJIkSZIkSWo5S0BJkiRJkiSp5SwBJUmSJEmSpJazBJQkSZIkSZJazhJQkiRJkiRJajlLQEmSJEmSJKnlLAElSZIkSZKklrMElCRJkiRJklrOElCSJEmSJElqOUtASZIkSZIkqeUsASVJkiRJkqSWswSUJEmSJEmSWs4SUJIkSZIkSWo5S0BJkiRJkiSp5SwBJUmSJEmSpJazBJQkSZIkSZJazhJQkiRJkiRJajlLQEmSJEmSJKnlLAElSZIkSZKklrMElCRJkiRJklrOElCSJEmSJElqOUtASZIkSZIkqeUsASVJkiRJkqSWswSUJEmSJEmSWs4SUJIkSZIkSWo5S0BJkiRJkiSp5SwBJUmSJEmSpJb7/xIy493nzvogAAAAAElFTkSuQmCC\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeapLogo);\nexport default __webpack_public_path__ + \"static/media/leap-logo.ca1b6aff.svg\";\nexport { ForwardRef as ReactComponent };","var _image;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLeapLogoTagline(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"For_SVG\",\n \"data-name\": \"For SVG\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 384,\n height: 118,\n viewBox: \"0 0 384 118\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", {\n style: {\n transform: \"scale(0.3)\"\n }\n }, _image || (_image = /*#__PURE__*/React.createElement(\"image\", {\n id: \"Rectangle_7\",\n \"data-name\": \"Rectangle 7\",\n width: 1281,\n height: 394,\n xlinkHref: \"data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAABQEAAAGKCAYAAAC8QodkAAAgAElEQVR4nOzdd5xU1f3G8c8ZsGAXCypYsUfRiF1RowFvBCsiCbbETiwXG8ESSzRRMajXHiPGXmPBem1g771Lk0WQtvS+u8z5/XEHxfxAYGdmv3PvPO/Xa15LWWYeYGd25plzztd57xEREalGud9dn8pvgj4OnXUGERERERFJl5x1ABERERERERERESkvlYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxza0DiFSz3PXn+WKvI3/GFa4UWUREREREREQku7QSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMk4loIiIiIiIiIiISMapBBQREREREREREck4lYAiIiIiIiIiIiIZpxJQREREREREREQk41QCioiIiIiIiIiIZJxKQBERERERERERkYxTCSgiIiIiIiIiIpJxKgFFREREREREREQyTiWgiIiIiIiIiIhIxqkEFBERERERERERyTiVgCIiIiIiIiIiIhmnElBERERERERERCTjVAKKiIiIiIiIiIhknEpAERERERERERGRjFMJKCIiIiIiIiIiknEqAUVERERERERERDJOJaCIiIiIiIiIiEjGqQQUERERERERERHJOJWAIiIiIiIiIiIiGacSUEREREREREREJONUAoqIiIiIiIiIiGScSkAREREREREREZGMUwkoIiIiIiIiIiKScSoBRUREREREREREMq65dQARERERSR8XROsArYH1Fvi4RuHSsvBxBaAFsFrhx8ss5mqnAbMLl6nATGASUAtMLFxGA2OAUcAoH4fTS/n3EskSF0TLAmuT3EdbkdxP1yn82qqFyyoL/HhVwBUuq/zCVU8H8iT31enADJL77zRgMjAOmACMLXz8ARjh43BaSf+CIlI2LohWAtoCG5M8bqxL8jjSqvDztUg6pZUKH1fk/3dMUwsf55A8Tkxc4DK+8HEE8B3wnY/DsWX7CwmgErAqOedOZ+2Wo/y4iY9bZxEREZHKVXgBsBXwK2BbYBOSFwRtSUq9UluFXy4e/h8XRLXAcGAoMAz4AvgSGOzjsL7kCUUqjAui5YGtgU0Ll7Yk99VNSco/V4abXbnwcVWSMmCJuCCa/4J/BMl99iuS++w3Pg5nlTaiiCwJF0TNSR5DdgTaAduQfN9f4vv2L1h1gY+tSB6ffinLbJJC8Gvgk8LlUx+H35cgiwDOe2+dQYzkOu/Vl7br78vQkYP8kJED/ZCa56wzVZvc9ecVfQfMn3FFOZ7YiVSF3O+uT+U3QR+Hut9LyRUKv52B9iQvBHYiefc/rRpIXkR8AHwIvAd85uNwrmkqkSK4IFof2IHkhfq2hY+bkf5jnjxJMfgh8D7J/fVDrfQVKT0XRCsCHYA9gb1JHlPK8cZeKU0ieWx4BXgDeM/HYZ1popRSCVjlXOtW3V33oCcbrbc3dfUNfDf6XT+kZhCDawb6EaMHWefLOpWA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nHUK9iFG0UcM3IB9OH0Z9uHebzzHU3hKAoqISG35SAKOiSGMj8LWEzoFe7PwCGDWgFZ/G/A74PfudR1wVR2LJEs2E8YzgQcDDwce6l7HYYc7Dmo/Hc9eYCPwG+y+/Gv37y807EeKyITxIdgb67/FzjL8SGzt2NkDDuUu7Hn/BmxPsquAn5epF1nZuEkaHuBeRwBzgLnYz34LtgfTrcAtwJ/r0NteScBiM2E8Hftw8ERs+7TZFvAx4/Dd2Gt9s/frVcAGPdzrnJKAIiJSW0VIAo7mego+AJt4Ocb9/yjsDcPhwCHce+Mw2nZsofat2Jp9m7GJvluxs/U2//0D8Ns0ibb3751I1bkZMo/GJgTvjx3mPjzqNQ+Ywb376xSyk4f7sfsv2CFud7rX1hH/3wz8GXuDfIv7/22agEaqwE0yciz2vH809pw/f8RrHvY4MsAQMH3UIu7Cnvd3Yo+h27HHTPM6cDv2GnAD8Ls0if7S33ckMjElAcvJ9XRttlHv515HYs9Vh2HPVzOxCe45tO79vBN77roL2IY9XzXPXbdge7/eCNyYJtGf+/Nu6kdJQBERqa0iJgG7YcLYpEmkC7qUivZbkd6YMJ6kJLiUmZKA9aLrfjFM8h2AiIiI9EYNKikj7bcivVECUETKRNf9YlASUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRilMSUEREREREREREpOKUBBQREREREREREak4JQFFREREREREREQqTklAERERERERERGRipsyiJUYYwaxGhGRWguCYBGwGFgKLBr1443A6kajsWrggYmIiIiIiIh3A0kCiohI/wRB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\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeapLogoTagline);\nexport default __webpack_public_path__ + \"static/media/leap-logo-tagline.f465f561.svg\";\nexport { ForwardRef as ReactComponent };","import { useDispatch } from \"react-redux\";\r\nimport type { AppDispatch } from \"../redux/store\";\r\n\r\n// Use throughout your app instead of plain `useDispatch`\r\nconst useAppDispatch = () => useDispatch();\r\n\r\nexport default useAppDispatch;\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet-async\";\r\n\r\nimport { Button } from \"react-bootstrap\";\r\n\r\nconst Page500 = () => (\r\n \r\n \r\n
\r\n

500

\r\n

Internal server error.

\r\n

\r\n The server encountered something unexpected that didn't allow it to\r\n complete the request.\r\n

\r\n \r\n \r\n \r\n
\r\n
\r\n);\r\n\r\nexport default Page500;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\n\r\nconst Loading = () => (\r\n \r\n \r\n
\r\n

Loading...

\r\n

Please wait...

\r\n
\r\n
\r\n);\r\n\r\nexport default Loading;\r\n","// This is a custom filter UI for selecting values where values come from a static (fixed) list that is set upfront\r\n\r\nimport React, { useState } from \"react\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport { useAsyncDebounce } from \"react-table\";\r\n\r\nfunction CreateStaticSelectColumnFilter(values: Array) {\r\n let StaticSelectColumnFilter = function StaticSelectColumnFilter({\r\n column: { filterValue, setFilter },\r\n }: {\r\n column: any;\r\n }) {\r\n const [value, setValue] = useState(filterValue);\r\n const onChange = useAsyncDebounce((value) => {\r\n setFilter(value || undefined);\r\n }, 300);\r\n\r\n // Render a multi-select box\r\n return (\r\n {\r\n setValue(e.target.value);\r\n onChange(e.target.value);\r\n }}\r\n >\r\n \r\n {values.map((option: any, i: any) => (\r\n \r\n ))}\r\n \r\n );\r\n };\r\n\r\n return StaticSelectColumnFilter;\r\n}\r\n\r\nexport { CreateStaticSelectColumnFilter };\r\n","// This is a custom UI for our 'between' or number range\r\n// filter. It uses two number boxes and filters rows to\r\n\r\nimport React, { useState } from \"react\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport { useAsyncDebounce } from \"react-table\";\r\nimport DatePicker, { ReactDatePickerCustomHeaderProps } from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\n// using https://github.com/Hacker0x01/react-datepicker\r\n// https://reactdatepicker.com/\r\n\r\n//https://reactdatepicker.com/#example-custom-day\r\n\r\nconst range = (start: number, stop: number, step: number) =>\r\n Array.from({ length: (stop - start) / step + 1 }, (_, i) => start + i * step);\r\n\r\nconst years = range(1990, new Date().getFullYear(), 1);\r\nconst months = [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\",\r\n];\r\n\r\nconst getNextYearValue = (currentYear: number, currentMonth: number) =>\r\n currentMonth === 11 ? currentYear + 1 : currentYear;\r\n\r\nconst getNextMonthValue = (currentMonth: number) =>\r\n currentMonth === 11 ? 0 : currentMonth + 1;\r\n\r\nconst CurrentMonthHeader = ({\r\n monthDate,\r\n date,\r\n customHeaderCount,\r\n changeYear,\r\n decreaseYear,\r\n increaseYear,\r\n prevYearButtonDisabled,\r\n nextYearButtonDisabled,\r\n changeMonth,\r\n decreaseMonth,\r\n increaseMonth,\r\n prevMonthButtonDisabled,\r\n nextMonthButtonDisabled,\r\n}: ReactDatePickerCustomHeaderProps) => (\r\n
\r\n \r\n changeMonth(months.indexOf(value))}\r\n >\r\n {months.map((option) => (\r\n \r\n ))}\r\n \r\n changeYear(parseInt(value, 10))}\r\n >\r\n {years.map((option) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n);\r\n\r\nconst NextMonthHeader = ({\r\n monthDate,\r\n date,\r\n customHeaderCount,\r\n changeYear,\r\n decreaseYear,\r\n increaseYear,\r\n prevYearButtonDisabled,\r\n nextYearButtonDisabled,\r\n changeMonth,\r\n decreaseMonth,\r\n increaseMonth,\r\n prevMonthButtonDisabled,\r\n nextMonthButtonDisabled,\r\n}: ReactDatePickerCustomHeaderProps) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nconst CustomDateRangeHeader = ({\r\n monthDate,\r\n date,\r\n customHeaderCount,\r\n changeYear,\r\n decreaseYear,\r\n increaseYear,\r\n prevYearButtonDisabled,\r\n nextYearButtonDisabled,\r\n changeMonth,\r\n decreaseMonth,\r\n increaseMonth,\r\n prevMonthButtonDisabled,\r\n nextMonthButtonDisabled,\r\n}: ReactDatePickerCustomHeaderProps) => (\r\n \r\n {customHeaderCount === 0 && (\r\n \r\n )}\r\n {customHeaderCount === 1 && (\r\n \r\n )}\r\n \r\n);\r\n\r\nfunction DateRangeColumnFilter({\r\n column: { filterValue = [], preFilteredRows, setFilter, id },\r\n}: {\r\n column: any;\r\n}) {\r\n const [startDate, setStartDate] = useState(null);\r\n const [endDate, setEndDate] = useState(null);\r\n const onDateChange = (dates: any) => {\r\n const [start, end] = dates;\r\n setStartDate(start);\r\n setEndDate(end);\r\n setFilter([start, end]);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport { DateRangeColumnFilter };\r\n","import LicenceProfileHeader from \"../LicenceProfileHeader\";\r\nimport LicenceProfileSubTabs from \"../LicenceProfileSubTabs\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../pages/auth/Page404\";\r\nimport useAppSelector from \"../../../hooks/useAppSelector\";\r\nimport {\r\n loadLicenceProfileAsync,\r\n selectLicenceProfileResponse,\r\n} from \"../../../redux/slices/licenceProfile\";\r\nimport Loading from \"../../../leap-components/Loading\";\r\nimport useAppDispatch from \"../../../hooks/useAppDispatch\";\r\nimport { ICompliancePropsWithFilters } from \"../../../leap-components/Compliance/IComplianceProps\";\r\nimport { Column } from \"react-table\";\r\nimport {\r\n GetComplianceListFetchUrl,\r\n ICompliance,\r\n} from \"../../../api/ICompliance\";\r\nimport { getIconForType } from \"../../../leap-components/icons/LeapIcons\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { Grid } from \"../../../leap-components/Grid\";\r\nimport { formatDate } from \"../../../api/DateUtils\";\r\nimport { CreateStaticSelectColumnFilter } from \"../../../leap-components/Grid/FetchGrid/StaticSelectColumnFilter\";\r\nimport {\r\n loadComplianceOptionsAsync,\r\n selectComplianceOptions,\r\n} from \"../../../redux/slices/compliance\";\r\nimport { DateRangeColumnFilter } from \"../../../leap-components/Grid/FetchGrid/DateRangeColumnFilter\";\r\nimport { useState } from \"react\";\r\nimport {\r\n GetLicenceProfileNotReadyComponent,\r\n IsLicenceProfileReady,\r\n} from \"../../../leap-components/LicenceProfile/LicenceProfileResponseComponentFactory\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { GetComplianceRecordDetailsUrl } from \"../../routeFactory\";\r\n\r\nconst ComplianceServerSide = ({\r\n licenceProfile,\r\n complianceRecordTypes,\r\n complianceStatuses,\r\n}: ICompliancePropsWithFilters) => {\r\n const tableColumnsBig: Column>[] = [\r\n {\r\n Header: \"Category\",\r\n accessor: \"type\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n complianceRecordTypes.list.map((option) => option.type)\r\n ),\r\n filter: \"includes\",\r\n Cell: (rowInfo: any) => (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {getIconForType(rowInfo.value)}\r\n {rowInfo.value}
\r\n ),\r\n },\r\n {\r\n Header: \"Ref. No.\",\r\n accessor: \"reference\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return (\r\n \r\n {rowInfo.value}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: \"Subject\",\r\n accessor: \"subject\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Date\",\r\n accessor: \"date\",\r\n Filter: DateRangeColumnFilter,\r\n filter: \"includes\",\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"status\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n complianceStatuses.list.map((option) => option.status)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Licence Version\",\r\n accessor: \"licenceregno\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n licenceProfile.licenceVersionsList.list.map((version) => version.reg_no)\r\n ),\r\n filter: \"includes\",\r\n },\r\n ];\r\n\r\n const tableColumnsSmall: Column>[] = [\r\n {\r\n Header: \"Category\",\r\n accessor: \"type\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n complianceRecordTypes.list.map((option) => option.type)\r\n ),\r\n filter: \"includes\",\r\n Cell: (rowInfo: any) => (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {getIconForType(rowInfo.value)}\r\n {rowInfo.value}
\r\n ),\r\n },\r\n {\r\n Header: \"Ref. No.\",\r\n accessor: \"reference\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return (\r\n \r\n {rowInfo.value}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: \"Subject\",\r\n accessor: \"subject\",\r\n Filter: false,\r\n },\r\n ];\r\n\r\n const fetchUrl = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n ) => {\r\n return GetComplianceListFetchUrl(\r\n licenceProfile.id,\r\n pageNo,\r\n recordsPerPage,\r\n searchText,\r\n filters\r\n );\r\n };\r\n\r\n var bodyElements = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n return ;\r\n};\r\n\r\nconst ComplianceTab = () => {\r\n const [loading, setLoading] = useState(false);\r\n const licenceProfileSelector = useAppSelector(selectLicenceProfileResponse);\r\n const complianceOptionsSelector = useAppSelector(selectComplianceOptions);\r\n const dispatch = useAppDispatch();\r\n\r\n let { profileNo } = useParams();\r\n if (!profileNo) {\r\n return ;\r\n }\r\n\r\n if (!loading) {\r\n setLoading(true);\r\n dispatch(loadLicenceProfileAsync(profileNo));\r\n }\r\n\r\n if (!IsLicenceProfileReady(licenceProfileSelector.licenceProfileResponse)) {\r\n return GetLicenceProfileNotReadyComponent(\r\n licenceProfileSelector.licenceProfileResponse\r\n );\r\n }\r\n\r\n const licenceProfile = licenceProfileSelector.licenceProfileResponse\r\n ?.licenceProfile as ILicenceProfile;\r\n\r\n if (\r\n !complianceOptionsSelector.complianceRecordTypes ||\r\n !complianceOptionsSelector.complianceStatuses\r\n ) {\r\n dispatch(loadComplianceOptionsAsync(licenceProfile.id));\r\n return ;\r\n }\r\n\r\n const contentElement = (\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};\r\n\r\nexport default ComplianceTab;\r\n","export enum SiteVisitRegardingObjectTypes {\r\n LR = \"Licensee Return\",\r\n CI = \"CI\",\r\n NC = \"Non Compliance\",\r\n}\r\n\r\nexport interface SiteVisitsGridProps {\r\n regardingObjectId: string;\r\n regardingObjectType: SiteVisitRegardingObjectTypes;\r\n}\r\n","import { Nav, Tab } from \"react-bootstrap\";\r\nimport { ILicenseeReturnDetails } from \"../../../api/ILicenseeReturns\";\r\nimport { ILicenceProfile } from \"../../../api/LicenceProfile\";\r\nimport { DocumentsGrid } from \"../../../leap-components/Documents/DocumentsGrid\";\r\nimport EpaCard from \"../../../leap-components/EpaCard\";\r\nimport { InstructionsGrid } from \"../../../leap-components/Instructions/InstructionsGrid\";\r\nimport { NonCompliancesGrid } from \"../../../leap-components/NonCompliances/NonCompliancesGrid\";\r\nimport { RequestsForInformationGrid } from \"../../../leap-components/RequestsForInformation/RequestsForInformationGrid\";\r\nimport { SiteVisitsGrid } from \"../../../leap-components/SiteVisits/SiteVisitsGrid\";\r\nimport { SiteVisitRegardingObjectTypes } from \"../../../leap-components/SiteVisits/SiteVisitsGridProps\";\r\n\r\ninterface SubTabsProps {\r\n className?: string;\r\n activeKey: string;\r\n licenceProfile: ILicenceProfile;\r\n licenseeReturn: ILicenseeReturnDetails;\r\n}\r\n\r\ninterface LicenseeReturnsProps {\r\n licenceProfile: ILicenceProfile;\r\n licenseeReturn: ILicenseeReturnDetails;\r\n}\r\n\r\nconst RequestsForInformation = ({\r\n licenceProfile,\r\n licenseeReturn,\r\n}: LicenseeReturnsProps) => (\r\n \r\n);\r\n\r\nconst Instructions = ({\r\n licenceProfile,\r\n licenseeReturn,\r\n}: LicenseeReturnsProps) => (\r\n \r\n);\r\n\r\nconst SiteVisits = ({\r\n licenceProfile,\r\n licenseeReturn,\r\n}: LicenseeReturnsProps) => (\r\n \r\n);\r\n\r\nconst SubTabs = ({\r\n className,\r\n activeKey,\r\n licenseeReturn,\r\n licenceProfile,\r\n}: SubTabsProps) => (\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\nconst RelatedComplianceRecords = ({\r\n licenceProfile,\r\n licenseeReturn,\r\n}: LicenseeReturnsProps) => {\r\n var bodyElements = (\r\n \r\n );\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default RelatedComplianceRecords;\r\n","export enum EdenMessagesGridType {\r\n TaskBasedEdenMessages = 0,\r\n RegardingBasedEdenMessages = 1,\r\n}\r\n\r\nexport interface EdenMessagesGridProps {\r\n edenMessagesType: EdenMessagesGridType;\r\n profileNumber: string;\r\n taskId?: string;\r\n regardingObjectId?: string;\r\n}\r\n","import { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport { formatDate } from \"../../api/DateUtils\";\r\nimport {\r\n GetEdenMessagesByRegardingFetchUrl,\r\n GetEdenMessagesByTaskFetchUrl,\r\n IEdenMessage,\r\n} from \"../../api/IEdenMessage\";\r\nimport { Grid } from \"../Grid\";\r\nimport { getIconForType } from \"../icons/LeapIcons\";\r\nimport {\r\n EdenMessagesGridProps,\r\n EdenMessagesGridType,\r\n} from \"./EdenMessagesGridProps\";\r\n\r\nconst GetUrlForEdenMessage = (\r\n profileNumber: string,\r\n edenMessage: IEdenMessage\r\n) => {\r\n return `/licence-profile/${profileNumber}/compliance/eden-message/${edenMessage.edenmessageid}`;\r\n};\r\n\r\nconst EdenMessagesGrid = ({\r\n edenMessagesType,\r\n profileNumber,\r\n taskId,\r\n regardingObjectId,\r\n}: EdenMessagesGridProps) => {\r\n const getFetchUrlFactory = (relatedId: string) => {\r\n let fetchUrlFn = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n ) => {\r\n switch (edenMessagesType) {\r\n case EdenMessagesGridType.TaskBasedEdenMessages:\r\n return GetEdenMessagesByTaskFetchUrl(\r\n relatedId,\r\n pageNo,\r\n recordsPerPage,\r\n searchText,\r\n filters\r\n );\r\n case EdenMessagesGridType.RegardingBasedEdenMessages:\r\n return GetEdenMessagesByRegardingFetchUrl(\r\n relatedId,\r\n pageNo,\r\n recordsPerPage,\r\n searchText,\r\n filters\r\n );\r\n }\r\n };\r\n\r\n return fetchUrlFn;\r\n };\r\n\r\n var relatedId = \"\";\r\n if (taskId) {\r\n relatedId = taskId;\r\n }\r\n\r\n if (regardingObjectId) {\r\n relatedId = regardingObjectId;\r\n }\r\n\r\n const fetchUrl = getFetchUrlFactory(relatedId);\r\n\r\n const tableColumnsBig: Column>[] = [\r\n {\r\n Header: \"Ref. No.\",\r\n accessor: \"reference\",\r\n Filter: false,\r\n filter: \"reference\",\r\n Cell: (rowInfo: any) => (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {getIconForType(\"EDEN Message\")}\r\n \r\n \r\n {rowInfo.value}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n Header: \"Date Received\",\r\n accessor: \"dateraised\",\r\n Filter: false,\r\n filter: \"includes\",\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Subject\",\r\n accessor: \"subject\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Response from EPA\",\r\n accessor: \"response\",\r\n Filter: false,\r\n },\r\n ];\r\n\r\n const tableColumnsSmall: Column>[] = [\r\n {\r\n Header: \"Ref. No.\",\r\n accessor: \"reference\",\r\n Filter: false,\r\n filter: \"reference\",\r\n Cell: (rowInfo: any) => (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {getIconForType(\"EDEN Message\")}\r\n \r\n \r\n {rowInfo.value}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n Header: \"Subject\",\r\n accessor: \"subject\",\r\n Filter: false,\r\n },\r\n ];\r\n\r\n var bodyElements = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n return bodyElements;\r\n};\r\n\r\nexport { EdenMessagesGrid };\r\n","import { Column } from \"react-table\";\r\nimport {\r\n GetComplianceInvestigationOutcomesFetchUrl,\r\n IComplianceInvestigationOutcome,\r\n} from \"../../api/ComplianceInvestigation/IComplianceInvestigationOutcome\";\r\nimport { Grid } from \"../Grid\";\r\nimport { ComplianceInvestigationOutcomesGridProps } from \"./ComplianceInvestigationOutcomesGridProps\";\r\n\r\nconst ComplianceInvestigationOutcomesGrid = ({\r\n complianceInvestigationId,\r\n licenceProfile,\r\n}: ComplianceInvestigationOutcomesGridProps) => {\r\n const getFetchUrlFactory = (relatedId: string) => {\r\n let fetchUrlFn = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n ) => {\r\n return GetComplianceInvestigationOutcomesFetchUrl(\r\n relatedId,\r\n pageNo,\r\n recordsPerPage,\r\n searchText,\r\n filters\r\n );\r\n };\r\n\r\n return fetchUrlFn;\r\n };\r\n\r\n const fetchUrl = getFetchUrlFactory(complianceInvestigationId);\r\n\r\n const tableColumnsBig: Column<\r\n Record\r\n >[] = [\r\n {\r\n Header: \"Type\",\r\n accessor: \"outcometype\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Category\",\r\n accessor: \"outcomecategory\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Sub Category\",\r\n accessor: \"outcomesubcategory\",\r\n Filter: false,\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Description\",\r\n accessor: \"description\",\r\n Filter: false,\r\n filter: \"includes\",\r\n },\r\n ];\r\n\r\n const tableColumnsSmall: Column<\r\n Record\r\n >[] = [\r\n {\r\n Header: \"Type\",\r\n accessor: \"outcometype\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Description\",\r\n accessor: \"description\",\r\n Filter: false,\r\n filter: \"includes\",\r\n },\r\n ];\r\n\r\n var bodyElements = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n return bodyElements;\r\n};\r\n\r\nexport { ComplianceInvestigationOutcomesGrid };\r\n","import { useState, useEffect } from \"react\";\r\n\r\nimport { THEME, THEME_PALETTE_LIGHT, THEME_PALETTE_DARK } from \"../constants\";\r\n\r\nimport useTheme from \"./useTheme\";\r\n\r\nconst usePalette = () => {\r\n const { theme } = useTheme();\r\n\r\n const [palette, setPalette] = useState(THEME_PALETTE_LIGHT);\r\n\r\n useEffect(() => {\r\n if (theme === THEME.DARK) {\r\n setPalette(THEME_PALETTE_DARK);\r\n } else {\r\n setPalette(THEME_PALETTE_LIGHT);\r\n }\r\n }, [theme]);\r\n\r\n return palette;\r\n};\r\n\r\nexport default usePalette;\r\n","import { useEffect } from \"react\";\r\n\r\nimport usePalette from \"../hooks/usePalette\";\r\nimport { defaults } from \"react-chartjs-2\";\r\n\r\nconst ChartJsDefaults = () => {\r\n const palette = usePalette();\r\n\r\n useEffect(() => {\r\n defaults.global.defaultFontColor = palette[\"gray-600\"];\r\n defaults.global.defaultFontFamily =\r\n \"'Poppins', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\";\r\n }, [palette]);\r\n\r\n return null;\r\n};\r\n\r\nexport default ChartJsDefaults;\r\n\r\ndeclare global {\r\n interface Window {\r\n Chart: any;\r\n }\r\n}\r\n\r\n// Rounded corners for barcharts\r\nwindow.Chart.elements.Rectangle.prototype.draw = function () {\r\n const ctx = this._chart.ctx;\r\n const vm = this._view;\r\n let left, right, top, bottom, signX, signY, borderSkipped;\r\n let borderWidth = vm.borderWidth;\r\n let cornerRadius = 10;\r\n\r\n if (!vm.horizontal) {\r\n // bar\r\n left = vm.x - vm.width / 2;\r\n right = vm.x + vm.width / 2;\r\n top = vm.y;\r\n bottom = vm.base;\r\n signX = 1;\r\n signY = bottom > top ? 1 : -1;\r\n borderSkipped = vm.borderSkipped || \"bottom\";\r\n } else {\r\n // horizontal bar\r\n left = vm.base;\r\n right = vm.x;\r\n top = vm.y - vm.height / 2;\r\n bottom = vm.y + vm.height / 2;\r\n signX = right > left ? 1 : -1;\r\n signY = 1;\r\n borderSkipped = vm.borderSkipped || \"left\";\r\n }\r\n\r\n // Canvas doesn't allow us to stroke inside the width so we can\r\n // adjust the sizes to fit if we're setting a stroke on the line\r\n if (borderWidth) {\r\n // borderWidth shold be less than bar width and bar height.\r\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n const halfStroke = borderWidth / 2;\r\n // Adjust borderWidth when bar top position is near vm.base(zero).\r\n const borderLeft =\r\n left + (borderSkipped !== \"left\" ? halfStroke * signX : 0);\r\n const borderRight =\r\n right + (borderSkipped !== \"right\" ? -halfStroke * signX : 0);\r\n const borderTop = top + (borderSkipped !== \"top\" ? halfStroke * signY : 0);\r\n const borderBottom =\r\n bottom + (borderSkipped !== \"bottom\" ? -halfStroke * signY : 0);\r\n // not become a vertical line?\r\n if (borderLeft !== borderRight) {\r\n top = borderTop;\r\n bottom = borderBottom;\r\n }\r\n // not become a horizontal line?\r\n if (borderTop !== borderBottom) {\r\n left = borderLeft;\r\n right = borderRight;\r\n }\r\n }\r\n\r\n ctx.beginPath();\r\n ctx.fillStyle = vm.backgroundColor;\r\n ctx.strokeStyle = vm.borderColor;\r\n ctx.lineWidth = borderWidth;\r\n\r\n // Corner points, from bottom-left to bottom-right clockwise\r\n // | 1 2 |\r\n // | 0 3 |\r\n const corners = [\r\n [left, bottom],\r\n [left, top],\r\n [right, top],\r\n [right, bottom],\r\n ];\r\n\r\n // Find first (starting) corner with fallback to 'bottom'\r\n const borders = [\"bottom\", \"left\", \"top\", \"right\"];\r\n let startCorner = borders.indexOf(borderSkipped, 0);\r\n if (startCorner === -1) {\r\n startCorner = 0;\r\n }\r\n\r\n function cornerAt(index: any) {\r\n return corners[(startCorner + index) % 4];\r\n }\r\n\r\n // Draw rectangle from 'startCorner'\r\n let corner = cornerAt(0);\r\n ctx.moveTo(corner[0], corner[1]);\r\n\r\n for (var i = 1; i < 4; i++) {\r\n corner = cornerAt(i);\r\n\r\n const width = corners[2][0] - corners[1][0];\r\n const height = corners[0][1] - corners[1][1];\r\n const x = corners[1][0];\r\n const y = corners[1][1];\r\n\r\n let radius = cornerRadius;\r\n\r\n // Fix radius being too large\r\n if (radius > height / 2) {\r\n radius = height / 2;\r\n }\r\n if (radius > width / 2) {\r\n radius = width / 2;\r\n }\r\n\r\n let lastVisible = 0;\r\n for (\r\n let findLast = 0, findLastTo = this._chart.data.datasets.length;\r\n findLast < findLastTo;\r\n findLast++\r\n ) {\r\n if (!this._chart.getDatasetMeta(findLast).hidden) {\r\n lastVisible = findLast;\r\n }\r\n }\r\n\r\n let rounded = this._datasetIndex === lastVisible;\r\n\r\n if (rounded) {\r\n ctx.moveTo(x + radius, y);\r\n ctx.lineTo(x + width - radius, y);\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n ctx.lineTo(x + width, y + height);\r\n ctx.lineTo(x, y + height);\r\n ctx.lineTo(x, y + radius);\r\n ctx.quadraticCurveTo(x, y, x + radius, y);\r\n } else {\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + width, y);\r\n ctx.lineTo(x + width, y + height);\r\n ctx.lineTo(x, y + height);\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n\r\n ctx.fill();\r\n if (borderWidth) {\r\n ctx.stroke();\r\n }\r\n};\r\n","import axios from \"axios\";\r\n\r\nconst axiosInstance = axios.create();\r\n\r\naxiosInstance.interceptors.response.use(\r\n (response) => response,\r\n (error) =>\r\n Promise.reject(\r\n (error.response && error.response.data) || \"Something went wrong\"\r\n )\r\n);\r\n\r\nexport default axiosInstance;\r\n","import jwtDecode from \"jwt-decode\";\r\nimport { verify, sign } from \"jsonwebtoken\";\r\nimport axios from \"./axios\";\r\n\r\nconst isValidToken = (accessToken: string) => {\r\n if (!accessToken) {\r\n return false;\r\n }\r\n const decoded = jwtDecode<{ exp: number }>(accessToken);\r\n const currentTime = Date.now() / 1000;\r\n\r\n return decoded.exp > currentTime;\r\n};\r\n\r\n// const handleTokenExpired = (exp) => {\r\n// let expiredTimer;\r\n\r\n// window.clearTimeout(expiredTimer);\r\n// const currentTime = Date.now();\r\n// const timeLeft = exp * 1000 - currentTime;\r\n// console.log(timeLeft);\r\n// expiredTimer = window.setTimeout(() => {\r\n// console.log('expired');\r\n// }, timeLeft);\r\n// };\r\n\r\nconst setSession = (accessToken: string | null) => {\r\n if (accessToken) {\r\n localStorage.setItem(\"accessToken\", accessToken);\r\n axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\r\n // This function below will handle when token is expired\r\n // const { exp } = jwtDecode(accessToken);\r\n // handleTokenExpired(exp);\r\n } else {\r\n localStorage.removeItem(\"accessToken\");\r\n delete axios.defaults.headers.common.Authorization;\r\n }\r\n};\r\n\r\nexport { verify, sign, isValidToken, setSession };\r\n","import { createContext, ReactNode, useEffect, useReducer } from \"react\";\r\n\r\nimport { JWTContextType, ActionMap, AuthState, AuthUser } from \"../types/auth\";\r\n\r\nimport axios from \"../utils/axios\";\r\nimport { isValidToken, setSession } from \"../utils/jwt\";\r\n\r\nconst INITIALIZE = \"INITIALIZE\";\r\nconst SIGN_IN = \"SIGN_IN\";\r\nconst SIGN_OUT = \"SIGN_OUT\";\r\nconst SIGN_UP = \"SIGN_UP\";\r\n\r\ntype AuthActionTypes = {\r\n [INITIALIZE]: {\r\n isAuthenticated: boolean;\r\n user: AuthUser;\r\n };\r\n [SIGN_IN]: {\r\n user: AuthUser;\r\n };\r\n [SIGN_OUT]: undefined;\r\n [SIGN_UP]: {\r\n user: AuthUser;\r\n };\r\n};\r\n\r\nconst initialState: AuthState = {\r\n isAuthenticated: false,\r\n isInitialized: false,\r\n user: null,\r\n};\r\n\r\nconst JWTReducer = (\r\n state: AuthState,\r\n action: ActionMap[keyof ActionMap]\r\n) => {\r\n switch (action.type) {\r\n case INITIALIZE:\r\n return {\r\n isAuthenticated: action.payload.isAuthenticated,\r\n isInitialized: true,\r\n user: action.payload.user,\r\n };\r\n case SIGN_IN:\r\n return {\r\n ...state,\r\n isAuthenticated: true,\r\n user: action.payload.user,\r\n };\r\n case SIGN_OUT:\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n user: null,\r\n };\r\n\r\n case SIGN_UP:\r\n return {\r\n ...state,\r\n isAuthenticated: true,\r\n user: action.payload.user,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst AuthContext = createContext(null);\r\n\r\nfunction AuthProvider({ children }: { children: ReactNode }) {\r\n const [state, dispatch] = useReducer(JWTReducer, initialState);\r\n\r\n useEffect(() => {\r\n const initialize = async () => {\r\n try {\r\n const accessToken = window.localStorage.getItem(\"accessToken\");\r\n\r\n if (accessToken && isValidToken(accessToken)) {\r\n setSession(accessToken);\r\n\r\n const response = await axios.get(\"/api/auth/my-account\");\r\n const { user } = response.data;\r\n\r\n dispatch({\r\n type: INITIALIZE,\r\n payload: {\r\n isAuthenticated: true,\r\n user,\r\n },\r\n });\r\n } else {\r\n dispatch({\r\n type: INITIALIZE,\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n },\r\n });\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n dispatch({\r\n type: INITIALIZE,\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n },\r\n });\r\n }\r\n };\r\n\r\n initialize();\r\n }, []);\r\n\r\n const signIn = async (email: string, password: string) => {\r\n const response = await axios.post(\"/api/auth/sign-in\", {\r\n email,\r\n password,\r\n });\r\n const { accessToken, user } = response.data;\r\n\r\n setSession(accessToken);\r\n dispatch({\r\n type: SIGN_IN,\r\n payload: {\r\n user,\r\n },\r\n });\r\n };\r\n\r\n const signOut = async () => {\r\n setSession(null);\r\n dispatch({ type: SIGN_OUT });\r\n };\r\n\r\n const signUp = async (\r\n email: string,\r\n password: string,\r\n firstName: string,\r\n lastName: string\r\n ) => {\r\n const response = await axios.post(\"/api/auth/sign-up\", {\r\n email,\r\n password,\r\n firstName,\r\n lastName,\r\n });\r\n const { accessToken, user } = response.data;\r\n\r\n window.localStorage.setItem(\"accessToken\", accessToken);\r\n dispatch({\r\n type: SIGN_UP,\r\n payload: {\r\n user,\r\n },\r\n });\r\n };\r\n\r\n const resetPassword = (email: string) => console.log(email);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport { AuthContext, AuthProvider };\r\n","import React from \"react\";\r\nimport { useRoutes, useNavigate, Navigate } from \"react-router-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport { HelmetProvider, Helmet } from \"react-helmet-async\";\r\nimport { store } from \"../../redux/store\";\r\n\r\nimport \"../../i18n\";\r\nimport routes from \"./routes\";\r\n\r\nimport { ThemeProvider } from \"./ThemeContext\";\r\nimport { SidebarProvider } from \"../../contexts/SidebarContext\";\r\nimport { LayoutProvider } from \"../../contexts/LayoutContext\";\r\nimport ChartJsDefaults from \"../../utils/ChartJsDefaults\";\r\n\r\nimport { AuthProvider } from \"../../contexts/JWTContext\";\r\n\r\nconst App = () => {\r\n const content = useRoutes(routes);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import React from \"react\";\r\nimport { Outlet } from \"react-router-dom\";\r\nimport Wrapper from \"../../../components/Wrapper\";\r\nimport Main from \"../../../components/Main\";\r\nimport Content from \"../../../components/Content\";\r\nimport { ScrollToTop } from \"../../../ScrollToTop\";\r\n\r\nconst CircularEconomyDashboard: React.FC = ({ children }) => (\r\n \r\n \r\n \r\n
\r\n \r\n {children}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default CircularEconomyDashboard;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\n\r\nconst BreadCrumbs = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n Certificates Of Registration\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BreadCrumbs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport { ReactComponent as LeapLogoVector } from \"../../../../../src/assets/img/leap/leap-logo.svg\";\r\n\r\ninterface ICircularEconomyHeaderComponentProps {\r\n headerContent: JSX.Element;\r\n}\r\n\r\nconst CircularEconomyHeaderComponent = ({\r\n headerContent,\r\n}: ICircularEconomyHeaderComponentProps) => {\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 {headerContent}\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CircularEconomyHeaderComponent;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport CircularHeaderComponent from \"../../../components/CircularEconomyHeaderComponent\";\r\n\r\nconst HeaderSubComponent = () => {\r\n return (\r\n
\r\n \r\n \r\n

Circular Economy Register

\r\n \r\n
\r\n \r\n \r\n
{\" \"}
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nconst Header = () => {\r\n const headerContent = ;\r\n return ;\r\n};\r\n\r\nexport default Header;\r\n","interface ILeapHomeContainerProps {\r\n content: JSX.Element;\r\n}\r\n\r\nconst CircularEconomyHomeContainer = ({ content }: ILeapHomeContainerProps) => (\r\n
{content}
\r\n);\r\n\r\nexport default CircularEconomyHomeContainer;\r\n","import { useEffect, useState } from \"react\";\r\nimport { formatDate } from \"../../../../../api/DateUtils\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport EpaCard from \"../../../../../leap-components/EpaCard\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport Header from \"./Header\";\r\nimport { Grid } from \"../../../../../leap-components/Grid\";\r\nimport CircularEconomyHomeContainer from \"./CircularEconomyHomeContainer\";\r\nimport {\r\n GetCertificatesOfRegistrationFetchUrl,\r\n GetCertificatesOfRegistrationCsv,\r\n} from \"../../../../../api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration\";\r\nimport { EpaGridOrderByFetchParams } from \"../../../../../leap-components/Grid/EpaGridProps\";\r\nimport { CreateStaticSelectColumnFilter } from \"../../../../../leap-components/Grid/FetchGrid/StaticSelectColumnFilter\";\r\nimport {\r\n loadCertificateOfRegistrationFilterValuesAsync,\r\n selectCertificateOfRegistrationFilterValuesResponse,\r\n} from \"../../../redux/slices/certificateOfRegistrationList\";\r\nimport useAppSelector from \"../../../../../hooks/useAppSelector\";\r\nimport useAppDispatch from \"../../../../../hooks/useAppDispatch\";\r\n\r\ninterface ISearchResultRow {\r\n licence_name: string;\r\n licence_number: string;\r\n organisation: string;\r\n town: string;\r\n county: string;\r\n}\r\n\r\nconst GetDetailsUrl = (licenseId: string) => {\r\n return `/cor/${licenseId}`;\r\n};\r\n\r\nconst CertificatesOfRegistrationList = () => {\r\n const [loading, setLoading] = useState(false);\r\n const [searchValue, setSearchValue] = useState(\"\");\r\n\r\n const certificateOfRegistrationListSelector = useAppSelector(\r\n selectCertificateOfRegistrationFilterValuesResponse\r\n );\r\n const dispatch = useAppDispatch();\r\n\r\n const searchChangedFn = (newSearch: string) => {\r\n setSearchValue(newSearch);\r\n };\r\n\r\n if (!loading) {\r\n setLoading(true);\r\n dispatch(loadCertificateOfRegistrationFilterValuesAsync());\r\n }\r\n\r\n const statusFilterValues =\r\n certificateOfRegistrationListSelector.statusFilterValues;\r\n\r\n const localAuthorityFilterValues =\r\n certificateOfRegistrationListSelector.localAuthorityFilterValues;\r\n\r\n const wasteCategoryFilterValues =\r\n certificateOfRegistrationListSelector.wasteCategoryFilterValues;\r\n\r\n const classOfActivityFilterValues =\r\n certificateOfRegistrationListSelector.classOfActivityFilterValues;\r\n\r\n const tableColumnsBig: Column>[] = [\r\n {\r\n Header: \"Reg Number\",\r\n accessor: \"reg_no\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return (\r\n {rowInfo.value}\r\n );\r\n },\r\n sortType: \"basic\",\r\n },\r\n {\r\n Header: \"Application Date\",\r\n accessor: \"valid_application_date\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Site\",\r\n accessor: \"site_name\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Local Authority\",\r\n accessor: \"local_authority_org_name\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n localAuthorityFilterValues.list.map((option) => option.local_authority)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"licence_status\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n statusFilterValues.list.map((option) => option.status)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Waste Category\",\r\n accessor: \"waste_category\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n wasteCategoryFilterValues.list.map((option) => option.waste_category)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Main Class of Activity\",\r\n accessor: \"main_class_of_activity\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n classOfActivityFilterValues.list.map(\r\n (option) => option.class_of_activity\r\n )\r\n ),\r\n filter: \"includes\",\r\n },\r\n ];\r\n\r\n const tableColumnsSmall: Column>[] = [\r\n {\r\n Header: \"Reg Number\",\r\n accessor: \"reg_no\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return (\r\n {rowInfo.value}\r\n );\r\n },\r\n sortType: \"basic\",\r\n },\r\n {\r\n Header: \"Application Date\",\r\n accessor: \"valid_application_date\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Site\",\r\n accessor: \"site_name\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Local Authority\",\r\n accessor: \"local_authority_org_name\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n localAuthorityFilterValues.list.map((option) => option.local_authority)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"licence_status\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n statusFilterValues.list.map((option) => option.status)\r\n ),\r\n filter: \"includes\",\r\n },\r\n ];\r\n\r\n const getFetchUrlFactory = () => {\r\n let fetchUrlFn = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n ) => {\r\n return GetCertificatesOfRegistrationFetchUrl(\r\n pageNo,\r\n recordsPerPage,\r\n searchText,\r\n filters,\r\n orderBy\r\n );\r\n };\r\n\r\n return fetchUrlFn;\r\n };\r\n\r\n const fetchUrl = getFetchUrlFactory();\r\n\r\n const orderBy = {\r\n orderByAscending: false,\r\n orderByName: \"Reg Number\",\r\n enabledOrderByColumns: [\"Reg Number\", \"Date Received\", \"Date Closed\"],\r\n };\r\n\r\n const results = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n const contentElement = (\r\n
\r\n \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};\r\n\r\nexport default CertificatesOfRegistrationList;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\n\r\ninterface IBreadCrumProps {\r\n regno: string;\r\n}\r\n\r\nconst BreadCrumbs = ({ regno }: IBreadCrumProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n Certificates Of Registration\r\n \r\n {regno}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BreadCrumbs;\r\n","let SUBMISSIONS_DOMAIN = \"http://localhost:3001\";\r\nlet RSS_URL_DOMAIN = \"https://epawebapp.epa.ie\";\r\n\r\nswitch (process.env.REACT_APP_EPA_ENV) {\r\n case \"localhost\":\r\n SUBMISSIONS_DOMAIN = \"http://localhost:3001\";\r\n RSS_URL_DOMAIN = \"http://localhost:3001\";\r\n break;\r\n\r\n case \"inttest\":\r\n SUBMISSIONS_DOMAIN = \"https://lema-int.edenireland.ie\";\r\n RSS_URL_DOMAIN = \"https://epawebapp-test.epa.ie\";\r\n break;\r\n\r\n case \"bustest\":\r\n SUBMISSIONS_DOMAIN = \"https://lema-tst.edenireland.ie\";\r\n RSS_URL_DOMAIN = \"https://epawebapp-test.epa.ie\";\r\n break;\r\n\r\n case \"staging\":\r\n SUBMISSIONS_DOMAIN = \"https://lema-stg.epa.ie\";\r\n RSS_URL_DOMAIN = \"https://epawebapp-test.epa.ie\";\r\n break;\r\n\r\n case \"production\":\r\n SUBMISSIONS_DOMAIN = \"https://lema.epa.ie\";\r\n RSS_URL_DOMAIN = \"https://epawebapp.epa.ie\";\r\n break;\r\n}\r\n\r\nexport const RSS_PREFIX = `${SUBMISSIONS_DOMAIN}/licences/lic_eDMS/rss`;\r\n\r\nexport const GetSubmissionUrl = (regNo: string) => {\r\n return `${SUBMISSIONS_DOMAIN}/Submissions/Submission.aspx?p1=${regNo}`;\r\n};\r\n\r\nexport const GetRssUrl = (regNo: string) => {\r\n return `${RSS_URL_DOMAIN}/licences/lic_eDMS/rss/${regNo}.xml`;\r\n};\r\n","import { Button, Col, Row } from \"react-bootstrap\";\r\nimport EpaCard from \"../../../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../../../leap-components/EpaField\";\r\nimport { faHourglassEnd, faRssSquare } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nimport { ICertificateOfRegistrationDetails } from \"../../../../../api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration\";\r\nimport { formatDate } from \"../../../../../api/DateUtils\";\r\nimport {\r\n GetSubmissionUrl,\r\n GetRssUrl,\r\n} from \"../../../../../external-apps/Config\";\r\n\r\nvar foreGroundColor = \"#014891\";\r\nvar backGroundColor = \"#FFA500\"; //Orange\r\n\r\ninterface CertificateDetailsProps {\r\n certificateOfRegistrationDetails: ICertificateOfRegistrationDetails;\r\n}\r\n\r\nconst MakeASubmission = ({\r\n certificateOfRegistrationDetails,\r\n}: CertificateDetailsProps) => {\r\n const isVisible =\r\n certificateOfRegistrationDetails.licence_status === \"Applied\";\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nconst CertificateFields = ({\r\n certificateOfRegistrationDetails,\r\n}: CertificateDetailsProps) => {\r\n var bodyElements = (\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 ) as JSX.Element;\r\n\r\n return ;\r\n};\r\n\r\nexport default CertificateFields;\r\n","import { formatDate } from \"../../../../../api/DateUtils\";\r\nimport { Column } from \"react-table\";\r\nimport { Grid } from \"../../../../../leap-components/Grid\";\r\nimport { SelectColumnFilter } from \"../../../../../leap-components/Grid/NoFetchGrid/SelectColumnFilter\";\r\nimport { GetFilteredDocumentsFetchUrl } from \"../../../../../api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration\";\r\nimport EpaCard from \"../../../../../leap-components/EpaCard\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\ninterface IDocumentRow {\r\n documentid: string;\r\n filename: string;\r\n url: string;\r\n extension: string;\r\n filesize: string;\r\n documentdate: string;\r\n regardingobjectid: string;\r\n licenceid: string;\r\n}\r\n\r\ninterface DocumentsGridProps {\r\n licenseId: string;\r\n}\r\n\r\nconst DocumentsGrid = ({ licenseId }: DocumentsGridProps) => {\r\n const getFetchUrlFactory = (licenseId: string) => {\r\n let fetchUrlFn = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n ) => {\r\n return GetFilteredDocumentsFetchUrl(\r\n licenseId,\r\n pageNo,\r\n recordsPerPage,\r\n searchText,\r\n filters\r\n );\r\n };\r\n\r\n return fetchUrlFn;\r\n };\r\n\r\n const fetchUrl = getFetchUrlFactory(licenseId);\r\n\r\n const tableColumnsBig: Column>[] = [\r\n {\r\n Header: \"Date\",\r\n accessor: \"documentdate\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Document Name\",\r\n accessor: \"filename\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return {rowInfo.value};\r\n },\r\n sortType: \"basic\",\r\n },\r\n ];\r\n\r\n const tableColumnsSmall: Column>[] = [\r\n {\r\n Header: \"Date\",\r\n accessor: \"documentdate\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Document Name\",\r\n accessor: \"filename\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return {rowInfo.value};\r\n },\r\n sortType: \"basic\",\r\n },\r\n ];\r\n\r\n var bodyElements = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n return ;\r\n};\r\n\r\nexport { DocumentsGrid };\r\n","import { Row, Col } from \"react-bootstrap\";\r\n\r\nconst ContactUs = () => {\r\n const text = (\r\n
\r\n

\r\n Contact Us\r\n

\r\n

For queries, please contact

\r\n

\r\n Email: cor@epa.ie.\r\n

\r\n

Telephone: 043 91 60600.

\r\n

\r\n Further information and guidance in relation to certificates of\r\n registration is available at \r\n \r\n https://www.epa.ie/our-services/licensing/waste/certs-of-registration/.\r\n \r\n

\r\n
\r\n );\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default ContactUs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport BreadCrumbs from \"./BreadCrumbs\";\r\nimport CertificateFields from \"./CertificateFields\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../../../pages/auth/Page404\";\r\n\r\nimport useAppSelector from \"../../../../../hooks/useAppSelector\";\r\nimport useAppDispatch from \"../../../../../hooks/useAppDispatch\";\r\nimport { useState } from \"react\";\r\n\r\nimport Page500 from \"../../../../../pages/auth/Page500\";\r\n\r\nimport {\r\n ICertificateOfRegistrationDetails,\r\n ICertificateOfRegistrationDetailsResponse,\r\n} from \"../../../../../api/CircularEconomy/CertificateOfRegistration/ICertificateOfRegistration\";\r\nimport { DocumentsGrid } from \"./DocumentsGrid\";\r\nimport {\r\n loadCertificateOfRegistrationAsync,\r\n selectCertificateOfRegistrationResponse,\r\n} from \"../../../redux/slices/certificateOfRegistration\";\r\nimport Loading from \"../../../../../leap-components/Loading\";\r\nimport ContactUs from \"./ContactUs\";\r\n\r\nconst IsCertificateOfRegistrationReady = (\r\n notifierResponse?: ICertificateOfRegistrationDetailsResponse\r\n) => {\r\n if (!notifierResponse) {\r\n return false;\r\n }\r\n\r\n if (notifierResponse.response.httpStatusCode === 404) {\r\n return false;\r\n }\r\n\r\n if (!notifierResponse.certificateOfRegistration) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst GetNotReadyComponent = (\r\n notifierResponse?: ICertificateOfRegistrationDetailsResponse\r\n) => {\r\n if (!notifierResponse) {\r\n return ;\r\n }\r\n\r\n if (notifierResponse.response.httpStatusCode === 404) {\r\n return ;\r\n }\r\n\r\n if (!notifierResponse.certificateOfRegistration) {\r\n return ;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nconst CertificateOfRegistrationDetails = () => {\r\n const [loading, setLoading] = useState(false);\r\n const certificateOfRegistrationSelector = useAppSelector(\r\n selectCertificateOfRegistrationResponse\r\n );\r\n const dispatch = useAppDispatch();\r\n\r\n let { licenseId } = useParams();\r\n if (!licenseId) {\r\n return ;\r\n }\r\n\r\n if (!loading) {\r\n setLoading(true);\r\n dispatch(loadCertificateOfRegistrationAsync(licenseId));\r\n }\r\n\r\n if (\r\n !IsCertificateOfRegistrationReady(\r\n certificateOfRegistrationSelector.certificateOfRegistrationResponse\r\n )\r\n ) {\r\n return GetNotReadyComponent(\r\n certificateOfRegistrationSelector.certificateOfRegistrationResponse\r\n );\r\n }\r\n\r\n const corDetails = certificateOfRegistrationSelector\r\n .certificateOfRegistrationResponse\r\n ?.certificateOfRegistration as ICertificateOfRegistrationDetails;\r\n\r\n const contentElement = (\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 return (\r\n
\r\n \r\n
{contentElement}
\r\n
\r\n );\r\n};\r\n\r\nexport default CertificateOfRegistrationDetails;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\n\r\nconst BreadCrumbs = () => {\r\n return (\r\n \r\n \r\n \r\n By-Product Register Home\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BreadCrumbs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport CircularHeaderComponent from \"../../components/CircularEconomyHeaderComponent\";\r\n\r\nconst HeaderSubComponent = () => {\r\n return (\r\n
\r\n \r\n \r\n

Circular Economy Register

\r\n \r\n
\r\n \r\n \r\n
{\" \"}
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nconst Header = () => {\r\n const headerContent = ;\r\n return ;\r\n};\r\n\r\nexport default Header;\r\n","interface ILeapHomeContainerProps {\r\n content: JSX.Element;\r\n}\r\n\r\nconst CircularEconomyHomeContainer = ({ content }: ILeapHomeContainerProps) => (\r\n
{content}
\r\n);\r\n\r\nexport default CircularEconomyHomeContainer;\r\n","import { useEffect, useState } from \"react\";\r\nimport { formatDate } from \"../../../../../api/DateUtils\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport EpaCard from \"../../../../../leap-components/EpaCard\";\r\nimport BreadCrumbs from \"./../BreadCrumbs\";\r\nimport Header from \"./../Header\";\r\nimport { Grid } from \"../../../../../leap-components/Grid\";\r\nimport { SelectColumnFilter } from \"../../../../../leap-components/Grid/NoFetchGrid/SelectColumnFilter\";\r\nimport CircularEconomyHomeContainer from \"./../CircularEconomyHomeContainer\";\r\nimport {\r\n GetFilteredNotifiersFetchUrl,\r\n GetFilteredNotifiersCsv,\r\n} from \"../../../../../api/CircularEconomy/INotifiers\";\r\nimport { EpaGridOrderByFetchParams } from \"../../../../../leap-components/Grid/EpaGridProps\";\r\nimport { CreateStaticSelectColumnFilter } from \"../../../../../leap-components/Grid/FetchGrid/StaticSelectColumnFilter\";\r\n\r\ninterface ISearchResultRow {\r\n licence_name: string;\r\n licence_number: string;\r\n organisation: string;\r\n town: string;\r\n county: string;\r\n}\r\n\r\nconst countyFilterValues = [\r\n { value: \"Antrim\", label: \"Antrim\" },\r\n { value: \"Armagh\", label: \"Armagh\" },\r\n { value: \"Carlow\", label: \"Carlow\" },\r\n { value: \"Cavan\", label: \"Cavan\" },\r\n { value: \"Clare\", label: \"Clare\" },\r\n { value: \"Cork\", label: \"Cork\" },\r\n { value: \"Derry\", label: \"Derry\" },\r\n { value: \"Donegal\", label: \"Donegal\" },\r\n { value: \"Down\", label: \"Down\" },\r\n { value: \"Dublin\", label: \"Dublin\" },\r\n { value: \"Fermanagh\", label: \"Fermanagh\" },\r\n { value: \"Galway\", label: \"Galway\" },\r\n { value: \"Kerry\", label: \"Kerry\" },\r\n { value: \"Kildare\", label: \"Kildare\" },\r\n { value: \"Kilkenny\", label: \"Kilkenny\" },\r\n { value: \"Laois\", label: \"Laois\" },\r\n { value: \"Leitrim\", label: \"Leitrim\" },\r\n { value: \"Limerick\", label: \"Limerick\" },\r\n { value: \"Longford\", label: \"Longford\" },\r\n { value: \"Louth\", label: \"Louth\" },\r\n { value: \"Mayo\", label: \"Mayo\" },\r\n { value: \"Meath\", label: \"Meath\" },\r\n { value: \"Monaghan\", label: \"Monaghan\" },\r\n { value: \"Offaly\", label: \"Offaly\" },\r\n { value: \"Roscommon\", label: \"Roscommon\" },\r\n { value: \"Sligo\", label: \"Sligo\" },\r\n { value: \"Tipperary\", label: \"Tipperary\" },\r\n { value: \"Tyrone\", label: \"Tyrone\" },\r\n { value: \"Waterford\", label: \"Waterford\" },\r\n { value: \"Westmeath\", label: \"Westmeath\" },\r\n { value: \"Wexford\", label: \"Wexford\" },\r\n { value: \"Wicklow\", label: \"Wicklow\" },\r\n];\r\n\r\nconst typeFilterValues = [\r\n { value: \"EU Registration\", label: \"EU Registration\" },\r\n { value: \"National Registration\", label: \"National Registration\" },\r\n { value: \"Single Case Notification\", label: \"Single Case Notification\" },\r\n { value: \"Single Case Registration\", label: \"Single Case Registration\" },\r\n];\r\n\r\nconst statusFilterValues = [\r\n { value: \"Applied\", label: \"Applied\" },\r\n { value: \"Deregistered\", label: \"Deregistered\" },\r\n { value: \"Determined as By Product\", label: \"Determined as By Product\" },\r\n { value: \"Determined as Waste\", label: \"Determined as Waste\" },\r\n { value: \"Noted\", label: \"Noted\" },\r\n { value: \"Notified\", label: \"Notified\" },\r\n { value: \"Registered\", label: \"Registered\" },\r\n { value: \"Withdrawn\", label: \"Withdrawn\" },\r\n];\r\n\r\nconst GetUrlForNotifier = (NotifierId: string) => {\r\n return `/notifier/${NotifierId}`;\r\n};\r\n\r\nconst CircularEconomyHome = () => {\r\n const [searchValue, setSearchValue] = useState(\"\");\r\n\r\n const searchChangedFn = (newSearch: string) => {\r\n setSearchValue(newSearch);\r\n };\r\n\r\n const tableColumnsBig: Column>[] = [\r\n {\r\n Header: \"Reg Number\",\r\n accessor: \"reg_no\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return (\r\n \r\n {rowInfo.value}\r\n \r\n );\r\n },\r\n sortType: \"basic\",\r\n },\r\n {\r\n Header: \"Type\",\r\n accessor: \"type\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n typeFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Date Received\",\r\n accessor: \"date_received\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Date Closed\",\r\n accessor: \"date_closed\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Notified Material\",\r\n accessor: \"notified_material\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Notifier Name\",\r\n accessor: \"notifier_name\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"status\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n statusFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Local Authority at Source\",\r\n accessor: \"source_local_authority\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Source County\",\r\n accessor: \"source_county\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n countyFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Local Authority at Use\",\r\n accessor: \"use_local_authority\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Use County\",\r\n accessor: \"use_county\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n countyFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Open for submission\",\r\n accessor: \"open_for_submissions\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => (rowInfo.value == 1 ? \"Yes\" : \"No\"),\r\n },\r\n ];\r\n\r\n const tableColumnsSmall: Column>[] = [\r\n {\r\n Header: \"Reg Number\",\r\n accessor: \"reg_no\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return (\r\n \r\n {rowInfo.value}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: \"Type\",\r\n accessor: \"type\",\r\n Filter: SelectColumnFilter,\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Date Received\",\r\n accessor: \"date_received\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Notified Material\",\r\n accessor: \"notified_material\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Notifier Name\",\r\n accessor: \"notifier_name\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"status\",\r\n Filter: SelectColumnFilter,\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Open for submission\",\r\n accessor: \"open_for_submissions\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => (rowInfo.value == 1 ? \"Yes\" : \"No\"),\r\n },\r\n ];\r\n\r\n const getFetchUrlFactory = () => {\r\n let fetchUrlFn = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n ) => {\r\n return GetFilteredNotifiersFetchUrl(\r\n pageNo,\r\n recordsPerPage,\r\n searchText,\r\n filters,\r\n orderBy\r\n );\r\n };\r\n\r\n return fetchUrlFn;\r\n };\r\n\r\n const fetchUrl = getFetchUrlFactory();\r\n\r\n const orderBy = {\r\n orderByAscending: false,\r\n orderByName: \"Reg Number\",\r\n enabledOrderByColumns: [\"Reg Number\", \"Date Received\", \"Date Closed\"],\r\n };\r\n\r\n const results = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n const contentElement = (\r\n
\r\n \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};\r\n\r\nexport default CircularEconomyHome;\r\n","import { Button, Col, Row } from \"react-bootstrap\";\r\nimport EpaCard from \"../../../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../../../leap-components/EpaField\";\r\nimport { faHourglassEnd, faRssSquare } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nimport { INotifierDetails } from \"../../../../../api/CircularEconomy/INotifiers\";\r\nimport { formatDate } from \"../../../../../api/DateUtils\";\r\n\r\nvar foreGroundColor = \"#014891\";\r\nvar backGroundColor = \"#FFA500\"; //Orange\r\n\r\ninterface NotifierDetailsProp {\r\n notifierDetails: INotifierDetails;\r\n}\r\n\r\n//https://epawebapp.epa.ie/licences/lic_eDMS/rss/ART27-3353.xml\r\nconst GetRssUrl = (regNo: string) => {\r\n return `https://epawebapp.epa.ie/licences/lic_eDMS/rss/${regNo}.xml`;\r\n};\r\n\r\n//https://lema.epa.ie/Submissions/Submission.aspx?p1=ART27-3353\r\nconst GetSubmissionUrl = (regNo: string) => {\r\n return `https://lema.epa.ie/Submissions/Submission.aspx?p1=${regNo}`;\r\n};\r\n\r\nconst NotifierDetails = ({ notifierDetails }: NotifierDetailsProp) => {\r\n var bodyElements = (\r\n
\r\n \r\n \r\n \r\n {notifierDetails.reg_no}\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 ) as JSX.Element;\r\n\r\n return ;\r\n};\r\n\r\nexport default NotifierDetails;\r\n","import { INotifierResponse } from \"../../../../api/CircularEconomy/INotifiers\";\r\nimport Page404 from \"../../../../pages/auth/Page404\";\r\nimport Page500 from \"../../../../pages/auth/Page500\";\r\nimport Loading from \"../../../../leap-components/Loading\";\r\n\r\nconst IsNotifierReady = (notifierResponse?: INotifierResponse) => {\r\n if (!notifierResponse) {\r\n return false;\r\n }\r\n\r\n if (notifierResponse.response.httpStatusCode === 404) {\r\n return false;\r\n }\r\n\r\n if (!notifierResponse.notifier) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst GetNotifierNotReadyComponent = (notifierResponse?: INotifierResponse) => {\r\n if (!notifierResponse) {\r\n return ;\r\n }\r\n\r\n if (notifierResponse.response.httpStatusCode === 404) {\r\n return ;\r\n }\r\n\r\n if (!notifierResponse.notifier) {\r\n return ;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport { IsNotifierReady, GetNotifierNotReadyComponent };\r\n","import { formatDate } from \"../../../../../api/DateUtils\";\r\nimport { Column } from \"react-table\";\r\nimport { Grid } from \"../../../../../leap-components/Grid\";\r\nimport { SelectColumnFilter } from \"../../../../../leap-components/Grid/NoFetchGrid/SelectColumnFilter\";\r\nimport { GetFilteredDocumentsFetchUrl } from \"../../../../../api/CircularEconomy/INotifiers\";\r\nimport EpaCard from \"../../../../../leap-components/EpaCard\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\ninterface ISearchResultRow {\r\n document_id: string;\r\n notifier_id: string;\r\n document_name: string;\r\n created_by: string;\r\n date: string;\r\n document_url: string;\r\n classification: string;\r\n category: string;\r\n}\r\n\r\ninterface DocumentsGridProps {\r\n NotifierId: string;\r\n}\r\n\r\nconst DocumentsGrid = ({ NotifierId }: DocumentsGridProps) => {\r\n const getFetchUrlFactory = (NotifierId: string) => {\r\n let fetchUrlFn = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any\r\n ) => {\r\n return GetFilteredDocumentsFetchUrl(\r\n NotifierId,\r\n pageNo,\r\n recordsPerPage,\r\n searchText,\r\n filters\r\n );\r\n };\r\n\r\n return fetchUrlFn;\r\n };\r\n\r\n const fetchUrl = getFetchUrlFactory(NotifierId);\r\n\r\n const tableColumnsBig: Column>[] = [\r\n {\r\n Header: \"Date\",\r\n accessor: \"date\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Created By\",\r\n accessor: \"created_by\",\r\n Filter: SelectColumnFilter,\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Document Name\",\r\n accessor: \"document_name\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return {rowInfo.value};\r\n },\r\n sortType: \"basic\",\r\n },\r\n ];\r\n\r\n const tableColumnsSmall: Column>[] = [\r\n {\r\n Header: \"Date\",\r\n accessor: \"date\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n },\r\n {\r\n Header: \"Created By\",\r\n accessor: \"created_by\",\r\n Filter: SelectColumnFilter,\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Document Name\",\r\n accessor: \"document_name\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return {rowInfo.value};\r\n },\r\n sortType: \"basic\",\r\n },\r\n ];\r\n\r\n var bodyElements = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n return ;\r\n};\r\n\r\nexport { DocumentsGrid };\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport BreadCrumbs from \"../BreadCrumbs\";\r\nimport NotifierDetails from \"./NotifierDetails\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../../../pages/auth/Page404\";\r\n\r\nimport useAppSelector from \"../../../../../hooks/useAppSelector\";\r\nimport useAppDispatch from \"../../../../../hooks/useAppDispatch\";\r\nimport {\r\n loadNotifierAsync,\r\n selectNotifierResponse,\r\n} from \"../../../redux/slices/notifier\";\r\n\r\nimport { useState } from \"react\";\r\n\r\nimport {\r\n GetNotifierNotReadyComponent,\r\n IsNotifierReady,\r\n} from \"../../../components/CircularEconomyHeaderComponent/NotifierResponseComponentFactory\";\r\n\r\nimport Page500 from \"../../../../../pages/auth/Page500\";\r\n\r\nimport { INotifier } from \"../../../../../api/CircularEconomy/INotifiers\";\r\nimport { DocumentsGrid } from \"./DocumentsGrid\";\r\n\r\nconst CircularEconomyDetails = () => {\r\n const [loading, setLoading] = useState(false);\r\n const notifierSelector = useAppSelector(selectNotifierResponse);\r\n const dispatch = useAppDispatch();\r\n\r\n let { notifierId } = useParams();\r\n if (!notifierId) {\r\n return ;\r\n }\r\n\r\n if (!loading) {\r\n setLoading(true);\r\n dispatch(loadNotifierAsync(notifierId));\r\n }\r\n\r\n if (!IsNotifierReady(notifierSelector.NotifierResponse)) {\r\n return GetNotifierNotReadyComponent(notifierSelector.NotifierResponse);\r\n }\r\n\r\n const notifier = notifierSelector.NotifierResponse?.notifier as INotifier;\r\n\r\n const contentElement = (\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 {\" Contact Us \"}\r\n \r\n {\" \"}\r\n
Contact Us 2
{\" \"}\r\n \r\n
\r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n
{contentElement}
\r\n
\r\n );\r\n};\r\n\r\nexport default CircularEconomyDetails;\r\n","import { Row, Col, Breadcrumb } from \"react-bootstrap\";\r\n\r\nconst EowBreadCrumbs = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n End-of-waste Register Home\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EowBreadCrumbs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport EpaCard from \"../../../../../leap-components/EpaCard\";\r\nimport EpaField from \"../../../../../leap-components/EpaField\";\r\n\r\nimport { INotifierDetails } from \"../../../../../api/CircularEconomy/INotifiers\";\r\nimport { formatDate } from \"../../../../../api/DateUtils\";\r\n\r\ninterface NotifierDetailsProp {\r\n notifierDetails: INotifierDetails;\r\n}\r\n\r\nconst EowDetails = ({ notifierDetails }: NotifierDetailsProp) => {\r\n var bodyElements = (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ) as JSX.Element;\r\n\r\n return ;\r\n};\r\n\r\nexport default EowDetails;\r\n","import { Row, Col } from \"react-bootstrap\";\r\n\r\nconst ContactUs = () => {\r\n const text = (\r\n
\r\n

\r\n Contact Us\r\n

\r\n

\r\n For queries in relation to the end-of-waste register or specific\r\n registrations please email{\" \"}\r\n article28@epa.ie .\r\n

\r\n

\r\n Further information and guidance in relation to end-of-waste and\r\n registration is available at \r\n \r\n https://www.epa.ie/our-services/licensing/waste/end-of-waste-art-28/.\r\n \r\n

\r\n
\r\n );\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default ContactUs;\r\n","import { Col, Row } from \"react-bootstrap\";\r\nimport EowBreadCrumbs from \"../EowBreadCrumbs\";\r\nimport EowDetails from \"./EowDetails\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Page404 from \"../../../../../pages/auth/Page404\";\r\n\r\nimport useAppSelector from \"../../../../../hooks/useAppSelector\";\r\nimport useAppDispatch from \"../../../../../hooks/useAppDispatch\";\r\nimport {\r\n loadNotifierAsync,\r\n selectNotifierResponse,\r\n} from \"../../../redux/slices/notifier\";\r\n\r\nimport { useState } from \"react\";\r\n\r\nimport {\r\n GetNotifierNotReadyComponent,\r\n IsNotifierReady,\r\n} from \"../../../components/CircularEconomyHeaderComponent/NotifierResponseComponentFactory\";\r\n\r\nimport { INotifier } from \"../../../../../api/CircularEconomy/INotifiers\";\r\nimport { DocumentsGrid } from \"./DocumentsGrid\";\r\nimport ContactUs from \"../ContactUs\";\r\n\r\nconst DetailsEndOfWaste = () => {\r\n const [loading, setLoading] = useState(false);\r\n const notifierSelector = useAppSelector(selectNotifierResponse);\r\n const dispatch = useAppDispatch();\r\n\r\n let { notifierId } = useParams();\r\n if (!notifierId) {\r\n return ;\r\n }\r\n\r\n if (!loading) {\r\n setLoading(true);\r\n dispatch(loadNotifierAsync(notifierId));\r\n }\r\n\r\n if (!IsNotifierReady(notifierSelector.NotifierResponse)) {\r\n return GetNotifierNotReadyComponent(notifierSelector.NotifierResponse);\r\n }\r\n\r\n const notifier = notifierSelector.NotifierResponse?.notifier as INotifier;\r\n\r\n const contentElement = (\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 return (\r\n
\r\n \r\n
{contentElement}
\r\n
\r\n );\r\n};\r\n\r\nexport default DetailsEndOfWaste;\r\n","import { useEffect, useState } from \"react\";\r\nimport { formatDate } from \"../../../../../api/DateUtils\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Column } from \"react-table\";\r\nimport EpaCard from \"../../../../../leap-components/EpaCard\";\r\nimport EowBreadCrumbs from \"./../EowBreadCrumbs\";\r\nimport Header from \"./../Header\";\r\nimport ContactUs from \"./../ContactUs\";\r\nimport { Grid } from \"../../../../../leap-components/Grid\";\r\nimport { SelectColumnFilter } from \"../../../../../leap-components/Grid/NoFetchGrid/SelectColumnFilter\";\r\nimport CircularEconomyHomeContainer from \"./../CircularEconomyHomeContainer\";\r\nimport {\r\n GetFilteredEowsCsv,\r\n GetFilteredEowsFetchUrl,\r\n} from \"../../../../../api/CircularEconomy/INotifiers\";\r\nimport { EpaGridOrderByFetchParams } from \"../../../../../leap-components/Grid/EpaGridProps\";\r\nimport { CreateStaticSelectColumnFilter } from \"../../../../../leap-components/Grid/FetchGrid/StaticSelectColumnFilter\";\r\n\r\ninterface ISearchResultRow {\r\n licence_name: string;\r\n licence_number: string;\r\n organisation: string;\r\n town: string;\r\n county: string;\r\n}\r\n\r\nconst localAuthorityFilterValues = [\r\n { value: \"Carlow County Council\", label: \"Carlow County Council\" },\r\n { value: \"Cavan County Council\", label: \"Cavan County Council\" },\r\n { value: \"Clare County Council\", label: \"Clare County Council\" },\r\n { value: \"Cork City Council\", label: \"Cork City Council\" },\r\n { value: \"Cork County Council\", label: \"Cork County Council\" },\r\n { value: \"Donegal County Council\", label: \"Donegal County Council\" },\r\n { value: \"Dublin City Council\", label: \"Dublin City Council\" },\r\n {\r\n value: \"Dun Laoghaire Rathdown County Council\",\r\n label: \"Dun Laoghaire Rathdown County Council\",\r\n },\r\n {\r\n value: \"Environmental Protection Agency\",\r\n label: \"Environmental Protection Agency\",\r\n },\r\n { value: \"Fingal County Council\", label: \"Fingal County Council\" },\r\n { value: \"Galway City Council\", label: \"Galway City Council\" },\r\n { value: \"Galway County Council\", label: \"Galway County Council\" },\r\n { value: \"Kerry County Council\", label: \"Kerry County Council\" },\r\n { value: \"Kildare County Council\", label: \"Kildare County Council\" },\r\n { value: \"Kilkenny County Council\", label: \"Kilkenny County Council\" },\r\n { value: \"Laois County Council\", label: \"Laois County Council\" },\r\n { value: \"Leitrim County Council\", label: \"Leitrim County Council\" },\r\n {\r\n value: \"Limerick City & County Council\",\r\n label: \"Limerick City & County Council\",\r\n },\r\n { value: \"Limerick County Council\", label: \"Limerick County Council\" },\r\n { value: \"Longford County Council\", label: \"Longford County Council\" },\r\n { value: \"Louth County Council\", label: \"Louth County Council\" },\r\n { value: \"Mayo County Council\", label: \"Mayo County Council\" },\r\n { value: \"Meath County Council\", label: \"Meath County Council\" },\r\n { value: \"Monaghan County Council\", label: \"Monaghan County Council\" },\r\n {\r\n value: \"North Tipperary County Council\",\r\n label: \"North Tipperary County Council\",\r\n },\r\n { value: \"Offaly County Council\", label: \"Offaly County Council\" },\r\n { value: \"Roscommon County Council\", label: \"Roscommon County Council\" },\r\n { value: \"Sligo County Council\", label: \"Sligo County Council\" },\r\n {\r\n value: \"South Dublin County Council\",\r\n label: \"South Dublin County Council\",\r\n },\r\n {\r\n value: \"South Tipperary County Council\",\r\n label: \"South Tipperary County Council\",\r\n },\r\n { value: \"Tipperary County Council\", label: \"Tipperary County Council\" },\r\n {\r\n value: \"Waterford City & County Council\",\r\n label: \"Waterford City & County Council\",\r\n },\r\n { value: \"Waterford County Council\", label: \"Waterford County Council\" },\r\n { value: \"Westmeath County Council\", label: \"Westmeath County Council\" },\r\n { value: \"Wexford County Council\", label: \"Wexford County Council\" },\r\n { value: \"Wicklow County Council\", label: \"Wicklow County Council\" },\r\n];\r\n\r\nconst typeFilterValues = [\r\n { value: \"EU Registration\", label: \"EU Registration\" },\r\n { value: \"National Registration\", label: \"National Registration\" },\r\n { value: \"Single Case Registration\", label: \"Single Case Registration\" },\r\n];\r\n\r\nconst statusFilterValues = [\r\n { value: \"Deregistered\", label: \"Deregistered\" },\r\n { value: \"Registered\", label: \"Registered\" },\r\n];\r\n\r\nconst GetUrlForNotifier = (NotifierId: string) => {\r\n return `/eow/${NotifierId}`;\r\n};\r\n\r\nconst EowHome = () => {\r\n const [searchValue, setSearchValue] = useState(\"\");\r\n\r\n const searchChangedFn = (newSearch: string) => {\r\n setSearchValue(newSearch);\r\n };\r\n\r\n const tableColumnsBig: Column>[] = [\r\n {\r\n Header: \"Reg Number\",\r\n accessor: \"reg_no\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return (\r\n \r\n {rowInfo.value}\r\n \r\n );\r\n },\r\n sortType: \"basic\",\r\n },\r\n {\r\n Header: \"Registration Date\",\r\n accessor: \"date_received\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n sortType: \"basic\",\r\n },\r\n {\r\n Header: \"Producer\",\r\n accessor: \"notifier_name\",\r\n Filter: false,\r\n sortType: \"basic\",\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"status\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n statusFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"End-of-waste Decision Type\",\r\n accessor: \"type\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n typeFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Criteria Ref\",\r\n accessor: \"decision_ref_no\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Material type\",\r\n accessor: \"notified_material\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Link to Criteria\",\r\n accessor: \"hyperlink\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return {rowInfo.value};\r\n },\r\n },\r\n {\r\n Header: \"Waste Authorisation Ref No\",\r\n accessor: \"waste_authorisation_regno\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Enforcement Authority\",\r\n accessor: \"enforcement_authority\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n localAuthorityFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n ];\r\n\r\n const tableColumnsSmall: Column>[] = [\r\n {\r\n Header: \"Reg Number\",\r\n accessor: \"reg_no\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => {\r\n const rowData = rowInfo.data[rowInfo.row.index];\r\n return (\r\n \r\n {rowInfo.value}\r\n \r\n );\r\n },\r\n sortType: \"basic\",\r\n },\r\n {\r\n Header: \"Registration Date\",\r\n accessor: \"date_received\",\r\n Filter: false,\r\n Cell: (rowInfo: any) => formatDate(rowInfo.value),\r\n sortType: \"basic\",\r\n },\r\n {\r\n Header: \"Producer\",\r\n accessor: \"notifier_name\",\r\n Filter: false,\r\n sortType: \"basic\",\r\n },\r\n {\r\n Header: \"Status\",\r\n accessor: \"status\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n statusFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"End-of-waste Decision Type\",\r\n accessor: \"type\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n typeFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Criteria Ref\",\r\n accessor: \"decision_ref_no\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Material type\",\r\n accessor: \"notified_material\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Link to Criteria\",\r\n accessor: \"hyperlink\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Waste Authorisation Ref No\",\r\n accessor: \"waste_authorisation_regno\",\r\n Filter: false,\r\n },\r\n {\r\n Header: \"Enforcement Authority\",\r\n accessor: \"enforcement_authority\",\r\n Filter: CreateStaticSelectColumnFilter(\r\n localAuthorityFilterValues.map((n) => n.value)\r\n ),\r\n filter: \"includes\",\r\n },\r\n ];\r\n\r\n const getFetchUrlFactory = () => {\r\n let fetchUrlFn = (\r\n pageNo: number,\r\n recordsPerPage: number,\r\n searchText: string,\r\n filters: any,\r\n orderBy?: EpaGridOrderByFetchParams\r\n ) => {\r\n return GetFilteredEowsFetchUrl(\r\n pageNo,\r\n recordsPerPage,\r\n searchText,\r\n filters,\r\n orderBy\r\n );\r\n };\r\n\r\n return fetchUrlFn;\r\n };\r\n\r\n const fetchUrl = getFetchUrlFactory();\r\n\r\n const orderBy = {\r\n orderByAscending: false,\r\n orderByName: \"Registration Date\",\r\n enabledOrderByColumns: [\"Registration Date\", \"Reg Number\", \"Operator\"],\r\n };\r\n\r\n const results = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n const contentElement = (\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 return (\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EowHome;\r\n","// Layouts\r\nimport CircularEconomyDashboard from \"./layouts/CircularEconomyDashboard\";\r\n\r\nimport CertificateOfRegistrationList from \"./pages/CertificateOfRegistration/List\";\r\nimport CertificateOfRegistrationDetails from \"./pages/CertificateOfRegistration/Details\";\r\n\r\n// Protected routes\r\nimport CircularEconomyHome from \"./pages/home/ByProduct\";\r\nimport CircularEconomyDetails from \"./pages/home/Details/details\";\r\nimport DetailsEndOfWaste from \"./pages/home/Details/detailseow\";\r\nimport EowHome from \"./pages/home/EndOfWaste\";\r\n\r\nconst routes = [\r\n {\r\n path: \"/\",\r\n element: ,\r\n children: [\r\n {\r\n path: \"\",\r\n element: ,\r\n },\r\n {\r\n path: \"notifier/:notifierId\",\r\n element: ,\r\n },\r\n {\r\n path: \"endofwaste\",\r\n element: ,\r\n },\r\n {\r\n path: \"eow/:notifierId\",\r\n element: ,\r\n },\r\n {\r\n path: \"certificatesofregistration\",\r\n element: ,\r\n },\r\n {\r\n path: \"cor/:licenseId\",\r\n element: ,\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport default routes;\r\n","import React from \"react\";\r\nimport { THEME } from \"../../constants\";\r\nimport useSettingsState from \"../../hooks/useSettingsState\";\r\n\r\nconst initialState = {\r\n theme: THEME.DEFAULT,\r\n setTheme: (layout: string) => {},\r\n};\r\n\r\nconst ThemeContext = React.createContext(initialState);\r\n\r\ninterface ThemeProviderType {\r\n children: React.ReactNode;\r\n}\r\n\r\nfunction ThemeProvider({ children }: ThemeProviderType) {\r\n const [theme, setTheme] = useSettingsState(\"theme\", THEME.DEFAULT);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport { ThemeProvider, ThemeContext };\r\n","import React from \"react\";\r\nimport { useRoutes, useNavigate, Navigate } from \"react-router-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport { HelmetProvider, Helmet } from \"react-helmet-async\";\r\nimport { store } from \"../../redux/store\";\r\n\r\nimport \"../../i18n\";\r\nimport routes from \"./routes\";\r\n\r\nimport { ThemeProvider } from \"./ThemeContext\";\r\nimport { SidebarProvider } from \"../../contexts/SidebarContext\";\r\nimport { LayoutProvider } from \"../../contexts/LayoutContext\";\r\nimport ChartJsDefaults from \"../../utils/ChartJsDefaults\";\r\n\r\nimport { AuthProvider } from \"../../contexts/JWTContext\";\r\n\r\nconst App = () => {\r\n const content = useRoutes(routes);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n enableBackground: \"new 0 0 20 20\",\n xmlSpace: \"preserve\",\n fill: \"#2871e7\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#84aef2\",\n d: \"M19.4,4.1l-9-4C10.1,0,9.9,0,9.6,0.1l-9,4C0.2,4.2,0,4.6,0,5s0.2,0.8,0.6,0.9l9,4C9.7,10,9.9,10,10,10s0.3,0,0.4-0.1l9-4 C19.8,5.8,20,5.4,20,5S19.8,4.2,19.4,4.1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,15c-0.1,0-0.3,0-0.4-0.1l-9-4c-0.5-0.2-0.7-0.8-0.5-1.3c0.2-0.5,0.8-0.7,1.3-0.5l8.6,3.8l8.6-3.8c0.5-0.2,1.1,0,1.3,0.5 c0.2,0.5,0,1.1-0.5,1.3l-9,4C10.3,15,10.1,15,10,15z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,20c-0.1,0-0.3,0-0.4-0.1l-9-4c-0.5-0.2-0.7-0.8-0.5-1.3c0.2-0.5,0.8-0.7,1.3-0.5l8.6,3.8l8.6-3.8c0.5-0.2,1.1,0,1.3,0.5 c0.2,0.5,0,1.1-0.5,1.3l-9,4C10.3,20,10.1,20,10,20z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.001be075.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/avatar.42a86687.jpg\";","export default __webpack_public_path__ + \"static/media/avatar-3.7ddfac87.jpg\";","export default __webpack_public_path__ + \"static/media/avatar-4.93166a0c.jpg\";","export default __webpack_public_path__ + \"static/media/avatar-5.b309bbe2.jpg\";","import { SidebarItemsType } from \"../../types/sidebar\";\r\n\r\nimport {\r\n Bell,\r\n BookOpen,\r\n Calendar,\r\n CheckSquare,\r\n Grid,\r\n Heart,\r\n Layout,\r\n List,\r\n PieChart,\r\n Sliders,\r\n MapPin,\r\n Users,\r\n Share,\r\n} from \"react-feather\";\r\n\r\nconst pagesSection = [\r\n {\r\n href: \"/licence-profile\",\r\n icon: Sliders,\r\n title: \"Licence Profile\",\r\n badge: \"NEW\",\r\n },\r\n {\r\n href: \"/dashboard\",\r\n icon: Sliders,\r\n title: \"Dashboards\",\r\n badge: \"5\",\r\n children: [\r\n {\r\n href: \"/dashboard/default\",\r\n title: \"Default\",\r\n },\r\n {\r\n href: \"/dashboard/analytics\",\r\n title: \"Analytics\",\r\n },\r\n {\r\n href: \"/dashboard/saas\",\r\n title: \"SaaS\",\r\n },\r\n {\r\n href: \"/dashboard/social\",\r\n title: \"Social\",\r\n },\r\n {\r\n href: \"/dashboard/crypto\",\r\n title: \"Crypto\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/pages\",\r\n icon: Layout,\r\n title: \"Pages\",\r\n children: [\r\n {\r\n href: \"/pages/profile\",\r\n title: \"Profile\",\r\n },\r\n {\r\n href: \"/pages/settings\",\r\n title: \"Settings\",\r\n },\r\n {\r\n href: \"/pages/clients\",\r\n title: \"Clients\",\r\n },\r\n {\r\n href: \"/pages/projects\",\r\n title: \"Projects\",\r\n },\r\n {\r\n href: \"/pages/invoice\",\r\n title: \"Invoice\",\r\n },\r\n {\r\n href: \"/pages/pricing\",\r\n title: \"Pricing\",\r\n },\r\n {\r\n href: \"/pages/tasks\",\r\n title: \"Tasks\",\r\n },\r\n {\r\n href: \"/pages/chat\",\r\n title: \"Chat\",\r\n badge: \"New\",\r\n },\r\n {\r\n href: \"/pages/blank\",\r\n title: \"Blank Page\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/auth\",\r\n icon: Users,\r\n title: \"Auth\",\r\n children: [\r\n {\r\n href: \"/auth/sign-in\",\r\n title: \"Sign In\",\r\n },\r\n {\r\n href: \"/auth/sign-up\",\r\n title: \"Sign Up\",\r\n },\r\n {\r\n href: \"/auth/reset-password\",\r\n title: \"Reset Password\",\r\n },\r\n {\r\n href: \"/auth/404\",\r\n title: \"404 Page\",\r\n },\r\n {\r\n href: \"/auth/500\",\r\n title: \"500 Page\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/docs/introduction\",\r\n icon: BookOpen,\r\n title: \"Documentation\",\r\n },\r\n] as SidebarItemsType[];\r\n\r\nconst componentsSection = [\r\n {\r\n href: \"/ui\",\r\n icon: Grid,\r\n title: \"UI Elements\",\r\n children: [\r\n {\r\n href: \"/ui/alerts\",\r\n title: \"Alerts\",\r\n },\r\n {\r\n href: \"/ui/buttons\",\r\n title: \"Buttons\",\r\n },\r\n {\r\n href: \"/ui/cards\",\r\n title: \"Cards\",\r\n },\r\n {\r\n href: \"/ui/carousel\",\r\n title: \"Carousel\",\r\n },\r\n {\r\n href: \"/ui/embed-video\",\r\n title: \"Embed Video\",\r\n },\r\n {\r\n href: \"/ui/general\",\r\n title: \"General\",\r\n },\r\n {\r\n href: \"/ui/grid\",\r\n title: \"Grid\",\r\n },\r\n {\r\n href: \"/ui/modals\",\r\n title: \"Modals\",\r\n },\r\n {\r\n href: \"/ui/offcanvas\",\r\n title: \"Offcanvas\",\r\n },\r\n {\r\n href: \"/ui/tabs\",\r\n title: \"Tabs\",\r\n },\r\n {\r\n href: \"/ui/typography\",\r\n title: \"Typography\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/icons\",\r\n icon: Heart,\r\n title: \"Icons\",\r\n badge: \"1500+\",\r\n children: [\r\n {\r\n href: \"/icons/feather\",\r\n title: \"Feather\",\r\n },\r\n {\r\n href: \"/icons/font-awesome\",\r\n title: \"Font Awesome\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/forms\",\r\n icon: CheckSquare,\r\n title: \"Forms\",\r\n children: [\r\n {\r\n href: \"/forms/layouts\",\r\n title: \"Layouts\",\r\n },\r\n {\r\n href: \"/forms/basic-inputs\",\r\n title: \"Basic Inputs\",\r\n },\r\n {\r\n href: \"/forms/input-groups\",\r\n title: \"Input Groups\",\r\n },\r\n {\r\n href: \"/forms/floating-labels\",\r\n title: \"Floating Labels\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/tables\",\r\n icon: List,\r\n title: \"Tables\",\r\n },\r\n] as SidebarItemsType[];\r\n\r\nconst pluginsSection = [\r\n {\r\n href: \"/form-plugins\",\r\n icon: CheckSquare,\r\n title: \"Form Plugins\",\r\n children: [\r\n {\r\n href: \"/form-plugins/advanced-inputs\",\r\n title: \"Advanced Inputs\",\r\n },\r\n {\r\n href: \"/form-plugins/formik\",\r\n title: \"Formik\",\r\n badge: \"New\",\r\n },\r\n {\r\n href: \"/form-plugins/editors\",\r\n title: \"Editors\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/advanced-tables\",\r\n icon: List,\r\n title: \"Advanced Tables\",\r\n children: [\r\n {\r\n href: \"/advanced-tables/pagination\",\r\n title: \"Pagination\",\r\n },\r\n {\r\n href: \"/advanced-tables/column-sorting\",\r\n title: \"Column Sorting\",\r\n },\r\n {\r\n href: \"/advanced-tables/column-filtering\",\r\n title: \"Column Filtering\",\r\n },\r\n {\r\n href: \"/advanced-tables/row-expanding\",\r\n title: \"Row Expanding\",\r\n },\r\n {\r\n href: \"/advanced-tables/row-selection\",\r\n title: \"Row Selection\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/charts\",\r\n icon: PieChart,\r\n title: \"Charts\",\r\n badge: \"New\",\r\n children: [\r\n {\r\n href: \"/charts/chartjs\",\r\n title: \"Chart.js\",\r\n },\r\n {\r\n href: \"/charts/apexcharts\",\r\n title: \"ApexCharts\",\r\n badge: \"New\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/notifications\",\r\n icon: Bell,\r\n title: \"Notifications\",\r\n },\r\n {\r\n href: \"/maps\",\r\n icon: MapPin,\r\n title: \"Maps\",\r\n children: [\r\n {\r\n href: \"/maps/google-maps\",\r\n title: \"Google Maps\",\r\n },\r\n {\r\n href: \"/maps/vector-maps\",\r\n title: \"Vector Maps\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/calendar\",\r\n icon: Calendar,\r\n title: \"Calendar\",\r\n },\r\n {\r\n href: \"/404\",\r\n icon: Share,\r\n title: \"Multi Level\",\r\n children: [\r\n {\r\n href: \"/404\",\r\n title: \"Two Levels\",\r\n children: [\r\n {\r\n href: \"/404\",\r\n title: \"Item 1\",\r\n },\r\n {\r\n href: \"/404\",\r\n title: \"Item 2\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/404\",\r\n title: \"Three Levels\",\r\n children: [\r\n {\r\n href: \"/404\",\r\n title: \"Item 1\",\r\n children: [\r\n {\r\n href: \"/404\",\r\n title: \"Item 1\",\r\n },\r\n {\r\n href: \"/404\",\r\n title: \"Item 2\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/404\",\r\n title: \"Item 2\",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n] as SidebarItemsType[];\r\n\r\nconst navItems = [\r\n {\r\n title: \"Pages\",\r\n pages: pagesSection,\r\n },\r\n {\r\n title: \"Tools & Components\",\r\n pages: componentsSection,\r\n },\r\n {\r\n title: \"Plugins & Addons\",\r\n pages: pluginsSection,\r\n },\r\n];\r\n\r\nexport default navItems;\r\n","import { SidebarItemsType } from \"../../types/sidebar\";\r\n\r\nimport {\r\n ArrowRightCircle,\r\n Code,\r\n Globe,\r\n Info,\r\n List,\r\n Mail,\r\n Shield,\r\n Users,\r\n} from \"react-feather\";\r\n\r\nconst gettingStartedSection = [\r\n {\r\n href: \"/docs/introduction\",\r\n icon: Info,\r\n title: \"Welcome\",\r\n },\r\n {\r\n href: \"/docs/getting-started\",\r\n icon: Code,\r\n title: \"Getting Started\",\r\n },\r\n] as SidebarItemsType[];\r\n\r\nconst developmentSection = [\r\n {\r\n href: \"/docs/routing\",\r\n icon: ArrowRightCircle,\r\n title: \"Routing\",\r\n },\r\n {\r\n href: \"/docs/auth\",\r\n icon: Users,\r\n title: \"Authentication\",\r\n children: [\r\n {\r\n href: \"/docs/auth/auth0\",\r\n title: \"Auth0\",\r\n },\r\n {\r\n href: \"/docs/auth/cognito\",\r\n title: \"Cognito\",\r\n },\r\n {\r\n href: \"/docs/auth/firebase\",\r\n title: \"Firebase\",\r\n },\r\n {\r\n href: \"/docs/auth/jwt\",\r\n title: \"JWT\",\r\n },\r\n ],\r\n },\r\n {\r\n href: \"/docs/guards\",\r\n icon: Shield,\r\n title: \"Guards\",\r\n },\r\n {\r\n href: \"/docs/api-calls\",\r\n icon: ArrowRightCircle,\r\n title: \"API Calls\",\r\n },\r\n {\r\n href: \"/docs/environment-variables\",\r\n icon: ArrowRightCircle,\r\n title: \"Environment Variables\",\r\n },\r\n {\r\n href: \"/docs/redux\",\r\n icon: ArrowRightCircle,\r\n title: \"Redux\",\r\n },\r\n {\r\n href: \"/docs/internationalization\",\r\n icon: Globe,\r\n title: \"Internationalization\",\r\n },\r\n {\r\n href: \"/docs/eslint-and-prettier\",\r\n icon: ArrowRightCircle,\r\n title: \"ESLint & Prettier\",\r\n },\r\n {\r\n href: \"/docs/deployment\",\r\n icon: ArrowRightCircle,\r\n title: \"Deployment\",\r\n },\r\n {\r\n href: \"/docs/migrating-to-next-js\",\r\n icon: ArrowRightCircle,\r\n title: \"Migrating to Next.js\",\r\n },\r\n] as SidebarItemsType[];\r\n\r\nconst helpSection = [\r\n {\r\n href: \"/docs/support\",\r\n icon: Mail,\r\n title: \"Support\",\r\n },\r\n {\r\n href: \"/docs/changelog\",\r\n icon: List,\r\n title: \"Changelog\",\r\n badge: \"v2.2.0\",\r\n },\r\n] as SidebarItemsType[];\r\n\r\nconst navItems = [\r\n {\r\n title: \"Getting Started\",\r\n pages: gettingStartedSection,\r\n },\r\n {\r\n title: \"Development\",\r\n pages: developmentSection,\r\n },\r\n {\r\n title: \"Help\",\r\n pages: helpSection,\r\n },\r\n];\r\n\r\nexport default navItems;\r\n","import * as React from \"react\";\r\nimport { Navigate } from \"react-router-dom\";\r\n\r\nimport useAuth from \"../../hooks/useAuth\";\r\n\r\ninterface AuthGuardType {\r\n children: React.ReactNode;\r\n}\r\n\r\n// For routes that can only be accessed by authenticated users\r\nfunction AuthGuard({ children }: AuthGuardType) {\r\n const { isAuthenticated, isInitialized } = useAuth();\r\n\r\n if (isInitialized && !isAuthenticated) {\r\n return ;\r\n }\r\n\r\n return {children};\r\n}\r\n\r\nexport default AuthGuard;\r\n","export default __webpack_public_path__ + \"static/media/customer-support.ed122f05.png\";","export default __webpack_public_path__ + \"static/media/searching.9ba2a95a.png\";","import React, { useEffect } from \"react\";\r\nimport { VectorMap } from \"react-jvectormap\";\r\n\r\nimport { Card, Dropdown } from \"react-bootstrap\";\r\n\r\nimport { MoreHorizontal } from \"react-feather\";\r\n\r\nimport usePalette from \"../../../hooks/usePalette\";\r\n\r\nfunction WorldMap() {\r\n const palette = usePalette();\r\n\r\n const options = {\r\n map: \"world_mill\",\r\n normalizeFunction: \"polynomial\",\r\n hoverOpacity: 0.7,\r\n hoverColor: false,\r\n zoomOnScroll: false,\r\n regionStyle: {\r\n initial: {\r\n fill: palette[\"gray-200\"],\r\n },\r\n },\r\n containerStyle: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n },\r\n markerStyle: {\r\n initial: {\r\n r: 9,\r\n fill: palette.primary,\r\n \"fill-opacity\": 0.9,\r\n stroke: palette.white,\r\n \"stroke-width\": 7,\r\n \"stroke-opacity\": 0.4,\r\n },\r\n hover: {\r\n fill: palette.primary,\r\n \"fill-opacity\": 0.9,\r\n stroke: palette.primary,\r\n \"stroke-width\": 7,\r\n \"stroke-opacity\": 0.4,\r\n },\r\n },\r\n backgroundColor: \"transparent\",\r\n markers: [\r\n {\r\n latLng: [31.230391, 121.473701],\r\n name: \"Shanghai\",\r\n },\r\n {\r\n latLng: [39.904202, 116.407394],\r\n name: \"Beijing\",\r\n },\r\n {\r\n latLng: [28.70406, 77.102493],\r\n name: \"Delhi\",\r\n },\r\n {\r\n latLng: [6.524379, 3.379206],\r\n name: \"Lagos\",\r\n },\r\n {\r\n latLng: [39.343357, 117.361649],\r\n name: \"Tianjin\",\r\n },\r\n {\r\n latLng: [24.860735, 67.001137],\r\n name: \"Karachi\",\r\n },\r\n {\r\n latLng: [41.00824, 28.978359],\r\n name: \"Istanbul\",\r\n },\r\n {\r\n latLng: [35.689487, 139.691711],\r\n name: \"Tokyo\",\r\n },\r\n {\r\n latLng: [23.12911, 113.264381],\r\n name: \"Guangzhou\",\r\n },\r\n {\r\n latLng: [19.075983, 72.877655],\r\n name: \"Mumbai\",\r\n },\r\n {\r\n latLng: [40.7127837, -74.0059413],\r\n name: \"New York\",\r\n },\r\n {\r\n latLng: [34.052235, -118.243683],\r\n name: \"Los Angeles\",\r\n },\r\n {\r\n latLng: [41.878113, -87.629799],\r\n name: \"Chicago\",\r\n },\r\n {\r\n latLng: [29.760427, -95.369804],\r\n name: \"Houston\",\r\n },\r\n {\r\n latLng: [33.448376, -112.074036],\r\n name: \"Phoenix\",\r\n },\r\n {\r\n latLng: [51.507351, -0.127758],\r\n name: \"London\",\r\n },\r\n {\r\n latLng: [48.856613, 2.352222],\r\n name: \"Paris\",\r\n },\r\n {\r\n latLng: [55.755825, 37.617298],\r\n name: \"Moscow\",\r\n },\r\n {\r\n latLng: [40.416775, -3.70379],\r\n name: \"Madrid\",\r\n },\r\n ],\r\n };\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n window.dispatchEvent(new Event(\"resize\"));\r\n }, 250);\r\n }, [palette]);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Action\r\n Another Action\r\n Something else here\r\n \r\n \r\n
\r\n Real-Time\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default WorldMap;\r\n","export default __webpack_public_path__ + \"static/media/social.20f68972.png\";","export default __webpack_public_path__ + \"static/media/avatar-2.6cc481d4.jpg\";","export default __webpack_public_path__ + \"static/media/unsplash-1.f6b3aeb0.jpg\";","export default __webpack_public_path__ + \"static/media/unsplash-2.695077e0.jpg\";","export default __webpack_public_path__ + \"static/media/unsplash-3.ad504e7b.jpg\";","import React from \"react\";\r\nimport { VectorMap } from \"react-jvectormap\";\r\n\r\nimport { Card, Dropdown } from \"react-bootstrap\";\r\n\r\nimport { MoreHorizontal } from \"react-feather\";\r\n\r\nimport usePalette from \"../../../hooks/usePalette\";\r\n\r\nfunction USAMap() {\r\n const palette = usePalette();\r\n\r\n const options = {\r\n map: \"us_aea\",\r\n normalizeFunction: \"polynomial\",\r\n hoverOpacity: 0.7,\r\n hoverColor: false,\r\n zoomOnScroll: false,\r\n regionStyle: {\r\n initial: {\r\n fill: palette[\"gray-200\"],\r\n },\r\n },\r\n containerStyle: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n },\r\n markerStyle: {\r\n initial: {\r\n r: 9,\r\n fill: palette.primary,\r\n \"fill-opacity\": 0.9,\r\n stroke: palette.white,\r\n \"stroke-width\": 7,\r\n \"stroke-opacity\": 0.4,\r\n },\r\n hover: {\r\n fill: palette.primary,\r\n \"fill-opacity\": 0.9,\r\n stroke: palette.primary,\r\n \"stroke-width\": 7,\r\n \"stroke-opacity\": 0.4,\r\n },\r\n },\r\n backgroundColor: \"transparent\",\r\n markers: [\r\n {\r\n latLng: [37.77, -122.41],\r\n name: \"San Francisco: 375\",\r\n },\r\n {\r\n latLng: [40.71, -74.0],\r\n name: \"New York: 350\",\r\n },\r\n {\r\n latLng: [39.09, -94.57],\r\n name: \"Kansas City: 250\",\r\n },\r\n {\r\n latLng: [36.16, -115.13],\r\n name: \"Las Vegas: 275\",\r\n },\r\n {\r\n latLng: [32.77, -96.79],\r\n name: \"Dallas: 225\",\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 Action\r\n Another Action\r\n Something else here\r\n \r\n \r\n
\r\n Sales by State\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default USAMap;\r\n","import React, { useEffect } from \"react\";\r\n\r\nimport ApexCharts from \"react-apexcharts\";\r\nimport { ApexOptions } from \"apexcharts\";\r\n\r\nimport { Card, Dropdown } from \"react-bootstrap\";\r\n\r\nimport { MoreHorizontal } from \"react-feather\";\r\n\r\nconst data = [\r\n {\r\n data: [\r\n {\r\n x: new Date(2016, 1, 1),\r\n y: [51.98, 56.29, 51.59, 53.85],\r\n },\r\n {\r\n x: new Date(2016, 2, 1),\r\n y: [53.66, 54.99, 51.35, 52.95],\r\n },\r\n {\r\n x: new Date(2016, 3, 1),\r\n y: [52.96, 53.78, 51.54, 52.48],\r\n },\r\n {\r\n x: new Date(2016, 4, 1),\r\n y: [52.54, 52.79, 47.88, 49.24],\r\n },\r\n {\r\n x: new Date(2016, 5, 1),\r\n y: [49.1, 52.86, 47.7, 52.78],\r\n },\r\n {\r\n x: new Date(2016, 6, 1),\r\n y: [52.83, 53.48, 50.32, 52.29],\r\n },\r\n {\r\n x: new Date(2016, 7, 1),\r\n y: [52.2, 54.48, 51.64, 52.58],\r\n },\r\n {\r\n x: new Date(2016, 8, 1),\r\n y: [52.76, 57.35, 52.15, 57.03],\r\n },\r\n {\r\n x: new Date(2016, 9, 1),\r\n y: [57.04, 58.15, 48.88, 56.19],\r\n },\r\n {\r\n x: new Date(2016, 10, 1),\r\n y: [56.09, 58.85, 55.48, 58.79],\r\n },\r\n {\r\n x: new Date(2016, 11, 1),\r\n y: [58.78, 59.65, 58.23, 59.05],\r\n },\r\n {\r\n x: new Date(2017, 0, 1),\r\n y: [59.37, 61.11, 59.35, 60.34],\r\n },\r\n {\r\n x: new Date(2017, 1, 1),\r\n y: [60.4, 60.52, 56.71, 56.93],\r\n },\r\n {\r\n x: new Date(2017, 2, 1),\r\n y: [57.02, 59.71, 56.04, 56.82],\r\n },\r\n {\r\n x: new Date(2017, 3, 1),\r\n y: [56.97, 59.62, 54.77, 59.3],\r\n },\r\n {\r\n x: new Date(2017, 4, 1),\r\n y: [59.11, 62.29, 59.1, 59.85],\r\n },\r\n {\r\n x: new Date(2017, 5, 1),\r\n y: [59.97, 60.11, 55.66, 58.42],\r\n },\r\n {\r\n x: new Date(2017, 6, 1),\r\n y: [58.34, 60.93, 56.75, 57.42],\r\n },\r\n {\r\n x: new Date(2017, 7, 1),\r\n y: [57.76, 58.08, 53.18, 54.71],\r\n },\r\n {\r\n x: new Date(2017, 8, 1),\r\n y: [54.8, 61.42, 53.58, 57.35],\r\n },\r\n {\r\n x: new Date(2017, 9, 1),\r\n y: [57.56, 63.09, 57.0, 62.99],\r\n },\r\n {\r\n x: new Date(2017, 10, 1),\r\n y: [62.89, 63.42, 59.72, 61.76],\r\n },\r\n {\r\n x: new Date(2017, 11, 1),\r\n y: [61.71, 64.15, 61.29, 63.04],\r\n },\r\n {\r\n x: new Date(2018, 0, 1),\r\n y: [59.37, 61.11, 59.35, 60.34],\r\n },\r\n {\r\n x: new Date(2018, 1, 1),\r\n y: [60.4, 60.52, 56.71, 56.93],\r\n },\r\n {\r\n x: new Date(2018, 2, 1),\r\n y: [57.02, 59.71, 56.04, 56.82],\r\n },\r\n {\r\n x: new Date(2018, 3, 1),\r\n y: [56.97, 59.62, 54.77, 59.3],\r\n },\r\n {\r\n x: new Date(2018, 4, 1),\r\n y: [59.11, 62.29, 59.1, 59.85],\r\n },\r\n {\r\n x: new Date(2018, 5, 1),\r\n y: [59.97, 60.11, 55.66, 58.42],\r\n },\r\n {\r\n x: new Date(2018, 6, 1),\r\n y: [58.34, 60.93, 56.75, 57.42],\r\n },\r\n {\r\n x: new Date(2018, 7, 1),\r\n y: [57.76, 58.08, 51.18, 54.71],\r\n },\r\n {\r\n x: new Date(2018, 8, 1),\r\n y: [54.8, 61.42, 53.18, 57.35],\r\n },\r\n {\r\n x: new Date(2018, 9, 1),\r\n y: [57.56, 62.09, 57.0, 61.99],\r\n },\r\n {\r\n x: new Date(2018, 10, 1),\r\n y: [62.89, 63.42, 59.72, 61.76],\r\n },\r\n {\r\n x: new Date(2018, 11, 1),\r\n y: [61.71, 64.15, 61.29, 63.04],\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst options: ApexOptions = {\r\n stroke: {\r\n width: 1,\r\n },\r\n xaxis: {\r\n type: \"datetime\",\r\n },\r\n colors: [\"#0cc2aa\", \"#5fc27e\", \"#fcc100\", \"#f44455\", \"#5b7dff\"],\r\n};\r\n\r\nconst Chart = () => {\r\n useEffect(() => {\r\n // Trigger resize manually so chart doesn't fall off canvas\r\n window.dispatchEvent(new Event(\"resize\"));\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 Action\r\n Another Action\r\n Something else here\r\n \r\n \r\n
\r\n LTC/BTC\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Chart;\r\n","import React from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport * as Yup from \"yup\";\r\nimport { Formik } from \"formik\";\r\nimport { Alert, Button, Form } from \"react-bootstrap\";\r\n\r\nimport useAuth from \"../../hooks/useAuth\";\r\n\r\nfunction ResetPassword() {\r\n const navigate = useNavigate();\r\n const { resetPassword } = useAuth();\r\n\r\n return (\r\n {\r\n try {\r\n resetPassword(values.email);\r\n navigate(\"/auth/sign-in\");\r\n } catch (error: any) {\r\n const message = error.message || \"Something went wrong\";\r\n\r\n setStatus({ success: false });\r\n setErrors({ submit: message });\r\n setSubmitting(false);\r\n }\r\n }}\r\n >\r\n {({\r\n errors,\r\n handleBlur,\r\n handleChange,\r\n handleSubmit,\r\n isSubmitting,\r\n touched,\r\n values,\r\n }) => (\r\n
\r\n {errors.submit && (\r\n \r\n
{errors.submit}
\r\n
\r\n )}\r\n \r\n Email\r\n \r\n {!!touched.email && (\r\n \r\n {errors.email}\r\n \r\n )}\r\n \r\n
\r\n \r\n Reset password\r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default ResetPassword;\r\n","// ExpandableRows demo\r\nconst subRows = [\r\n {\r\n name: \"Shad Decker\",\r\n position: \"Regional Director\",\r\n office: \"Edinburgh\",\r\n age: 51,\r\n startDate: \"2008/11/13\",\r\n salary: \"$183,000\",\r\n },\r\n {\r\n name: \"Michael Bruce\",\r\n position: \"Javascript Developer\",\r\n office: \"Singapore\",\r\n age: 29,\r\n startDate: \"2011/06/27\",\r\n salary: \"$183,000\",\r\n },\r\n {\r\n name: \"Donna Snider\",\r\n position: \"Customer Support\",\r\n office: \"New York\",\r\n age: 27,\r\n startDate: \"2011/01/25\",\r\n salary: \"$112,000\",\r\n },\r\n];\r\n\r\nconst tableData = [\r\n {\r\n name: \"Tiger Nixon\",\r\n position: \"System Architect\",\r\n office: \"Edinburgh\",\r\n age: 61,\r\n startDate: \"2011/04/25\",\r\n salary: \"$320,800\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Garrett Winters\",\r\n position: \"Accountant\",\r\n office: \"Tokyo\",\r\n age: 63,\r\n startDate: \"2011/07/25\",\r\n salary: \"$170,750\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Ashton Cox\",\r\n position: \"Junior Technical Author\",\r\n office: \"San Francisco\",\r\n age: 66,\r\n startDate: \"2009/01/12\",\r\n salary: \"$86,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Cedric Kelly\",\r\n position: \"Senior Javascript Developer\",\r\n office: \"Edinburgh\",\r\n age: 22,\r\n startDate: \"2012/03/29\",\r\n salary: \"$433,060\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Airi Satou\",\r\n position: \"Accountant\",\r\n office: \"Tokyo\",\r\n age: 33,\r\n startDate: \"2008/11/28\",\r\n salary: \"$162,700\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Brielle Williamson\",\r\n position: \"Integration Specialist\",\r\n office: \"New York\",\r\n age: 61,\r\n startDate: \"2012/12/02\",\r\n salary: \"$372,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Herrod Chandler\",\r\n position: \"Sales Assistant\",\r\n office: \"San Francisco\",\r\n age: 59,\r\n startDate: \"2012/08/06\",\r\n salary: \"$137,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Rhona Davidson\",\r\n position: \"Integration Specialist\",\r\n office: \"Tokyo\",\r\n age: 55,\r\n startDate: \"2010/10/14\",\r\n salary: \"$327,900\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Colleen Hurst\",\r\n position: \"Javascript Developer\",\r\n office: \"San Francisco\",\r\n age: 39,\r\n startDate: \"2009/09/15\",\r\n salary: \"$205,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Sonya Frost\",\r\n position: \"Software Engineer\",\r\n office: \"Edinburgh\",\r\n age: 23,\r\n startDate: \"2008/12/13\",\r\n salary: \"$103,600\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Jena Gaines\",\r\n position: \"Office Manager\",\r\n office: \"London\",\r\n age: 30,\r\n startDate: \"2008/12/19\",\r\n salary: \"$90,560\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Quinn Flynn\",\r\n position: \"Support Lead\",\r\n office: \"Edinburgh\",\r\n age: 22,\r\n startDate: \"2013/03/03\",\r\n salary: \"$342,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Charde Marshall\",\r\n position: \"Regional Director\",\r\n office: \"San Francisco\",\r\n age: 36,\r\n startDate: \"2008/10/16\",\r\n salary: \"$470,600\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Haley Kennedy\",\r\n position: \"Senior Marketing Designer\",\r\n office: \"London\",\r\n age: 43,\r\n startDate: \"2012/12/18\",\r\n salary: \"$313,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Tatyana Fitzpatrick\",\r\n position: \"Regional Director\",\r\n office: \"London\",\r\n age: 19,\r\n startDate: \"2010/03/17\",\r\n salary: \"$385,750\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Michael Silva\",\r\n position: \"Marketing Designer\",\r\n office: \"London\",\r\n age: 66,\r\n startDate: \"2012/11/27\",\r\n salary: \"$198,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Paul Byrd\",\r\n position: \"Chief Financial Officer (CFO)\",\r\n office: \"New York\",\r\n age: 64,\r\n startDate: \"2010/06/09\",\r\n salary: \"$725,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Gloria Little\",\r\n position: \"Systems Administrator\",\r\n office: \"New York\",\r\n age: 59,\r\n startDate: \"2009/04/10\",\r\n salary: \"$237,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Bradley Greer\",\r\n position: \"Software Engineer\",\r\n office: \"London\",\r\n age: 41,\r\n startDate: \"2012/10/13\",\r\n salary: \"$132,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Dai Rios\",\r\n position: \"Personnel Lead\",\r\n office: \"Edinburgh\",\r\n age: 35,\r\n startDate: \"2012/09/26\",\r\n salary: \"$217,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Jenette Caldwell\",\r\n position: \"Development Lead\",\r\n office: \"New York\",\r\n age: 30,\r\n startDate: \"2011/09/03\",\r\n salary: \"$345,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Yuri Berry\",\r\n position: \"Chief Marketing Officer (CMO)\",\r\n office: \"New York\",\r\n age: 40,\r\n startDate: \"2009/06/25\",\r\n salary: \"$675,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Caesar Vance\",\r\n position: \"Pre-Sales Support\",\r\n office: \"New York\",\r\n age: 21,\r\n startDate: \"2011/12/12\",\r\n salary: \"$106,450\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Doris Wilder\",\r\n position: \"Sales Assistant\",\r\n office: \"Sidney\",\r\n age: 23,\r\n startDate: \"2010/09/20\",\r\n salary: \"$85,600\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Angelica Ramos\",\r\n position: \"Chief Executive Officer (CEO)\",\r\n office: \"London\",\r\n age: 47,\r\n startDate: \"2009/10/09\",\r\n salary: \"$1,200,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Gavin Joyce\",\r\n position: \"Developer\",\r\n office: \"Edinburgh\",\r\n age: 42,\r\n startDate: \"2010/12/22\",\r\n salary: \"$92,575\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Jennifer Chang\",\r\n position: \"Regional Director\",\r\n office: \"Singapore\",\r\n age: 28,\r\n startDate: \"2010/11/14\",\r\n salary: \"$357,650\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Brenden Wagner\",\r\n position: \"Software Engineer\",\r\n office: \"San Francisco\",\r\n age: 28,\r\n startDate: \"2011/06/07\",\r\n salary: \"$206,850\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Fiona Green\",\r\n position: \"Chief Operating Officer (COO)\",\r\n office: \"San Francisco\",\r\n age: 48,\r\n startDate: \"2010/03/11\",\r\n salary: \"$850,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Shou Itou\",\r\n position: \"Regional Marketing\",\r\n office: \"Tokyo\",\r\n age: 20,\r\n startDate: \"2011/08/14\",\r\n salary: \"$163,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Michelle House\",\r\n position: \"Integration Specialist\",\r\n office: \"Sidney\",\r\n age: 37,\r\n startDate: \"2011/06/02\",\r\n salary: \"$95,400\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Suki Burks\",\r\n position: \"Developer\",\r\n office: \"London\",\r\n age: 53,\r\n startDate: \"2009/10/22\",\r\n salary: \"$114,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Prescott Bartlett\",\r\n position: \"Technical Author\",\r\n office: \"London\",\r\n age: 27,\r\n startDate: \"2011/05/07\",\r\n salary: \"$145,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Gavin Cortez\",\r\n position: \"Team Leader\",\r\n office: \"San Francisco\",\r\n age: 22,\r\n startDate: \"2008/10/26\",\r\n salary: \"$235,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Martena Mccray\",\r\n position: \"Post-Sales support\",\r\n office: \"Edinburgh\",\r\n age: 46,\r\n startDate: \"2011/03/09\",\r\n salary: \"$324,050\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Unity Butler\",\r\n position: \"Marketing Designer\",\r\n office: \"San Francisco\",\r\n age: 47,\r\n startDate: \"2009/12/09\",\r\n salary: \"$85,675\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Howard Hatfield\",\r\n position: \"Office Manager\",\r\n office: \"San Francisco\",\r\n age: 51,\r\n startDate: \"2008/12/16\",\r\n salary: \"$164,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Hope Fuentes\",\r\n position: \"Secretary\",\r\n office: \"San Francisco\",\r\n age: 41,\r\n startDate: \"2010/02/12\",\r\n salary: \"$109,850\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Vivian Harrell\",\r\n position: \"Financial Controller\",\r\n office: \"San Francisco\",\r\n age: 62,\r\n startDate: \"2009/02/14\",\r\n salary: \"$452,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Timothy Mooney\",\r\n position: \"Office Manager\",\r\n office: \"London\",\r\n age: 37,\r\n startDate: \"2008/12/11\",\r\n salary: \"$136,200\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Jackson Bradshaw\",\r\n position: \"Director\",\r\n office: \"New York\",\r\n age: 65,\r\n startDate: \"2008/09/26\",\r\n salary: \"$645,750\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Olivia Liang\",\r\n position: \"Support Engineer\",\r\n office: \"Singapore\",\r\n age: 64,\r\n startDate: \"2011/02/03\",\r\n salary: \"$234,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Bruno Nash\",\r\n position: \"Software Engineer\",\r\n office: \"London\",\r\n age: 38,\r\n startDate: \"2011/05/03\",\r\n salary: \"$163,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Sakura Yamamoto\",\r\n position: \"Support Engineer\",\r\n office: \"Tokyo\",\r\n age: 37,\r\n startDate: \"2009/08/19\",\r\n salary: \"$139,575\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Thor Walton\",\r\n position: \"Developer\",\r\n office: \"New York\",\r\n age: 61,\r\n startDate: \"2013/08/11\",\r\n salary: \"$98,540\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Finn Camacho\",\r\n position: \"Support Engineer\",\r\n office: \"San Francisco\",\r\n age: 47,\r\n startDate: \"2009/07/07\",\r\n salary: \"$87,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Serge Baldwin\",\r\n position: \"Data Coordinator\",\r\n office: \"Singapore\",\r\n age: 64,\r\n startDate: \"2012/04/09\",\r\n salary: \"$138,575\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Zenaida Frank\",\r\n position: \"Software Engineer\",\r\n office: \"New York\",\r\n age: 63,\r\n startDate: \"2010/01/04\",\r\n salary: \"$125,250\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Zorita Serrano\",\r\n position: \"Software Engineer\",\r\n office: \"San Francisco\",\r\n age: 56,\r\n startDate: \"2012/06/01\",\r\n salary: \"$115,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Jennifer Acosta\",\r\n position: \"Junior Javascript Developer\",\r\n office: \"Edinburgh\",\r\n age: 43,\r\n startDate: \"2013/02/01\",\r\n salary: \"$75,650\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Cara Stevens\",\r\n position: \"Sales Assistant\",\r\n office: \"New York\",\r\n age: 46,\r\n startDate: \"2011/12/06\",\r\n salary: \"$145,600\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Hermione Butler\",\r\n position: \"Regional Director\",\r\n office: \"London\",\r\n age: 47,\r\n startDate: \"2011/03/21\",\r\n salary: \"$356,250\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Lael Greer\",\r\n position: \"Systems Administrator\",\r\n office: \"London\",\r\n age: 21,\r\n startDate: \"2009/02/27\",\r\n salary: \"$103,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Jonas Alexander\",\r\n position: \"Developer\",\r\n office: \"San Francisco\",\r\n age: 30,\r\n startDate: \"2010/07/14\",\r\n salary: \"$86,500\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Shad Decker\",\r\n position: \"Regional Director\",\r\n office: \"Edinburgh\",\r\n age: 51,\r\n startDate: \"2008/11/13\",\r\n salary: \"$183,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Michael Bruce\",\r\n position: \"Javascript Developer\",\r\n office: \"Singapore\",\r\n age: 29,\r\n startDate: \"2011/06/27\",\r\n salary: \"$183,000\",\r\n subRows: subRows,\r\n },\r\n {\r\n name: \"Donna Snider\",\r\n position: \"Customer Support\",\r\n office: \"New York\",\r\n age: 27,\r\n startDate: \"2011/01/25\",\r\n salary: \"$112,000\",\r\n subRows: subRows,\r\n },\r\n];\r\n\r\nconst tableColumns = [\r\n {\r\n Header: \"Name\",\r\n accessor: \"name\",\r\n },\r\n {\r\n Header: \"Position\",\r\n accessor: \"position\",\r\n },\r\n {\r\n Header: \"Office\",\r\n accessor: \"office\",\r\n },\r\n {\r\n Header: \"Age\",\r\n accessor: \"age\",\r\n },\r\n {\r\n Header: \"Start Date\",\r\n accessor: \"startDate\",\r\n },\r\n {\r\n Header: \"Salary\",\r\n accessor: \"salary\",\r\n },\r\n];\r\n\r\nexport { tableData, tableColumns };\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport { Card, Col, Container, Row } from \"react-bootstrap\";\r\n\r\nimport * as Icon from \"react-feather\";\r\n\r\nconst icons = [\r\n {\r\n icon: ,\r\n name: \"Activity\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Airplay\",\r\n },\r\n {\r\n icon: ,\r\n name: \"AlertCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"AlertOctagon\",\r\n },\r\n {\r\n icon: ,\r\n name: \"AlertTriangle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"AlignCenter\",\r\n },\r\n {\r\n icon: ,\r\n name: \"AlignJustify\",\r\n },\r\n {\r\n icon: ,\r\n name: \"AlignLeft\",\r\n },\r\n {\r\n icon: ,\r\n name: \"AlignRight\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Anchor\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Aperture\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Archive\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowDownCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowDownLeft\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowDownRight\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowDown\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowLeftCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowLeft\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowRightCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowRight\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowUpCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowUpLeft\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowUpRight\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ArrowUp\",\r\n },\r\n {\r\n icon: ,\r\n name: \"AtSign\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Award\",\r\n },\r\n {\r\n icon: ,\r\n name: \"BarChart2\",\r\n },\r\n {\r\n icon: ,\r\n name: \"BarChart\",\r\n },\r\n {\r\n icon: ,\r\n name: \"BatteryCharging\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Battery\",\r\n },\r\n {\r\n icon: ,\r\n name: \"BellOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Bell\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Bluetooth\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Bold\",\r\n },\r\n {\r\n icon: ,\r\n name: \"BookOpen\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Book\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Bookmark\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Box\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Briefcase\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Calendar\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CameraOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Camera\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Cast\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CheckCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CheckSquare\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Check\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ChevronDown\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ChevronLeft\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ChevronRight\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ChevronUp\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ChevronsDown\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ChevronsLeft\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ChevronsRight\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ChevronsUp\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Chrome\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Circle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Clipboard\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Clock\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CloudDrizzle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CloudLightning\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CloudOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CloudRain\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CloudSnow\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Cloud\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Code\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Codepen\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Coffee\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Command\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Compass\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Copy\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CornerDownLeft\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CornerDownRight\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CornerLeftDown\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CornerLeftUp\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CornerRightDown\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CornerRightUp\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CornerUpLeft\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CornerUpRight\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Cpu\",\r\n },\r\n {\r\n icon: ,\r\n name: \"CreditCard\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Crop\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Crosshair\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Database\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Delete\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Disc\",\r\n },\r\n {\r\n icon: ,\r\n name: \"DollarSign\",\r\n },\r\n {\r\n icon: ,\r\n name: \"DownloadCloud\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Download\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Droplet\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Edit2\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Edit3\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Edit\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ExternalLink\",\r\n },\r\n {\r\n icon: ,\r\n name: \"EyeOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Eye\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Facebook\",\r\n },\r\n {\r\n icon: ,\r\n name: \"FastForward\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Feather\",\r\n },\r\n {\r\n icon: ,\r\n name: \"FileMinus\",\r\n },\r\n {\r\n icon: ,\r\n name: \"FilePlus\",\r\n },\r\n {\r\n icon: ,\r\n name: \"FileText\",\r\n },\r\n {\r\n icon: ,\r\n name: \"File\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Film\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Filter\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Flag\",\r\n },\r\n {\r\n icon: ,\r\n name: \"FolderMinus\",\r\n },\r\n {\r\n icon: ,\r\n name: \"FolderPlus\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Folder\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Frown\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Gift\",\r\n },\r\n {\r\n icon: ,\r\n name: \"GitBranch\",\r\n },\r\n {\r\n icon: ,\r\n name: \"GitCommit\",\r\n },\r\n {\r\n icon: ,\r\n name: \"GitMerge\",\r\n },\r\n {\r\n icon: ,\r\n name: \"GitPullRequest\",\r\n },\r\n {\r\n icon: ,\r\n name: \"GitHub\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Gitlab\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Globe\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Grid\",\r\n },\r\n {\r\n icon: ,\r\n name: \"HardDrive\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Hash\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Headphones\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Heart\",\r\n },\r\n {\r\n icon: ,\r\n name: \"HelpCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Home\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Image\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Inbox\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Info\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Instagram\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Italic\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Key\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Layers\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Layout\",\r\n },\r\n {\r\n icon: ,\r\n name: \"LifeBuoy\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Link2\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Link\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Linkedin\",\r\n },\r\n {\r\n icon: ,\r\n name: \"List\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Loader\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Lock\",\r\n },\r\n {\r\n icon: ,\r\n name: \"LogIn\",\r\n },\r\n {\r\n icon: ,\r\n name: \"LogOut\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Mail\",\r\n },\r\n {\r\n icon: ,\r\n name: \"MapPin\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Map\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Maximize2\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Maximize\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Meh\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Menu\",\r\n },\r\n {\r\n icon: ,\r\n name: \"MessageCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"MessageSquare\",\r\n },\r\n {\r\n icon: ,\r\n name: \"MicOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Mic\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Minimize2\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Minimize\",\r\n },\r\n {\r\n icon: ,\r\n name: \"MinusCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"MinusSquare\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Minus\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Monitor\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Moon\",\r\n },\r\n {\r\n icon: ,\r\n name: \"MoreHorizontal\",\r\n },\r\n {\r\n icon: ,\r\n name: \"MoreVertical\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Move\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Music\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Navigation2\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Navigation\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Octagon\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Package\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Paperclip\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PauseCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Pause\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Percent\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PhoneCall\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PhoneForwarded\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PhoneIncoming\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PhoneMissed\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PhoneOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PhoneOutgoing\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Phone\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PieChart\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PlayCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Play\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PlusCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"PlusSquare\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Plus\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Pocket\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Power\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Printer\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Radio\",\r\n },\r\n {\r\n icon: ,\r\n name: \"RefreshCcw\",\r\n },\r\n {\r\n icon: ,\r\n name: \"RefreshCw\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Repeat\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Rewind\",\r\n },\r\n {\r\n icon: ,\r\n name: \"RotateCcw\",\r\n },\r\n {\r\n icon: ,\r\n name: \"RotateCw\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Rss\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Save\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Scissors\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Search\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Send\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Server\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Settings\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Share2\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Share\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ShieldOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Shield\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ShoppingBag\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ShoppingCart\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Shuffle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Sidebar\",\r\n },\r\n {\r\n icon: ,\r\n name: \"SkipBack\",\r\n },\r\n {\r\n icon: ,\r\n name: \"SkipForward\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Slack\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Slash\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Sliders\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Smartphone\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Smile\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Speaker\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Square\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Star\",\r\n },\r\n {\r\n icon: ,\r\n name: \"StopCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Sun\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Sunrise\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Sunset\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Tablet\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Tag\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Target\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Terminal\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Thermometer\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ThumbsDown\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ThumbsUp\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ToggleLeft\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ToggleRight\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Trash2\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Trash\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Trello\",\r\n },\r\n {\r\n icon: ,\r\n name: \"TrendingDown\",\r\n },\r\n {\r\n icon: ,\r\n name: \"TrendingUp\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Triangle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Truck\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Tv\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Twitter\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Type\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Umbrella\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Underline\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Unlock\",\r\n },\r\n {\r\n icon: ,\r\n name: \"UploadCloud\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Upload\",\r\n },\r\n {\r\n icon: ,\r\n name: \"UserCheck\",\r\n },\r\n {\r\n icon: ,\r\n name: \"UserMinus\",\r\n },\r\n {\r\n icon: ,\r\n name: \"UserPlus\",\r\n },\r\n {\r\n icon: ,\r\n name: \"UserX\",\r\n },\r\n {\r\n icon: ,\r\n name: \"User\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Users\",\r\n },\r\n {\r\n icon: ,\r\n name: \"VideoOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Video\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Voicemail\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Volume1\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Volume2\",\r\n },\r\n {\r\n icon: ,\r\n name: \"VolumeX\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Volume\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Watch\",\r\n },\r\n {\r\n icon: ,\r\n name: \"WifiOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Wifi\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Wind\",\r\n },\r\n {\r\n icon: ,\r\n name: \"XCircle\",\r\n },\r\n {\r\n icon: ,\r\n name: \"XSquare\",\r\n },\r\n {\r\n icon: ,\r\n name: \"X\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Youtube\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ZapOff\",\r\n },\r\n {\r\n icon: ,\r\n name: \"Zap\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ZoomIn\",\r\n },\r\n {\r\n icon: ,\r\n name: \"ZoomOut\",\r\n },\r\n];\r\n\r\ninterface FeatherIconType {\r\n icon: {\r\n icon: JSX.Element;\r\n name: string;\r\n };\r\n}\r\n\r\nconst FeatherIcon = ({ icon }: FeatherIconType) => (\r\n \r\n
\r\n {React.cloneElement(icon.icon, {\r\n className: \"feather align-middle me-2\",\r\n })}\r\n {icon.name}\r\n
\r\n \r\n);\r\n\r\nconst FeatherIcons = () => (\r\n \r\n \r\n \r\n

Feather

\r\n\r\n \r\n \r\n Feather Icons\r\n
\r\n Simply beautiful open source icons\r\n
\r\n
\r\n \r\n \r\n {icons.map((icon, iconKey) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default FeatherIcons;\r\n","import {\r\n faAd,\r\n faAddressBook,\r\n faAddressCard,\r\n faAdjust,\r\n faAirFreshener,\r\n faAlignCenter,\r\n faAlignJustify,\r\n faAlignLeft,\r\n faAlignRight,\r\n faAllergies,\r\n faAmbulance,\r\n faAmericanSignLanguageInterpreting,\r\n faAnchor,\r\n faAngleDoubleDown,\r\n faAngleDoubleLeft,\r\n faAngleDoubleRight,\r\n faAngleDoubleUp,\r\n faAngleDown,\r\n faAngleLeft,\r\n faAngleRight,\r\n faAngleUp,\r\n faAngry,\r\n faAnkh,\r\n faAppleAlt,\r\n faArchive,\r\n faArchway,\r\n faArrowAltCircleDown,\r\n faArrowAltCircleLeft,\r\n faArrowAltCircleRight,\r\n faArrowAltCircleUp,\r\n faArrowCircleDown,\r\n faArrowCircleLeft,\r\n faArrowCircleRight,\r\n faArrowCircleUp,\r\n faArrowDown,\r\n faArrowLeft,\r\n faArrowRight,\r\n faArrowUp,\r\n faArrowsAlt,\r\n faArrowsAltH,\r\n faArrowsAltV,\r\n faAssistiveListeningSystems,\r\n faAsterisk,\r\n faAt,\r\n faAtlas,\r\n faAtom,\r\n faAudioDescription,\r\n faAward,\r\n faBaby,\r\n faBabyCarriage,\r\n faBackspace,\r\n faBackward,\r\n faBacon,\r\n faBalanceScale,\r\n faBan,\r\n faBandAid,\r\n faBarcode,\r\n faBars,\r\n faBaseballBall,\r\n faBasketballBall,\r\n faBath,\r\n faBatteryEmpty,\r\n faBatteryFull,\r\n faBatteryHalf,\r\n faBatteryQuarter,\r\n faBatteryThreeQuarters,\r\n faBed,\r\n faBeer,\r\n faBell,\r\n faBellSlash,\r\n faBezierCurve,\r\n faBible,\r\n faBicycle,\r\n faBinoculars,\r\n faBiohazard,\r\n faBirthdayCake,\r\n faBlender,\r\n faBlenderPhone,\r\n faBlind,\r\n faBlog,\r\n faBold,\r\n faBolt,\r\n faBomb,\r\n faBone,\r\n faBong,\r\n faBook,\r\n faBookDead,\r\n faBookMedical,\r\n faBookOpen,\r\n faBookReader,\r\n faBookmark,\r\n faBowlingBall,\r\n faBox,\r\n faBoxOpen,\r\n faBoxes,\r\n faBraille,\r\n faBrain,\r\n faBreadSlice,\r\n faBriefcase,\r\n faBriefcaseMedical,\r\n faBroadcastTower,\r\n faBroom,\r\n faBrush,\r\n faBug,\r\n faBuilding,\r\n faBullhorn,\r\n faBullseye,\r\n faBurn,\r\n faBus,\r\n faBusAlt,\r\n faBusinessTime,\r\n faCalculator,\r\n faCalendar,\r\n faCalendarAlt,\r\n faCalendarCheck,\r\n faCalendarDay,\r\n faCalendarMinus,\r\n faCalendarPlus,\r\n faCalendarTimes,\r\n faCalendarWeek,\r\n faCamera,\r\n faCameraRetro,\r\n faCampground,\r\n faCandyCane,\r\n faCannabis,\r\n faCapsules,\r\n faCar,\r\n faCarAlt,\r\n faCarBattery,\r\n faCarCrash,\r\n faCarSide,\r\n faCaretDown,\r\n faCaretLeft,\r\n faCaretRight,\r\n faCaretSquareDown,\r\n faCaretSquareLeft,\r\n faCaretSquareRight,\r\n faCaretSquareUp,\r\n faCaretUp,\r\n faCarrot,\r\n faCartArrowDown,\r\n faCartPlus,\r\n faCashRegister,\r\n faCat,\r\n faCertificate,\r\n faChair,\r\n faChalkboard,\r\n faChalkboardTeacher,\r\n faChargingStation,\r\n faChartArea,\r\n faChartBar,\r\n faChartLine,\r\n faChartPie,\r\n faCheck,\r\n faCheckCircle,\r\n faCheckDouble,\r\n faCheckSquare,\r\n faCheese,\r\n faChess,\r\n faChessBishop,\r\n faChessBoard,\r\n faChessKing,\r\n faChessKnight,\r\n faChessPawn,\r\n faChessQueen,\r\n faChessRook,\r\n faChevronCircleDown,\r\n faChevronCircleLeft,\r\n faChevronCircleRight,\r\n faChevronCircleUp,\r\n faChevronDown,\r\n faChevronLeft,\r\n faChevronRight,\r\n faChevronUp,\r\n faChild,\r\n faChurch,\r\n faCircle,\r\n faCircleNotch,\r\n faCity,\r\n faClinicMedical,\r\n faClipboard,\r\n faClipboardCheck,\r\n faClipboardList,\r\n faClock,\r\n faClone,\r\n faClosedCaptioning,\r\n faCloud,\r\n faCloudDownloadAlt,\r\n faCloudMeatball,\r\n faCloudMoon,\r\n faCloudMoonRain,\r\n faCloudRain,\r\n faCloudShowersHeavy,\r\n faCloudSun,\r\n faCloudSunRain,\r\n faCloudUploadAlt,\r\n faCocktail,\r\n faCode,\r\n faCodeBranch,\r\n faCoffee,\r\n faCog,\r\n faCogs,\r\n faCoins,\r\n faColumns,\r\n faComment,\r\n faCommentAlt,\r\n faCommentDollar,\r\n faCommentDots,\r\n faCommentMedical,\r\n faCommentSlash,\r\n faComments,\r\n faCommentsDollar,\r\n faCompactDisc,\r\n faCompass,\r\n faCompress,\r\n faCompressArrowsAlt,\r\n faConciergeBell,\r\n faCookie,\r\n faCookieBite,\r\n faCopy,\r\n faCopyright,\r\n faCouch,\r\n faCreditCard,\r\n faCrop,\r\n faCropAlt,\r\n faCross,\r\n faCrosshairs,\r\n faCrow,\r\n faCrown,\r\n faCrutch,\r\n faCube,\r\n faCubes,\r\n faCut,\r\n faDatabase,\r\n faDeaf,\r\n faDemocrat,\r\n faDesktop,\r\n faDharmachakra,\r\n faDiagnoses,\r\n faDice,\r\n faDiceD20,\r\n faDiceD6,\r\n faDiceFive,\r\n faDiceFour,\r\n faDiceOne,\r\n faDiceSix,\r\n faDiceThree,\r\n faDiceTwo,\r\n faDigitalTachograph,\r\n faDirections,\r\n faDivide,\r\n faDizzy,\r\n faDna,\r\n faDog,\r\n faDollarSign,\r\n faDolly,\r\n faDollyFlatbed,\r\n faDonate,\r\n faDoorClosed,\r\n faDoorOpen,\r\n faDotCircle,\r\n faDove,\r\n faDownload,\r\n faDraftingCompass,\r\n faDragon,\r\n faDrawPolygon,\r\n faDrum,\r\n faDrumSteelpan,\r\n faDrumstickBite,\r\n faDumbbell,\r\n faDumpster,\r\n faDumpsterFire,\r\n faDungeon,\r\n faEdit,\r\n faEgg,\r\n faEject,\r\n faEllipsisH,\r\n faEllipsisV,\r\n faEnvelope,\r\n faEnvelopeOpen,\r\n faEnvelopeOpenText,\r\n faEnvelopeSquare,\r\n faEquals,\r\n faEraser,\r\n faEthernet,\r\n faEuroSign,\r\n faExchangeAlt,\r\n faExclamation,\r\n faExclamationCircle,\r\n faExclamationTriangle,\r\n faExpand,\r\n faExpandArrowsAlt,\r\n faExternalLinkAlt,\r\n faExternalLinkSquareAlt,\r\n faEye,\r\n faEyeDropper,\r\n faEyeSlash,\r\n faFastBackward,\r\n faFastForward,\r\n faFax,\r\n faFeather,\r\n faFeatherAlt,\r\n faFemale,\r\n faFighterJet,\r\n faFile,\r\n faFileAlt,\r\n faFileArchive,\r\n faFileAudio,\r\n faFileCode,\r\n faFileContract,\r\n faFileCsv,\r\n faFileDownload,\r\n faFileExcel,\r\n faFileExport,\r\n faFileImage,\r\n faFileImport,\r\n faFileInvoice,\r\n faFileInvoiceDollar,\r\n faFileMedical,\r\n faFileMedicalAlt,\r\n faFilePdf,\r\n faFilePowerpoint,\r\n faFilePrescription,\r\n faFileSignature,\r\n faFileUpload,\r\n faFileVideo,\r\n faFileWord,\r\n faFill,\r\n faFillDrip,\r\n faFilm,\r\n faFilter,\r\n faFingerprint,\r\n faFire,\r\n faFireAlt,\r\n faFireExtinguisher,\r\n faFirstAid,\r\n faFish,\r\n faFistRaised,\r\n faFlag,\r\n faFlagCheckered,\r\n faFlagUsa,\r\n faFlask,\r\n faFlushed,\r\n faFolder,\r\n faFolderMinus,\r\n faFolderOpen,\r\n faFolderPlus,\r\n faFont,\r\n faFontAwesomeLogoFull,\r\n faFootballBall,\r\n faForward,\r\n faFrog,\r\n faFrown,\r\n faFrownOpen,\r\n faFunnelDollar,\r\n faFutbol,\r\n faGamepad,\r\n faGasPump,\r\n faGavel,\r\n faGem,\r\n faGenderless,\r\n faGhost,\r\n faGift,\r\n faGifts,\r\n faGlassCheers,\r\n faGlassMartini,\r\n faGlassMartiniAlt,\r\n faGlassWhiskey,\r\n faGlasses,\r\n faGlobe,\r\n faGlobeAfrica,\r\n faGlobeAmericas,\r\n faGlobeAsia,\r\n faGlobeEurope,\r\n faGolfBall,\r\n faGopuram,\r\n faGraduationCap,\r\n faGreaterThan,\r\n faGreaterThanEqual,\r\n faGrimace,\r\n faGrin,\r\n faGrinAlt,\r\n faGrinBeam,\r\n faGrinBeamSweat,\r\n faGrinHearts,\r\n faGrinSquint,\r\n faGrinSquintTears,\r\n faGrinStars,\r\n faGrinTears,\r\n faGrinTongue,\r\n faGrinTongueSquint,\r\n faGrinTongueWink,\r\n faGrinWink,\r\n faGripHorizontal,\r\n faGripLines,\r\n faGripLinesVertical,\r\n faGripVertical,\r\n faGuitar,\r\n faHSquare,\r\n faHamburger,\r\n faHammer,\r\n faHamsa,\r\n faHandHolding,\r\n faHandHoldingHeart,\r\n faHandHoldingUsd,\r\n faHandLizard,\r\n faHandMiddleFinger,\r\n faHandPaper,\r\n faHandPeace,\r\n faHandPointDown,\r\n faHandPointLeft,\r\n faHandPointRight,\r\n faHandPointUp,\r\n faHandPointer,\r\n faHandRock,\r\n faHandScissors,\r\n faHandSpock,\r\n faHands,\r\n faHandsHelping,\r\n faHandshake,\r\n faHanukiah,\r\n faHardHat,\r\n faHashtag,\r\n faHatWizard,\r\n faHdd,\r\n faHeading,\r\n faHeadphones,\r\n faHeadphonesAlt,\r\n faHeadset,\r\n faHeart,\r\n faHeartBroken,\r\n faHeartbeat,\r\n faHelicopter,\r\n faHighlighter,\r\n faHiking,\r\n faHippo,\r\n faHistory,\r\n faHockeyPuck,\r\n faHollyBerry,\r\n faHome,\r\n faHorse,\r\n faHorseHead,\r\n faHospital,\r\n faHospitalAlt,\r\n faHospitalSymbol,\r\n faHotTub,\r\n faHotdog,\r\n faHotel,\r\n faHourglass,\r\n faHourglassEnd,\r\n faHourglassHalf,\r\n faHourglassStart,\r\n faHouseDamage,\r\n faHryvnia,\r\n faICursor,\r\n faIceCream,\r\n faIcicles,\r\n faIdBadge,\r\n faIdCard,\r\n faIdCardAlt,\r\n faIgloo,\r\n faImage,\r\n faImages,\r\n faInbox,\r\n faIndent,\r\n faIndustry,\r\n faInfinity,\r\n faInfo,\r\n faInfoCircle,\r\n faItalic,\r\n faJedi,\r\n faJoint,\r\n faJournalWhills,\r\n faKaaba,\r\n faKey,\r\n faKeyboard,\r\n faKhanda,\r\n faKiss,\r\n faKissBeam,\r\n faKissWinkHeart,\r\n faKiwiBird,\r\n faLandmark,\r\n faLanguage,\r\n faLaptop,\r\n faLaptopCode,\r\n faLaptopMedical,\r\n faLaugh,\r\n faLaughBeam,\r\n faLaughSquint,\r\n faLaughWink,\r\n faLayerGroup,\r\n faLeaf,\r\n faLemon,\r\n faLessThan,\r\n faLessThanEqual,\r\n faLevelDownAlt,\r\n faLevelUpAlt,\r\n faLifeRing,\r\n faLightbulb,\r\n faLink,\r\n faLiraSign,\r\n faList,\r\n faListAlt,\r\n faListOl,\r\n faListUl,\r\n faLocationArrow,\r\n faLock,\r\n faLockOpen,\r\n faLongArrowAltDown,\r\n faLongArrowAltLeft,\r\n faLongArrowAltRight,\r\n faLongArrowAltUp,\r\n faLowVision,\r\n faLuggageCart,\r\n faMagic,\r\n faMagnet,\r\n faMailBulk,\r\n faMale,\r\n faMap,\r\n faMapMarked,\r\n faMapMarkedAlt,\r\n faMapMarker,\r\n faMapMarkerAlt,\r\n faMapPin,\r\n faMapSigns,\r\n faMarker,\r\n faMars,\r\n faMarsDouble,\r\n faMarsStroke,\r\n faMarsStrokeH,\r\n faMarsStrokeV,\r\n faMask,\r\n faMedal,\r\n faMedkit,\r\n faMeh,\r\n faMehBlank,\r\n faMehRollingEyes,\r\n faMemory,\r\n faMenorah,\r\n faMercury,\r\n faMeteor,\r\n faMicrochip,\r\n faMicrophone,\r\n faMicrophoneAlt,\r\n faMicrophoneAltSlash,\r\n faMicrophoneSlash,\r\n faMicroscope,\r\n faMinus,\r\n faMinusCircle,\r\n faMinusSquare,\r\n faMitten,\r\n faMobile,\r\n faMobileAlt,\r\n faMoneyBill,\r\n faMoneyBillAlt,\r\n faMoneyBillWave,\r\n faMoneyBillWaveAlt,\r\n faMoneyCheck,\r\n faMoneyCheckAlt,\r\n faMonument,\r\n faMoon,\r\n faMortarPestle,\r\n faMosque,\r\n faMotorcycle,\r\n faMountain,\r\n faMousePointer,\r\n faMugHot,\r\n faMusic,\r\n faNetworkWired,\r\n faNeuter,\r\n faNewspaper,\r\n faNotEqual,\r\n faNotesMedical,\r\n faObjectGroup,\r\n faObjectUngroup,\r\n faOilCan,\r\n faOm,\r\n faOtter,\r\n faOutdent,\r\n faPager,\r\n faPaintBrush,\r\n faPaintRoller,\r\n faPalette,\r\n faPallet,\r\n faPaperPlane,\r\n faPaperclip,\r\n faParachuteBox,\r\n faParagraph,\r\n faParking,\r\n faPassport,\r\n faPastafarianism,\r\n faPaste,\r\n faPause,\r\n faPauseCircle,\r\n faPaw,\r\n faPeace,\r\n faPen,\r\n faPenAlt,\r\n faPenFancy,\r\n faPenNib,\r\n faPenSquare,\r\n faPencilAlt,\r\n faPencilRuler,\r\n faPeopleCarry,\r\n faPepperHot,\r\n faPercent,\r\n faPercentage,\r\n faPersonBooth,\r\n faPhone,\r\n faPhoneSlash,\r\n faPhoneSquare,\r\n faPhoneVolume,\r\n faPiggyBank,\r\n faPills,\r\n faPizzaSlice,\r\n faPlaceOfWorship,\r\n faPlane,\r\n faPlaneArrival,\r\n faPlaneDeparture,\r\n faPlay,\r\n faPlayCircle,\r\n faPlug,\r\n faPlus,\r\n faPlusCircle,\r\n faPlusSquare,\r\n faPodcast,\r\n faPoll,\r\n faPollH,\r\n faPoo,\r\n faPooStorm,\r\n faPoop,\r\n faPortrait,\r\n faPoundSign,\r\n faPowerOff,\r\n faPray,\r\n faPrayingHands,\r\n faPrescription,\r\n faPrescriptionBottle,\r\n faPrescriptionBottleAlt,\r\n faPrint,\r\n faProcedures,\r\n faProjectDiagram,\r\n faPuzzlePiece,\r\n faQrcode,\r\n faQuestion,\r\n faQuestionCircle,\r\n faQuidditch,\r\n faQuoteLeft,\r\n faQuoteRight,\r\n faQuran,\r\n faRadiation,\r\n faRadiationAlt,\r\n faRainbow,\r\n faRandom,\r\n faReceipt,\r\n faRecycle,\r\n faRedo,\r\n faRedoAlt,\r\n faRegistered,\r\n faReply,\r\n faReplyAll,\r\n faRepublican,\r\n faRestroom,\r\n faRetweet,\r\n faRibbon,\r\n faRing,\r\n faRoad,\r\n faRobot,\r\n faRocket,\r\n faRoute,\r\n faRss,\r\n faRssSquare,\r\n faRubleSign,\r\n faRuler,\r\n faRulerCombined,\r\n faRulerHorizontal,\r\n faRulerVertical,\r\n faRunning,\r\n faRupeeSign,\r\n faSadCry,\r\n faSadTear,\r\n faSatellite,\r\n faSatelliteDish,\r\n faSave,\r\n faSchool,\r\n faScrewdriver,\r\n faScroll,\r\n faSdCard,\r\n faSearch,\r\n faSearchDollar,\r\n faSearchLocation,\r\n faSearchMinus,\r\n faSearchPlus,\r\n faSeedling,\r\n faServer,\r\n faShapes,\r\n faShare,\r\n faShareAlt,\r\n faShareAltSquare,\r\n faShareSquare,\r\n faShekelSign,\r\n faShieldAlt,\r\n faShip,\r\n faShippingFast,\r\n faShoePrints,\r\n faShoppingBag,\r\n faShoppingBasket,\r\n faShoppingCart,\r\n faShower,\r\n faShuttleVan,\r\n faSign,\r\n faSignInAlt,\r\n faSignLanguage,\r\n faSignOutAlt,\r\n faSignal,\r\n faSignature,\r\n faSimCard,\r\n faSitemap,\r\n faSkating,\r\n faSkiing,\r\n faSkiingNordic,\r\n faSkull,\r\n faSkullCrossbones,\r\n faSlash,\r\n faSleigh,\r\n faSlidersH,\r\n faSmile,\r\n faSmileBeam,\r\n faSmileWink,\r\n faSmog,\r\n faSmoking,\r\n faSmokingBan,\r\n faSms,\r\n faSnowboarding,\r\n faSnowflake,\r\n faSnowman,\r\n faSnowplow,\r\n faSocks,\r\n faSolarPanel,\r\n faSort,\r\n faSortAlphaDown,\r\n faSortAlphaUp,\r\n faSortAmountDown,\r\n faSortAmountUp,\r\n faSortDown,\r\n faSortNumericDown,\r\n faSortNumericUp,\r\n faSortUp,\r\n faSpa,\r\n faSpaceShuttle,\r\n faSpider,\r\n faSpinner,\r\n faSplotch,\r\n faSprayCan,\r\n faSquare,\r\n faSquareFull,\r\n faSquareRootAlt,\r\n faStamp,\r\n faStar,\r\n faStarAndCrescent,\r\n faStarHalf,\r\n faStarHalfAlt,\r\n faStarOfDavid,\r\n faStarOfLife,\r\n faStepBackward,\r\n faStepForward,\r\n faStethoscope,\r\n faStickyNote,\r\n faStop,\r\n faStopCircle,\r\n faStopwatch,\r\n faStore,\r\n faStoreAlt,\r\n faStream,\r\n faStreetView,\r\n faStrikethrough,\r\n faStroopwafel,\r\n faSubscript,\r\n faSubway,\r\n faSuitcase,\r\n faSuitcaseRolling,\r\n faSun,\r\n faSuperscript,\r\n faSurprise,\r\n faSwatchbook,\r\n faSwimmer,\r\n faSwimmingPool,\r\n faSynagogue,\r\n faSync,\r\n faSyncAlt,\r\n faSyringe,\r\n faTable,\r\n faTableTennis,\r\n faTablet,\r\n faTabletAlt,\r\n faTablets,\r\n faTachometerAlt,\r\n faTag,\r\n faTags,\r\n faTape,\r\n faTasks,\r\n faTaxi,\r\n faTeeth,\r\n faTeethOpen,\r\n faTemperatureHigh,\r\n faTemperatureLow,\r\n faTenge,\r\n faTerminal,\r\n faTextHeight,\r\n faTextWidth,\r\n faTh,\r\n faThLarge,\r\n faThList,\r\n faTheaterMasks,\r\n faThermometer,\r\n faThermometerEmpty,\r\n faThermometerFull,\r\n faThermometerHalf,\r\n faThermometerQuarter,\r\n faThermometerThreeQuarters,\r\n faThumbsDown,\r\n faThumbsUp,\r\n faThumbtack,\r\n faTicketAlt,\r\n faTimes,\r\n faTimesCircle,\r\n faTint,\r\n faTintSlash,\r\n faTired,\r\n faToggleOff,\r\n faToggleOn,\r\n faToilet,\r\n faToiletPaper,\r\n faToolbox,\r\n faTools,\r\n faTooth,\r\n faTorah,\r\n faToriiGate,\r\n faTractor,\r\n faTrademark,\r\n faTrafficLight,\r\n faTrain,\r\n faTram,\r\n faTransgender,\r\n faTransgenderAlt,\r\n faTrash,\r\n faTrashAlt,\r\n faTrashRestore,\r\n faTrashRestoreAlt,\r\n faTree,\r\n faTrophy,\r\n faTruck,\r\n faTruckLoading,\r\n faTruckMonster,\r\n faTruckMoving,\r\n faTruckPickup,\r\n faTshirt,\r\n faTty,\r\n faTv,\r\n faUmbrella,\r\n faUmbrellaBeach,\r\n faUnderline,\r\n faUndo,\r\n faUndoAlt,\r\n faUniversalAccess,\r\n faUniversity,\r\n faUnlink,\r\n faUnlock,\r\n faUnlockAlt,\r\n faUpload,\r\n faUser,\r\n faUserAlt,\r\n faUserAltSlash,\r\n faUserAstronaut,\r\n faUserCheck,\r\n faUserCircle,\r\n faUserClock,\r\n faUserCog,\r\n faUserEdit,\r\n faUserFriends,\r\n faUserGraduate,\r\n faUserInjured,\r\n faUserLock,\r\n faUserMd,\r\n faUserMinus,\r\n faUserNinja,\r\n faUserNurse,\r\n faUserPlus,\r\n faUserSecret,\r\n faUserShield,\r\n faUserSlash,\r\n faUserTag,\r\n faUserTie,\r\n faUserTimes,\r\n faUsers,\r\n faUsersCog,\r\n faUtensilSpoon,\r\n faUtensils,\r\n faVectorSquare,\r\n faVenus,\r\n faVenusDouble,\r\n faVenusMars,\r\n faVial,\r\n faVials,\r\n faVideo,\r\n faVideoSlash,\r\n faVihara,\r\n faVolleyballBall,\r\n faVolumeDown,\r\n faVolumeMute,\r\n faVolumeOff,\r\n faVolumeUp,\r\n faVoteYea,\r\n faVrCardboard,\r\n faWalking,\r\n faWallet,\r\n faWarehouse,\r\n faWater,\r\n faWeight,\r\n faWeightHanging,\r\n faWheelchair,\r\n faWifi,\r\n faWind,\r\n faWindowClose,\r\n faWindowMaximize,\r\n faWindowMinimize,\r\n faWindowRestore,\r\n faWineBottle,\r\n faWineGlass,\r\n faWineGlassAlt,\r\n faWonSign,\r\n faWrench,\r\n faXRay,\r\n faYenSign,\r\n faYinYang,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nconst icons = [\r\n {\r\n icon: faAd,\r\n name: \"faAd\",\r\n },\r\n {\r\n icon: faAddressBook,\r\n name: \"faAddressBook\",\r\n },\r\n {\r\n icon: faAddressCard,\r\n name: \"faAddressCard\",\r\n },\r\n {\r\n icon: faAdjust,\r\n name: \"faAdjust\",\r\n },\r\n {\r\n icon: faAirFreshener,\r\n name: \"faAirFreshener\",\r\n },\r\n {\r\n icon: faAlignCenter,\r\n name: \"faAlignCenter\",\r\n },\r\n {\r\n icon: faAlignJustify,\r\n name: \"faAlignJustify\",\r\n },\r\n {\r\n icon: faAlignLeft,\r\n name: \"faAlignLeft\",\r\n },\r\n {\r\n icon: faAlignRight,\r\n name: \"faAlignRight\",\r\n },\r\n {\r\n icon: faAllergies,\r\n name: \"faAllergies\",\r\n },\r\n {\r\n icon: faAmbulance,\r\n name: \"faAmbulance\",\r\n },\r\n {\r\n icon: faAmericanSignLanguageInterpreting,\r\n name: \"faAmericanSignLanguageInterpreting\",\r\n },\r\n {\r\n icon: faAnchor,\r\n name: \"faAnchor\",\r\n },\r\n {\r\n icon: faAngleDoubleDown,\r\n name: \"faAngleDoubleDown\",\r\n },\r\n {\r\n icon: faAngleDoubleLeft,\r\n name: \"faAngleDoubleLeft\",\r\n },\r\n {\r\n icon: faAngleDoubleRight,\r\n name: \"faAngleDoubleRight\",\r\n },\r\n {\r\n icon: faAngleDoubleUp,\r\n name: \"faAngleDoubleUp\",\r\n },\r\n {\r\n icon: faAngleDown,\r\n name: \"faAngleDown\",\r\n },\r\n {\r\n icon: faAngleLeft,\r\n name: \"faAngleLeft\",\r\n },\r\n {\r\n icon: faAngleRight,\r\n name: \"faAngleRight\",\r\n },\r\n {\r\n icon: faAngleUp,\r\n name: \"faAngleUp\",\r\n },\r\n {\r\n icon: faAngry,\r\n name: \"faAngry\",\r\n },\r\n {\r\n icon: faAnkh,\r\n name: \"faAnkh\",\r\n },\r\n {\r\n icon: faAppleAlt,\r\n name: \"faAppleAlt\",\r\n },\r\n {\r\n icon: faArchive,\r\n name: \"faArchive\",\r\n },\r\n {\r\n icon: faArchway,\r\n name: \"faArchway\",\r\n },\r\n {\r\n icon: faArrowAltCircleDown,\r\n name: \"faArrowAltCircleDown\",\r\n },\r\n {\r\n icon: faArrowAltCircleLeft,\r\n name: \"faArrowAltCircleLeft\",\r\n },\r\n {\r\n icon: faArrowAltCircleRight,\r\n name: \"faArrowAltCircleRight\",\r\n },\r\n {\r\n icon: faArrowAltCircleUp,\r\n name: \"faArrowAltCircleUp\",\r\n },\r\n {\r\n icon: faArrowCircleDown,\r\n name: \"faArrowCircleDown\",\r\n },\r\n {\r\n icon: faArrowCircleLeft,\r\n name: \"faArrowCircleLeft\",\r\n },\r\n {\r\n icon: faArrowCircleRight,\r\n name: \"faArrowCircleRight\",\r\n },\r\n {\r\n icon: faArrowCircleUp,\r\n name: \"faArrowCircleUp\",\r\n },\r\n {\r\n icon: faArrowDown,\r\n name: \"faArrowDown\",\r\n },\r\n {\r\n icon: faArrowLeft,\r\n name: \"faArrowLeft\",\r\n },\r\n {\r\n icon: faArrowRight,\r\n name: \"faArrowRight\",\r\n },\r\n {\r\n icon: faArrowUp,\r\n name: \"faArrowUp\",\r\n },\r\n {\r\n icon: faArrowsAlt,\r\n name: \"faArrowsAlt\",\r\n },\r\n {\r\n icon: faArrowsAltH,\r\n name: \"faArrowsAltH\",\r\n },\r\n {\r\n icon: faArrowsAltV,\r\n name: \"faArrowsAltV\",\r\n },\r\n {\r\n icon: faAssistiveListeningSystems,\r\n name: \"faAssistiveListeningSystems\",\r\n },\r\n {\r\n icon: faAsterisk,\r\n name: \"faAsterisk\",\r\n },\r\n {\r\n icon: faAt,\r\n name: \"faAt\",\r\n },\r\n {\r\n icon: faAtlas,\r\n name: \"faAtlas\",\r\n },\r\n {\r\n icon: faAtom,\r\n name: \"faAtom\",\r\n },\r\n {\r\n icon: faAudioDescription,\r\n name: \"faAudioDescription\",\r\n },\r\n {\r\n icon: faAward,\r\n name: \"faAward\",\r\n },\r\n {\r\n icon: faBaby,\r\n name: \"faBaby\",\r\n },\r\n {\r\n icon: faBabyCarriage,\r\n name: \"faBabyCarriage\",\r\n },\r\n {\r\n icon: faBackspace,\r\n name: \"faBackspace\",\r\n },\r\n {\r\n icon: faBackward,\r\n name: \"faBackward\",\r\n },\r\n {\r\n icon: faBacon,\r\n name: \"faBacon\",\r\n },\r\n {\r\n icon: faBalanceScale,\r\n name: \"faBalanceScale\",\r\n },\r\n {\r\n icon: faBan,\r\n name: \"faBan\",\r\n },\r\n {\r\n icon: faBandAid,\r\n name: \"faBandAid\",\r\n },\r\n {\r\n icon: faBarcode,\r\n name: \"faBarcode\",\r\n },\r\n {\r\n icon: faBars,\r\n name: \"faBars\",\r\n },\r\n {\r\n icon: faBaseballBall,\r\n name: \"faBaseballBall\",\r\n },\r\n {\r\n icon: faBasketballBall,\r\n name: \"faBasketballBall\",\r\n },\r\n {\r\n icon: faBath,\r\n name: \"faBath\",\r\n },\r\n {\r\n icon: faBatteryEmpty,\r\n name: \"faBatteryEmpty\",\r\n },\r\n {\r\n icon: faBatteryFull,\r\n name: \"faBatteryFull\",\r\n },\r\n {\r\n icon: faBatteryHalf,\r\n name: \"faBatteryHalf\",\r\n },\r\n {\r\n icon: faBatteryQuarter,\r\n name: \"faBatteryQuarter\",\r\n },\r\n {\r\n icon: faBatteryThreeQuarters,\r\n name: \"faBatteryThreeQuarters\",\r\n },\r\n {\r\n icon: faBed,\r\n name: \"faBed\",\r\n },\r\n {\r\n icon: faBeer,\r\n name: \"faBeer\",\r\n },\r\n {\r\n icon: faBell,\r\n name: \"faBell\",\r\n },\r\n {\r\n icon: faBellSlash,\r\n name: \"faBellSlash\",\r\n },\r\n {\r\n icon: faBezierCurve,\r\n name: \"faBezierCurve\",\r\n },\r\n {\r\n icon: faBible,\r\n name: \"faBible\",\r\n },\r\n {\r\n icon: faBicycle,\r\n name: \"faBicycle\",\r\n },\r\n {\r\n icon: faBinoculars,\r\n name: \"faBinoculars\",\r\n },\r\n {\r\n icon: faBiohazard,\r\n name: \"faBiohazard\",\r\n },\r\n {\r\n icon: faBirthdayCake,\r\n name: \"faBirthdayCake\",\r\n },\r\n {\r\n icon: faBlender,\r\n name: \"faBlender\",\r\n },\r\n {\r\n icon: faBlenderPhone,\r\n name: \"faBlenderPhone\",\r\n },\r\n {\r\n icon: faBlind,\r\n name: \"faBlind\",\r\n },\r\n {\r\n icon: faBlog,\r\n name: \"faBlog\",\r\n },\r\n {\r\n icon: faBold,\r\n name: \"faBold\",\r\n },\r\n {\r\n icon: faBolt,\r\n name: \"faBolt\",\r\n },\r\n {\r\n icon: faBomb,\r\n name: \"faBomb\",\r\n },\r\n {\r\n icon: faBone,\r\n name: \"faBone\",\r\n },\r\n {\r\n icon: faBong,\r\n name: \"faBong\",\r\n },\r\n {\r\n icon: faBook,\r\n name: \"faBook\",\r\n },\r\n {\r\n icon: faBookDead,\r\n name: \"faBookDead\",\r\n },\r\n {\r\n icon: faBookMedical,\r\n name: \"faBookMedical\",\r\n },\r\n {\r\n icon: faBookOpen,\r\n name: \"faBookOpen\",\r\n },\r\n {\r\n icon: faBookReader,\r\n name: \"faBookReader\",\r\n },\r\n {\r\n icon: faBookmark,\r\n name: \"faBookmark\",\r\n },\r\n {\r\n icon: faBowlingBall,\r\n name: \"faBowlingBall\",\r\n },\r\n {\r\n icon: faBox,\r\n name: \"faBox\",\r\n },\r\n {\r\n icon: faBoxOpen,\r\n name: \"faBoxOpen\",\r\n },\r\n {\r\n icon: faBoxes,\r\n name: \"faBoxes\",\r\n },\r\n {\r\n icon: faBraille,\r\n name: \"faBraille\",\r\n },\r\n {\r\n icon: faBrain,\r\n name: \"faBrain\",\r\n },\r\n {\r\n icon: faBreadSlice,\r\n name: \"faBreadSlice\",\r\n },\r\n {\r\n icon: faBriefcase,\r\n name: \"faBriefcase\",\r\n },\r\n {\r\n icon: faBriefcaseMedical,\r\n name: \"faBriefcaseMedical\",\r\n },\r\n {\r\n icon: faBroadcastTower,\r\n name: \"faBroadcastTower\",\r\n },\r\n {\r\n icon: faBroom,\r\n name: \"faBroom\",\r\n },\r\n {\r\n icon: faBrush,\r\n name: \"faBrush\",\r\n },\r\n {\r\n icon: faBug,\r\n name: \"faBug\",\r\n },\r\n {\r\n icon: faBuilding,\r\n name: \"faBuilding\",\r\n },\r\n {\r\n icon: faBullhorn,\r\n name: \"faBullhorn\",\r\n },\r\n {\r\n icon: faBullseye,\r\n name: \"faBullseye\",\r\n },\r\n {\r\n icon: faBurn,\r\n name: \"faBurn\",\r\n },\r\n {\r\n icon: faBus,\r\n name: \"faBus\",\r\n },\r\n {\r\n icon: faBusAlt,\r\n name: \"faBusAlt\",\r\n },\r\n {\r\n icon: faBusinessTime,\r\n name: \"faBusinessTime\",\r\n },\r\n {\r\n icon: faCalculator,\r\n name: \"faCalculator\",\r\n },\r\n {\r\n icon: faCalendar,\r\n name: \"faCalendar\",\r\n },\r\n {\r\n icon: faCalendarAlt,\r\n name: \"faCalendarAlt\",\r\n },\r\n {\r\n icon: faCalendarCheck,\r\n name: \"faCalendarCheck\",\r\n },\r\n {\r\n icon: faCalendarDay,\r\n name: \"faCalendarDay\",\r\n },\r\n {\r\n icon: faCalendarMinus,\r\n name: \"faCalendarMinus\",\r\n },\r\n {\r\n icon: faCalendarPlus,\r\n name: \"faCalendarPlus\",\r\n },\r\n {\r\n icon: faCalendarTimes,\r\n name: \"faCalendarTimes\",\r\n },\r\n {\r\n icon: faCalendarWeek,\r\n name: \"faCalendarWeek\",\r\n },\r\n {\r\n icon: faCamera,\r\n name: \"faCamera\",\r\n },\r\n {\r\n icon: faCameraRetro,\r\n name: \"faCameraRetro\",\r\n },\r\n {\r\n icon: faCampground,\r\n name: \"faCampground\",\r\n },\r\n {\r\n icon: faCandyCane,\r\n name: \"faCandyCane\",\r\n },\r\n {\r\n icon: faCannabis,\r\n name: \"faCannabis\",\r\n },\r\n {\r\n icon: faCapsules,\r\n name: \"faCapsules\",\r\n },\r\n {\r\n icon: faCar,\r\n name: \"faCar\",\r\n },\r\n {\r\n icon: faCarAlt,\r\n name: \"faCarAlt\",\r\n },\r\n {\r\n icon: faCarBattery,\r\n name: \"faCarBattery\",\r\n },\r\n {\r\n icon: faCarCrash,\r\n name: \"faCarCrash\",\r\n },\r\n {\r\n icon: faCarSide,\r\n name: \"faCarSide\",\r\n },\r\n {\r\n icon: faCaretDown,\r\n name: \"faCaretDown\",\r\n },\r\n {\r\n icon: faCaretLeft,\r\n name: \"faCaretLeft\",\r\n },\r\n {\r\n icon: faCaretRight,\r\n name: \"faCaretRight\",\r\n },\r\n {\r\n icon: faCaretSquareDown,\r\n name: \"faCaretSquareDown\",\r\n },\r\n {\r\n icon: faCaretSquareLeft,\r\n name: \"faCaretSquareLeft\",\r\n },\r\n {\r\n icon: faCaretSquareRight,\r\n name: \"faCaretSquareRight\",\r\n },\r\n {\r\n icon: faCaretSquareUp,\r\n name: \"faCaretSquareUp\",\r\n },\r\n {\r\n icon: faCaretUp,\r\n name: \"faCaretUp\",\r\n },\r\n {\r\n icon: faCarrot,\r\n name: \"faCarrot\",\r\n },\r\n {\r\n icon: faCartArrowDown,\r\n name: \"faCartArrowDown\",\r\n },\r\n {\r\n icon: faCartPlus,\r\n name: \"faCartPlus\",\r\n },\r\n {\r\n icon: faCashRegister,\r\n name: \"faCashRegister\",\r\n },\r\n {\r\n icon: faCat,\r\n name: \"faCat\",\r\n },\r\n {\r\n icon: faCertificate,\r\n name: \"faCertificate\",\r\n },\r\n {\r\n icon: faChair,\r\n name: \"faChair\",\r\n },\r\n {\r\n icon: faChalkboard,\r\n name: \"faChalkboard\",\r\n },\r\n {\r\n icon: faChalkboardTeacher,\r\n name: \"faChalkboardTeacher\",\r\n },\r\n {\r\n icon: faChargingStation,\r\n name: \"faChargingStation\",\r\n },\r\n {\r\n icon: faChartArea,\r\n name: \"faChartArea\",\r\n },\r\n {\r\n icon: faChartBar,\r\n name: \"faChartBar\",\r\n },\r\n {\r\n icon: faChartLine,\r\n name: \"faChartLine\",\r\n },\r\n {\r\n icon: faChartPie,\r\n name: \"faChartPie\",\r\n },\r\n {\r\n icon: faCheck,\r\n name: \"faCheck\",\r\n },\r\n {\r\n icon: faCheckCircle,\r\n name: \"faCheckCircle\",\r\n },\r\n {\r\n icon: faCheckDouble,\r\n name: \"faCheckDouble\",\r\n },\r\n {\r\n icon: faCheckSquare,\r\n name: \"faCheckSquare\",\r\n },\r\n {\r\n icon: faCheese,\r\n name: \"faCheese\",\r\n },\r\n {\r\n icon: faChess,\r\n name: \"faChess\",\r\n },\r\n {\r\n icon: faChessBishop,\r\n name: \"faChessBishop\",\r\n },\r\n {\r\n icon: faChessBoard,\r\n name: \"faChessBoard\",\r\n },\r\n {\r\n icon: faChessKing,\r\n name: \"faChessKing\",\r\n },\r\n {\r\n icon: faChessKnight,\r\n name: \"faChessKnight\",\r\n },\r\n {\r\n icon: faChessPawn,\r\n name: \"faChessPawn\",\r\n },\r\n {\r\n icon: faChessQueen,\r\n name: \"faChessQueen\",\r\n },\r\n {\r\n icon: faChessRook,\r\n name: \"faChessRook\",\r\n },\r\n {\r\n icon: faChevronCircleDown,\r\n name: \"faChevronCircleDown\",\r\n },\r\n {\r\n icon: faChevronCircleLeft,\r\n name: \"faChevronCircleLeft\",\r\n },\r\n {\r\n icon: faChevronCircleRight,\r\n name: \"faChevronCircleRight\",\r\n },\r\n {\r\n icon: faChevronCircleUp,\r\n name: \"faChevronCircleUp\",\r\n },\r\n {\r\n icon: faChevronDown,\r\n name: \"faChevronDown\",\r\n },\r\n {\r\n icon: faChevronLeft,\r\n name: \"faChevronLeft\",\r\n },\r\n {\r\n icon: faChevronRight,\r\n name: \"faChevronRight\",\r\n },\r\n {\r\n icon: faChevronUp,\r\n name: \"faChevronUp\",\r\n },\r\n {\r\n icon: faChild,\r\n name: \"faChild\",\r\n },\r\n {\r\n icon: faChurch,\r\n name: \"faChurch\",\r\n },\r\n {\r\n icon: faCircle,\r\n name: \"faCircle\",\r\n },\r\n {\r\n icon: faCircleNotch,\r\n name: \"faCircleNotch\",\r\n },\r\n {\r\n icon: faCity,\r\n name: \"faCity\",\r\n },\r\n {\r\n icon: faClinicMedical,\r\n name: \"faClinicMedical\",\r\n },\r\n {\r\n icon: faClipboard,\r\n name: \"faClipboard\",\r\n },\r\n {\r\n icon: faClipboardCheck,\r\n name: \"faClipboardCheck\",\r\n },\r\n {\r\n icon: faClipboardList,\r\n name: \"faClipboardList\",\r\n },\r\n {\r\n icon: faClock,\r\n name: \"faClock\",\r\n },\r\n {\r\n icon: faClone,\r\n name: \"faClone\",\r\n },\r\n {\r\n icon: faClosedCaptioning,\r\n name: \"faClosedCaptioning\",\r\n },\r\n {\r\n icon: faCloud,\r\n name: \"faCloud\",\r\n },\r\n {\r\n icon: faCloudDownloadAlt,\r\n name: \"faCloudDownloadAlt\",\r\n },\r\n {\r\n icon: faCloudMeatball,\r\n name: \"faCloudMeatball\",\r\n },\r\n {\r\n icon: faCloudMoon,\r\n name: \"faCloudMoon\",\r\n },\r\n {\r\n icon: faCloudMoonRain,\r\n name: \"faCloudMoonRain\",\r\n },\r\n {\r\n icon: faCloudRain,\r\n name: \"faCloudRain\",\r\n },\r\n {\r\n icon: faCloudShowersHeavy,\r\n name: \"faCloudShowersHeavy\",\r\n },\r\n {\r\n icon: faCloudSun,\r\n name: \"faCloudSun\",\r\n },\r\n {\r\n icon: faCloudSunRain,\r\n name: \"faCloudSunRain\",\r\n },\r\n {\r\n icon: faCloudUploadAlt,\r\n name: \"faCloudUploadAlt\",\r\n },\r\n {\r\n icon: faCocktail,\r\n name: \"faCocktail\",\r\n },\r\n {\r\n icon: faCode,\r\n name: \"faCode\",\r\n },\r\n {\r\n icon: faCodeBranch,\r\n name: \"faCodeBranch\",\r\n },\r\n {\r\n icon: faCoffee,\r\n name: \"faCoffee\",\r\n },\r\n {\r\n icon: faCog,\r\n name: \"faCog\",\r\n },\r\n {\r\n icon: faCogs,\r\n name: \"faCogs\",\r\n },\r\n {\r\n icon: faCoins,\r\n name: \"faCoins\",\r\n },\r\n {\r\n icon: faColumns,\r\n name: \"faColumns\",\r\n },\r\n {\r\n icon: faComment,\r\n name: \"faComment\",\r\n },\r\n {\r\n icon: faCommentAlt,\r\n name: \"faCommentAlt\",\r\n },\r\n {\r\n icon: faCommentDollar,\r\n name: \"faCommentDollar\",\r\n },\r\n {\r\n icon: faCommentDots,\r\n name: \"faCommentDots\",\r\n },\r\n {\r\n icon: faCommentMedical,\r\n name: \"faCommentMedical\",\r\n },\r\n {\r\n icon: faCommentSlash,\r\n name: \"faCommentSlash\",\r\n },\r\n {\r\n icon: faComments,\r\n name: \"faComments\",\r\n },\r\n {\r\n icon: faCommentsDollar,\r\n name: \"faCommentsDollar\",\r\n },\r\n {\r\n icon: faCompactDisc,\r\n name: \"faCompactDisc\",\r\n },\r\n {\r\n icon: faCompass,\r\n name: \"faCompass\",\r\n },\r\n {\r\n icon: faCompress,\r\n name: \"faCompress\",\r\n },\r\n {\r\n icon: faCompressArrowsAlt,\r\n name: \"faCompressArrowsAlt\",\r\n },\r\n {\r\n icon: faConciergeBell,\r\n name: \"faConciergeBell\",\r\n },\r\n {\r\n icon: faCookie,\r\n name: \"faCookie\",\r\n },\r\n {\r\n icon: faCookieBite,\r\n name: \"faCookieBite\",\r\n },\r\n {\r\n icon: faCopy,\r\n name: \"faCopy\",\r\n },\r\n {\r\n icon: faCopyright,\r\n name: \"faCopyright\",\r\n },\r\n {\r\n icon: faCouch,\r\n name: \"faCouch\",\r\n },\r\n {\r\n icon: faCreditCard,\r\n name: \"faCreditCard\",\r\n },\r\n {\r\n icon: faCrop,\r\n name: \"faCrop\",\r\n },\r\n {\r\n icon: faCropAlt,\r\n name: \"faCropAlt\",\r\n },\r\n {\r\n icon: faCross,\r\n name: \"faCross\",\r\n },\r\n {\r\n icon: faCrosshairs,\r\n name: \"faCrosshairs\",\r\n },\r\n {\r\n icon: faCrow,\r\n name: \"faCrow\",\r\n },\r\n {\r\n icon: faCrown,\r\n name: \"faCrown\",\r\n },\r\n {\r\n icon: faCrutch,\r\n name: \"faCrutch\",\r\n },\r\n {\r\n icon: faCube,\r\n name: \"faCube\",\r\n },\r\n {\r\n icon: faCubes,\r\n name: \"faCubes\",\r\n },\r\n {\r\n icon: faCut,\r\n name: \"faCut\",\r\n },\r\n {\r\n icon: faDatabase,\r\n name: \"faDatabase\",\r\n },\r\n {\r\n icon: faDeaf,\r\n name: \"faDeaf\",\r\n },\r\n {\r\n icon: faDemocrat,\r\n name: \"faDemocrat\",\r\n },\r\n {\r\n icon: faDesktop,\r\n name: \"faDesktop\",\r\n },\r\n {\r\n icon: faDharmachakra,\r\n name: \"faDharmachakra\",\r\n },\r\n {\r\n icon: faDiagnoses,\r\n name: \"faDiagnoses\",\r\n },\r\n {\r\n icon: faDice,\r\n name: \"faDice\",\r\n },\r\n {\r\n icon: faDiceD20,\r\n name: \"faDiceD20\",\r\n },\r\n {\r\n icon: faDiceD6,\r\n name: \"faDiceD6\",\r\n },\r\n {\r\n icon: faDiceFive,\r\n name: \"faDiceFive\",\r\n },\r\n {\r\n icon: faDiceFour,\r\n name: \"faDiceFour\",\r\n },\r\n {\r\n icon: faDiceOne,\r\n name: \"faDiceOne\",\r\n },\r\n {\r\n icon: faDiceSix,\r\n name: \"faDiceSix\",\r\n },\r\n {\r\n icon: faDiceThree,\r\n name: \"faDiceThree\",\r\n },\r\n {\r\n icon: faDiceTwo,\r\n name: \"faDiceTwo\",\r\n },\r\n {\r\n icon: faDigitalTachograph,\r\n name: \"faDigitalTachograph\",\r\n },\r\n {\r\n icon: faDirections,\r\n name: \"faDirections\",\r\n },\r\n {\r\n icon: faDivide,\r\n name: \"faDivide\",\r\n },\r\n {\r\n icon: faDizzy,\r\n name: \"faDizzy\",\r\n },\r\n {\r\n icon: faDna,\r\n name: \"faDna\",\r\n },\r\n {\r\n icon: faDog,\r\n name: \"faDog\",\r\n },\r\n {\r\n icon: faDollarSign,\r\n name: \"faDollarSign\",\r\n },\r\n {\r\n icon: faDolly,\r\n name: \"faDolly\",\r\n },\r\n {\r\n icon: faDollyFlatbed,\r\n name: \"faDollyFlatbed\",\r\n },\r\n {\r\n icon: faDonate,\r\n name: \"faDonate\",\r\n },\r\n {\r\n icon: faDoorClosed,\r\n name: \"faDoorClosed\",\r\n },\r\n {\r\n icon: faDoorOpen,\r\n name: \"faDoorOpen\",\r\n },\r\n {\r\n icon: faDotCircle,\r\n name: \"faDotCircle\",\r\n },\r\n {\r\n icon: faDove,\r\n name: \"faDove\",\r\n },\r\n {\r\n icon: faDownload,\r\n name: \"faDownload\",\r\n },\r\n {\r\n icon: faDraftingCompass,\r\n name: \"faDraftingCompass\",\r\n },\r\n {\r\n icon: faDragon,\r\n name: \"faDragon\",\r\n },\r\n {\r\n icon: faDrawPolygon,\r\n name: \"faDrawPolygon\",\r\n },\r\n {\r\n icon: faDrum,\r\n name: \"faDrum\",\r\n },\r\n {\r\n icon: faDrumSteelpan,\r\n name: \"faDrumSteelpan\",\r\n },\r\n {\r\n icon: faDrumstickBite,\r\n name: \"faDrumstickBite\",\r\n },\r\n {\r\n icon: faDumbbell,\r\n name: \"faDumbbell\",\r\n },\r\n {\r\n icon: faDumpster,\r\n name: \"faDumpster\",\r\n },\r\n {\r\n icon: faDumpsterFire,\r\n name: \"faDumpsterFire\",\r\n },\r\n {\r\n icon: faDungeon,\r\n name: \"faDungeon\",\r\n },\r\n {\r\n icon: faEdit,\r\n name: \"faEdit\",\r\n },\r\n {\r\n icon: faEgg,\r\n name: \"faEgg\",\r\n },\r\n {\r\n icon: faEject,\r\n name: \"faEject\",\r\n },\r\n {\r\n icon: faEllipsisH,\r\n name: \"faEllipsisH\",\r\n },\r\n {\r\n icon: faEllipsisV,\r\n name: \"faEllipsisV\",\r\n },\r\n {\r\n icon: faEnvelope,\r\n name: \"faEnvelope\",\r\n },\r\n {\r\n icon: faEnvelopeOpen,\r\n name: \"faEnvelopeOpen\",\r\n },\r\n {\r\n icon: faEnvelopeOpenText,\r\n name: \"faEnvelopeOpenText\",\r\n },\r\n {\r\n icon: faEnvelopeSquare,\r\n name: \"faEnvelopeSquare\",\r\n },\r\n {\r\n icon: faEquals,\r\n name: \"faEquals\",\r\n },\r\n {\r\n icon: faEraser,\r\n name: \"faEraser\",\r\n },\r\n {\r\n icon: faEthernet,\r\n name: \"faEthernet\",\r\n },\r\n {\r\n icon: faEuroSign,\r\n name: \"faEuroSign\",\r\n },\r\n {\r\n icon: faExchangeAlt,\r\n name: \"faExchangeAlt\",\r\n },\r\n {\r\n icon: faExclamation,\r\n name: \"faExclamation\",\r\n },\r\n {\r\n icon: faExclamationCircle,\r\n name: \"faExclamationCircle\",\r\n },\r\n {\r\n icon: faExclamationTriangle,\r\n name: \"faExclamationTriangle\",\r\n },\r\n {\r\n icon: faExpand,\r\n name: \"faExpand\",\r\n },\r\n {\r\n icon: faExpandArrowsAlt,\r\n name: \"faExpandArrowsAlt\",\r\n },\r\n {\r\n icon: faExternalLinkAlt,\r\n name: \"faExternalLinkAlt\",\r\n },\r\n {\r\n icon: faExternalLinkSquareAlt,\r\n name: \"faExternalLinkSquareAlt\",\r\n },\r\n {\r\n icon: faEye,\r\n name: \"faEye\",\r\n },\r\n {\r\n icon: faEyeDropper,\r\n name: \"faEyeDropper\",\r\n },\r\n {\r\n icon: faEyeSlash,\r\n name: \"faEyeSlash\",\r\n },\r\n {\r\n icon: faFastBackward,\r\n name: \"faFastBackward\",\r\n },\r\n {\r\n icon: faFastForward,\r\n name: \"faFastForward\",\r\n },\r\n {\r\n icon: faFax,\r\n name: \"faFax\",\r\n },\r\n {\r\n icon: faFeather,\r\n name: \"faFeather\",\r\n },\r\n {\r\n icon: faFeatherAlt,\r\n name: \"faFeatherAlt\",\r\n },\r\n {\r\n icon: faFemale,\r\n name: \"faFemale\",\r\n },\r\n {\r\n icon: faFighterJet,\r\n name: \"faFighterJet\",\r\n },\r\n {\r\n icon: faFile,\r\n name: \"faFile\",\r\n },\r\n {\r\n icon: faFileAlt,\r\n name: \"faFileAlt\",\r\n },\r\n {\r\n icon: faFileArchive,\r\n name: \"faFileArchive\",\r\n },\r\n {\r\n icon: faFileAudio,\r\n name: \"faFileAudio\",\r\n },\r\n {\r\n icon: faFileCode,\r\n name: \"faFileCode\",\r\n },\r\n {\r\n icon: faFileContract,\r\n name: \"faFileContract\",\r\n },\r\n {\r\n icon: faFileCsv,\r\n name: \"faFileCsv\",\r\n },\r\n {\r\n icon: faFileDownload,\r\n name: \"faFileDownload\",\r\n },\r\n {\r\n icon: faFileExcel,\r\n name: \"faFileExcel\",\r\n },\r\n {\r\n icon: faFileExport,\r\n name: \"faFileExport\",\r\n },\r\n {\r\n icon: faFileImage,\r\n name: \"faFileImage\",\r\n },\r\n {\r\n icon: faFileImport,\r\n name: \"faFileImport\",\r\n },\r\n {\r\n icon: faFileInvoice,\r\n name: \"faFileInvoice\",\r\n },\r\n {\r\n icon: faFileInvoiceDollar,\r\n name: \"faFileInvoiceDollar\",\r\n },\r\n {\r\n icon: faFileMedical,\r\n name: \"faFileMedical\",\r\n },\r\n {\r\n icon: faFileMedicalAlt,\r\n name: \"faFileMedicalAlt\",\r\n },\r\n {\r\n icon: faFilePdf,\r\n name: \"faFilePdf\",\r\n },\r\n {\r\n icon: faFilePowerpoint,\r\n name: \"faFilePowerpoint\",\r\n },\r\n {\r\n icon: faFilePrescription,\r\n name: \"faFilePrescription\",\r\n },\r\n {\r\n icon: faFileSignature,\r\n name: \"faFileSignature\",\r\n },\r\n {\r\n icon: faFileUpload,\r\n name: \"faFileUpload\",\r\n },\r\n {\r\n icon: faFileVideo,\r\n name: \"faFileVideo\",\r\n },\r\n {\r\n icon: faFileWord,\r\n name: \"faFileWord\",\r\n },\r\n {\r\n icon: faFill,\r\n name: \"faFill\",\r\n },\r\n {\r\n icon: faFillDrip,\r\n name: \"faFillDrip\",\r\n },\r\n {\r\n icon: faFilm,\r\n name: \"faFilm\",\r\n },\r\n {\r\n icon: faFilter,\r\n name: \"faFilter\",\r\n },\r\n {\r\n icon: faFingerprint,\r\n name: \"faFingerprint\",\r\n },\r\n {\r\n icon: faFire,\r\n name: \"faFire\",\r\n },\r\n {\r\n icon: faFireAlt,\r\n name: \"faFireAlt\",\r\n },\r\n {\r\n icon: faFireExtinguisher,\r\n name: \"faFireExtinguisher\",\r\n },\r\n {\r\n icon: faFirstAid,\r\n name: \"faFirstAid\",\r\n },\r\n {\r\n icon: faFish,\r\n name: \"faFish\",\r\n },\r\n {\r\n icon: faFistRaised,\r\n name: \"faFistRaised\",\r\n },\r\n {\r\n icon: faFlag,\r\n name: \"faFlag\",\r\n },\r\n {\r\n icon: faFlagCheckered,\r\n name: \"faFlagCheckered\",\r\n },\r\n {\r\n icon: faFlagUsa,\r\n name: \"faFlagUsa\",\r\n },\r\n {\r\n icon: faFlask,\r\n name: \"faFlask\",\r\n },\r\n {\r\n icon: faFlushed,\r\n name: \"faFlushed\",\r\n },\r\n {\r\n icon: faFolder,\r\n name: \"faFolder\",\r\n },\r\n {\r\n icon: faFolderMinus,\r\n name: \"faFolderMinus\",\r\n },\r\n {\r\n icon: faFolderOpen,\r\n name: \"faFolderOpen\",\r\n },\r\n {\r\n icon: faFolderPlus,\r\n name: \"faFolderPlus\",\r\n },\r\n {\r\n icon: faFont,\r\n name: \"faFont\",\r\n },\r\n {\r\n icon: faFontAwesomeLogoFull,\r\n name: \"faFontAwesomeLogoFull\",\r\n },\r\n {\r\n icon: faFootballBall,\r\n name: \"faFootballBall\",\r\n },\r\n {\r\n icon: faForward,\r\n name: \"faForward\",\r\n },\r\n {\r\n icon: faFrog,\r\n name: \"faFrog\",\r\n },\r\n {\r\n icon: faFrown,\r\n name: \"faFrown\",\r\n },\r\n {\r\n icon: faFrownOpen,\r\n name: \"faFrownOpen\",\r\n },\r\n {\r\n icon: faFunnelDollar,\r\n name: \"faFunnelDollar\",\r\n },\r\n {\r\n icon: faFutbol,\r\n name: \"faFutbol\",\r\n },\r\n {\r\n icon: faGamepad,\r\n name: \"faGamepad\",\r\n },\r\n {\r\n icon: faGasPump,\r\n name: \"faGasPump\",\r\n },\r\n {\r\n icon: faGavel,\r\n name: \"faGavel\",\r\n },\r\n {\r\n icon: faGem,\r\n name: \"faGem\",\r\n },\r\n {\r\n icon: faGenderless,\r\n name: \"faGenderless\",\r\n },\r\n {\r\n icon: faGhost,\r\n name: \"faGhost\",\r\n },\r\n {\r\n icon: faGift,\r\n name: \"faGift\",\r\n },\r\n {\r\n icon: faGifts,\r\n name: \"faGifts\",\r\n },\r\n {\r\n icon: faGlassCheers,\r\n name: \"faGlassCheers\",\r\n },\r\n {\r\n icon: faGlassMartini,\r\n name: \"faGlassMartini\",\r\n },\r\n {\r\n icon: faGlassMartiniAlt,\r\n name: \"faGlassMartiniAlt\",\r\n },\r\n {\r\n icon: faGlassWhiskey,\r\n name: \"faGlassWhiskey\",\r\n },\r\n {\r\n icon: faGlasses,\r\n name: \"faGlasses\",\r\n },\r\n {\r\n icon: faGlobe,\r\n name: \"faGlobe\",\r\n },\r\n {\r\n icon: faGlobeAfrica,\r\n name: \"faGlobeAfrica\",\r\n },\r\n {\r\n icon: faGlobeAmericas,\r\n name: \"faGlobeAmericas\",\r\n },\r\n {\r\n icon: faGlobeAsia,\r\n name: \"faGlobeAsia\",\r\n },\r\n {\r\n icon: faGlobeEurope,\r\n name: \"faGlobeEurope\",\r\n },\r\n {\r\n icon: faGolfBall,\r\n name: \"faGolfBall\",\r\n },\r\n {\r\n icon: faGopuram,\r\n name: \"faGopuram\",\r\n },\r\n {\r\n icon: faGraduationCap,\r\n name: \"faGraduationCap\",\r\n },\r\n {\r\n icon: faGreaterThan,\r\n name: \"faGreaterThan\",\r\n },\r\n {\r\n icon: faGreaterThanEqual,\r\n name: \"faGreaterThanEqual\",\r\n },\r\n {\r\n icon: faGrimace,\r\n name: \"faGrimace\",\r\n },\r\n {\r\n icon: faGrin,\r\n name: \"faGrin\",\r\n },\r\n {\r\n icon: faGrinAlt,\r\n name: \"faGrinAlt\",\r\n },\r\n {\r\n icon: faGrinBeam,\r\n name: \"faGrinBeam\",\r\n },\r\n {\r\n icon: faGrinBeamSweat,\r\n name: \"faGrinBeamSweat\",\r\n },\r\n {\r\n icon: faGrinHearts,\r\n name: \"faGrinHearts\",\r\n },\r\n {\r\n icon: faGrinSquint,\r\n name: \"faGrinSquint\",\r\n },\r\n {\r\n icon: faGrinSquintTears,\r\n name: \"faGrinSquintTears\",\r\n },\r\n {\r\n icon: faGrinStars,\r\n name: \"faGrinStars\",\r\n },\r\n {\r\n icon: faGrinTears,\r\n name: \"faGrinTears\",\r\n },\r\n {\r\n icon: faGrinTongue,\r\n name: \"faGrinTongue\",\r\n },\r\n {\r\n icon: faGrinTongueSquint,\r\n name: \"faGrinTongueSquint\",\r\n },\r\n {\r\n icon: faGrinTongueWink,\r\n name: \"faGrinTongueWink\",\r\n },\r\n {\r\n icon: faGrinWink,\r\n name: \"faGrinWink\",\r\n },\r\n {\r\n icon: faGripHorizontal,\r\n name: \"faGripHorizontal\",\r\n },\r\n {\r\n icon: faGripLines,\r\n name: \"faGripLines\",\r\n },\r\n {\r\n icon: faGripLinesVertical,\r\n name: \"faGripLinesVertical\",\r\n },\r\n {\r\n icon: faGripVertical,\r\n name: \"faGripVertical\",\r\n },\r\n {\r\n icon: faGuitar,\r\n name: \"faGuitar\",\r\n },\r\n {\r\n icon: faHSquare,\r\n name: \"faHSquare\",\r\n },\r\n {\r\n icon: faHamburger,\r\n name: \"faHamburger\",\r\n },\r\n {\r\n icon: faHammer,\r\n name: \"faHammer\",\r\n },\r\n {\r\n icon: faHamsa,\r\n name: \"faHamsa\",\r\n },\r\n {\r\n icon: faHandHolding,\r\n name: \"faHandHolding\",\r\n },\r\n {\r\n icon: faHandHoldingHeart,\r\n name: \"faHandHoldingHeart\",\r\n },\r\n {\r\n icon: faHandHoldingUsd,\r\n name: \"faHandHoldingUsd\",\r\n },\r\n {\r\n icon: faHandLizard,\r\n name: \"faHandLizard\",\r\n },\r\n {\r\n icon: faHandMiddleFinger,\r\n name: \"faHandMiddleFinger\",\r\n },\r\n {\r\n icon: faHandPaper,\r\n name: \"faHandPaper\",\r\n },\r\n {\r\n icon: faHandPeace,\r\n name: \"faHandPeace\",\r\n },\r\n {\r\n icon: faHandPointDown,\r\n name: \"faHandPointDown\",\r\n },\r\n {\r\n icon: faHandPointLeft,\r\n name: \"faHandPointLeft\",\r\n },\r\n {\r\n icon: faHandPointRight,\r\n name: \"faHandPointRight\",\r\n },\r\n {\r\n icon: faHandPointUp,\r\n name: \"faHandPointUp\",\r\n },\r\n {\r\n icon: faHandPointer,\r\n name: \"faHandPointer\",\r\n },\r\n {\r\n icon: faHandRock,\r\n name: \"faHandRock\",\r\n },\r\n {\r\n icon: faHandScissors,\r\n name: \"faHandScissors\",\r\n },\r\n {\r\n icon: faHandSpock,\r\n name: \"faHandSpock\",\r\n },\r\n {\r\n icon: faHands,\r\n name: \"faHands\",\r\n },\r\n {\r\n icon: faHandsHelping,\r\n name: \"faHandsHelping\",\r\n },\r\n {\r\n icon: faHandshake,\r\n name: \"faHandshake\",\r\n },\r\n {\r\n icon: faHanukiah,\r\n name: \"faHanukiah\",\r\n },\r\n {\r\n icon: faHardHat,\r\n name: \"faHardHat\",\r\n },\r\n {\r\n icon: faHashtag,\r\n name: \"faHashtag\",\r\n },\r\n {\r\n icon: faHatWizard,\r\n name: \"faHatWizard\",\r\n },\r\n {\r\n icon: faHdd,\r\n name: \"faHdd\",\r\n },\r\n {\r\n icon: faHeading,\r\n name: \"faHeading\",\r\n },\r\n {\r\n icon: faHeadphones,\r\n name: \"faHeadphones\",\r\n },\r\n {\r\n icon: faHeadphonesAlt,\r\n name: \"faHeadphonesAlt\",\r\n },\r\n {\r\n icon: faHeadset,\r\n name: \"faHeadset\",\r\n },\r\n {\r\n icon: faHeart,\r\n name: \"faHeart\",\r\n },\r\n {\r\n icon: faHeartBroken,\r\n name: \"faHeartBroken\",\r\n },\r\n {\r\n icon: faHeartbeat,\r\n name: \"faHeartbeat\",\r\n },\r\n {\r\n icon: faHelicopter,\r\n name: \"faHelicopter\",\r\n },\r\n {\r\n icon: faHighlighter,\r\n name: \"faHighlighter\",\r\n },\r\n {\r\n icon: faHiking,\r\n name: \"faHiking\",\r\n },\r\n {\r\n icon: faHippo,\r\n name: \"faHippo\",\r\n },\r\n {\r\n icon: faHistory,\r\n name: \"faHistory\",\r\n },\r\n {\r\n icon: faHockeyPuck,\r\n name: \"faHockeyPuck\",\r\n },\r\n {\r\n icon: faHollyBerry,\r\n name: \"faHollyBerry\",\r\n },\r\n {\r\n icon: faHome,\r\n name: \"faHome\",\r\n },\r\n {\r\n icon: faHorse,\r\n name: \"faHorse\",\r\n },\r\n {\r\n icon: faHorseHead,\r\n name: \"faHorseHead\",\r\n },\r\n {\r\n icon: faHospital,\r\n name: \"faHospital\",\r\n },\r\n {\r\n icon: faHospitalAlt,\r\n name: \"faHospitalAlt\",\r\n },\r\n {\r\n icon: faHospitalSymbol,\r\n name: \"faHospitalSymbol\",\r\n },\r\n {\r\n icon: faHotTub,\r\n name: \"faHotTub\",\r\n },\r\n {\r\n icon: faHotdog,\r\n name: \"faHotdog\",\r\n },\r\n {\r\n icon: faHotel,\r\n name: \"faHotel\",\r\n },\r\n {\r\n icon: faHourglass,\r\n name: \"faHourglass\",\r\n },\r\n {\r\n icon: faHourglassEnd,\r\n name: \"faHourglassEnd\",\r\n },\r\n {\r\n icon: faHourglassHalf,\r\n name: \"faHourglassHalf\",\r\n },\r\n {\r\n icon: faHourglassStart,\r\n name: \"faHourglassStart\",\r\n },\r\n {\r\n icon: faHouseDamage,\r\n name: \"faHouseDamage\",\r\n },\r\n {\r\n icon: faHryvnia,\r\n name: \"faHryvnia\",\r\n },\r\n {\r\n icon: faICursor,\r\n name: \"faICursor\",\r\n },\r\n {\r\n icon: faIceCream,\r\n name: \"faIceCream\",\r\n },\r\n {\r\n icon: faIcicles,\r\n name: \"faIcicles\",\r\n },\r\n {\r\n icon: faIdBadge,\r\n name: \"faIdBadge\",\r\n },\r\n {\r\n icon: faIdCard,\r\n name: \"faIdCard\",\r\n },\r\n {\r\n icon: faIdCardAlt,\r\n name: \"faIdCardAlt\",\r\n },\r\n {\r\n icon: faIgloo,\r\n name: \"faIgloo\",\r\n },\r\n {\r\n icon: faImage,\r\n name: \"faImage\",\r\n },\r\n {\r\n icon: faImages,\r\n name: \"faImages\",\r\n },\r\n {\r\n icon: faInbox,\r\n name: \"faInbox\",\r\n },\r\n {\r\n icon: faIndent,\r\n name: \"faIndent\",\r\n },\r\n {\r\n icon: faIndustry,\r\n name: \"faIndustry\",\r\n },\r\n {\r\n icon: faInfinity,\r\n name: \"faInfinity\",\r\n },\r\n {\r\n icon: faInfo,\r\n name: \"faInfo\",\r\n },\r\n {\r\n icon: faInfoCircle,\r\n name: \"faInfoCircle\",\r\n },\r\n {\r\n icon: faItalic,\r\n name: \"faItalic\",\r\n },\r\n {\r\n icon: faJedi,\r\n name: \"faJedi\",\r\n },\r\n {\r\n icon: faJoint,\r\n name: \"faJoint\",\r\n },\r\n {\r\n icon: faJournalWhills,\r\n name: \"faJournalWhills\",\r\n },\r\n {\r\n icon: faKaaba,\r\n name: \"faKaaba\",\r\n },\r\n {\r\n icon: faKey,\r\n name: \"faKey\",\r\n },\r\n {\r\n icon: faKeyboard,\r\n name: \"faKeyboard\",\r\n },\r\n {\r\n icon: faKhanda,\r\n name: \"faKhanda\",\r\n },\r\n {\r\n icon: faKiss,\r\n name: \"faKiss\",\r\n },\r\n {\r\n icon: faKissBeam,\r\n name: \"faKissBeam\",\r\n },\r\n {\r\n icon: faKissWinkHeart,\r\n name: \"faKissWinkHeart\",\r\n },\r\n {\r\n icon: faKiwiBird,\r\n name: \"faKiwiBird\",\r\n },\r\n {\r\n icon: faLandmark,\r\n name: \"faLandmark\",\r\n },\r\n {\r\n icon: faLanguage,\r\n name: \"faLanguage\",\r\n },\r\n {\r\n icon: faLaptop,\r\n name: \"faLaptop\",\r\n },\r\n {\r\n icon: faLaptopCode,\r\n name: \"faLaptopCode\",\r\n },\r\n {\r\n icon: faLaptopMedical,\r\n name: \"faLaptopMedical\",\r\n },\r\n {\r\n icon: faLaugh,\r\n name: \"faLaugh\",\r\n },\r\n {\r\n icon: faLaughBeam,\r\n name: \"faLaughBeam\",\r\n },\r\n {\r\n icon: faLaughSquint,\r\n name: \"faLaughSquint\",\r\n },\r\n {\r\n icon: faLaughWink,\r\n name: \"faLaughWink\",\r\n },\r\n {\r\n icon: faLayerGroup,\r\n name: \"faLayerGroup\",\r\n },\r\n {\r\n icon: faLeaf,\r\n name: \"faLeaf\",\r\n },\r\n {\r\n icon: faLemon,\r\n name: \"faLemon\",\r\n },\r\n {\r\n icon: faLessThan,\r\n name: \"faLessThan\",\r\n },\r\n {\r\n icon: faLessThanEqual,\r\n name: \"faLessThanEqual\",\r\n },\r\n {\r\n icon: faLevelDownAlt,\r\n name: \"faLevelDownAlt\",\r\n },\r\n {\r\n icon: faLevelUpAlt,\r\n name: \"faLevelUpAlt\",\r\n },\r\n {\r\n icon: faLifeRing,\r\n name: \"faLifeRing\",\r\n },\r\n {\r\n icon: faLightbulb,\r\n name: \"faLightbulb\",\r\n },\r\n {\r\n icon: faLink,\r\n name: \"faLink\",\r\n },\r\n {\r\n icon: faLiraSign,\r\n name: \"faLiraSign\",\r\n },\r\n {\r\n icon: faList,\r\n name: \"faList\",\r\n },\r\n {\r\n icon: faListAlt,\r\n name: \"faListAlt\",\r\n },\r\n {\r\n icon: faListOl,\r\n name: \"faListOl\",\r\n },\r\n {\r\n icon: faListUl,\r\n name: \"faListUl\",\r\n },\r\n {\r\n icon: faLocationArrow,\r\n name: \"faLocationArrow\",\r\n },\r\n {\r\n icon: faLock,\r\n name: \"faLock\",\r\n },\r\n {\r\n icon: faLockOpen,\r\n name: \"faLockOpen\",\r\n },\r\n {\r\n icon: faLongArrowAltDown,\r\n name: \"faLongArrowAltDown\",\r\n },\r\n {\r\n icon: faLongArrowAltLeft,\r\n name: \"faLongArrowAltLeft\",\r\n },\r\n {\r\n icon: faLongArrowAltRight,\r\n name: \"faLongArrowAltRight\",\r\n },\r\n {\r\n icon: faLongArrowAltUp,\r\n name: \"faLongArrowAltUp\",\r\n },\r\n {\r\n icon: faLowVision,\r\n name: \"faLowVision\",\r\n },\r\n {\r\n icon: faLuggageCart,\r\n name: \"faLuggageCart\",\r\n },\r\n {\r\n icon: faMagic,\r\n name: \"faMagic\",\r\n },\r\n {\r\n icon: faMagnet,\r\n name: \"faMagnet\",\r\n },\r\n {\r\n icon: faMailBulk,\r\n name: \"faMailBulk\",\r\n },\r\n {\r\n icon: faMale,\r\n name: \"faMale\",\r\n },\r\n {\r\n icon: faMap,\r\n name: \"faMap\",\r\n },\r\n {\r\n icon: faMapMarked,\r\n name: \"faMapMarked\",\r\n },\r\n {\r\n icon: faMapMarkedAlt,\r\n name: \"faMapMarkedAlt\",\r\n },\r\n {\r\n icon: faMapMarker,\r\n name: \"faMapMarker\",\r\n },\r\n {\r\n icon: faMapMarkerAlt,\r\n name: \"faMapMarkerAlt\",\r\n },\r\n {\r\n icon: faMapPin,\r\n name: \"faMapPin\",\r\n },\r\n {\r\n icon: faMapSigns,\r\n name: \"faMapSigns\",\r\n },\r\n {\r\n icon: faMarker,\r\n name: \"faMarker\",\r\n },\r\n {\r\n icon: faMars,\r\n name: \"faMars\",\r\n },\r\n {\r\n icon: faMarsDouble,\r\n name: \"faMarsDouble\",\r\n },\r\n {\r\n icon: faMarsStroke,\r\n name: \"faMarsStroke\",\r\n },\r\n {\r\n icon: faMarsStrokeH,\r\n name: \"faMarsStrokeH\",\r\n },\r\n {\r\n icon: faMarsStrokeV,\r\n name: \"faMarsStrokeV\",\r\n },\r\n {\r\n icon: faMask,\r\n name: \"faMask\",\r\n },\r\n {\r\n icon: faMedal,\r\n name: \"faMedal\",\r\n },\r\n {\r\n icon: faMedkit,\r\n name: \"faMedkit\",\r\n },\r\n {\r\n icon: faMeh,\r\n name: \"faMeh\",\r\n },\r\n {\r\n icon: faMehBlank,\r\n name: \"faMehBlank\",\r\n },\r\n {\r\n icon: faMehRollingEyes,\r\n name: \"faMehRollingEyes\",\r\n },\r\n {\r\n icon: faMemory,\r\n name: \"faMemory\",\r\n },\r\n {\r\n icon: faMenorah,\r\n name: \"faMenorah\",\r\n },\r\n {\r\n icon: faMercury,\r\n name: \"faMercury\",\r\n },\r\n {\r\n icon: faMeteor,\r\n name: \"faMeteor\",\r\n },\r\n {\r\n icon: faMicrochip,\r\n name: \"faMicrochip\",\r\n },\r\n {\r\n icon: faMicrophone,\r\n name: \"faMicrophone\",\r\n },\r\n {\r\n icon: faMicrophoneAlt,\r\n name: \"faMicrophoneAlt\",\r\n },\r\n {\r\n icon: faMicrophoneAltSlash,\r\n name: \"faMicrophoneAltSlash\",\r\n },\r\n {\r\n icon: faMicrophoneSlash,\r\n name: \"faMicrophoneSlash\",\r\n },\r\n {\r\n icon: faMicroscope,\r\n name: \"faMicroscope\",\r\n },\r\n {\r\n icon: faMinus,\r\n name: \"faMinus\",\r\n },\r\n {\r\n icon: faMinusCircle,\r\n name: \"faMinusCircle\",\r\n },\r\n {\r\n icon: faMinusSquare,\r\n name: \"faMinusSquare\",\r\n },\r\n {\r\n icon: faMitten,\r\n name: \"faMitten\",\r\n },\r\n {\r\n icon: faMobile,\r\n name: \"faMobile\",\r\n },\r\n {\r\n icon: faMobileAlt,\r\n name: \"faMobileAlt\",\r\n },\r\n {\r\n icon: faMoneyBill,\r\n name: \"faMoneyBill\",\r\n },\r\n {\r\n icon: faMoneyBillAlt,\r\n name: \"faMoneyBillAlt\",\r\n },\r\n {\r\n icon: faMoneyBillWave,\r\n name: \"faMoneyBillWave\",\r\n },\r\n {\r\n icon: faMoneyBillWaveAlt,\r\n name: \"faMoneyBillWaveAlt\",\r\n },\r\n {\r\n icon: faMoneyCheck,\r\n name: \"faMoneyCheck\",\r\n },\r\n {\r\n icon: faMoneyCheckAlt,\r\n name: \"faMoneyCheckAlt\",\r\n },\r\n {\r\n icon: faMonument,\r\n name: \"faMonument\",\r\n },\r\n {\r\n icon: faMoon,\r\n name: \"faMoon\",\r\n },\r\n {\r\n icon: faMortarPestle,\r\n name: \"faMortarPestle\",\r\n },\r\n {\r\n icon: faMosque,\r\n name: \"faMosque\",\r\n },\r\n {\r\n icon: faMotorcycle,\r\n name: \"faMotorcycle\",\r\n },\r\n {\r\n icon: faMountain,\r\n name: \"faMountain\",\r\n },\r\n {\r\n icon: faMousePointer,\r\n name: \"faMousePointer\",\r\n },\r\n {\r\n icon: faMugHot,\r\n name: \"faMugHot\",\r\n },\r\n {\r\n icon: faMusic,\r\n name: \"faMusic\",\r\n },\r\n {\r\n icon: faNetworkWired,\r\n name: \"faNetworkWired\",\r\n },\r\n {\r\n icon: faNeuter,\r\n name: \"faNeuter\",\r\n },\r\n {\r\n icon: faNewspaper,\r\n name: \"faNewspaper\",\r\n },\r\n {\r\n icon: faNotEqual,\r\n name: \"faNotEqual\",\r\n },\r\n {\r\n icon: faNotesMedical,\r\n name: \"faNotesMedical\",\r\n },\r\n {\r\n icon: faObjectGroup,\r\n name: \"faObjectGroup\",\r\n },\r\n {\r\n icon: faObjectUngroup,\r\n name: \"faObjectUngroup\",\r\n },\r\n {\r\n icon: faOilCan,\r\n name: \"faOilCan\",\r\n },\r\n {\r\n icon: faOm,\r\n name: \"faOm\",\r\n },\r\n {\r\n icon: faOtter,\r\n name: \"faOtter\",\r\n },\r\n {\r\n icon: faOutdent,\r\n name: \"faOutdent\",\r\n },\r\n {\r\n icon: faPager,\r\n name: \"faPager\",\r\n },\r\n {\r\n icon: faPaintBrush,\r\n name: \"faPaintBrush\",\r\n },\r\n {\r\n icon: faPaintRoller,\r\n name: \"faPaintRoller\",\r\n },\r\n {\r\n icon: faPalette,\r\n name: \"faPalette\",\r\n },\r\n {\r\n icon: faPallet,\r\n name: \"faPallet\",\r\n },\r\n {\r\n icon: faPaperPlane,\r\n name: \"faPaperPlane\",\r\n },\r\n {\r\n icon: faPaperclip,\r\n name: \"faPaperclip\",\r\n },\r\n {\r\n icon: faParachuteBox,\r\n name: \"faParachuteBox\",\r\n },\r\n {\r\n icon: faParagraph,\r\n name: \"faParagraph\",\r\n },\r\n {\r\n icon: faParking,\r\n name: \"faParking\",\r\n },\r\n {\r\n icon: faPassport,\r\n name: \"faPassport\",\r\n },\r\n {\r\n icon: faPastafarianism,\r\n name: \"faPastafarianism\",\r\n },\r\n {\r\n icon: faPaste,\r\n name: \"faPaste\",\r\n },\r\n {\r\n icon: faPause,\r\n name: \"faPause\",\r\n },\r\n {\r\n icon: faPauseCircle,\r\n name: \"faPauseCircle\",\r\n },\r\n {\r\n icon: faPaw,\r\n name: \"faPaw\",\r\n },\r\n {\r\n icon: faPeace,\r\n name: \"faPeace\",\r\n },\r\n {\r\n icon: faPen,\r\n name: \"faPen\",\r\n },\r\n {\r\n icon: faPenAlt,\r\n name: \"faPenAlt\",\r\n },\r\n {\r\n icon: faPenFancy,\r\n name: \"faPenFancy\",\r\n },\r\n {\r\n icon: faPenNib,\r\n name: \"faPenNib\",\r\n },\r\n {\r\n icon: faPenSquare,\r\n name: \"faPenSquare\",\r\n },\r\n {\r\n icon: faPencilAlt,\r\n name: \"faPencilAlt\",\r\n },\r\n {\r\n icon: faPencilRuler,\r\n name: \"faPencilRuler\",\r\n },\r\n {\r\n icon: faPeopleCarry,\r\n name: \"faPeopleCarry\",\r\n },\r\n {\r\n icon: faPepperHot,\r\n name: \"faPepperHot\",\r\n },\r\n {\r\n icon: faPercent,\r\n name: \"faPercent\",\r\n },\r\n {\r\n icon: faPercentage,\r\n name: \"faPercentage\",\r\n },\r\n {\r\n icon: faPersonBooth,\r\n name: \"faPersonBooth\",\r\n },\r\n {\r\n icon: faPhone,\r\n name: \"faPhone\",\r\n },\r\n {\r\n icon: faPhoneSlash,\r\n name: \"faPhoneSlash\",\r\n },\r\n {\r\n icon: faPhoneSquare,\r\n name: \"faPhoneSquare\",\r\n },\r\n {\r\n icon: faPhoneVolume,\r\n name: \"faPhoneVolume\",\r\n },\r\n {\r\n icon: faPiggyBank,\r\n name: \"faPiggyBank\",\r\n },\r\n {\r\n icon: faPills,\r\n name: \"faPills\",\r\n },\r\n {\r\n icon: faPizzaSlice,\r\n name: \"faPizzaSlice\",\r\n },\r\n {\r\n icon: faPlaceOfWorship,\r\n name: \"faPlaceOfWorship\",\r\n },\r\n {\r\n icon: faPlane,\r\n name: \"faPlane\",\r\n },\r\n {\r\n icon: faPlaneArrival,\r\n name: \"faPlaneArrival\",\r\n },\r\n {\r\n icon: faPlaneDeparture,\r\n name: \"faPlaneDeparture\",\r\n },\r\n {\r\n icon: faPlay,\r\n name: \"faPlay\",\r\n },\r\n {\r\n icon: faPlayCircle,\r\n name: \"faPlayCircle\",\r\n },\r\n {\r\n icon: faPlug,\r\n name: \"faPlug\",\r\n },\r\n {\r\n icon: faPlus,\r\n name: \"faPlus\",\r\n },\r\n {\r\n icon: faPlusCircle,\r\n name: \"faPlusCircle\",\r\n },\r\n {\r\n icon: faPlusSquare,\r\n name: \"faPlusSquare\",\r\n },\r\n {\r\n icon: faPodcast,\r\n name: \"faPodcast\",\r\n },\r\n {\r\n icon: faPoll,\r\n name: \"faPoll\",\r\n },\r\n {\r\n icon: faPollH,\r\n name: \"faPollH\",\r\n },\r\n {\r\n icon: faPoo,\r\n name: \"faPoo\",\r\n },\r\n {\r\n icon: faPooStorm,\r\n name: \"faPooStorm\",\r\n },\r\n {\r\n icon: faPoop,\r\n name: \"faPoop\",\r\n },\r\n {\r\n icon: faPortrait,\r\n name: \"faPortrait\",\r\n },\r\n {\r\n icon: faPoundSign,\r\n name: \"faPoundSign\",\r\n },\r\n {\r\n icon: faPowerOff,\r\n name: \"faPowerOff\",\r\n },\r\n {\r\n icon: faPray,\r\n name: \"faPray\",\r\n },\r\n {\r\n icon: faPrayingHands,\r\n name: \"faPrayingHands\",\r\n },\r\n {\r\n icon: faPrescription,\r\n name: \"faPrescription\",\r\n },\r\n {\r\n icon: faPrescriptionBottle,\r\n name: \"faPrescriptionBottle\",\r\n },\r\n {\r\n icon: faPrescriptionBottleAlt,\r\n name: \"faPrescriptionBottleAlt\",\r\n },\r\n {\r\n icon: faPrint,\r\n name: \"faPrint\",\r\n },\r\n {\r\n icon: faProcedures,\r\n name: \"faProcedures\",\r\n },\r\n {\r\n icon: faProjectDiagram,\r\n name: \"faProjectDiagram\",\r\n },\r\n {\r\n icon: faPuzzlePiece,\r\n name: \"faPuzzlePiece\",\r\n },\r\n {\r\n icon: faQrcode,\r\n name: \"faQrcode\",\r\n },\r\n {\r\n icon: faQuestion,\r\n name: \"faQuestion\",\r\n },\r\n {\r\n icon: faQuestionCircle,\r\n name: \"faQuestionCircle\",\r\n },\r\n {\r\n icon: faQuidditch,\r\n name: \"faQuidditch\",\r\n },\r\n {\r\n icon: faQuoteLeft,\r\n name: \"faQuoteLeft\",\r\n },\r\n {\r\n icon: faQuoteRight,\r\n name: \"faQuoteRight\",\r\n },\r\n {\r\n icon: faQuran,\r\n name: \"faQuran\",\r\n },\r\n {\r\n icon: faRadiation,\r\n name: \"faRadiation\",\r\n },\r\n {\r\n icon: faRadiationAlt,\r\n name: \"faRadiationAlt\",\r\n },\r\n {\r\n icon: faRainbow,\r\n name: \"faRainbow\",\r\n },\r\n {\r\n icon: faRandom,\r\n name: \"faRandom\",\r\n },\r\n {\r\n icon: faReceipt,\r\n name: \"faReceipt\",\r\n },\r\n {\r\n icon: faRecycle,\r\n name: \"faRecycle\",\r\n },\r\n {\r\n icon: faRedo,\r\n name: \"faRedo\",\r\n },\r\n {\r\n icon: faRedoAlt,\r\n name: \"faRedoAlt\",\r\n },\r\n {\r\n icon: faRegistered,\r\n name: \"faRegistered\",\r\n },\r\n {\r\n icon: faReply,\r\n name: \"faReply\",\r\n },\r\n {\r\n icon: faReplyAll,\r\n name: \"faReplyAll\",\r\n },\r\n {\r\n icon: faRepublican,\r\n name: \"faRepublican\",\r\n },\r\n {\r\n icon: faRestroom,\r\n name: \"faRestroom\",\r\n },\r\n {\r\n icon: faRetweet,\r\n name: \"faRetweet\",\r\n },\r\n {\r\n icon: faRibbon,\r\n name: \"faRibbon\",\r\n },\r\n {\r\n icon: faRing,\r\n name: \"faRing\",\r\n },\r\n {\r\n icon: faRoad,\r\n name: \"faRoad\",\r\n },\r\n {\r\n icon: faRobot,\r\n name: \"faRobot\",\r\n },\r\n {\r\n icon: faRocket,\r\n name: \"faRocket\",\r\n },\r\n {\r\n icon: faRoute,\r\n name: \"faRoute\",\r\n },\r\n {\r\n icon: faRss,\r\n name: \"faRss\",\r\n },\r\n {\r\n icon: faRssSquare,\r\n name: \"faRssSquare\",\r\n },\r\n {\r\n icon: faRubleSign,\r\n name: \"faRubleSign\",\r\n },\r\n {\r\n icon: faRuler,\r\n name: \"faRuler\",\r\n },\r\n {\r\n icon: faRulerCombined,\r\n name: \"faRulerCombined\",\r\n },\r\n {\r\n icon: faRulerHorizontal,\r\n name: \"faRulerHorizontal\",\r\n },\r\n {\r\n icon: faRulerVertical,\r\n name: \"faRulerVertical\",\r\n },\r\n {\r\n icon: faRunning,\r\n name: \"faRunning\",\r\n },\r\n {\r\n icon: faRupeeSign,\r\n name: \"faRupeeSign\",\r\n },\r\n {\r\n icon: faSadCry,\r\n name: \"faSadCry\",\r\n },\r\n {\r\n icon: faSadTear,\r\n name: \"faSadTear\",\r\n },\r\n {\r\n icon: faSatellite,\r\n name: \"faSatellite\",\r\n },\r\n {\r\n icon: faSatelliteDish,\r\n name: \"faSatelliteDish\",\r\n },\r\n {\r\n icon: faSave,\r\n name: \"faSave\",\r\n },\r\n {\r\n icon: faSchool,\r\n name: \"faSchool\",\r\n },\r\n {\r\n icon: faScrewdriver,\r\n name: \"faScrewdriver\",\r\n },\r\n {\r\n icon: faScroll,\r\n name: \"faScroll\",\r\n },\r\n {\r\n icon: faSdCard,\r\n name: \"faSdCard\",\r\n },\r\n {\r\n icon: faSearch,\r\n name: \"faSearch\",\r\n },\r\n {\r\n icon: faSearchDollar,\r\n name: \"faSearchDollar\",\r\n },\r\n {\r\n icon: faSearchLocation,\r\n name: \"faSearchLocation\",\r\n },\r\n {\r\n icon: faSearchMinus,\r\n name: \"faSearchMinus\",\r\n },\r\n {\r\n icon: faSearchPlus,\r\n name: \"faSearchPlus\",\r\n },\r\n {\r\n icon: faSeedling,\r\n name: \"faSeedling\",\r\n },\r\n {\r\n icon: faServer,\r\n name: \"faServer\",\r\n },\r\n {\r\n icon: faShapes,\r\n name: \"faShapes\",\r\n },\r\n {\r\n icon: faShare,\r\n name: \"faShare\",\r\n },\r\n {\r\n icon: faShareAlt,\r\n name: \"faShareAlt\",\r\n },\r\n {\r\n icon: faShareAltSquare,\r\n name: \"faShareAltSquare\",\r\n },\r\n {\r\n icon: faShareSquare,\r\n name: \"faShareSquare\",\r\n },\r\n {\r\n icon: faShekelSign,\r\n name: \"faShekelSign\",\r\n },\r\n {\r\n icon: faShieldAlt,\r\n name: \"faShieldAlt\",\r\n },\r\n {\r\n icon: faShip,\r\n name: \"faShip\",\r\n },\r\n {\r\n icon: faShippingFast,\r\n name: \"faShippingFast\",\r\n },\r\n {\r\n icon: faShoePrints,\r\n name: \"faShoePrints\",\r\n },\r\n {\r\n icon: faShoppingBag,\r\n name: \"faShoppingBag\",\r\n },\r\n {\r\n icon: faShoppingBasket,\r\n name: \"faShoppingBasket\",\r\n },\r\n {\r\n icon: faShoppingCart,\r\n name: \"faShoppingCart\",\r\n },\r\n {\r\n icon: faShower,\r\n name: \"faShower\",\r\n },\r\n {\r\n icon: faShuttleVan,\r\n name: \"faShuttleVan\",\r\n },\r\n {\r\n icon: faSign,\r\n name: \"faSign\",\r\n },\r\n {\r\n icon: faSignInAlt,\r\n name: \"faSignInAlt\",\r\n },\r\n {\r\n icon: faSignLanguage,\r\n name: \"faSignLanguage\",\r\n },\r\n {\r\n icon: faSignOutAlt,\r\n name: \"faSignOutAlt\",\r\n },\r\n {\r\n icon: faSignal,\r\n name: \"faSignal\",\r\n },\r\n {\r\n icon: faSignature,\r\n name: \"faSignature\",\r\n },\r\n {\r\n icon: faSimCard,\r\n name: \"faSimCard\",\r\n },\r\n {\r\n icon: faSitemap,\r\n name: \"faSitemap\",\r\n },\r\n {\r\n icon: faSkating,\r\n name: \"faSkating\",\r\n },\r\n {\r\n icon: faSkiing,\r\n name: \"faSkiing\",\r\n },\r\n {\r\n icon: faSkiingNordic,\r\n name: \"faSkiingNordic\",\r\n },\r\n {\r\n icon: faSkull,\r\n name: \"faSkull\",\r\n },\r\n {\r\n icon: faSkullCrossbones,\r\n name: \"faSkullCrossbones\",\r\n },\r\n {\r\n icon: faSlash,\r\n name: \"faSlash\",\r\n },\r\n {\r\n icon: faSleigh,\r\n name: \"faSleigh\",\r\n },\r\n {\r\n icon: faSlidersH,\r\n name: \"faSlidersH\",\r\n },\r\n {\r\n icon: faSmile,\r\n name: \"faSmile\",\r\n },\r\n {\r\n icon: faSmileBeam,\r\n name: \"faSmileBeam\",\r\n },\r\n {\r\n icon: faSmileWink,\r\n name: \"faSmileWink\",\r\n },\r\n {\r\n icon: faSmog,\r\n name: \"faSmog\",\r\n },\r\n {\r\n icon: faSmoking,\r\n name: \"faSmoking\",\r\n },\r\n {\r\n icon: faSmokingBan,\r\n name: \"faSmokingBan\",\r\n },\r\n {\r\n icon: faSms,\r\n name: \"faSms\",\r\n },\r\n {\r\n icon: faSnowboarding,\r\n name: \"faSnowboarding\",\r\n },\r\n {\r\n icon: faSnowflake,\r\n name: \"faSnowflake\",\r\n },\r\n {\r\n icon: faSnowman,\r\n name: \"faSnowman\",\r\n },\r\n {\r\n icon: faSnowplow,\r\n name: \"faSnowplow\",\r\n },\r\n {\r\n icon: faSocks,\r\n name: \"faSocks\",\r\n },\r\n {\r\n icon: faSolarPanel,\r\n name: \"faSolarPanel\",\r\n },\r\n {\r\n icon: faSort,\r\n name: \"faSort\",\r\n },\r\n {\r\n icon: faSortAlphaDown,\r\n name: \"faSortAlphaDown\",\r\n },\r\n {\r\n icon: faSortAlphaUp,\r\n name: \"faSortAlphaUp\",\r\n },\r\n {\r\n icon: faSortAmountDown,\r\n name: \"faSortAmountDown\",\r\n },\r\n {\r\n icon: faSortAmountUp,\r\n name: \"faSortAmountUp\",\r\n },\r\n {\r\n icon: faSortDown,\r\n name: \"faSortDown\",\r\n },\r\n {\r\n icon: faSortNumericDown,\r\n name: \"faSortNumericDown\",\r\n },\r\n {\r\n icon: faSortNumericUp,\r\n name: \"faSortNumericUp\",\r\n },\r\n {\r\n icon: faSortUp,\r\n name: \"faSortUp\",\r\n },\r\n {\r\n icon: faSpa,\r\n name: \"faSpa\",\r\n },\r\n {\r\n icon: faSpaceShuttle,\r\n name: \"faSpaceShuttle\",\r\n },\r\n {\r\n icon: faSpider,\r\n name: \"faSpider\",\r\n },\r\n {\r\n icon: faSpinner,\r\n name: \"faSpinner\",\r\n },\r\n {\r\n icon: faSplotch,\r\n name: \"faSplotch\",\r\n },\r\n {\r\n icon: faSprayCan,\r\n name: \"faSprayCan\",\r\n },\r\n {\r\n icon: faSquare,\r\n name: \"faSquare\",\r\n },\r\n {\r\n icon: faSquareFull,\r\n name: \"faSquareFull\",\r\n },\r\n {\r\n icon: faSquareRootAlt,\r\n name: \"faSquareRootAlt\",\r\n },\r\n {\r\n icon: faStamp,\r\n name: \"faStamp\",\r\n },\r\n {\r\n icon: faStar,\r\n name: \"faStar\",\r\n },\r\n {\r\n icon: faStarAndCrescent,\r\n name: \"faStarAndCrescent\",\r\n },\r\n {\r\n icon: faStarHalf,\r\n name: \"faStarHalf\",\r\n },\r\n {\r\n icon: faStarHalfAlt,\r\n name: \"faStarHalfAlt\",\r\n },\r\n {\r\n icon: faStarOfDavid,\r\n name: \"faStarOfDavid\",\r\n },\r\n {\r\n icon: faStarOfLife,\r\n name: \"faStarOfLife\",\r\n },\r\n {\r\n icon: faStepBackward,\r\n name: \"faStepBackward\",\r\n },\r\n {\r\n icon: faStepForward,\r\n name: \"faStepForward\",\r\n },\r\n {\r\n icon: faStethoscope,\r\n name: \"faStethoscope\",\r\n },\r\n {\r\n icon: faStickyNote,\r\n name: \"faStickyNote\",\r\n },\r\n {\r\n icon: faStop,\r\n name: \"faStop\",\r\n },\r\n {\r\n icon: faStopCircle,\r\n name: \"faStopCircle\",\r\n },\r\n {\r\n icon: faStopwatch,\r\n name: \"faStopwatch\",\r\n },\r\n {\r\n icon: faStore,\r\n name: \"faStore\",\r\n },\r\n {\r\n icon: faStoreAlt,\r\n name: \"faStoreAlt\",\r\n },\r\n {\r\n icon: faStream,\r\n name: \"faStream\",\r\n },\r\n {\r\n icon: faStreetView,\r\n name: \"faStreetView\",\r\n },\r\n {\r\n icon: faStrikethrough,\r\n name: \"faStrikethrough\",\r\n },\r\n {\r\n icon: faStroopwafel,\r\n name: \"faStroopwafel\",\r\n },\r\n {\r\n icon: faSubscript,\r\n name: \"faSubscript\",\r\n },\r\n {\r\n icon: faSubway,\r\n name: \"faSubway\",\r\n },\r\n {\r\n icon: faSuitcase,\r\n name: \"faSuitcase\",\r\n },\r\n {\r\n icon: faSuitcaseRolling,\r\n name: \"faSuitcaseRolling\",\r\n },\r\n {\r\n icon: faSun,\r\n name: \"faSun\",\r\n },\r\n {\r\n icon: faSuperscript,\r\n name: \"faSuperscript\",\r\n },\r\n {\r\n icon: faSurprise,\r\n name: \"faSurprise\",\r\n },\r\n {\r\n icon: faSwatchbook,\r\n name: \"faSwatchbook\",\r\n },\r\n {\r\n icon: faSwimmer,\r\n name: \"faSwimmer\",\r\n },\r\n {\r\n icon: faSwimmingPool,\r\n name: \"faSwimmingPool\",\r\n },\r\n {\r\n icon: faSynagogue,\r\n name: \"faSynagogue\",\r\n },\r\n {\r\n icon: faSync,\r\n name: \"faSync\",\r\n },\r\n {\r\n icon: faSyncAlt,\r\n name: \"faSyncAlt\",\r\n },\r\n {\r\n icon: faSyringe,\r\n name: \"faSyringe\",\r\n },\r\n {\r\n icon: faTable,\r\n name: \"faTable\",\r\n },\r\n {\r\n icon: faTableTennis,\r\n name: \"faTableTennis\",\r\n },\r\n {\r\n icon: faTablet,\r\n name: \"faTablet\",\r\n },\r\n {\r\n icon: faTabletAlt,\r\n name: \"faTabletAlt\",\r\n },\r\n {\r\n icon: faTablets,\r\n name: \"faTablets\",\r\n },\r\n {\r\n icon: faTachometerAlt,\r\n name: \"faTachometerAlt\",\r\n },\r\n {\r\n icon: faTag,\r\n name: \"faTag\",\r\n },\r\n {\r\n icon: faTags,\r\n name: \"faTags\",\r\n },\r\n {\r\n icon: faTape,\r\n name: \"faTape\",\r\n },\r\n {\r\n icon: faTasks,\r\n name: \"faTasks\",\r\n },\r\n {\r\n icon: faTaxi,\r\n name: \"faTaxi\",\r\n },\r\n {\r\n icon: faTeeth,\r\n name: \"faTeeth\",\r\n },\r\n {\r\n icon: faTeethOpen,\r\n name: \"faTeethOpen\",\r\n },\r\n {\r\n icon: faTemperatureHigh,\r\n name: \"faTemperatureHigh\",\r\n },\r\n {\r\n icon: faTemperatureLow,\r\n name: \"faTemperatureLow\",\r\n },\r\n {\r\n icon: faTenge,\r\n name: \"faTenge\",\r\n },\r\n {\r\n icon: faTerminal,\r\n name: \"faTerminal\",\r\n },\r\n {\r\n icon: faTextHeight,\r\n name: \"faTextHeight\",\r\n },\r\n {\r\n icon: faTextWidth,\r\n name: \"faTextWidth\",\r\n },\r\n {\r\n icon: faTh,\r\n name: \"faTh\",\r\n },\r\n {\r\n icon: faThLarge,\r\n name: \"faThLarge\",\r\n },\r\n {\r\n icon: faThList,\r\n name: \"faThList\",\r\n },\r\n {\r\n icon: faTheaterMasks,\r\n name: \"faTheaterMasks\",\r\n },\r\n {\r\n icon: faThermometer,\r\n name: \"faThermometer\",\r\n },\r\n {\r\n icon: faThermometerEmpty,\r\n name: \"faThermometerEmpty\",\r\n },\r\n {\r\n icon: faThermometerFull,\r\n name: \"faThermometerFull\",\r\n },\r\n {\r\n icon: faThermometerHalf,\r\n name: \"faThermometerHalf\",\r\n },\r\n {\r\n icon: faThermometerQuarter,\r\n name: \"faThermometerQuarter\",\r\n },\r\n {\r\n icon: faThermometerThreeQuarters,\r\n name: \"faThermometerThreeQuarters\",\r\n },\r\n {\r\n icon: faThumbsDown,\r\n name: \"faThumbsDown\",\r\n },\r\n {\r\n icon: faThumbsUp,\r\n name: \"faThumbsUp\",\r\n },\r\n {\r\n icon: faThumbtack,\r\n name: \"faThumbtack\",\r\n },\r\n {\r\n icon: faTicketAlt,\r\n name: \"faTicketAlt\",\r\n },\r\n {\r\n icon: faTimes,\r\n name: \"faTimes\",\r\n },\r\n {\r\n icon: faTimesCircle,\r\n name: \"faTimesCircle\",\r\n },\r\n {\r\n icon: faTint,\r\n name: \"faTint\",\r\n },\r\n {\r\n icon: faTintSlash,\r\n name: \"faTintSlash\",\r\n },\r\n {\r\n icon: faTired,\r\n name: \"faTired\",\r\n },\r\n {\r\n icon: faToggleOff,\r\n name: \"faToggleOff\",\r\n },\r\n {\r\n icon: faToggleOn,\r\n name: \"faToggleOn\",\r\n },\r\n {\r\n icon: faToilet,\r\n name: \"faToilet\",\r\n },\r\n {\r\n icon: faToiletPaper,\r\n name: \"faToiletPaper\",\r\n },\r\n {\r\n icon: faToolbox,\r\n name: \"faToolbox\",\r\n },\r\n {\r\n icon: faTools,\r\n name: \"faTools\",\r\n },\r\n {\r\n icon: faTooth,\r\n name: \"faTooth\",\r\n },\r\n {\r\n icon: faTorah,\r\n name: \"faTorah\",\r\n },\r\n {\r\n icon: faToriiGate,\r\n name: \"faToriiGate\",\r\n },\r\n {\r\n icon: faTractor,\r\n name: \"faTractor\",\r\n },\r\n {\r\n icon: faTrademark,\r\n name: \"faTrademark\",\r\n },\r\n {\r\n icon: faTrafficLight,\r\n name: \"faTrafficLight\",\r\n },\r\n {\r\n icon: faTrain,\r\n name: \"faTrain\",\r\n },\r\n {\r\n icon: faTram,\r\n name: \"faTram\",\r\n },\r\n {\r\n icon: faTransgender,\r\n name: \"faTransgender\",\r\n },\r\n {\r\n icon: faTransgenderAlt,\r\n name: \"faTransgenderAlt\",\r\n },\r\n {\r\n icon: faTrash,\r\n name: \"faTrash\",\r\n },\r\n {\r\n icon: faTrashAlt,\r\n name: \"faTrashAlt\",\r\n },\r\n {\r\n icon: faTrashRestore,\r\n name: \"faTrashRestore\",\r\n },\r\n {\r\n icon: faTrashRestoreAlt,\r\n name: \"faTrashRestoreAlt\",\r\n },\r\n {\r\n icon: faTree,\r\n name: \"faTree\",\r\n },\r\n {\r\n icon: faTrophy,\r\n name: \"faTrophy\",\r\n },\r\n {\r\n icon: faTruck,\r\n name: \"faTruck\",\r\n },\r\n {\r\n icon: faTruckLoading,\r\n name: \"faTruckLoading\",\r\n },\r\n {\r\n icon: faTruckMonster,\r\n name: \"faTruckMonster\",\r\n },\r\n {\r\n icon: faTruckMoving,\r\n name: \"faTruckMoving\",\r\n },\r\n {\r\n icon: faTruckPickup,\r\n name: \"faTruckPickup\",\r\n },\r\n {\r\n icon: faTshirt,\r\n name: \"faTshirt\",\r\n },\r\n {\r\n icon: faTty,\r\n name: \"faTty\",\r\n },\r\n {\r\n icon: faTv,\r\n name: \"faTv\",\r\n },\r\n {\r\n icon: faUmbrella,\r\n name: \"faUmbrella\",\r\n },\r\n {\r\n icon: faUmbrellaBeach,\r\n name: \"faUmbrellaBeach\",\r\n },\r\n {\r\n icon: faUnderline,\r\n name: \"faUnderline\",\r\n },\r\n {\r\n icon: faUndo,\r\n name: \"faUndo\",\r\n },\r\n {\r\n icon: faUndoAlt,\r\n name: \"faUndoAlt\",\r\n },\r\n {\r\n icon: faUniversalAccess,\r\n name: \"faUniversalAccess\",\r\n },\r\n {\r\n icon: faUniversity,\r\n name: \"faUniversity\",\r\n },\r\n {\r\n icon: faUnlink,\r\n name: \"faUnlink\",\r\n },\r\n {\r\n icon: faUnlock,\r\n name: \"faUnlock\",\r\n },\r\n {\r\n icon: faUnlockAlt,\r\n name: \"faUnlockAlt\",\r\n },\r\n {\r\n icon: faUpload,\r\n name: \"faUpload\",\r\n },\r\n {\r\n icon: faUser,\r\n name: \"faUser\",\r\n },\r\n {\r\n icon: faUserAlt,\r\n name: \"faUserAlt\",\r\n },\r\n {\r\n icon: faUserAltSlash,\r\n name: \"faUserAltSlash\",\r\n },\r\n {\r\n icon: faUserAstronaut,\r\n name: \"faUserAstronaut\",\r\n },\r\n {\r\n icon: faUserCheck,\r\n name: \"faUserCheck\",\r\n },\r\n {\r\n icon: faUserCircle,\r\n name: \"faUserCircle\",\r\n },\r\n {\r\n icon: faUserClock,\r\n name: \"faUserClock\",\r\n },\r\n {\r\n icon: faUserCog,\r\n name: \"faUserCog\",\r\n },\r\n {\r\n icon: faUserEdit,\r\n name: \"faUserEdit\",\r\n },\r\n {\r\n icon: faUserFriends,\r\n name: \"faUserFriends\",\r\n },\r\n {\r\n icon: faUserGraduate,\r\n name: \"faUserGraduate\",\r\n },\r\n {\r\n icon: faUserInjured,\r\n name: \"faUserInjured\",\r\n },\r\n {\r\n icon: faUserLock,\r\n name: \"faUserLock\",\r\n },\r\n {\r\n icon: faUserMd,\r\n name: \"faUserMd\",\r\n },\r\n {\r\n icon: faUserMinus,\r\n name: \"faUserMinus\",\r\n },\r\n {\r\n icon: faUserNinja,\r\n name: \"faUserNinja\",\r\n },\r\n {\r\n icon: faUserNurse,\r\n name: \"faUserNurse\",\r\n },\r\n {\r\n icon: faUserPlus,\r\n name: \"faUserPlus\",\r\n },\r\n {\r\n icon: faUserSecret,\r\n name: \"faUserSecret\",\r\n },\r\n {\r\n icon: faUserShield,\r\n name: \"faUserShield\",\r\n },\r\n {\r\n icon: faUserSlash,\r\n name: \"faUserSlash\",\r\n },\r\n {\r\n icon: faUserTag,\r\n name: \"faUserTag\",\r\n },\r\n {\r\n icon: faUserTie,\r\n name: \"faUserTie\",\r\n },\r\n {\r\n icon: faUserTimes,\r\n name: \"faUserTimes\",\r\n },\r\n {\r\n icon: faUsers,\r\n name: \"faUsers\",\r\n },\r\n {\r\n icon: faUsersCog,\r\n name: \"faUsersCog\",\r\n },\r\n {\r\n icon: faUtensilSpoon,\r\n name: \"faUtensilSpoon\",\r\n },\r\n {\r\n icon: faUtensils,\r\n name: \"faUtensils\",\r\n },\r\n {\r\n icon: faVectorSquare,\r\n name: \"faVectorSquare\",\r\n },\r\n {\r\n icon: faVenus,\r\n name: \"faVenus\",\r\n },\r\n {\r\n icon: faVenusDouble,\r\n name: \"faVenusDouble\",\r\n },\r\n {\r\n icon: faVenusMars,\r\n name: \"faVenusMars\",\r\n },\r\n {\r\n icon: faVial,\r\n name: \"faVial\",\r\n },\r\n {\r\n icon: faVials,\r\n name: \"faVials\",\r\n },\r\n {\r\n icon: faVideo,\r\n name: \"faVideo\",\r\n },\r\n {\r\n icon: faVideoSlash,\r\n name: \"faVideoSlash\",\r\n },\r\n {\r\n icon: faVihara,\r\n name: \"faVihara\",\r\n },\r\n {\r\n icon: faVolleyballBall,\r\n name: \"faVolleyballBall\",\r\n },\r\n {\r\n icon: faVolumeDown,\r\n name: \"faVolumeDown\",\r\n },\r\n {\r\n icon: faVolumeMute,\r\n name: \"faVolumeMute\",\r\n },\r\n {\r\n icon: faVolumeOff,\r\n name: \"faVolumeOff\",\r\n },\r\n {\r\n icon: faVolumeUp,\r\n name: \"faVolumeUp\",\r\n },\r\n {\r\n icon: faVoteYea,\r\n name: \"faVoteYea\",\r\n },\r\n {\r\n icon: faVrCardboard,\r\n name: \"faVrCardboard\",\r\n },\r\n {\r\n icon: faWalking,\r\n name: \"faWalking\",\r\n },\r\n {\r\n icon: faWallet,\r\n name: \"faWallet\",\r\n },\r\n {\r\n icon: faWarehouse,\r\n name: \"faWarehouse\",\r\n },\r\n {\r\n icon: faWater,\r\n name: \"faWater\",\r\n },\r\n {\r\n icon: faWeight,\r\n name: \"faWeight\",\r\n },\r\n {\r\n icon: faWeightHanging,\r\n name: \"faWeightHanging\",\r\n },\r\n {\r\n icon: faWheelchair,\r\n name: \"faWheelchair\",\r\n },\r\n {\r\n icon: faWifi,\r\n name: \"faWifi\",\r\n },\r\n {\r\n icon: faWind,\r\n name: \"faWind\",\r\n },\r\n {\r\n icon: faWindowClose,\r\n name: \"faWindowClose\",\r\n },\r\n {\r\n icon: faWindowMaximize,\r\n name: \"faWindowMaximize\",\r\n },\r\n {\r\n icon: faWindowMinimize,\r\n name: \"faWindowMinimize\",\r\n },\r\n {\r\n icon: faWindowRestore,\r\n name: \"faWindowRestore\",\r\n },\r\n {\r\n icon: faWineBottle,\r\n name: \"faWineBottle\",\r\n },\r\n {\r\n icon: faWineGlass,\r\n name: \"faWineGlass\",\r\n },\r\n {\r\n icon: faWineGlassAlt,\r\n name: \"faWineGlassAlt\",\r\n },\r\n {\r\n icon: faWonSign,\r\n name: \"faWonSign\",\r\n },\r\n {\r\n icon: faWrench,\r\n name: \"faWrench\",\r\n },\r\n {\r\n icon: faXRay,\r\n name: \"faXRay\",\r\n },\r\n {\r\n icon: faYenSign,\r\n name: \"faYenSign\",\r\n },\r\n {\r\n icon: faYinYang,\r\n name: \"faYinYang\",\r\n },\r\n];\r\n\r\nexport default icons;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport * as Yup from \"yup\";\r\nimport { Formik } from \"formik\";\r\nimport {\r\n Button,\r\n Card,\r\n Container,\r\n Col,\r\n Row,\r\n Form,\r\n InputGroup,\r\n} from \"react-bootstrap\";\r\n\r\nconst schema = Yup.object().shape({\r\n firstName: Yup.string().required(),\r\n lastName: Yup.string().required(),\r\n username: Yup.string().required(),\r\n city: Yup.string().required(),\r\n state: Yup.string().required(),\r\n zip: Yup.string().required(),\r\n});\r\n\r\nconst FormikExample = () => (\r\n \r\n \r\n Formik\r\n
\r\n Formik example with Yup validation\r\n
\r\n
\r\n \r\n \r\n {({\r\n handleSubmit,\r\n handleChange,\r\n handleBlur,\r\n values,\r\n touched,\r\n isValid,\r\n errors,\r\n }) => (\r\n
\r\n \r\n \r\n First name\r\n \r\n Looks good!\r\n \r\n \r\n Last name\r\n \r\n\r\n Looks good!\r\n \r\n \r\n Username\r\n \r\n @\r\n \r\n \r\n {errors.username}\r\n \r\n \r\n \r\n \r\n \r\n \r\n City\r\n \r\n\r\n \r\n {errors.city}\r\n \r\n \r\n \r\n State\r\n \r\n \r\n {errors.state}\r\n \r\n \r\n \r\n Zip\r\n \r\n\r\n \r\n {errors.zip}\r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n
\r\n
\r\n);\r\n\r\nconst FormikPage = () => (\r\n \r\n \r\n \r\n

Formik

\r\n\r\n \r\n
\r\n
\r\n);\r\n\r\nexport default FormikPage;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport { useTable, useExpanded, TableOptions } from \"react-table\";\r\n\r\nimport { Card, Container, Table } from \"react-bootstrap\";\r\nimport { PlusCircle, MinusCircle } from \"react-feather\";\r\n\r\nimport { tableData, tableColumns } from \"./data\";\r\n\r\nconst RowExpandingTable = (props: TableOptions>) => {\r\n const { columns, data } = props;\r\n\r\n const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } =\r\n useTable(\r\n {\r\n columns,\r\n data,\r\n },\r\n useExpanded // Use the useExpanded plugin hook\r\n );\r\n\r\n return (\r\n \r\n \r\n Row Expanding\r\n
\r\n Expandable rows by react-table\r\n
\r\n
\r\n \r\n \r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n {rows.map((row, i) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {row.cells.map((cell) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n
\r\n {column.render(\"Header\")}\r\n
{cell.render(\"Cell\")}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst tableColumnsExpandable = [\r\n {\r\n // Build our expander column\r\n id: \"expander\", // Make sure it has an ID\r\n Header: ({\r\n getToggleAllRowsExpandedProps,\r\n isAllRowsExpanded,\r\n }: {\r\n getToggleAllRowsExpandedProps: any;\r\n isAllRowsExpanded: boolean;\r\n }) => (\r\n \r\n {isAllRowsExpanded ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ),\r\n Cell: ({ row }: { row: any }) =>\r\n // Use the row.canExpand and row.getToggleRowExpandedProps prop getter\r\n // to build the toggle for expanding a row\r\n row.canExpand ? (\r\n \r\n {row.isExpanded ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : null,\r\n },\r\n ...tableColumns,\r\n];\r\n\r\nconst RowExpanding = () => (\r\n \r\n \r\n \r\n

Row Expanding

\r\n\r\n \r\n
\r\n
\r\n);\r\n\r\nexport default RowExpanding;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport {\r\n useTable,\r\n useFilters,\r\n useGlobalFilter,\r\n TableOptions,\r\n} from \"react-table\";\r\n\r\nimport { Card, Container, Table, Form } from \"react-bootstrap\";\r\n\r\nimport { tableData } from \"./data\";\r\n\r\n// This is a custom UI for our 'between' or number range\r\n// filter. It uses two number boxes and filters rows to\r\n// ones that have values between the two\r\nfunction NumberRangeColumnFilter({\r\n column: { filterValue = [], preFilteredRows, setFilter, id },\r\n}: {\r\n column: any;\r\n}) {\r\n const [min, max] = React.useMemo(() => {\r\n let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\r\n let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\r\n preFilteredRows.forEach((row: any) => {\r\n min = Math.min(row.values[id], min);\r\n max = Math.max(row.values[id], max);\r\n });\r\n return [min, max];\r\n }, [id, preFilteredRows]);\r\n\r\n return (\r\n
\r\n {\r\n const val = e.target.value;\r\n setFilter((old = []) => [\r\n val ? parseInt(val, 10) : undefined,\r\n old[1],\r\n ]);\r\n }}\r\n placeholder={`Min (${min})`}\r\n style={{\r\n width: \"110px\",\r\n }}\r\n />\r\n to\r\n {\r\n const val = e.target.value;\r\n setFilter((old = []) => [\r\n old[0],\r\n val ? parseInt(val, 10) : undefined,\r\n ]);\r\n }}\r\n placeholder={`Max (${max})`}\r\n style={{\r\n width: \"110px\",\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n\r\n// This is a custom filter UI for selecting\r\n// a unique option from a list\r\nfunction SelectColumnFilter({\r\n column: { filterValue, setFilter, preFilteredRows, id },\r\n}: {\r\n column: any;\r\n}) {\r\n // Calculate the options for filtering\r\n // using the preFilteredRows\r\n const options = React.useMemo(() => {\r\n const options = new Set();\r\n preFilteredRows.forEach((row: any) => {\r\n options.add(row.values[id]);\r\n });\r\n return [...options.values()];\r\n }, [id, preFilteredRows]);\r\n\r\n // Render a multi-select box\r\n return (\r\n {\r\n setFilter(e.target.value || undefined);\r\n }}\r\n >\r\n \r\n {options.map((option: any, i: any) => (\r\n \r\n ))}\r\n \r\n );\r\n}\r\n\r\nfunction DefaultColumnFilter({\r\n column: { filterValue, preFilteredRows, setFilter },\r\n}: {\r\n column: any;\r\n}) {\r\n const count = preFilteredRows.length;\r\n\r\n return (\r\n {\r\n setFilter(e.target.value || undefined); // Set undefined to remove the filter entirely\r\n }}\r\n placeholder={`Search ${count} records...`}\r\n className=\"mt-2\"\r\n />\r\n );\r\n}\r\n\r\nconst ColumnFilteringTable = (props: TableOptions>) => {\r\n const { columns, data } = props;\r\n\r\n const filterTypes = React.useMemo(\r\n () => ({\r\n // Or, override the default text filter to use\r\n // \"startWith\"\r\n text: (rows: any, id: any, filterValue: any) => {\r\n return rows.filter((row: any) => {\r\n const rowValue = row.values[id];\r\n return rowValue !== undefined\r\n ? String(rowValue)\r\n .toLowerCase()\r\n .startsWith(String(filterValue).toLowerCase())\r\n : true;\r\n });\r\n },\r\n }),\r\n []\r\n );\r\n\r\n const defaultColumn = React.useMemo(\r\n () => ({\r\n // Let's set up our default Filter UI\r\n Filter: DefaultColumnFilter,\r\n }),\r\n []\r\n );\r\n\r\n const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } =\r\n useTable(\r\n {\r\n columns,\r\n data,\r\n defaultColumn, // Be sure to pass the defaultColumn option\r\n filterTypes,\r\n },\r\n useFilters, // useFilters!\r\n useGlobalFilter // useGlobalFilter!\r\n );\r\n\r\n return (\r\n \r\n \r\n Column Filtering\r\n
\r\n Column filtering by react-table\r\n
\r\n
\r\n \r\n \r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n {rows.map((row, i) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {row.cells.map((cell) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n
\r\n {column.render(\"Header\")}\r\n {/* Render the columns filter UI */}\r\n
\r\n {column.canFilter ? column.render(\"Filter\") : null}\r\n
\r\n
{cell.render(\"Cell\")}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst tableColumns = [\r\n {\r\n Header: \"Name\",\r\n accessor: \"name\",\r\n },\r\n {\r\n Header: \"Position\",\r\n accessor: \"position\",\r\n Filter: SelectColumnFilter,\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Office\",\r\n accessor: \"office\",\r\n Filter: SelectColumnFilter,\r\n filter: \"includes\",\r\n },\r\n {\r\n Header: \"Age\",\r\n accessor: \"age\",\r\n Filter: NumberRangeColumnFilter,\r\n filter: \"between\",\r\n },\r\n {\r\n Header: \"Start Date\",\r\n accessor: \"startDate\",\r\n },\r\n {\r\n Header: \"Salary\",\r\n accessor: \"salary\",\r\n Filter: false,\r\n },\r\n];\r\n\r\nconst ColumnFiltering = () => (\r\n \r\n \r\n \r\n

Column Filtering

\r\n\r\n \r\n
\r\n
\r\n);\r\n\r\nexport default ColumnFiltering;\r\n","import React from \"react\";\r\nimport { Notyf } from \"notyf\";\r\n\r\nexport default React.createContext(\r\n new Notyf({\r\n duration: 5000,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n types: [\r\n {\r\n type: \"default\",\r\n backgroundColor: \"#3B7DDD\",\r\n icon: {\r\n className: \"notyf__icon--success\",\r\n tagName: \"i\",\r\n },\r\n },\r\n {\r\n type: \"success\",\r\n backgroundColor: \"#28a745\",\r\n icon: {\r\n className: \"notyf__icon--success\",\r\n tagName: \"i\",\r\n },\r\n },\r\n {\r\n type: \"warning\",\r\n backgroundColor: \"#ffc107\",\r\n icon: {\r\n className: \"notyf__icon--error\",\r\n tagName: \"i\",\r\n },\r\n },\r\n {\r\n type: \"danger\",\r\n backgroundColor: \"#dc3545\",\r\n icon: {\r\n className: \"notyf__icon--error\",\r\n tagName: \"i\",\r\n },\r\n },\r\n ],\r\n })\r\n);\r\n","import React from \"react\";\r\nimport { useRoutes, useNavigate, Navigate } from \"react-router-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport { HelmetProvider, Helmet } from \"react-helmet-async\";\r\nimport { store } from \"../../redux/store\";\r\n\r\nimport \"../../i18n\";\r\nimport routes from \"./routes\";\r\n\r\nimport { ThemeProvider } from \"./ThemeContext\";\r\nimport { SidebarProvider } from \"../../contexts/SidebarContext\";\r\nimport { LayoutProvider } from \"../../contexts/LayoutContext\";\r\nimport ChartJsDefaults from \"../../utils/ChartJsDefaults\";\r\n\r\nimport { AuthProvider } from \"../../contexts/JWTContext\";\r\n// import { AuthProvider } from \"./contexts/FirebaseAuthContext\";\r\n// import { AuthProvider } from \"./contexts/Auth0Context\";\r\n// import { AuthProvider } from \"./contexts/CognitoContext\";\r\n\r\nconst App = () => {\r\n const content = useRoutes(routes);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import AxiosMockAdapter from \"axios-mock-adapter\";\r\n\r\nimport axios from \"../utils/axios\";\r\n\r\nconst axiosMockAdapter = new AxiosMockAdapter(axios, {\r\n delayResponse: 0,\r\n});\r\n\r\nexport default axiosMockAdapter;\r\n","import faker from \"faker\";\r\n\r\nimport mock from \"./adapter\";\r\n\r\nimport { User } from \"../types/user\";\r\nimport { verify, sign } from \"../utils/jwt\";\r\n\r\nconst JWT_SECRET = \"super-secret-key\";\r\nconst JWT_EXPIRES_IN = \"3 days\";\r\n\r\nconst users: User[] = [\r\n {\r\n id: \"a8553063-7bd5-45ed-adbe-db6f069a3802\",\r\n displayName: \"Lucy Lavender\",\r\n email: \"demo@bootlab.io\",\r\n password: \"unsafepassword\",\r\n avatar: \"/static/img/avatars/avatar-1.jpg\",\r\n },\r\n];\r\n\r\nfunction fakeRequest(time: number) {\r\n return new Promise((res) => setTimeout(res, time));\r\n}\r\n\r\nmock.onPost(\"/api/auth/sign-in\").reply(async (config) => {\r\n try {\r\n await fakeRequest(1000);\r\n\r\n const { email, password } = JSON.parse(config.data);\r\n const user = users.find((_user) => _user.email === email);\r\n\r\n if (!user) {\r\n return [\r\n 400,\r\n { message: \"There is no user corresponding to the email address.\" },\r\n ];\r\n }\r\n\r\n if (user.password !== password) {\r\n return [400, { message: \"Incorrect password\" }];\r\n }\r\n\r\n const accessToken = sign({ userId: user.id }, JWT_SECRET, {\r\n expiresIn: JWT_EXPIRES_IN,\r\n });\r\n\r\n return [200, { accessToken, user }];\r\n } catch (error) {\r\n console.error(error);\r\n return [500, { message: \"Internal server error\" }];\r\n }\r\n});\r\n\r\nmock.onPost(\"/api/auth/sign-up\").reply(async (config) => {\r\n try {\r\n await fakeRequest(1000);\r\n\r\n const { email, password, firstName, lastName } = JSON.parse(config.data);\r\n let user = users.find((_user) => _user.email === email);\r\n\r\n if (user) {\r\n return [\r\n 400,\r\n {\r\n message:\r\n \"There already exists an account with the given email address.\",\r\n },\r\n ];\r\n }\r\n\r\n user = {\r\n id: faker.datatype.uuid(),\r\n displayName: `${firstName} ${lastName}`,\r\n email,\r\n password,\r\n avatar: null,\r\n };\r\n\r\n const accessToken = sign({ userId: user.id }, JWT_SECRET, {\r\n expiresIn: JWT_EXPIRES_IN,\r\n });\r\n\r\n return [200, { accessToken, user }];\r\n } catch (error) {\r\n console.error(error);\r\n return [500, { message: \"Internal server error\" }];\r\n }\r\n});\r\n\r\nmock.onGet(\"/api/auth/my-account\").reply((config) => {\r\n try {\r\n const { Authorization } = config.headers!;\r\n\r\n if (!Authorization) {\r\n return [401, { message: \"Authorization token missing\" }];\r\n }\r\n\r\n const accessToken = (Authorization as string).split(\" \")[1];\r\n const data = verify(accessToken, JWT_SECRET);\r\n const userId = typeof data === \"object\" ? data?.userId : \"\";\r\n const user = users.find((_user) => _user.id === userId);\r\n\r\n if (!user) {\r\n return [401, { message: \"Invalid authorization token\" }];\r\n }\r\n\r\n return [200, { user }];\r\n } catch (error) {\r\n console.error(error);\r\n return [500, { message: \"Internal server error\" }];\r\n }\r\n});\r\n","const SlimEpaHeader = () => {\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 { SlimEpaHeader };\r\n","const SlimEpaFooter = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Copyright{\" \"}\r\n \r\n ©\r\n {\" \"}\r\n EPA\r\n 2022\r\n \r\n

\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport { SlimEpaFooter };\r\n","import \"react-app-polyfill/stable\";\r\n\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\n\r\nimport reportWebVitals from \"./utils/reportWebVitals\";\r\nimport { default as LeapApp } from \"./apps/leap/App\";\r\nimport { default as CircularEconomyApp } from \"./apps/circulareconomy/App\";\r\nimport { default as ThemeApp } from \"./apps/theme/App\";\r\n\r\nimport \"./mocks\";\r\nimport { SlimEpaHeader } from \"./layouts/SlimEpaHeader\";\r\nimport { SlimEpaFooter } from \"./layouts/SlimEpaFooter\";\r\n\r\n// if using \"/docs\" in the pathname, don't use React Router, and serve the server response normally\r\nif (process.env.REACT_APP_NAME === \"leap\") {\r\n if (window.location.pathname !== \"/docs\") {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n );\r\n }\r\n} else if (process.env.REACT_APP_NAME === \"circulareconomy\") {\r\n if (window.location.pathname !== \"/docs\") {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n );\r\n }\r\n} else if (process.env.REACT_APP_NAME === \"theme\") {\r\n if (window.location.pathname !== \"/docs\") {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n );\r\n }\r\n}\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}