{"version":3,"sources":["_assets/pieFullTanLogo.svg","_shared/ActionLink.js","_shared/AuthLayout.js","_shared/LoggedInLayout.js","_assets/pieSliceLogo.svg","_reducers/authReducer.js","_reducers/userReducer.js","_reducers/businessesReducer.js","_shared/_hooks/useAuthentication.js","_reducers/uiReducer.js","_shared/Header.js","_assets/foodDrinks.png","_shared/ErrorDisplay.js","Dashboard/DatePicker.js","_shared/TimePicker.js","_utils/_routes/AuthenticatedRoute.js","_assets/ellipse.svg","_shared/PaddedButton.js","i18n/index.js","_shared/_hooks/useApi.js","_utils/appSignal.js","_shared/_hooks/useApiResponse.js","_shared/_hooks/useUnauthorizedHandler.js","_utils/apiErrorHandler.js","_shared/_hooks/useProgress.js","_reducers/casesReducer.js","constants.js","_utils/removeEmptyStringValue.js","_shared/AttendanceDataCell.js","_shared/SiteFilterSelect.js","_shared/_hooks/useGoogleAnalytics.js","_assets/slicedPieTransparent.png","_shared/LoadingDisplay.js","Attendance/Attendance.js","_shared/_hooks/useCaseAttendanceData.js","webpack:///./src/_assets/editIcon.svg?0bb3","_assets/smallPie.png","AttendanceView/WeekPicker.js","AttendanceView/EditAttendanceModal.js","AttendanceView/AttendanceView.js","Dashboard/NEDashboardDefinitions.js","Dashboard/ILDashboardDefinitions.js","Dashboard/DashboardDefinitions.js","Dashboard/DashboardStats.js","_utils/constants.js","_assets/questionMark.svg","_assets/vector.svg","_assets/editIcon.svg","_shared/_components/CsvDownloader/CsvDownloader.js","Dashboard/DashboardTable.js","Dashboard/DashboardTitle.js","Dashboard/Notifications.js","Dashboard/Dashboard.js","_shared/_hooks/useCaseData.js","_shared/_hooks/useAdminData.js","_assets/pieWithSlice.png","ComingSoon/ComingSoon.js","GettingStarted/GettingStarted.js","Confirmation/Confirmation.js","PasswordReset/NewPassword.js","ResendToken/ResendToken.js","AuthStatusAlert/AuthStatusAlert.js","Login/Login.js","NotFound.js","ErrorBoundary/ErrorBoundary.js","CasesImport/utils.js","CasesImport/CasesImportReview.js","CasesImport/CasesImport.js","App.js","_reducers/rootReducer.js","configureStore.js","index.js"],"names":["ActionLink","_ref","onClick","_ref$text","text","_ref$classes","classes","children","_jsx","_Fragment","Button","e","preventDefault","className","concat","type","AuthLayout","backgroundImageClass","ContentComponent","contentComponent","useEffect","_window$MiniProfiler","window","MiniProfiler","pageTransition","location","useLocation","_useTranslation","useTranslation","t","i18n","_jsxs","Row","Col","md","xs","gutter","span","offset","changeLanguage","language","pathname","href","target","rel","alt","src","pieFullTanLogo","LoggedInLayout","title","Header","Breadcrumb","Item","auth","createSlice","name","initialState","token","localStorage","getItem","expiration","dayjs","format","reducers","addAuth","state","action","payload","unix","jwt_decode","exp","setItem","_objectSpread","removeAuth","removeItem","_auth$actions","actions","user","setUser","deleteUser","_user$actions","businesses","setBusinesses","_state","_toConsumableArray","deleteBusinesses","_businesses$actions","useAuthentication","useSelector","filteredCases","isLoading","progress","ui","setFilteredCases","setLoading","setProgress","deleteFilteredCases","_ui$actions","isAuthenticated","dispatch","useDispatch","_useState","useState","innerWidth","_useState2","_slicedToArray","windowWidth","setWindowWidth","setWidth","history","useHistory","_useState3","_useState4","menuOpen","setMenuOpen","lang","logout","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","fetch","method","credentials","headers","batch","t0","console","error","push","stop","apply","arguments","addEventListener","removeEventListener","pieSliceLogo","includes","mobileMenu","Menu","id","Divider","Dropdown","overlay","overlayStyle","width","trigger","onVisibleChange","visible","CloseOutlined","style","fontSize","MenuOutlined","renderMobileMenu","ErrorDisplay","foodDrinks","DatePicker","generatePicker","dayjsGenerateConfig","TimePicker","React","props","ref","Object","assign","picker","mode","undefined","displayName","AuthenticatedRoute","exact","path","routeProps","_objectWithoutProperties","_excluded","Route","Redirect","to","PaddedButton","_ref$type","_ref$shape","shape","_ref$size","size","_ref$htmlType","htmlType","resources","en","translation","es","use","LanguageDetector","initReactI18next","init","fallbackLng","supportedLngs","interpolation","prefix","suffix","escapeValue","defaultHeaders","Accept","fetchData","_x","_fetchData","data","onUnauthorized","onError","response","body","JSON","stringify","then","status","sent","abrupt","useApi","appSignal","get","post","put","patch","del","env","runtimeEnv","REACT_APP_APPSIGNAL_KEY","Appsignal","key","sendSpan","_ref$tags","tags","_ref$params","params","_ref$error","createSpan","setTags","setParams","setError","send","useApiResponse","_useApi","Error","useUnauthorizedHandler","makeRequest","_callee2","request","url","_request$headers","requestHeaders","result","_context2","useProgress","parseResult","reader","contentLength","receivedLength","chunks","_yield$reader$read","done","value","progressPercentage","chunksAll","position","_i","_chunks","chunk","getReader","read","length","Math","round","Uint8Array","set","TextDecoder","decode","parse","cases","setCaseData","updateCase","_action$payload","childId","updates","childIndex","findIndex","c","slice","_cases$actions","PIE_FOR_PROVIDERS_EMAIL","removeEmptyStringValue","obj","fromEntries","entries","filter","_ref2","AttendanceDataCell","_ref$record","record","columnIndex","columnDate","_ref$defaultValues","defaultValues","absenceType","attendances","_ref$updateAttendance","updateAttendanceData","setCheckInSelected","setCheckOutSelected","secondCheckInExists","keys","createTimePickerValues","_defaultValues$attend","_defaultValues$attend2","_defaultValues$attend3","_defaultValues$attend4","setTimeValue","firstCheckIn","absence","check_in","firstCheckOut","check_out","secondCheckIn","secondCheckOut","setAbsence","checkInSelected","_useState5","_useState6","checkOutSelected","_useState7","_useState8","showSecondCheckIn","setShowSecondCheckIn","_useState9","_useState10","timePickerValues","setTimePickerValues","handleChange","options","_options$update","update","_options$callback","callback","_options$secondCheckI","renderTimePicker","border","use12Hours","disabled","onChange","suffixIcon","toUpperCase","dateObject","dateString","_defaultValues$attend5","_defaultValues$attend6","prevValues","_defaultValues$attend7","_defaultValues$attend8","_defaultValues$attend9","_defaultValues$attend10","_defaultValues$attend11","_defaultValues$attend12","_defaultValues$attend13","_defaultValues$attend14","_defaultValues$attend15","_defaultValues$attend16","PlusOutlined","Checkbox","checked","Date","SiteFilterSelect","filterOpen","setFilterOpen","FilterFilled","Select","open","showSearch","allowClear","placeholder","onSelect","dropdownStyle","longestName","reduce","a","b","_a$name","_b$name","minWidth","maxWidth","setWidths","role","map","business","Option","useGoogleAnalytics","initGoogleAnalytics","_user$id","gtag","REACT_APP_GA_MEASUREMENT_ID","page_path","user_id","sendGAEvent","eventName","LoadingDisplay","slicedPie","Attendance","reduceTableData","res","flatMap","child","index","_child$id","_child$first_name","_child$last_name","_child$case_number","_child$business_name","_child$active","_child$id2","_child$first_name2","_child$last_name2","_child$case_number2","_child$business_name2","_child$active2","first_name","last_name","childFirstName","childLastName","cNumber","case_number","business_name","active","_useSelector","tableData","setTableData","isSuccessModalVisible","setSuccessModalVisible","errors","setErrors","saving","setSaving","reduceAttendanceData","acc","cv","_defineProperty","Array","attendanceData","setAttendanceData","_useState11","_useState12","columnDates","setColumnDates","latestAttendanceData","useRef","latestColumnDates","latestError","columnErrorIsPresent","values","current","find","row","some","attendance","newDayData","day","updatedAttendanceValue","attendanceIndex","attendanceUpdates","v","i","updatedReference","errorIsPresent","setColumns","generateColumns","prevData","handleDateChange","updatedDates","cols","_loop","dataIndex","disabledDate","valueOf","now","_","ds","bordered","color","render","firstName","lastName","ellipse","_useState13","_useState14","columns","on","handleSave","responses","formatAttendanceData","absenceRequests","attendanceBatch","_ref3","date","checkIn","checkOut","isAfter","add","indices","item","service_day","child_id","absence_type","serviceDay","formattedDates","Authorization","attendance_batch","forEach","_ref4","every","r","ok","hj","q","number","page_title","log","getCaseData","_ref5","_callee3","businessIds","parsedResponse","caseData","reducedAttendanceData","businessData","_args3","_context3","join","priorValue","newValue","_newValue$active_busi","active_business","Alert","message","closable","Table","dataSource","pagination","virtual","sticky","scroll","x","y","loading","delay","spinning","indicator","Modal","onCancel","footer","extend","customParseFormat","_path","_extends","bind","source","prototype","hasOwnProperty","call","this","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgEditIcon","svgRef","titleId","height","viewBox","xmlns","d","ForwardRef","WeekPicker","dateSelected","_ref$hasPrev","hasPrev","_ref$hasNext","hasNext","firstDay","weekday","lastDay","LeftOutlined","borderColor","toLowerCase","RightOutlined","EditAttendanceModal","_titleData$columnDate","_titleData$columnDate2","_titleData$columnDate3","_ref$editAttendanceMo","editAttendanceModalData","_ref$handleModalSave","handleModalSave","_ref$modalButtonDisab","modalButtonDisabled","_ref$setEditAttendanc","setEditAttendanceModalData","_ref$setUpdatedAttend","setUpdatedAttendanceData","_ref$titleData","titleData","okButtonProps","onOk","okText","childName","toLocaleLowerCase","maskClosable","useBreakpoint","Grid","AttendanceView","screens","_useSelector2","setDateSelected","updatedAttendanceData","setModalButtonDisabled","updatedData","currentAttendance","_record$serviceDays$","_record$serviceDays$$","updatedAttendance","entry","updatedKeys","currentKeys","updatedValue","mergedValue","serviceDays","showWeekends","setShowWeekends","dateColumns","limit","monthDate","matchingServiceDay","RegExp","test","split","handleEditAttendance","EditIcon","checkInCheckOutTime","totalTimeInCare","floor","Number","total_time_in_care","switch_date","service_day_new_tags","full_time","part_time","old_tags","tag","amount","count","parseInt","new_tags","tag_type","set_tags","businessName","getServiceDays","addServiceDay","reducedData","_args","previousValue","currentValue","_currentValue$child","isInactive","_checkIn","makeValidDate","toString","isValid","service_day_attributes","_response","_response2","_response3","warningMessage","line","sm","right","marginBottom","marginTop","Space","direction","marginRight","newDate","date_selected","smallPie","_callee4","_context4","setTimeout","NEDashboardDefinitions","activeKey","setActiveKey","Panel","Collapse","ghost","header","forceRender","Tag","charAt","ArrowUpOutlined","ILDashboardDefinitions","titleWithDescription","display","flex","justifyContent","flexDirection","alignItems","DashboardDefinitions","DashboardStats","summaryData","xl","lg","List","renderItem","Typography","Text","Tooltip","definition","InfoCircleOutlined","stat","isArray","subStat","attendanceCategories","AHEADOFSCHEDULE","ONTRACK","SUREBET","ATRISK","WILLNOTMEET","NOTENOUGHINFO","fullDayCategories","EXCEEDEDLIMIT","CsvDownloader","filename","CSVLink","separator","enclosingCharacter","asyncOnClick","DashboardTable","_selectedChild$child","_selectedChild$child2","userState","dateFilterValue","isMIModalVisible","setIsMIModalVisible","isAUModalVisible","setIsAUModalVisible","selectedChild","setSelectedChild","effectiveDate","setEffectiveDate","expirationDate","setExpirationDate","inactiveDate","setInactiveDate","activeDate","setActiveDate","_useState15","_useState16","inactiveReason","setInactiveReason","_useState17","_useState18","sortedRows","setSortedRows","_useState19","_useState20","aUErrorMessage","setAUErrorMessage","currencyFormatter","Intl","NumberFormat","currency","minimumFractionDigits","columnSorter","onHeaderCell","fontWeight","datePickerStyle","isNotApproved","approvalEffectiveOn","_ref2$name","_ref2$children","hasDefinition","questionMark","sortDirections","renderDollarAmount","num","replaceText","absences_dates","replace","render_absences_dates","dates","last_date","at","splited_date","trim","month","is_admin","exec","renderActions","_text","handleInactiveClick","editIcon","vector","handleEditAuthClick","handleModalCancel","handleMIModalOk","last_inactive_date","inactive_reason","last_active_date","reason_selected","auModalErrorMessage","error_message","handleAUModalOk","current_effective_date","current_expiration_date","approvalExpiresOn","new_effective_date","new_expiration_date","columnConfig","ne","sorter","match","fullDays","fullday","renderCell","partDays","hours","_record$partDays","_record$partDays2","control_date","info","absences","hoursAttended","familyFee","earnedRevenue","estimatedRevenue","fullDaysRemaining","fullDaysAuthorized","hoursRemaining","_record$totalPartDays","remainingPartDays","totalPartDays","hoursAuthorized","default","attendanceRate","rate","createTag","toFixed","riskCategory","guaranteedRevenue","sort","_env$REACT_APP_WHITEL","REACT_APP_WHITELIST_EXPORT_CSV","email","shouldAllowToExport","locale","triggerDesc","triggerAsc","cancelSort","full_name","effective_date","expiration_date","renderAuthInfo","DashboardTitle","setDates","makeMonth","getDashboardData","matchAndReplaceDate","renderMonthSelector","_dates$dateFilterValu","_dates$dateFilterMont","filterDate","dateFilterMonths","k","displayDate","Title","asOf","_dates$dateFilterValu3","_dates$dateFilterValu2","Notifications","messages","setShowModal","_ref$isModal","isModal","borderTop","emptyText","MailOutlined","created_at","expires_on","ExclamationCircleOutlined","Dashboard","_user$state","identifyHotjar","useHotjar","_useCaseData","userResponse","childCase","_childCase$id","_childCase$nebraska_d","_childCase$first_name","_childCase$last_name","_childCase$nebraska_d2","_business$name","_childCase$nebraska_d3","_childCase$nebraska_d4","_childCase$nebraska_d5","_childCase$nebraska_d6","_childCase$nebraska_d7","_childCase$nebraska_d8","_childCase$nebraska_d9","_childCase$active","_childCase$nebraska_d10","_childCase$nebraska_d11","_childCase$nebraska_d12","_childCase$nebraska_d13","_childCase$nebraska_d14","_childCase$nebraska_d15","_childCase$id2","_childCase$first_name2","_childCase$last_name2","_childCase$illinois_d","_business$name2","_childCase$illinois_d2","_childCase$illinois_d3","_childCase$illinois_d4","_childCase$illinois_d5","_childCase$illinois_d6","_childCase$active2","_childCase$illinois_d7","_childCase$illinois_d8","_childCase$illinois_d9","_childCase$illinois_d10","nebraska_dashboard_case","earned_revenue","estimated_revenue","full_days","attendance_risk","part_days","total_part_days","remaining_part_days","hours_attended","family_fee","hours_authorized","hours_remaining","full_days_authorized","full_days_remaining","approval_effective_on","approval_expires_on","illinois_dashboard_case","attendance_rate","guaranteed_revenue","maxApprovedRevenue","max_approved_revenue","potentialRevenue","potential_revenue","fullDaysAttended","full_days_attended","partDaysAttended","part_days_attended","childInfo","reduceAdminData","_item$id","_item$active","_item$effective_on","_item$expires_on","_item$first_name","_item$last_name","_item$case_number","_item$business_name","_item$part_time$toStr","_item$full_time$toStr","_item$absences_count$","_item$absences$split","_item$absences","_item$max_hours_per_w","_item$family_fee","effective_on","absences_count","max_hours_per_week","summaryDataTotalsConfig","earnedRevenueTotal","estimatedRevenueTotal","maxRevenueTotal","totalApprovedTotal","totalApprovedRevenueWithFamilyFeeTotal","guaranteedRevenueTotal","potentialRevenueTotal","maxApprovedRevenueTotal","attendanceRateTotal","summaryDataTotals","setSummaryTotals","setSummaryData","notificationMessages","setNotificationMessages","showNotificationsModal","setShowNotificationsModal","handleDefinitionsPanel","generateSummaryData","td","totals","toLocaleDateString","year","toISOString","reduceDates","fd","dateFrom","dateTo","reduceDate","date_name","user1","user2","as_of","firstMonth","currentDate","numOfMonths","getMonth","getFullYear","setDate","_ref2$businessIds","_ref2$filterDate","baseUrl","_tableData","updatedSummaryDataTotals","totalApprovedWithFamilyFeeTotal","setTotal","total","String","max_revenue","total_approved","getUserData","_resp$id","resp","json","getBusinessData","getNotifications","REACT_APP_DASHBOARD_NOTIFICATIONS","document","getElementById","click","cancelButtonProps","ComingSoon","pieWithSlice","GettingStarted","getUser","cards","description","icon","BusinessIcon","CloudUploadIcon","PlaylistAddIcon","AssignmentIcon","greeting_name","level","card","idx","Card","Icon","Confirmation","isSubscribed","confirm","confirmationToken","authToken","errorMessage","_yield$response$json","URLSearchParams","search","attribute","propTypes","PropTypes","object","isRequired","NewPassword","verifyPasswordToken","onFinish","password","resetToken","reset_password_token","password_confirmation","context","Form","layout","wrapperCol","label","rules","required","pattern","hasFeedback","Input","Password","dependencies","getFieldValue","validator","rule","Promise","reject","resolve","ResendToken","ContactUs","resendToken","contactUs","ConfirmationAlert","resendConfirmation","success","Link","AuthStatusAlert","errorMessages","unauthenticated","already_confirmed","confirmation_period_expired","unconfirmed","not_found","invalid","not_found_in_database","confirmation_token","blank","expired","attributeError","Login","defaultProps","string","NotFound","ErrorBoundary","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","hasError","_createClass","errorInfo","_this$state$user","userId","setState","Component","ErrorBoundaryComponent","connect","withTranslation","parsers","csv","fileContent","Papa","xlsx","workbook","readAsBinaryString","sheetName","SheetNames","worksheet","Sheets","utils","sheet_to_json","blankrows","parserTypes","getColumns","SSF","responsive","randomHash","array","randomString","random","substring","sha1","CasesImportReview","kids","CasesImport","setKids","showIcon","accept","file","files","nameArray","extension","getType","FileReader","onload","_columns$index","kid","dateOfBirth","readAsArrayBuffer","spreadsheet","download","Routes","initHotjar","REACT_APP_HOTJAR_ID","REACT_APP_HOTJAR_SV","script","createElement","async","NODE_ENV","setAttribute","head","appendChild","Switch","component","App","ConfigProvider","theme","colorPrimary","fontFamily","Router","rootReducer","combineReducers","store","configureStore","reducer","devTools","process","ReactDOM","Provider"],"mappings":"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","file":"static/js/main.94c43d41.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/pieFullTanLogo.5e6ca8cd.svg\";","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Button } from 'antd'\n\nexport function ActionLink({ onClick, text = '', classes = '', children }) {\n const handleClick = e => {\n e.preventDefault()\n onClick()\n }\n return (\n <>\n \n \n )\n}\n\nActionLink.propTypes = {\n onClick: PropTypes.func.isRequired,\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n children: PropTypes.node,\n classes: PropTypes.string\n}\n","import React, { useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation } from 'react-router-dom'\nimport pieFullTanLogo from '_assets/pieFullTanLogo.svg'\nimport '_assets/styles/layouts.css'\nimport { ActionLink } from '_shared/ActionLink'\nimport { Row, Col } from 'antd'\n\nexport function AuthLayout({\n backgroundImageClass,\n contentComponent: ContentComponent\n}) {\n useEffect(() => {\n window.MiniProfiler?.pageTransition()\n }, [])\n let location = useLocation()\n const { t, i18n } = useTranslation()\n\n return (\n \n \n \n \n \n
\n \n i18n.changeLanguage(i18n.language === 'en' ? 'es' : 'en')\n }\n text={\n \n {i18n.language === 'en' ? 'Español' : 'English'}\n \n }\n classes=\"text-right underline p-0 h-auto grow\"\n />\n {location.pathname === '/login' ||\n location.pathname === '/signup' ? (\n
\n \n \n \n
\n ) : (\n \n )}\n
\n
\n \n
\n \n
\n \n
\n )\n}\n\nAuthLayout.propTypes = {\n backgroundImageClass: PropTypes.string,\n contentComponent: PropTypes.func\n}\n","import React, { useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { Breadcrumb } from 'antd'\nimport { Header } from '_shared'\n\nexport function LoggedInLayout({ children, title }) {\n useEffect(() => {\n window.MiniProfiler?.pageTransition()\n }, [])\n\n return (\n
\n
\n
\n {title && (\n \n {title}\n \n )}\n
\n {children}\n
\n
\n
\n )\n}\n\nLoggedInLayout.propTypes = {\n children: PropTypes.element,\n title: PropTypes.string\n}\n","export default __webpack_public_path__ + \"static/media/pieSliceLogo.fc513c91.svg\";","import dayjs from 'dayjs'\nimport jwt_decode from 'jwt-decode'\nimport { createSlice } from '@reduxjs/toolkit'\n\n/*\n The use of .format on dayjs returns the ISO8601 string.\n This is an arbitrary format decision; Redux Toolkit won't store\n non-serializable data, so we need to turn it into SOME string\n*/\n\nconst initialAuthState = () => {\n const token = localStorage.getItem('pie-token')\n const expiration = localStorage.getItem('pie-expiration')\n return {\n token,\n expiration: expiration || dayjs().format()\n }\n}\n\nconst auth = createSlice({\n name: 'auth',\n initialState: initialAuthState(),\n reducers: {\n addAuth(state, action) {\n const token = action.payload\n /*\n JWT Decoder returns UNIX timestamp in seconds, so we need to use .unix to parse it\n */\n const expiration = dayjs.unix(jwt_decode(token).exp).format()\n localStorage.setItem('pie-token', token)\n localStorage.setItem('pie-expiration', expiration)\n return {\n ...state,\n token,\n expiration\n }\n },\n removeAuth(state) {\n localStorage.removeItem('pie-token')\n localStorage.removeItem('pie-expiration')\n return {\n ...state,\n token: null,\n expiration: dayjs().format()\n }\n }\n }\n})\n\nexport const { addAuth, removeAuth } = auth.actions\nexport default auth.reducer\n","import { createSlice } from '@reduxjs/toolkit'\n\nconst initialState = {}\n\nconst user = createSlice({\n name: 'user',\n initialState,\n reducers: {\n setUser(state, action) {\n const user = action.payload\n\n return {\n ...state,\n ...user\n }\n },\n deleteUser() {\n return initialState\n }\n }\n})\n\nexport const { setUser, deleteUser } = user.actions\nexport default user.reducer\n","import { createSlice } from '@reduxjs/toolkit'\n\nconst initialState = []\n\nconst businesses = createSlice({\n name: 'businesses',\n initialState,\n reducers: {\n setBusinesses(_state, action) {\n const businesses = action.payload\n return [...businesses]\n },\n deleteBusinesses() {\n return initialState\n }\n }\n})\n\nexport const { setBusinesses, deleteBusinesses } = businesses.actions\nexport default businesses.reducer\n","import dayjs from 'dayjs'\nimport { useSelector } from 'react-redux'\n\nexport function useAuthentication() {\n const auth = useSelector(state => state.auth)\n /*\n if the token exists and the expiration is not later than today, we're\n going to let the user visit any page that uses this hook as a gatekeeper;\n any page that has an API call will return a 403 Forbidden, which will\n trigger a logout (see any call of removeAuth() that happens after an API\n call, as well as in the useUnauthorizedHandler hook)\n */\n return !!auth.token && !!auth.expiration && dayjs(auth.expiration) > dayjs()\n}\n","import { createSlice } from '@reduxjs/toolkit'\n\nconst initialState = {\n filteredCases: [],\n isLoading: false,\n progress: null\n}\n\nconst ui = createSlice({\n name: 'ui',\n initialState,\n reducers: {\n setFilteredCases(state, action) {\n const filteredCases = action.payload\n return { ...state, filteredCases: filteredCases }\n },\n setLoading(state, action) {\n const isLoading = action.payload\n return {\n ...state,\n isLoading\n }\n },\n setProgress(state, action) {\n const progress = action.payload\n\n return {\n ...state,\n progress\n }\n },\n deleteFilteredCases() {\n return initialState.filteredCases\n }\n }\n})\n\nexport const {\n setFilteredCases,\n setLoading,\n setProgress,\n deleteFilteredCases\n} = ui.actions\nexport default ui.reducer\n","import React, { useEffect, useState } from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport pieSliceLogo from '_assets/pieSliceLogo.svg'\nimport { Button, Divider, Dropdown, Menu } from 'antd'\nimport { MenuOutlined, CloseOutlined } from '@ant-design/icons'\nimport { useTranslation } from 'react-i18next'\nimport { batch, useDispatch } from 'react-redux'\nimport { removeAuth } from '_reducers/authReducer'\nimport { deleteUser } from '_reducers/userReducer'\nimport { deleteBusinesses } from '_reducers/businessesReducer'\nimport { useAuthentication } from '_shared/_hooks/useAuthentication'\nimport { deleteFilteredCases } from '_reducers/uiReducer'\nimport '_assets/styles/button-header.css'\n\nexport function Header() {\n const isAuthenticated = useAuthentication()\n const dispatch = useDispatch()\n const { t, i18n } = useTranslation()\n const [windowWidth, setWindowWidth] = useState(window.innerWidth)\n const setWidth = () => setWindowWidth(window.innerWidth)\n const history = useHistory()\n const [menuOpen, setMenuOpen] = useState(false)\n let location = useLocation()\n\n const changeLanguage = lang => i18n.changeLanguage(lang)\n\n const logout = async () => {\n try {\n await fetch('/logout', {\n method: 'DELETE',\n credentials: 'include',\n headers: {}\n })\n batch(() => {\n dispatch(deleteFilteredCases())\n dispatch(deleteBusinesses())\n dispatch(deleteUser())\n dispatch(removeAuth())\n })\n } catch (error) {\n console.error('Error al cerrar sesión:', error)\n }\n history.push('/login')\n }\n\n const renderDesktopMenu = () => (\n
\n {i18n.language === 'es' ? (\n \n ) : (\n \n )}\n {isAuthenticated && (\n \n )}\n
\n )\n\n const renderMobileMenu = () => {\n const mobileMenu = (\n \n \n {isAuthenticated && (\n {\n history.push('/dashboard')\n setMenuOpen(false)\n }}\n >\n \n {t('dashboard')}\n \n \n )}\n \n \n {isAuthenticated && (\n {\n history.push('/attendance')\n setMenuOpen(false)\n }}\n >\n \n {t('attendance')}\n \n \n )}\n \n \n \n {isAuthenticated && (\n \n )}\n \n {i18n.language === 'es' ? (\n \n {\n changeLanguage('en')\n setMenuOpen(false)\n }}\n >\n {t('english')}\n \n \n ) : (\n \n {\n changeLanguage('es')\n setMenuOpen(false)\n }}\n >\n {t('spanish')}\n \n \n )}\n \n )\n\n return (\n {\n setMenuOpen(visible)\n }}\n >\n {menuOpen ? (\n \n ) : (\n \n )}\n \n )\n }\n\n // listening for width changes of the window to make the site responsive\n // unfortunately, ant-design breakpoints didn't include 768 <=, but 768 >=\n useEffect(() => {\n window.addEventListener('resize', setWidth)\n\n return () => window.removeEventListener('resize', setWidth)\n }, [])\n\n return (\n
\n \n history.push('/dashboard')}\n />\n \n {windowWidth > 768 ? (\n
\n
\n \n history.push('/dashboard')}\n >\n {t('dashboard')}\n \n
\n \n history.push('/attendance')}\n >\n {t('attendance')}\n \n
\n \n \n ) : (\n
Pie for Providers
\n )}\n {windowWidth > 768 ? renderDesktopMenu() : renderMobileMenu()}\n
\n )\n}\n","export default __webpack_public_path__ + \"static/media/foodDrinks.96862fc2.png\";","import React from 'react'\nimport { useHistory } from 'react-router-dom'\nimport { useTranslation } from 'react-i18next'\nimport { Button } from 'antd'\nimport { Header } from './'\nimport foodDrinks from '../_assets/foodDrinks.png'\n\nexport function ErrorDisplay() {\n const { t } = useTranslation()\n const history = useHistory()\n\n return (\n
\n
\n
\n
\n

{t('oops')}

\n

{t('notFound')}

\n history.push('/')}\n >\n {t('goBack')}\n \n
\n
\n {t('notFoundImageAltText')}\n
\n
\n
\n )\n}\n","import dayjsGenerateConfig from 'rc-picker/lib/generate/dayjs'\nimport generatePicker from 'antd/lib/date-picker/generatePicker'\n\nconst DatePicker = generatePicker(dayjsGenerateConfig)\n\nexport default DatePicker\n","import * as React from 'react'\nimport DatePicker from '../Dashboard/DatePicker'\n\nexport const TimePicker = React.forwardRef((props, ref) => {\n return React.createElement(\n DatePicker,\n Object.assign({}, props, { picker: 'time', mode: undefined, ref: ref })\n )\n})\n\nTimePicker.displayName = 'TimePicker'\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Redirect, Route } from 'react-router-dom'\nimport { LoggedInLayout } from '_shared'\nimport { useAuthentication } from '_shared/_hooks/useAuthentication'\n\nexport default function AuthenticatedRoute({\n children,\n exact,\n path,\n title,\n // permissions,\n ...routeProps\n}) {\n const isAuthenticated = useAuthentication()\n\n exact = !!exact\n if (!isAuthenticated) {\n return \n // TODO: Permissions & expired passwords?\n // } else if (SessionService.getNeedsPasswordChange()) {\n // return \n // } else if (!PermissionService.can(...permissions)) {\n // return \n } else {\n return (\n \n {children}\n \n )\n }\n}\n\nAuthenticatedRoute.propTypes = {\n children: PropTypes.element.isRequired,\n exact: PropTypes.bool,\n path: PropTypes.string.isRequired,\n title: PropTypes.string\n // permissions: PropTypes.arrayOf(PropTypes.string)\n}\n","export default __webpack_public_path__ + \"static/media/ellipse.ba34ef1b.svg\";","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Button } from 'antd'\n\nexport function PaddedButton({\n type = 'primary',\n shape = 'round',\n size = 'middle',\n htmlType = 'submit',\n classes = '',\n text,\n ...props\n}) {\n return (\n \n {text}\n \n )\n}\n\nPaddedButton.propTypes = {\n type: PropTypes.string,\n text: PropTypes.string.isRequired,\n classes: PropTypes.string,\n shape: PropTypes.string,\n size: PropTypes.string,\n htmlType: PropTypes.string\n}\n","import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport LanguageDetector from 'i18next-browser-languagedetector'\nimport en from './locales/en'\nimport es from './locales/es'\n\nconst resources = {\n en: {\n translation: en\n },\n es: {\n translation: es\n }\n}\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n resources,\n fallbackLng: 'en',\n supportedLngs: ['en', 'es'],\n interpolation: {\n prefix: '{',\n suffix: '}',\n escapeValue: false\n }\n })\n\nexport default i18n\n","const GET = 'GET'\nconst POST = 'POST'\nconst PUT = 'PUT'\nconst DEL = 'DELETE'\nconst PATCH = 'PATCH'\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n}\n\nasync function fetchData({\n path,\n method,\n data,\n headers,\n onUnauthorized,\n onError\n}) {\n const response = await fetch(path, {\n method: method,\n body: data ? JSON.stringify(data) : null,\n headers: headers ? headers : defaultHeaders\n }).then(response => {\n if (response.status === 204) {\n return {}\n } else if (response.status === 401 && !!onUnauthorized) {\n return onUnauthorized(response)\n } else if (response.status >= 500 && !!onError) {\n return onError(response)\n } else {\n return response\n }\n })\n\n return response\n}\n\nexport function useApi(onUnauthorized, onError) {\n return {\n get: (path, headers) =>\n fetchData({\n path: path,\n method: GET,\n data: null,\n headers: headers,\n onUnauthorized: onUnauthorized,\n onError: onError\n }),\n post: (path, data, headers) =>\n fetchData({\n path: path,\n method: POST,\n data: data,\n headers: headers,\n onUnauthorized: onUnauthorized,\n onError: onError\n }),\n put: (path, data, headers) =>\n fetchData({\n path: path,\n method: PUT,\n data: data,\n headers: headers,\n onUnauthorized: onUnauthorized,\n onError: onError\n }),\n patch: (path, data, headers) =>\n fetchData({\n path: path,\n method: PATCH,\n data: data,\n headers: headers,\n onUnauthorized: onUnauthorized,\n onError: onError\n }),\n del: (path, headers) =>\n fetchData({\n path: path,\n method: DEL,\n data: null,\n headers: headers,\n onUnauthorized: onUnauthorized,\n onError: onError\n })\n }\n}\n\nexport default useApi\n","import Appsignal from '@appsignal/javascript'\nimport runtimeEnv from '@mars/heroku-js-runtime-env'\n\nconst env = runtimeEnv()\nlet appSignal\nif (env.REACT_APP_APPSIGNAL_KEY) {\n appSignal = new Appsignal({\n key: env.REACT_APP_APPSIGNAL_KEY\n })\n}\n\nexport const sendSpan = ({ tags = {}, params = {}, error = {} }) => {\n if (appSignal) {\n const span = appSignal.createSpan(span => {\n span.setTags(tags)\n span.setParams(params)\n return span.setError(error)\n })\n\n appSignal.send(span)\n }\n}\n\nexport default appSignal\n","import i18n from 'i18n'\nimport useApi from '_shared/_hooks/useApi'\nimport apiErrorHandler from '_utils/apiErrorHandler'\nimport useUnauthorizedHandler from '_shared/_hooks/useUnauthorizedHandler'\n\nexport const useApiResponse = () => {\n const { get, post, put, del, patch } = useApi(\n useUnauthorizedHandler(),\n apiErrorHandler()\n )\n\n const makeRequest = async request => {\n const { type, url, data, headers: requestHeaders = {} } = request\n\n const headers = {\n ...requestHeaders,\n Accept: 'application/vnd.pieforproviders.v1+json',\n 'Content-Type': 'application/json',\n 'Accept-Language': i18n.language\n }\n\n const result = (async () => {\n switch (type) {\n case 'patch':\n return await patch(url, data, headers)\n case 'post':\n return await post(url, data, headers)\n case 'put':\n return await put(url, data, headers)\n case 'del':\n return await del(url, headers)\n case 'get':\n default:\n return await get(url, headers)\n }\n })()\n return result\n }\n\n return {\n makeRequest: makeRequest\n }\n}\n","import { useHistory } from 'react-router-dom'\nimport { useDispatch } from 'react-redux'\nimport { removeAuth } from '_reducers/authReducer'\nimport { sendSpan } from '../../_utils/appSignal'\n\nexport default function useUnauthorizedHandler() {\n const dispatch = useDispatch()\n let history = useHistory()\n\n const handler = response => {\n sendSpan({\n params: response,\n error: new Error('API Unauthorized 400 error')\n })\n\n dispatch(removeAuth())\n history.push('/login')\n return response\n }\n\n return handler\n}\n","import { sendSpan } from './appSignal'\n\nexport default function apiErrorHandler() {\n const handler = response => {\n sendSpan({ params: response, error: new Error('API 500 error') })\n\n return response\n }\n\n return handler\n}\n","import { setProgress } from '_reducers/uiReducer'\nimport { useDispatch } from 'react-redux'\n\nexport function useProgress() {\n const dispatch = useDispatch()\n // this logic comes from: https://javascript.info/fetch-progress\n const parseResult = async response => {\n const reader = response.body.getReader()\n const contentLength = +response.headers.get('Content-Length')\n\n let receivedLength = 0\n let chunks = []\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { done, value } = await reader.read()\n\n if (done) {\n break\n }\n\n chunks.push(value)\n receivedLength += value.length\n const progressPercentage = contentLength\n ? Math.round((receivedLength / contentLength) * 100)\n : 100\n\n dispatch(setProgress(progressPercentage))\n }\n\n let chunksAll = new Uint8Array(receivedLength)\n let position = 0\n\n for (let chunk of chunks) {\n chunksAll.set(chunk, position)\n position += chunk.length\n }\n\n let result = new TextDecoder('utf-8').decode(chunksAll)\n\n return JSON.parse(result)\n }\n\n return { parseResult }\n}\n","import { createSlice } from '@reduxjs/toolkit'\n\nconst initialState = []\n\nconst cases = createSlice({\n name: 'cases',\n initialState,\n reducers: {\n setCaseData(_state, action) {\n const cases = action.payload\n return [...cases]\n },\n updateCase(state, action) {\n const { childId, updates } = action.payload\n const childIndex = state.findIndex(c => c.id === childId)\n\n return [\n ...state.slice(0, childIndex),\n { ...state[childIndex], ...updates },\n ...state.slice(childIndex + 1)\n ]\n }\n }\n})\n\nexport const { setCaseData, updateCase } = cases.actions\nexport default cases.reducer\n","export const PIE_FOR_PROVIDERS_EMAIL = 'team@pieforproviders.com'\n","export const removeEmptyStringValue = obj =>\n Object.fromEntries(Object.entries(obj).filter(([_, v]) => v !== ''))\n\nexport default removeEmptyStringValue\n","import React, { useEffect, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { Button, Checkbox } from 'antd'\nimport dayjs from 'dayjs'\nimport { TimePicker } from '../_shared'\nimport { CloseOutlined, PlusOutlined } from '@ant-design/icons'\nimport { useTranslation } from 'react-i18next'\nimport '_assets/styles/checkbox-overrides.css'\nimport '_assets/styles/timepicker-overrides.css'\n\nexport default function AttendanceDataCell({\n record = {},\n columnIndex,\n columnDate,\n defaultValues = { absenceType: null, attendances: [] },\n updateAttendanceData = () => {}\n}) {\n useEffect(() => {\n setCheckInSelected(false)\n setCheckOutSelected(false)\n }, [record])\n\n const { t } = useTranslation()\n const secondCheckInExists = () =>\n Object.keys(defaultValues.attendances[1] || {}).length > 0\n\n const createTimePickerValues = () => {\n const setTimeValue = value =>\n value ? dayjs(value, 'YYYY-MM-DD hh:mm') : null\n return {\n firstCheckIn: absence\n ? null\n : setTimeValue(defaultValues.attendances[0]?.check_in),\n firstCheckOut: absence\n ? null\n : setTimeValue(defaultValues.attendances[0]?.check_out),\n secondCheckIn: absence\n ? null\n : setTimeValue(defaultValues.attendances[1]?.check_in),\n secondCheckOut: absence\n ? null\n : setTimeValue(defaultValues.attendances[1]?.check_out)\n }\n }\n const [absence, setAbsence] = useState(defaultValues.absenceType || null)\n const [checkInSelected, setCheckInSelected] = useState(false)\n const [checkOutSelected, setCheckOutSelected] = useState(false)\n const [showSecondCheckIn, setShowSecondCheckIn] = useState(\n secondCheckInExists() && !absence\n )\n const [timePickerValues, setTimePickerValues] = useState(\n createTimePickerValues()\n )\n\n const handleChange = options => {\n const { update = {}, callback = () => {}, secondCheckIn = false } = options\n updateAttendanceData({ update, record, columnIndex, secondCheckIn })\n callback()\n }\n\n useEffect(() => {\n if (defaultValues.attendances.length > 0) {\n setTimePickerValues(createTimePickerValues())\n setShowSecondCheckIn(secondCheckInExists() && !absence)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [absence])\n\n useEffect(() => {\n if (defaultValues.attendances.length > 0) {\n setTimePickerValues(createTimePickerValues())\n setShowSecondCheckIn(secondCheckInExists() && !absence)\n setAbsence(defaultValues.absenceType || null)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultValues])\n\n const renderTimePicker = options => {\n return (\n \n )\n }\n return (\n
\n
\n
\n

\n {t('checkIn').toUpperCase()}\n

\n {renderTimePicker({\n value: timePickerValues.firstCheckIn,\n disabled: absence,\n onChange: (dateObject, dateString) =>\n dateObject\n ? handleChange({\n update: {\n check_in:\n (defaultValues.attendances[0]?.check_in?.slice(0, 11) ||\n '') + dateString\n },\n callback: () => {\n setTimePickerValues(prevValues => ({\n ...prevValues,\n firstCheckIn: dateObject\n }))\n setCheckInSelected(true)\n }\n })\n : handleChange({\n update: { check_in: '' },\n callback: () => {\n setTimePickerValues(prevValues => ({\n ...prevValues,\n firstCheckIn: null\n }))\n setCheckInSelected(false)\n }\n })\n })}\n
\n
\n

\n {t('checkOut').toUpperCase()}\n

\n {renderTimePicker({\n value: timePickerValues.firstCheckOut,\n disabled: absence,\n onChange: (dateObject, dateString) =>\n dateObject\n ? handleChange({\n update: {\n check_out:\n ((\n defaultValues.attendances[0]?.check_out ||\n defaultValues.attendances[0]?.check_in\n )?.slice(0, 11) || '') + dateString\n },\n callback: () => {\n setTimePickerValues(prevValues => ({\n ...prevValues,\n firstCheckOut: dateObject\n }))\n setCheckOutSelected(true)\n }\n })\n : handleChange({\n update: { check_out: '' },\n callback: () => {\n setTimePickerValues(prevValues => ({\n ...prevValues,\n firstCheckOut: null\n }))\n setCheckOutSelected(false)\n }\n })\n })}\n
\n
\n {(timePickerValues.firstCheckIn ||\n timePickerValues.firstCheckOut) && (\n {\n handleChange({\n update: {\n absenceType: null,\n check_in: null,\n check_out: null\n },\n callback: () =>\n setTimePickerValues(prevValues => ({\n ...prevValues,\n ...{\n firstCheckIn: null,\n firstCheckOut: null\n }\n })),\n secondCheckIn: false\n })\n }}\n >\n \n

{t('removeCheckInTime')}

\n \n )}\n
\n
\n
\n {showSecondCheckIn ? (\n
\n
\n

\n {t('checkIn').toUpperCase()}\n

\n {renderTimePicker({\n value: timePickerValues.secondCheckIn,\n onChange: (dateObject, dateString) =>\n dateObject\n ? handleChange({\n update: {\n check_in:\n (defaultValues.attendances[1]?.check_in?.slice(\n 0,\n 11\n ) ||\n defaultValues.attendances[0]?.check_in?.slice(\n 0,\n 11\n ) ||\n '') + dateString\n },\n callback: () =>\n setTimePickerValues(prevValues => ({\n ...prevValues,\n secondCheckIn: dateObject\n })),\n secondCheckIn: true\n })\n : handleChange({\n update: { check_in: '' },\n callback: () =>\n setTimePickerValues(prevValues => ({\n ...prevValues,\n secondCheckIn: null\n })),\n secondCheckIn: true\n })\n })}\n
\n
\n

\n {t('checkOut').toUpperCase()}\n

\n {renderTimePicker({\n value: timePickerValues.secondCheckOut,\n onChange: (dateObject, dateString) =>\n dateObject\n ? handleChange({\n update: {\n check_out:\n (defaultValues.attendances[1]?.check_out?.slice(\n 0,\n 11\n ) ||\n defaultValues.attendances[0]?.check_out?.slice(\n 0,\n 11\n ) ||\n '') + dateString\n },\n callback: () =>\n setTimePickerValues(prevValues => ({\n ...prevValues,\n secondCheckOut: dateObject\n })),\n secondCheckIn: true\n })\n : handleChange({\n update: { check_out: '' },\n callback: () =>\n setTimePickerValues(prevValues => ({\n ...prevValues,\n secondCheckOut: null\n })),\n secondCheckIn: true\n })\n })}\n
\n
\n {\n handleChange({\n update: {\n absenceType: null,\n check_in: null,\n check_out: null\n },\n callback: () =>\n setTimePickerValues(prevValues => ({\n ...prevValues,\n ...{\n secondCheckIn: null,\n secondCheckOut: null\n }\n })),\n secondCheckIn: true\n })\n setShowSecondCheckIn(false)\n }}\n >\n \n

{t('removeCheckInTime')}

\n \n
\n
\n ) : (\n
\n setShowSecondCheckIn(true)}\n >\n \n

{t('addCheckInTime')}

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

\n {\n e.target.checked\n ? handleChange({\n update: { absenceType: 'absence' },\n callback: () => {\n setShowSecondCheckIn(false)\n setAbsence('absence')\n }\n })\n : handleChange({\n update: { absenceType: null },\n callback: () => {\n setAbsence(null)\n }\n })\n }}\n />\n {t('absent')}\n

\n {\n /* show COVID checkbox before 2021-07-31 */\n columnDate && new Date(columnDate) <= new Date('2021-07-31') && (\n

\n \n e.target.checked\n ? handleChange({\n update: { absenceType: 'covid-related' },\n callback: () => {\n setShowSecondCheckIn(false)\n setAbsence('covid-related')\n }\n })\n : handleChange({\n update: { absenceType: null },\n callback: setAbsence(null)\n })\n }\n />\n \n {t('absent') + ' - ' + t('covidRelated')}\n \n

\n )\n }\n
\n
\n )\n}\n\nAttendanceDataCell.propTypes = {\n columnDate: PropTypes.string,\n columnIndex: PropTypes.number,\n defaultValues: PropTypes.object,\n record: PropTypes.object,\n updateAttendanceData: PropTypes.func\n}\n","import React, { useState } from 'react'\nimport { FilterFilled } from '@ant-design/icons'\nimport { Select } from 'antd'\nimport PropTypes from 'prop-types'\nimport { useSelector } from 'react-redux'\n\nexport default function SiteFilterSelect({ businesses, onChange }) {\n const filteredCases = useSelector(state => state.ui.filteredCases)\n const [filterOpen, setFilterOpen] = useState(false)\n\n const setWidths = () => {\n const longestName = businesses.reduce(\n (a, b) => (a.name?.length > b.name?.length ? a.name : b.name),\n ''\n )\n return {\n minWidth: `${longestName.length * 20}px`,\n maxWidth: `${longestName.length * 20}px`\n }\n }\n\n return (\n <>\n \n setFilterOpen(!filterOpen)}\n dropdownStyle={setWidths()}\n style={{ minWidth: '220px' }}\n role=\"siteFilter\"\n onClick={() => setFilterOpen(!filterOpen)}\n value={filteredCases}\n >\n {businesses.map(business => {\n return (\n \n {business?.name}\n \n )\n })}\n \n \n )\n}\n\nSiteFilterSelect.propTypes = {\n businesses: PropTypes.array,\n onChange: PropTypes.func\n}\n","import { useLocation } from 'react-router-dom'\nimport runtimeEnv from '@mars/heroku-js-runtime-env'\nimport { useSelector } from 'react-redux'\n\nconst env = runtimeEnv()\n\nexport function useGoogleAnalytics() {\n const user = useSelector(state => state.user)\n let location = useLocation()\n\n const initGoogleAnalytics = () => {\n if (!window.gtag) return\n window.gtag('config', env.REACT_APP_GA_MEASUREMENT_ID, {\n page_path: location.pathname,\n user_id: user.id ?? ''\n })\n window.gtag('set', 'page_title', location.pathname)\n }\n\n const sendGAEvent = (eventName, payload) => {\n if (!window.gtag) return\n window.gtag('event', eventName, payload)\n }\n\n return {\n initGoogleAnalytics,\n sendGAEvent\n }\n}\n","export default __webpack_public_path__ + \"static/media/slicedPieTransparent.ce018261.png\";","import React from 'react'\nimport slicedPie from '../_assets/slicedPieTransparent.png'\nimport '_assets/styles/loading-spin.css'\nimport '_assets/styles/progress-bar-overrides.css'\n\nexport function LoadingDisplay() {\n return (\n
\n \"pieWithSlice\"\n
\n

Loading...

\n
\n
\n )\n}\n","import React, { useEffect, useState, useRef } from 'react'\nimport { Alert, Button, DatePicker, Modal, Table } from 'antd'\nimport { useHistory } from 'react-router-dom'\nimport { useTranslation } from 'react-i18next'\nimport { useDispatch, useSelector } from 'react-redux'\nimport ellipse from '_assets/ellipse.svg'\nimport { PaddedButton } from '_shared/PaddedButton'\nimport { useCaseAttendanceData } from '_shared/_hooks/useCaseAttendanceData'\nimport { useApiResponse } from '_shared/_hooks/useApiResponse'\nimport { useProgress } from '_shared/_hooks/useProgress'\nimport { setBusinesses } from '_reducers/businessesReducer'\nimport { setCaseData } from '_reducers/casesReducer'\nimport { setFilteredCases } from '_reducers/uiReducer'\nimport { setLoading } from '_reducers/uiReducer'\nimport { PIE_FOR_PROVIDERS_EMAIL } from '../constants'\nimport removeEmptyStringValue from '../_utils/removeEmptyStringValue'\nimport AttendanceDataCell from '_shared/AttendanceDataCell'\nimport SiteFilterSelect from '_shared/SiteFilterSelect'\nimport '_assets/styles/alert-overrides.css'\nimport '_assets/styles/filter-select-overrides.css'\nimport '_assets/styles/attendance-table-overrides.css'\nimport { useGoogleAnalytics } from '_shared/_hooks/useGoogleAnalytics'\nimport dayjs from 'dayjs'\nimport { LoadingDisplay } from '_shared/LoadingDisplay'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\ndayjs.extend(customParseFormat)\n\nexport function Attendance() {\n const { t, i18n } = useTranslation()\n const { parseResult } = useProgress()\n const { sendGAEvent } = useGoogleAnalytics()\n const history = useHistory()\n const dispatch = useDispatch()\n const { reduceTableData } = useCaseAttendanceData()\n const { makeRequest } = useApiResponse()\n const { businesses, cases, isLoading, token, filteredCases } = useSelector(\n state => ({\n businesses: state.businesses,\n cases: state.cases,\n isLoading: state.ui.isLoading,\n token: state.auth.token,\n filteredCases: state.ui.filteredCases\n })\n )\n const [tableData, setTableData] = useState(cases)\n const [isSuccessModalVisible, setSuccessModalVisible] = useState(false)\n const [errors, setErrors] = useState(true)\n const [saving, setSaving] = useState(false)\n\n const reduceAttendanceData = data =>\n /* \n accumulate an array of arrays of objects where the top-level key is the child id\n and each array item is an object with keys for absenceType and attendances (itself an array)\n */\n data.reduce((acc, cv) => {\n return {\n ...acc,\n ...{\n [cv.id]: [...Array(7).keys()].map(() => {\n return { absenceType: null, attendances: [{}, {}] }\n })\n }\n }\n }, {})\n const [attendanceData, setAttendanceData] = useState(\n reduceAttendanceData(cases)\n )\n const [columnDates, setColumnDates] = useState(\n [...Array(7).keys()].map(() => '')\n )\n const latestAttendanceData = useRef(attendanceData)\n const latestColumnDates = useRef(columnDates)\n const latestError = useRef(errors)\n\n const columnErrorIsPresent = columnIndex => {\n return (\n !!Object.values(latestAttendanceData.current).find(row => {\n return (\n row[columnIndex].attendances.some(\n attendance => Object.keys(attendance).length > 0\n ) || row[columnIndex].absenceType\n )\n }) && latestColumnDates.current[columnIndex] === ''\n )\n }\n\n const updateAttendanceData = ({\n update,\n record,\n columnIndex,\n secondCheckIn\n }) => {\n const newDayData = latestAttendanceData.current[record?.id].map(\n (day, index) => {\n const attendanceIndex = secondCheckIn ? 1 : 0\n // this logic adds and removes fields as needed depending on whether checkin/out or an absence is selected\n\n // if the index of this day on the case record's array of days\n // matches the index of the column in the table where the update is coming from, transform it\n let updatedAttendanceValue\n if (index === columnIndex) {\n // if there are no updates in the update object OR\n // the existing data includes absence AND the update includes check-in or check_out OR\n // the update includes absence AND the existing data includes check_in or check_out\n const attendanceUpdates = Object.keys(update)\n .filter(key => !key.includes('absenceType'))\n .reduce((obj, key) => {\n return Object.assign(obj, {\n [key]: update[key]\n })\n }, {})\n if (\n Object.keys(update).length === 0 ||\n (day.absenceType &&\n (Object.keys(update).includes('check_in') ||\n Object.keys(update).includes('check_out'))) ||\n (update.absenceType &&\n (Object.keys(day.attendances[attendanceIndex]).includes(\n 'check_in'\n ) ||\n Object.keys(day.attendances[attendanceIndex]).includes(\n 'check_out'\n )))\n ) {\n // remove the empty string value from update and return it wholesale\n updatedAttendanceValue = removeEmptyStringValue(attendanceUpdates)\n } else {\n // otherwise, remove the empty string value from a spread of the existing data and the new data\n updatedAttendanceValue = removeEmptyStringValue({\n ...day.attendances[attendanceIndex],\n ...attendanceUpdates\n })\n }\n } else {\n // otherwise return the day as normal to the map\n updatedAttendanceValue = day.attendances[attendanceIndex]\n }\n\n return {\n absenceType:\n index === columnIndex\n ? update.absenceType || day.absenceType\n : day.absenceType,\n attendances: day.attendances.map((v, i) =>\n attendanceIndex === i ? updatedAttendanceValue : v\n )\n }\n }\n )\n\n const updatedReference = {\n ...latestAttendanceData.current,\n [record.id]: newDayData\n }\n latestAttendanceData.current = updatedReference\n\n const errorIsPresent = columnErrorIsPresent(columnIndex)\n\n if (errorIsPresent !== latestError.current) {\n latestError.current = errorIsPresent\n setErrors(errorIsPresent)\n setColumns(generateColumns())\n }\n setAttendanceData(prevData => {\n return { ...prevData, [record.id]: newDayData }\n })\n }\n\n const handleDateChange = (index, dateString) => {\n const updatedDates = latestColumnDates.current.map((value, i) =>\n index === i ? dateString : value\n )\n latestColumnDates.current = updatedDates\n const errorIsPresent = columnErrorIsPresent(index)\n\n if (errorIsPresent !== latestError.current) {\n latestError.current = errorIsPresent\n setErrors(errorIsPresent)\n }\n setColumns(generateColumns(updatedDates))\n setColumnDates(updatedDates)\n }\n\n const generateColumns = (updatedDates = null) => {\n let cols = []\n for (let i = 0; i < 7; i++) {\n cols.push({\n dataIndex: 'date' + i,\n key: 'date' + i,\n width: 398,\n // eslint-disable-next-line react/display-name\n title: () => {\n return (\n
\n c && c.valueOf() > Date.now()}\n onChange={(_, ds) => handleDateChange(i, ds)}\n bordered={false}\n placeholder={t('selectDate')}\n style={{ width: '8rem ', color: '#004A6E' }}\n />\n {columnErrorIsPresent(i) ? (\n
{t('dateError')}
\n ) : null}\n
\n )\n },\n // eslint-disable-next-line react/display-name\n render: (text, record, index) => {\n return (\n \n )\n }\n })\n }\n\n return [\n {\n title: (\n
{t('childNameCap')}
\n ),\n dataIndex: 'name',\n width: 250,\n key: 'name',\n // eslint-disable-next-line react/display-name\n render: (_, record) => {\n const firstName = record.childFirstName || record.child.childFirstName\n const lastName = record.childLastName || record.child.childLastName\n return (\n
\n

{`${firstName} ${lastName}`}

\n

\n {record.business || record.child.business}{' '}\n \"ellipse\"{' '}\n {record.cNumber || record.child.cNumber}\n

\n
\n )\n }\n },\n ...cols\n ]\n }\n\n const [columns, setColumns] = useState(generateColumns())\n\n i18n.on('languageChanged', () => setColumns(generateColumns()))\n\n const handleSaveLabel = () => {\n return saving ? t('saving') : t('save')\n }\n\n const handleSave = async () => {\n let responses = []\n // TODO Refactor: find a more compact way to do this between Attendance\n // and AttendanceView to remove duplicate code and comparison logic\n setSaving(true)\n const formatAttendanceData = ({ check_in, check_out, date }) => {\n const checkIn = check_in ? dayjs(`${date} ${check_in}`) : null\n const checkOut = check_out ? dayjs(`${date} ${check_out}`) : null\n return {\n check_in: checkIn ? checkIn.format() : null,\n check_out: checkOut\n ? checkIn.isAfter(checkOut)\n ? checkOut.add(1, 'day').format()\n : checkOut.format()\n : null\n }\n }\n\n const absenceRequests = Object.entries(attendanceData).flatMap(record => {\n return record[1]\n .filter(day => day.absenceType)\n .flatMap((day, index) => {\n let indices = record[1].reduce((result, item, index) => {\n if (item.absenceType === 'absence') {\n result.push(index)\n }\n return result\n }, [])\n\n return {\n service_day: {\n child_id: record[0],\n date: dayjs(columnDates[indices[index]]),\n absence_type: day.absenceType\n }\n }\n })\n })\n\n const attendanceBatch = Object.entries(attendanceData).flatMap(record => {\n // record[1] = mapped record value = all the service days for a child\n return record[1]\n .map((serviceDay, index) => {\n // tack on the date of the record before filtering\n if (\n serviceDay.attendances.some(\n attendance => Object.keys(attendance).length > 0\n )\n ) {\n serviceDay.attendances.map(attendance => {\n if (Object.keys(attendance).length > 0) {\n attendance.date = latestColumnDates.current[index]\n }\n return attendance\n })\n }\n return serviceDay\n })\n .filter(\n // filter out days that are not absences and are not attendances\n day =>\n !day.absenceType &&\n day.attendances.filter(\n attendance => Object.keys(attendance).length > 0\n ).length > 0\n )\n .flatMap(day => {\n return (\n day.attendances\n // filter out attendances with no check-in or check-out\n .filter(attendance => Object.keys(attendance).length > 0)\n .flatMap(attendance => {\n const formattedDates = formatAttendanceData(attendance)\n return {\n check_in: formattedDates.check_in,\n check_out: formattedDates.check_out,\n child_id: record[0] // record[0] = mapped record key = child_id\n }\n })\n )\n })\n })\n\n if (attendanceBatch.length > 0) {\n const response = await makeRequest({\n type: 'post',\n url: '/api/v1/attendance_batches',\n headers: {\n Authorization: token\n },\n data: {\n attendance_batch: attendanceBatch\n }\n })\n responses.push(response)\n }\n\n if (absenceRequests.length > 0) {\n absenceRequests.forEach(async request => {\n const response = await makeRequest({\n type: 'post',\n url: '/api/v1/service_days',\n headers: {\n Authorization: token\n },\n data: request\n })\n responses.push(response)\n })\n }\n\n const responsesOk = responses.every(r => r.ok)\n\n if (!responsesOk) {\n // TODO: handle bad request\n console.log('error sending attendance data to API')\n } else {\n setSuccessModalVisible(true)\n setSaving(false)\n // implemented per: https://help.hotjar.com/hc/en-us/articles/4405109971095-Events-API-Reference\n window.hj =\n window.hj ||\n function () {\n // eslint-disable-next-line no-undef\n ;(hj.q = hj.q || []).push(arguments)\n }\n window.hj('event', 'save_attendance')\n sendGAEvent('save_attendance', {\n number: `${attendanceBatch.length}`,\n page_title: 'edit_attendance'\n })\n }\n }\n\n const getCaseData = async (businessIds = []) => {\n dispatch(setLoading(true))\n\n const url =\n businessIds.length > 0\n ? `/api/v1/children?business=${businessIds.join(',')}`\n : '/api/v1/children'\n const request = {\n type: 'get',\n url: url,\n headers: { Authorization: token }\n }\n const response = await makeRequest(request)\n\n if (response.ok) {\n const parsedResponse = await parseResult(response)\n const caseData = reduceTableData(parsedResponse)\n const reducedAttendanceData = reduceAttendanceData(caseData)\n\n if (businesses.length === 0) {\n const businessData = parsedResponse.reduce((priorValue, newValue) => {\n return !priorValue.some(\n item => item?.id === newValue.active_business?.id\n )\n ? [...priorValue, newValue.active_business]\n : priorValue\n }, [])\n dispatch(setBusinesses(businessData))\n }\n dispatch(setFilteredCases(businessIds))\n dispatch(setCaseData(caseData))\n latestAttendanceData.current = reducedAttendanceData\n setAttendanceData(reducedAttendanceData)\n setTableData(caseData)\n }\n dispatch(setLoading(false))\n }\n\n useEffect(() => {\n getCaseData(filteredCases)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n
\n

\n {t('enterAttendance')}\n

\n \n
\n {t('important')}\n {t('attendanceWarning') + ' ' + t('attendanceQuestions') + ' '}\n \n {PIE_FOR_PROVIDERS_EMAIL + '.'}\n \n
\n
\n {t('pleaseNote')}\n {' ' + t('pleaseNoteMsg')}\n
\n
\n }\n type=\"error\"\n closable\n />\n
\n {\n getCaseData(value)\n }}\n />\n
\n c.active)}\n columns={columns}\n bordered={true}\n pagination={false}\n virtual\n sticky\n scroll={{ x: 1500, y: 475 }}\n className=\"my-5 attendance-table\"\n loading={{\n delay: 1000,\n spinning: isLoading,\n indicator: \n }}\n />\n
\n \n
\n {t('success')}}\n open={isSuccessModalVisible}\n onCancel={() => {\n setSuccessModalVisible(false)\n history.push('/attendance')\n }}\n footer={[\n {\n setSuccessModalVisible(false)\n history.push('/attendance')\n }}\n >\n {t('goToAttendance')}\n \n ]}\n >\n

{t('successText')}

\n \n \n )\n}\n","export function useCaseAttendanceData() {\n const reduceTableData = res => {\n return res.flatMap((child, index) => {\n return child.state === 'NE'\n ? {\n id: child.id ?? '',\n key: `${index}-${child.first_name}-${child.last_name}`,\n child: {\n childFirstName: child.first_name ?? '',\n childLastName: child.last_name ?? '',\n cNumber: child.case_number ?? '',\n business: child.business_name ?? ''\n },\n active: child.active ?? true\n }\n : {\n id: child.id ?? '',\n key: `${index}-${child.first_name}-${child.last_name}`,\n childFirstName: child.first_name ?? '',\n childLastName: child.last_name ?? '',\n cNumber: child.case_number ?? '',\n business: child.business_name ?? '',\n active: child.active ?? true\n }\n })\n }\n return { reduceTableData }\n}\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\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); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgEditIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 13,\n viewBox: \"0 0 13 13\",\n xmlns: \"http://www.w3.org/2000/svg\",\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 d: \"M0 10.5002V13.0002H2.5L9.87333 5.62687L7.37333 3.12687L0 10.5002ZM11.8067 3.69354C12.0667 3.43354 12.0667 3.01354 11.8067 2.75354L10.2467 1.19354C9.98667 0.933535 9.56667 0.933535 9.30667 1.19354L8.08667 2.41354L10.5867 4.91354L11.8067 3.69354V3.69354Z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEditIcon);\nexport default __webpack_public_path__ + \"static/media/editIcon.bcdd8f0b.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/smallPie.9f3edfb8.png\";","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Button } from 'antd'\nimport { LeftOutlined, RightOutlined } from '@ant-design/icons'\nimport { useTranslation } from 'react-i18next'\n\nimport dayjs from 'dayjs'\nimport weekday from 'dayjs/plugin/weekday'\n\ndayjs.extend(weekday)\n\nexport function WeekPicker({\n dateSelected,\n handleDateChange,\n hasPrev = true,\n hasNext = true\n}) {\n const { t } = useTranslation()\n const firstDay = dateSelected.weekday(0).format('MMM D')\n const lastDay = dateSelected.weekday(6).format('MMM D, YYYY')\n\n return (\n
\n handleDateChange(dateSelected.weekday(-7))}\n data-cy=\"backWeekButton\"\n >\n \n \n \n {`${t(firstDay.slice(0, 3).toLowerCase())} ${firstDay.slice(3)} - ${t(\n lastDay.slice(0, 3).toLowerCase()\n )}${lastDay.slice(3)}`}\n \n handleDateChange(dateSelected.weekday(7))}\n data-cy=\"forwardWeekButton\"\n >\n \n \n
\n )\n}\n\nWeekPicker.propTypes = {\n dateSelected: PropTypes.object,\n handleDateChange: PropTypes.func,\n hasPrev: PropTypes.bool,\n hasNext: PropTypes.bool\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Modal } from 'antd'\nimport '_assets/styles/modal-button-overrides.css'\nimport { useTranslation } from 'react-i18next'\nimport AttendanceDataCell from '_shared/AttendanceDataCell'\n\nexport function EditAttendanceModal({\n editAttendanceModalData = null,\n handleModalSave = () => {},\n modalButtonDisabled = true,\n setEditAttendanceModalData = () => {},\n setUpdatedAttendanceData = () => {},\n titleData = {}\n}) {\n const { t } = useTranslation()\n return (\n {\n setUpdatedAttendanceData({\n absenceType: null,\n date: null,\n attendances: [{}, {}]\n })\n setEditAttendanceModalData(null)\n }}\n okButtonProps={{\n disabled: modalButtonDisabled\n }}\n onOk={handleModalSave}\n okText={'Save'}\n title={\n
\n {titleData.childName + ' - '}\n {t(`${titleData.columnDate?.format('ddd').toLocaleLowerCase()}`) +\n ' ' +\n t(`${titleData.columnDate?.format('MMM')}`) +\n ' ' +\n titleData.columnDate?.format('DD')}\n
\n }\n maskClosable={false}\n >\n \n \n )\n}\n\nEditAttendanceModal.propTypes = {\n editAttendanceModalData: PropTypes.object,\n modalButtonDisabled: PropTypes.bool,\n handleModalSave: PropTypes.func,\n setEditAttendanceModalData: PropTypes.func,\n setUpdatedAttendanceData: PropTypes.func,\n titleData: PropTypes.shape({\n childName: PropTypes.string,\n columnDate: PropTypes.object\n })\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Button, Grid, Table, Checkbox, Alert, Space } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport { useHistory } from 'react-router-dom'\nimport { useDispatch, useSelector } from 'react-redux'\nimport dayjs from 'dayjs'\nimport { useApiResponse } from '_shared/_hooks/useApiResponse'\nimport { useProgress } from '_shared/_hooks/useProgress'\nimport { useGoogleAnalytics } from '_shared/_hooks/useGoogleAnalytics'\nimport smallPie from '../_assets/smallPie.png'\nimport { ReactComponent as EditIcon } from '../_assets/editIcon.svg'\nimport { setLoading } from '_reducers/uiReducer'\nimport '_assets/styles/edit-icon.css'\nimport '_assets/styles/attendance-table-overrides.css'\nimport '_assets/styles/attendance-filters.css'\nimport { WeekPicker } from './WeekPicker'\nimport { EditAttendanceModal } from './EditAttendanceModal'\nimport { LoadingDisplay } from '_shared/LoadingDisplay'\nimport { setFilteredCases } from '_reducers/uiReducer'\nimport SiteFilterSelect from '_shared/SiteFilterSelect'\n\nconst { useBreakpoint } = Grid\n\nexport function AttendanceView() {\n const dispatch = useDispatch()\n const { i18n, t } = useTranslation()\n const { parseResult } = useProgress()\n const { sendGAEvent } = useGoogleAnalytics()\n const screens = useBreakpoint()\n const history = useHistory()\n const { makeRequest } = useApiResponse()\n const { businesses, filteredCases, user } = useSelector(state => ({\n businesses: state.businesses,\n filteredCases: state.ui.filteredCases,\n user: state.user\n }))\n const [attendanceData, setAttendanceData] = useState([])\n // columns will be current dates\n const { isLoading, token } = useSelector(state => ({\n isLoading: state.ui.isLoading,\n token: state.auth.token\n }))\n const [dateSelected, setDateSelected] = useState(dayjs())\n // TODO Refactor: rename and rework this to be a boolean flag to show the modal, and pass\n // attendanceData directly to the modal to fill the fields\n const [editAttendanceModalData, setEditAttendanceModalData] = useState(null)\n // TODO Refactor: rename this hook to just be attendanceData and setAttendanceData\n const [updatedAttendanceData, setUpdatedAttendanceData] = useState({\n absenceType: null,\n date: null,\n attendances: [{}, {}]\n })\n // TODO Refactor: move the modal logic into its own component\n const [modalButtonDisabled, setModalButtonDisabled] = useState(false)\n const latestAttendanceData = useRef(updatedAttendanceData)\n const titleData = useRef({ childName: null, columnDate: null })\n\n const updateAttendanceData = ({ record, secondCheckIn, update }) => {\n const index = secondCheckIn ? 1 : 0\n\n const updatedData = {\n absenceType: Object.keys(update).includes('absenceType')\n ? update.absenceType\n : latestAttendanceData.current.absenceType,\n date: latestAttendanceData.current.date,\n attendances: latestAttendanceData.current.attendances.map(\n (currentAttendance, i) => {\n if (index === i) {\n // Make an object from only check_in and check_out, we don't want\n // absence type for attendances\n const updatedAttendance = Object.fromEntries(\n Object.entries(update).filter(\n entry => entry[0] === 'check_in' || entry[0] === 'check_out'\n )\n )\n const updatedKeys = Object.keys(updatedAttendance)\n const currentKeys = Object.keys(currentAttendance)\n\n /* \n var definition of updatedValue\n if nothing has been updated OR\n if the current value has an absence key and the updated data has check-in or check-out keys OR\n if the updated data has an absence key and the current value has check-in or check-out keys\n then use the updated data exclusively\n otherwise, spread the current value and the updated data together\n */\n const updatedValue =\n updatedKeys.length === 0 ||\n (latestAttendanceData.current.absenceType &&\n (updatedKeys.includes('check_in') ||\n updatedKeys.includes('check_out'))) ||\n (update.absenceType &&\n (currentKeys.includes('check_in') ||\n currentKeys.includes('check_out')))\n ? updatedAttendance\n : { ...currentAttendance, ...updatedAttendance }\n\n /* \n var definition of mergedValue\n if the current value has no keys (i.e. does not yet exist)\n then merge the updated data with the child id from the data's serviceDays\n otherwise, spread the current value and updatedValue together\n TODO Refactor: is this second spread necessary? Or could we just say updatedValue?\n Some of this looping seems extra\n */\n const mergedValue =\n Object.keys(currentAttendance).length === 0\n ? {\n child_id: record?.serviceDays[0]?.child?.id || '',\n ...updatedValue\n }\n : {\n ...currentAttendance,\n ...updatedValue\n }\n\n // disabled saving on modal if only checkout time exists\n // TODO Refactor: no attendance should be saveable with a check-out and no check-in\n if (index === 0) {\n setModalButtonDisabled(\n mergedValue.check_in &&\n !mergedValue.check_out &&\n !update.absenceType\n )\n }\n\n return mergedValue\n }\n\n return currentAttendance\n }\n )\n }\n\n if (updatedData.absenceType === undefined) {\n // eslint-disable-next-line no-debugger\n debugger\n }\n latestAttendanceData.current = updatedData\n setUpdatedAttendanceData(updatedData)\n }\n\n const [showWeekends, setShowWeekends] = useState(false)\n\n useEffect(() => {\n setColumns(generateColumns())\n // eslint-disable-next-line\n }, [showWeekends])\n\n // create seven columns for each day of the week\n const generateColumns = () => {\n const dateColumns = []\n let i = showWeekends ? 0 : 1\n let limit = showWeekends ? 7 : 6\n\n for (i; i < limit; i++) {\n const columnDate = dateSelected.day(i)\n dateColumns.push({\n dataIndex: i,\n key: i,\n width: 175,\n // eslint-disable-next-line react/display-name\n title: () => {\n const monthDate = columnDate.format('MMM DD')\n return (\n
\n
{t(`${columnDate.format('ddd').toLocaleLowerCase()}`)}
\n
{`${t(\n monthDate.slice(0, 3).toLowerCase()\n )} ${monthDate.slice(4, 6)}`}
\n
\n )\n },\n\n render: (_, record) => {\n const matchingServiceDay = record.serviceDays.find(serviceDay => {\n return new RegExp(columnDate.format('YYYY-MM-DD')).test(\n serviceDay.date.split('T')[0]\n )\n })\n\n const handleEditAttendance = () => {\n const serviceDay = record.serviceDays.find(\n day => day.date.slice(0, 10) === columnDate.format('YYYY-MM-DD')\n )\n const attendances =\n serviceDay.attendances.length === 0\n ? [{}, {}]\n : serviceDay.attendances.length === 2\n ? serviceDay.attendances\n : [...serviceDay.attendances, {}]\n\n setEditAttendanceModalData({\n record,\n columnDate: columnDate.format('YYYY-MM-DD'),\n defaultValues: {\n absenceType: matchingServiceDay.absence_type,\n attendances: attendances\n },\n updateAttendanceData\n })\n\n titleData.current = {\n childName: record.child,\n columnDate\n }\n latestAttendanceData.current = {\n absenceType: matchingServiceDay.absence_type,\n date: columnDate.format('YYYY-MM-DD'),\n attendances: attendances\n }\n if (matchingServiceDay.absence_type === undefined) {\n // eslint-disable-next-line no-debugger\n debugger\n }\n setUpdatedAttendanceData({\n absenceType: matchingServiceDay.absence_type,\n date: columnDate.format('YYYY-MM-DD'),\n attendances: attendances\n })\n }\n\n if (matchingServiceDay !== undefined) {\n if (matchingServiceDay.tags.includes('absence')) {\n return (\n
\n \n \n \n\n
\n \n {t('absent').toLowerCase()}\n
\n
\n \n )\n }\n const checkInCheckOutTime = matchingServiceDay.attendances\n .map(attendance => {\n const check_in = dayjs(\n attendance.check_in,\n 'YYYY-MM-DD hh:mm'\n ).format('h:mm a')\n const check_out = attendance.check_out\n ? dayjs(attendance.check_out, 'YYYY-MM-DD hh:mm').format(\n 'h:mm a'\n )\n : t('noCheckOut')\n return `${check_in} - ${check_out}`\n })\n .join(', ')\n const hour = Math.floor(\n Number(matchingServiceDay.total_time_in_care) / 3600\n )\n const minute = Math.floor(\n Number(matchingServiceDay.total_time_in_care % 3600) / 60\n )\n const totalTimeInCare = hour + ' hrs ' + minute + ' mins'\n\n const set_tags = () => {\n let switch_date = dayjs('2023-06-30 23:59')\n let service_day_new_tags = [\n matchingServiceDay.full_time,\n matchingServiceDay.part_time\n ]\n\n const old_tags = (matchingServiceDay.tags || []).map((tag, i) => {\n let amount = tag.split(' ')[0]\n let count = parseInt(amount, 10) <= 1 ? 1 : 0\n\n return (\n 0 ? 'ml-1' : null\n }`}\n >\n {`${amount} `}\n {i18n\n .t(`${tag.split(' ')[1]}`, {\n count: count\n })\n .toLowerCase()}\n \n )\n })\n let new_tags = (service_day_new_tags || []).map((tag_type, i) => {\n if (!tag_type) {\n return <>\n } else {\n return (\n 0 ? 'ml-1' : null\n }`}\n >\n {i === 0 ? i18n.t('fullDay') : i18n.t('partialDay')}\n \n )\n }\n })\n if (\n switch_date < dateSelected &&\n matchingServiceDay.state === 'NE'\n ) {\n return new_tags\n }\n return old_tags\n }\n\n return (\n
\n \n \n \n
\n {totalTimeInCare}\n
\n
\n {checkInCheckOutTime}\n
\n
{set_tags()}
\n
\n )\n }\n return (\n
\n
\n {t('noInfo')}\n
\n
\n )\n }\n })\n }\n return [\n {\n dataIndex: 'name',\n key: 'name',\n width: 150,\n title: (\n
\n {t('name')}\n
\n ),\n // eslint-disable-next-line react/display-name\n render: (_, record) => (\n
\n
{record.child}
\n
{record.businessName}
\n
\n )\n },\n ...dateColumns\n ]\n }\n const [columns, setColumns] = useState(generateColumns())\n i18n.on('languageChanged', () => setColumns(generateColumns()))\n\n const handleDateChange = newDate => {\n // send google analytics event data about changing the current week selected\n sendGAEvent('dates_filtered', {\n date_selected: `${newDate.weekday(0).format('MMM D')} -\n ${newDate.weekday(6).format('MMM D, YYYY')}`,\n page_title: 'attendance'\n })\n\n setDateSelected(newDate)\n }\n\n const getServiceDays = async (businessIds = []) => {\n dispatch(setLoading(true))\n const response = await makeRequest({\n type: 'get',\n url: `/api/v1/attendance_view?filter_date=${dateSelected.format(\n 'YYYY-MM-DD'\n )}&business_ids=${businessIds.length > 0 ? businessIds.join(',') : ''}`,\n headers: {\n Authorization: token\n },\n data: {}\n })\n\n if (response.ok) {\n const parsedResponse = await parseResult(response)\n const addServiceDay = (previousValue, currentValue) => {\n const isInactive = () => !currentValue?.child?.active\n\n if (isInactive()) {\n return previousValue\n }\n const childName =\n `${currentValue?.child.first_name} ${currentValue?.child.last_name}` ||\n ''\n const index = previousValue.findIndex(item => item?.child === childName)\n index >= 0\n ? previousValue[index].serviceDays.push(currentValue)\n : previousValue.push({\n child: childName,\n key: `${childName}${currentValue.date}`,\n businessName: currentValue.child.business_name,\n serviceDays: [currentValue]\n })\n return previousValue\n }\n\n const reducedData = parsedResponse.reduce(addServiceDay, [])\n dispatch(setFilteredCases(businessIds))\n setAttendanceData(reducedData)\n setColumns(generateColumns())\n }\n dispatch(setLoading(false))\n }\n\n const handleModalSave = async () => {\n let responses = []\n const formatAttendanceData = attendance => {\n let checkIn, checkOut\n\n const makeValidDate = date => {\n const isPm = date.includes('pm')\n\n let validDate = ''\n\n if (isPm) {\n validDate = dayjs(date.split(' ')[0]).add(12, 'hours')\n } else {\n validDate = dayjs(date.split(' ')[0])\n }\n\n return validDate.toString()\n }\n\n if (attendance.check_in) {\n if (dayjs(makeValidDate(attendance.check_in)).isValid()) {\n checkIn = dayjs(makeValidDate(attendance.check_in))\n } else if (\n dayjs(\n `${latestAttendanceData.current.date} ${attendance.check_in}`\n ).isValid()\n ) {\n checkIn = dayjs(\n `${latestAttendanceData.current.date} ${attendance.check_in}`\n )\n } else {\n checkIn = null\n }\n }\n\n if (attendance.check_out) {\n if (dayjs(makeValidDate(attendance.check_out)).isValid()) {\n checkOut = dayjs(makeValidDate(attendance.check_out))\n } else if (\n dayjs(\n `${latestAttendanceData.current.date} ${attendance.check_out}`\n ).isValid()\n ) {\n checkOut = dayjs(\n `${latestAttendanceData.current.date} ${attendance.check_out}`\n )\n } else {\n checkOut = null\n }\n }\n return {\n check_in: checkIn ? checkIn.format() : null,\n check_out: checkOut\n ? checkIn?.isAfter(checkOut)\n ? checkOut.add(1, 'day').format()\n : checkOut.format()\n : null\n }\n }\n\n // TODO: when editing an absence w/ existing attendances, some attendances are being sent to the\n // API w/ null and invalid date values\n\n if (updatedAttendanceData.absenceType) {\n // If we're an absence, push an update to the first attendance\n // This is a workaround because the attendance/service day API isn't fully fleshed\n // out yet, there's no updating service days\n const response = await makeRequest({\n type: 'put',\n url: '/api/v1/attendances/' + updatedAttendanceData.attendances[0].id,\n headers: {\n Authorization: token\n },\n data: {\n attendance: {\n service_day_attributes: {\n absence_type: updatedAttendanceData.absenceType\n }\n }\n }\n })\n responses.push(response)\n } else {\n updatedAttendanceData.attendances\n .filter(attendance => Object.keys(attendance).length > 0)\n .forEach(async attendance => {\n // if it's an old attendance we call the attendances PUT endpoint,\n // if the user creates a new, second attendance for that day we need to call the attendance_batches endpoint\n // if the attendance values needed are all null the attendance needs to be deleted\n if (!attendance.check_in && !attendance.check_out && attendance.id) {\n const response = await makeRequest({\n // when you delete a second check-in/attendance\n type: 'del',\n url: '/api/v1/attendances/' + attendance.id,\n headers: {\n Authorization: token\n }\n })\n responses.push(response)\n } else if (Object.keys(attendance).includes('child_id')) {\n // when you add a second check-in/attendance that didn't exist\n const response = await makeRequest({\n type: 'post',\n url: '/api/v1/attendance_batches',\n headers: {\n Authorization: token\n },\n data: {\n attendance_batch: [\n {\n ...formatAttendanceData(attendance),\n child_id: attendance.child_id,\n service_day_attributes: {\n absence_type: updatedAttendanceData.absenceType\n }\n }\n ]\n }\n })\n responses.push(response)\n } else if (Object.keys(attendance).length > 0) {\n // when you change any existing check-in/attendance\n const response = await makeRequest({\n type: 'put',\n url: '/api/v1/attendances/' + attendance.id,\n headers: {\n Authorization: token\n },\n data: {\n attendance: {\n ...formatAttendanceData(attendance),\n service_day_attributes: {\n absence_type: updatedAttendanceData.absenceType\n }\n }\n }\n })\n responses.push(response)\n }\n })\n }\n\n const responsesOk = responses.every(r => r.ok)\n\n if (!responsesOk) {\n // TODO: better logging of errors\n console.log('error sending attendance data to API')\n }\n\n titleData.current = {\n childName: null,\n columnDate: null\n }\n latestAttendanceData.current = {\n absenceType: null,\n date: null,\n attendances: [{}, {}]\n }\n setEditAttendanceModalData(null)\n setUpdatedAttendanceData({\n absenceType: null,\n date: null,\n attendances: [{}, {}]\n })\n }\n\n useEffect(() => {\n getServiceDays(filteredCases)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dateSelected])\n\n const warningMessage = i18n\n .t('nebraskaDateWarning')\n .split('\\n')\n .map((line, index) => {\n // if it's the line with a link\n if (line.includes('{{link}}')) {\n return (\n

\n {line.split('{{link}}')[0]}\n \n {i18n.t('here')}\n \n

\n )\n } else {\n return

{line}

\n }\n })\n\n return (\n
\n {screens.sm ? (\n
\n
\n
\n
{t('attendance')}
\n
\n {\n sendGAEvent('attendance_input_clicked', {\n page_title: 'attendance'\n })\n history.push('/attendance/edit')\n }}\n data-cy=\"inputAttendance\"\n >\n {t('inputAttendance')}\n \n
\n
\n {dateSelected < dayjs('2023-06-30 23:59') && user.state === 'NE' ? (\n \n \n \n ) : (\n <>\n )}\n
\n
\n
\n \n
\n
\n getServiceDays(value)}\n />\n
\n

\n {\n setShowWeekends(!showWeekends)\n }}\n />\n {i18n.t('showWeekends')}\n

\n
\n \n }}\n />\n
\n ) : (\n
\n
\n {t('screenSize')}\n
\n {'a\n
\n {t('incompatibleMsg')}\n
\n
\n )}\n {\n await handleModalSave()\n setTimeout(getServiceDays, 2000)\n }}\n modalButtonDisabled={modalButtonDisabled}\n setEditAttendanceModalData={setEditAttendanceModalData}\n setUpdatedAttendanceData={setUpdatedAttendanceData}\n titleData={titleData.current}\n />\n
\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Button, Collapse, Tag } from 'antd'\nimport { ArrowUpOutlined } from '@ant-design/icons'\nimport { useTranslation } from 'react-i18next'\nimport '_assets/styles/tag-overrides.css'\n\nexport default function NEDashboardDefinitions({ activeKey, setActiveKey }) {\n const { Panel } = Collapse\n const { t } = useTranslation()\n\n return (\n \n {t('definitions')}}\n forceRender={true}\n key={1}\n >\n {\n
\n
\n

{t('attendance')}

\n
\n {[\n { name: 'exceededLimit', color: 'red' },\n { name: 'onTrack', color: 'green' },\n { name: 'atRisk', color: 'orange' },\n { name: 'aheadOfSchedule', color: 'green' }\n ].map((tag, i) => (\n
\n

\n \n {t(tag.name)}\n {' '}\n \n {t(\n `ne${\n tag.name.charAt(0).toUpperCase() + tag.name.slice(1)\n }Def`\n )}\n \n

\n
\n ))}\n {['fullDays', 'hours', 'hoursAttended', 'absences'].map((c, i) => (\n
\n \n {t(c)}:{' '}\n {t(`ne${c.charAt(0).toUpperCase() + c.slice(1)}Def`)}\n \n
\n ))}\n
\n

{t('revenue')}

\n
\n {['earnedRevenue', 'estimatedRevenue', 'familyFee'].map((c, i) => (\n
\n \n {t(c)}:{' '}\n {t(`ne${c.charAt(0).toUpperCase() + c.slice(1)}Def`)}\n \n
\n ))}\n
\n

\n {t('totalAuthorizationPeriod')}\n

\n
\n {['authorizedPeriod', 'hoursRemaining', 'fullDaysRemaining'].map(\n (c, i) => (\n
\n \n {t(c)}:{' '}\n {t(`ne${c.charAt(0).toUpperCase() + c.slice(1)}Def`)}\n \n
\n )\n )}\n \n
\n }\n \n \n )\n}\n\nNEDashboardDefinitions.propTypes = {\n activeKey: PropTypes.number,\n setActiveKey: PropTypes.func\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Button, Collapse, Tag } from 'antd'\nimport { ArrowUpOutlined } from '@ant-design/icons'\nimport { useTranslation } from 'react-i18next'\nimport '_assets/styles/tag-overrides.css'\n\nexport default function ILDashboardDefinitions({ activeKey, setActiveKey }) {\n const { Panel } = Collapse\n const { t } = useTranslation()\n const titleWithDescription = {\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n flexDirection: 'row',\n alignItems: 'baseline'\n }\n\n return (\n \n {t('definitions')}}\n forceRender={true}\n key={1}\n >\n {\n
\n
\n

\n \n {t('attendanceRate')}:\n {' '}\n {t('ilAttendanceRateDef')}\n

\n
\n {[\n { name: 'atRisk', color: 'orange' },\n { name: 'onTrack', color: 'green' }\n ].map((tag, i) => (\n
\n

\n \n {t(tag.name)}\n {' '}\n \n {t(\n `il${\n tag.name.charAt(0).toUpperCase() + tag.name.slice(1)\n }Def`\n )}\n \n

\n
\n ))}\n
\n

\n \n {t('earnedRevenue')}:\n {' '}\n {t('ilEarnedRevenueDef')}\n

\n
\n
\n
\n

\n \n {t('authorizedPeriod')}:\n {' '}\n {t('ilAuthorizedPeriodDef')}\n

\n
\n \n
\n }\n \n \n )\n}\n\nILDashboardDefinitions.propTypes = {\n activeKey: PropTypes.number,\n setActiveKey: PropTypes.func\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport NEDashboardDefinitions from './NEDashboardDefinitions'\nimport ILDashboardDefinitions from './ILDashboardDefinitions'\nimport '_assets/styles/tag-overrides.css'\n\nexport default function DashboardDefinitions({\n activeKey,\n setActiveKey,\n state\n}) {\n return state === 'NE' ? (\n \n ) : (\n \n )\n}\n\nDashboardDefinitions.propTypes = {\n activeKey: PropTypes.number,\n setActiveKey: PropTypes.func,\n state: PropTypes.string\n}\n","/* eslint-disable no-debugger */\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { Divider, Grid, List, Tooltip, Typography } from 'antd'\nimport { InfoCircleOutlined } from '@ant-design/icons'\nimport '_assets/styles/divider-overrides.css'\n\nconst { useBreakpoint } = Grid\n\nexport default function DashboardStats({ summaryData }) {\n const screens = useBreakpoint()\n\n if (\n (screens.xs && !screens.xl) ||\n (screens.sm && !screens.xl) ||\n (screens.md && screens.lg && !screens.xl)\n ) {\n return (\n (\n
\n {summaryData.length - 1 === index ? : null}\n

\n \n {item.title}{' '}\n \n \n \n \n

\n

\n \n {item.stat}\n \n

\n
\n )}\n />\n )\n }\n\n return (\n
\n {summaryData.map((stat, i) => {\n const renderDivider = () => {\n if ((screens.sm || screens.xs) && !screens.md) {\n // eslint-disable-next-line no-unused-expressions\n return i % 2 === 0 ? (\n \n ) : null\n } else {\n // eslint-disable-next-line no-unused-expressions\n return summaryData.length === i + 1 ? null : (\n \n )\n }\n }\n\n const renderStat = () => {\n return (\n
\n {Array.isArray(stat) ? (\n stat.map((subStat, i) => {\n return (\n
\n

\n \n {subStat.title}\n \n \n \n \n \n {subStat.stat}\n \n

\n {i + 1 === stat.length ? null : }\n
\n )\n })\n ) : (\n
\n

\n \n {stat.title}{' '}\n \n \n \n \n

\n

\n \n {stat.stat}\n \n

\n
\n )}\n
\n )\n }\n\n return (\n
\n {renderStat()}\n {renderDivider()}\n
\n )\n })}\n
\n )\n}\n\nDashboardStats.propTypes = {\n summaryData: PropTypes.array.isRequired\n}\n","export const attendanceCategories = {\n AHEADOFSCHEDULE: 'ahead_of_schedule',\n ONTRACK: 'on_track',\n SUREBET: 'sure_bet',\n ATRISK: 'at_risk',\n WILLNOTMEET: 'not_met', // TODO: keeping this old value because it needs to stay synced with backend data model.\n NOTENOUGHINFO: 'not_enough_info'\n}\n\nexport const fullDayCategories = {\n AHEADOFSCHEDULE: 'ahead_of_schedule',\n ONTRACK: 'on_track',\n ATRISK: 'at_risk',\n EXCEEDEDLIMIT: 'exceeded_limit'\n}\n\nconst constants = { attendanceCategories, fullDayCategories }\n\nexport default constants\n","export default __webpack_public_path__ + \"static/media/questionMark.33421a40.svg\";","export default __webpack_public_path__ + \"static/media/vector.4ac18014.svg\";","export default __webpack_public_path__ + \"static/media/editIcon.bcdd8f0b.svg\";","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { CSVLink } from 'react-csv'\n\nconst CsvDownloader = ({ data, filename }) => {\n return (\n <>\n \n Download\n \n \n )\n}\n\nCsvDownloader.propTypes = {\n data: PropTypes.any,\n filename: PropTypes.string\n}\n\nexport default CsvDownloader\n","import React, { useEffect, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport dayjs from 'dayjs'\nimport PropTypes from 'prop-types'\nimport { Button, Modal, Select, Table, Tag } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport { attendanceCategories, fullDayCategories } from '_utils/constants'\nimport { useApiResponse } from '_shared/_hooks/useApiResponse'\nimport { LoadingDisplay } from '_shared/LoadingDisplay'\nimport { updateCase } from '_reducers/casesReducer'\nimport DatePicker from './DatePicker'\nimport { useGoogleAnalytics } from '_shared/_hooks/useGoogleAnalytics'\nimport ellipse from '_assets/ellipse.svg'\nimport questionMark from '_assets/questionMark.svg'\nimport vector from '_assets/vector.svg'\nimport editIcon from '_assets/editIcon.svg'\nimport '_assets/styles/table-overrides.css'\nimport '_assets/styles/tag-overrides.css'\nimport '_assets/styles/select-overrides.css'\nimport CsvDownloader from '_shared/_components/CsvDownloader/CsvDownloader'\nimport runtimeEnv from '@mars/heroku-js-runtime-env'\n\nconst env = runtimeEnv()\nexport default function DashboardTable({\n tableData,\n userState,\n setActiveKey,\n dateFilterValue\n}) {\n const dispatch = useDispatch()\n const { sendGAEvent } = useGoogleAnalytics()\n const [isMIModalVisible, setIsMIModalVisible] = useState(false)\n const [isAUModalVisible, setIsAUModalVisible] = useState(false)\n const [selectedChild, setSelectedChild] = useState({})\n const [effectiveDate, setEffectiveDate] = useState(null)\n const [expirationDate, setExpirationDate] = useState(null)\n const [inactiveDate, setInactiveDate] = useState(null)\n const [activeDate, setActiveDate] = useState(null)\n const [inactiveReason, setInactiveReason] = useState(null)\n const [sortedRows, setSortedRows] = useState([])\n const [aUErrorMessage, setAUErrorMessage] = useState('')\n const { user } = useSelector(state => ({\n user: state.user\n }))\n\n const { makeRequest } = useApiResponse()\n const currencyFormatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 2\n })\n const { isLoading, token } = useSelector(state => ({\n token: state.auth.token,\n isLoading: state.ui.isLoading || false\n }))\n const { t } = useTranslation()\n const columnSorter = (a, b) => (a < b ? -1 : a > b ? 1 : 0)\n const onHeaderCell = () => {\n return {\n style: {\n color: '#262626',\n fontWeight: 'bold'\n },\n role: 'columnheader'\n }\n }\n\n const datePickerStyle = {\n width: '256px',\n height: '40px',\n border: '1px solid #D9D9D9',\n color: '#BFBFBF'\n }\n\n const isInactive = record => !record?.active\n\n const isNotApproved = record => record.approvalEffectiveOn === null\n\n const renderAttendanceRate = (attendanceRate, record) => {\n if (isInactive(record) || !attendanceRate) {\n return '-'\n }\n\n const createTag = (color, text) => (\n \n {`${(attendanceRate?.rate * 100).toFixed(1)}% - ${t(text)}`}\n \n )\n\n switch (attendanceRate?.riskCategory) {\n case attendanceCategories.AHEADOFSCHEDULE:\n return createTag('green', 'aheadOfSchedule')\n case attendanceCategories.ONTRACK:\n return createTag('green', 'onTrack')\n case attendanceCategories.SUREBET:\n return createTag('green', 'sureBet')\n case attendanceCategories.ATRISK:\n return createTag('orange', 'atRisk')\n case attendanceCategories.WILLNOTMEET:\n return createTag('orange', 'willNotMeet')\n case attendanceCategories.NOTENOUGHINFO:\n default:\n return createTag('grey', 'notEnoughInfo')\n }\n }\n\n const renderFullDays = (fullday, record) => {\n if (isInactive(record)) {\n return '-'\n }\n const renderCell = (color, text) => {\n return (\n
\n {user.is_admin ? (\n

{fullday?.text}

\n ) : (\n

{fullday?.text.split(' ')[0]}

\n )}\n {t(text)}\n
\n )\n }\n switch (fullday?.tag) {\n case fullDayCategories.AHEADOFSCHEDULE:\n return renderCell('green', 'aheadOfSchedule')\n case fullDayCategories.ONTRACK:\n return renderCell('green', 'onTrack')\n case fullDayCategories.ATRISK:\n return renderCell('orange', 'atRisk')\n case fullDayCategories.EXCEEDEDLIMIT:\n return renderCell('red', 'exceededLimit')\n default:\n return renderCell('grey', 'notEnoughInfo')\n }\n }\n\n const renderHoursOrPartDays = (text, record) => {\n let control_date = dayjs('2023-06-30 23:59')\n if (dayjs(dateFilterValue?.date) > control_date) {\n return isInactive(record) ? (\n '-'\n ) : user.is_admin ? (\n
{record.partDays?.text}
\n ) : (\n
{record.partDays?.info}
\n )\n }\n return isInactive(record) ? '-' : user.is_admin ? text : text?.split(' ')[0]\n // return isInactive(record) ? '-' : text\n }\n\n const renderRemainingHoursOrPartDays = (text, record) => {\n let control_date = dayjs('2023-06-30 23:59')\n if (dayjs(dateFilterValue?.date) > control_date) {\n return isInactive(record) || record.remainingPartDays === null ? (\n '-'\n ) : (\n
{`${record.remainingPartDays} (of ${record.totalPartDays?.info})`}
\n )\n }\n return isInactive(record)\n ? '-'\n : `${record.hoursRemaining} (of ${record.hoursAuthorized})`\n }\n\n const renderChild = (child, record) => {\n return child ? (\n
\n

\n {`${child.childFirstName} ${child.childLastName}`}\n {isInactive(record) ? ` (${t('inactive')})` : ''}\n

\n

\n {child.business} \"ellipse\"{' '}\n {child.cNumber}\n

\n
\n ) : (\n <>\n )\n }\n\n const generateColumns = columns => {\n return columns.map(({ name = '', children = [], ...options }) => {\n const hasDefinition = [\n 'attendance',\n 'attendanceRate',\n 'guaranteedRevenue',\n 'totalAuthorizationPeriod',\n 'authorizedPeriod'\n ]\n return {\n // eslint-disable-next-line react/display-name\n title: () =>\n hasDefinition.includes(name) ? (\n
\n {t(`${name}`)}\n setActiveKey(name)}\n id={name}\n >\n \n \n
\n ) : name === 'hoursAttended' ? (\n

\n {t('maxHours')}\n
\n

\n ) : (\n t(`${name}`)\n ),\n dataIndex: name,\n key: name,\n width: 200,\n onHeaderCell,\n children: generateColumns(children),\n sortDirections: ['descend', 'ascend'],\n ...options\n }\n })\n }\n\n const renderDollarAmount = (num, record) =>\n isInactive(record) ? '-' :
{currencyFormatter.format(num)}
\n\n const replaceText = (\n text,\n translation,\n is_absence = false,\n absences_dates = null\n ) =>\n !is_absence ? (\n
{text?.replace(translation, t(translation))}
\n ) : (\n
\n
{text?.replace(translation, t(translation))}
\n
{render_absences_dates(absences_dates)}
\n
\n )\n\n const render_absences_dates = dates => {\n const last_date = dates?.at(-1)\n const formated_dates = dates?.map(date => {\n const splited_date = date.trim().split('/')\n const month = parseInt(splited_date[0], 10)\n const day = parseInt(splited_date[1], 10)\n return user.is_admin ? (\n `${month}/${day}${last_date === date ? ' ' : ', '}`\n ) : (\n <>\n {`${parseInt(/-(\\d{2})-(\\d{2})/.exec(date)[1], 10)}/${parseInt(\n /-(\\d{2})-(\\d{2})/.exec(date)[2],\n 10\n )}`}\n {last_date === date ? '' : ', '}\n \n )\n })\n return formated_dates\n }\n\n const renderAuthInfo = child => {\n if (Object.keys(child).length === 0) {\n return <>\n } else {\n const full_name =\n child.child.childFirstName + ' ' + child.child.childLastName\n const effective_date = child?.approvalEffectiveOn\n const expiration_date = child?.approvalExpiresOn\n return (\n <>\n

{full_name}

\n

Current Effective Date:

\n

{effective_date}

\n

Current Expiration Date:

\n

{expiration_date}

\n

\n

New Effective Date

\n {\n setEffectiveDate(dateString)\n }}\n value={effectiveDate ? dayjs(effectiveDate, 'YYYY-MM-DD') : null}\n />\n
\n

New Expiration Date

\n {\n setExpirationDate(dateString)\n }}\n value={expirationDate ? dayjs(expirationDate, 'YYYY-MM-DD') : null}\n />\n {auModalErrorMessage(aUErrorMessage)}\n \n )\n }\n }\n\n const renderActions = (_text, record) => (\n
\n
\n handleInactiveClick(record)}\n >\n \n \n {isInactive(record) ? t('markActive') : t('markInactive')}\n \n \n
\n
\n handleEditAuthClick(record)}\n >\n \n {'\\u27F3'} Update Authorization\n \n \n
\n
\n )\n\n const handleEditAuthClick = record => {\n setSelectedChild(record)\n setIsAUModalVisible(true)\n }\n\n const handleInactiveClick = record => {\n setSelectedChild(record)\n setIsMIModalVisible(true)\n }\n\n const handleModalCancel = () => {\n setSelectedChild({})\n setInactiveReason(null)\n setInactiveDate(null)\n setIsMIModalVisible(false)\n }\n\n const shouldAllowToExport = () => {\n return env?.REACT_APP_WHITELIST_EXPORT_CSV?.includes(user?.email)\n }\n\n const handleMIModalOk = async () => {\n const response = await makeRequest({\n type: 'put',\n url: '/api/v1/children/' + selectedChild?.id ?? '',\n headers: {\n Authorization: token\n },\n data: {\n child: {\n ...(isInactive(selectedChild)\n ? { active: true, last_inactive_date: activeDate }\n : {\n active: false,\n inactive_reason: inactiveReason,\n last_active_date: inactiveDate\n })\n }\n }\n })\n\n if (response.ok) {\n !isInactive(selectedChild) &&\n sendGAEvent('mark_inactive', {\n date: inactiveDate,\n page_title: 'dashboard',\n reason_selected: inactiveReason\n })\n dispatch(\n updateCase({\n childId: selectedChild?.id,\n updates: { active: isInactive(selectedChild) ? true : false }\n })\n )\n }\n handleModalCancel()\n }\n\n const auModalErrorMessage = type => {\n let error_message = ''\n switch (type) {\n case 'wrong_date':\n error_message = 'Expiration date must be after the Effective date'\n break\n case 'empty_dates':\n error_message = 'Date fields cannot be empty'\n break\n default:\n error_message = ''\n }\n return (\n
\n

{error_message}

\n
\n )\n }\n\n const handleAUModalOk = async () => {\n if (expirationDate < effectiveDate) {\n setAUErrorMessage('wrong_date')\n } else if (expirationDate === null || effectiveDate === null) {\n setAUErrorMessage('empty_dates')\n } else {\n const response = await makeRequest({\n type: 'patch',\n url: `/api/v1/children/${selectedChild.id}/update_auth`,\n headers: {\n Authorization: token\n },\n data: {\n current_effective_date: selectedChild.approvalEffectiveOn,\n current_expiration_date: selectedChild.approvalExpiresOn,\n new_effective_date: effectiveDate,\n new_expiration_date: expirationDate\n }\n })\n if (response.ok) {\n dispatch(\n updateCase({\n childId: selectedChild?.id,\n updates: {\n approvalEffectiveOn: effectiveDate,\n approvalExpiresOn: expirationDate\n }\n })\n )\n setIsAUModalVisible(false)\n }\n }\n }\n\n const columnConfig = {\n ne: [\n {\n children: [\n {\n name: 'child',\n render: renderChild,\n width: 250,\n sorter: (a, b) =>\n columnSorter(\n a.child.childLastName.match(/([A-zÀ-ú])+/)[0],\n b.child.childLastName.match(/([A-zÀ-ú])+/)[0]\n )\n }\n ]\n },\n {\n name: 'attendance',\n children: [\n {\n name: 'fullDays',\n sorter: (a, b) =>\n a.fullDays.text.match(/^\\d+/)[0] -\n b.fullDays.text.match(/^\\d+/)[0],\n render: renderFullDays\n },\n {\n name:\n dayjs(dateFilterValue?.date) > dayjs('2023-06-30 23:59')\n ? t('partialDays')\n : 'hours',\n sorter: (a, b) =>\n user.is_admin\n ? a.partDays.text.match(/^\\d+/)[0] -\n b.partDays.text.match(/^\\d+/)[0]\n : a.hours.match(/^\\d+/)[0] - b.hours.match(/^\\d+/)[0],\n render: renderHoursOrPartDays\n },\n {\n name: 'absences',\n sorter: (a, b) =>\n a.absences.match(/^\\d+/)[0] - b.absences.match(/^\\d+/)[0],\n render: (text, record) =>\n isInactive(record)\n ? '-'\n : replaceText(text, 'of', true, record.absences_dates)\n },\n // {\n // name: 'hours',\n // sorter: (a, b) =>\n // a.hours.match(/^\\d+/)[0] - b.hours.match(/^\\d+/)[0],\n // render: (text, record) =>\n // isInactive(record) ? '-' : text.split(' ')[0]\n // },\n {\n name: 'hoursAttended',\n sorter: (a, b) =>\n user.is_admin\n ? a.hoursAttended.match(/^\\d+/)[0] -\n b.hoursAttended.match(/^\\d+/)[0]\n : a.hours.match(/^\\d+/)[0] - b.hours.match(/^\\d+/)[0],\n render: (text, record) =>\n isInactive(record) ? '-' : replaceText(text, 'of')\n }\n ]\n },\n {\n name: 'revenue',\n children: user.is_admin\n ? [\n {\n name: 'familyFee',\n sorter: (a, b) => a.familyFee - b.familyFee,\n render: renderDollarAmount\n }\n ]\n : [\n {\n name: 'earnedRevenue',\n sorter: (a, b) => a.earnedRevenue - b.earnedRevenue,\n render: renderDollarAmount\n },\n {\n name: 'estimatedRevenue',\n sorter: (a, b) => a.estimatedRevenue - b.estimatedRevenue,\n render: renderDollarAmount\n },\n {\n name: 'familyFee',\n sorter: (a, b) => a.familyFee - b.familyFee,\n render: renderDollarAmount\n }\n ]\n },\n {\n name: 'totalAuthorizationPeriod',\n children: user.is_admin\n ? [\n {\n name: 'authorizedPeriod',\n sorter: (a, b) =>\n dayjs(a.approvalEffectiveOn) - dayjs(b.approvalEffectiveOn),\n render: (text, record) =>\n isInactive(record)\n ? '-'\n : isNotApproved(record)\n ? 'unknown'\n : `${dayjs(record.approvalEffectiveOn).format('M/D/YY')}${\n record.approvalExpiresOn\n ? ` - ${dayjs(record.approvalExpiresOn).format(\n 'M/D/YY'\n )}`\n : ''\n }`\n }\n ]\n : [\n {\n name: 'authorizedPeriod',\n sorter: (a, b) =>\n dayjs(a.approvalEffectiveOn) - dayjs(b.approvalEffectiveOn),\n render: (text, record) =>\n isInactive(record)\n ? '-'\n : isNotApproved(record)\n ? 'unknown'\n : `${dayjs(record.approvalEffectiveOn).format('M/D/YY')}${\n record.approvalExpiresOn\n ? ` - ${dayjs(record.approvalExpiresOn).format(\n 'M/D/YY'\n )}`\n : ''\n }`\n },\n {\n name: 'fullDaysRemaining',\n sorter: (a, b) => a.fullDaysRemaining - b.fullDaysRemaining,\n render: (text, record) =>\n isInactive(record)\n ? '-'\n : `${record.fullDaysRemaining} (of ${record.fullDaysAuthorized})`\n },\n {\n name:\n dayjs(dateFilterValue?.date) > dayjs('2023-06-30 23:59')\n ? t('partialDaysRemaining')\n : 'hoursRemaining',\n sorter: (a, b) => a.hoursRemaining - b.hoursRemaining,\n render: renderRemainingHoursOrPartDays\n }\n ]\n },\n {\n children: [\n {\n name: 'actions',\n render: renderActions,\n width: 175\n }\n ]\n }\n ],\n default: [\n {\n name: 'child',\n sorter: (a, b) => columnSorter(a.childLastName, b.childLastName),\n // eslint-disable-next-line react/display-name\n render: (text, record) => (\n
\n

\n {`${record.childFirstName} ${record.childLastName}`}\n {isInactive(record) ? ` (${t('inactive')})` : ''}\n

\n

\n {record.business}{' '}\n \"ellipse\"{' '}\n {record.cNumber}\n

\n
\n )\n },\n {\n name: 'fullDaysAttended',\n render: (text, record) => text\n },\n {\n name: 'partDaysAttended',\n render: (text, record) => text\n },\n {\n name: 'attendanceRate',\n sorter: (a, b) => a.attendanceRate.rate - b.attendanceRate.rate,\n render: renderAttendanceRate\n },\n {\n name: 'guaranteedRevenue',\n sorter: (a, b) => a.guaranteedRevenue - b.guaranteedRevenue,\n render: renderDollarAmount\n },\n // {\n // name: 'potentialRevenue',\n // sorter: (a, b) => a.potentialRevenue - b.potentialRevenue,\n // render: renderDollarAmount\n // },\n\n // {\n // name: 'maxApprovedRevenue',\n // sorter: (a, b) => a.maxApprovedRevenue - b.maxApprovedRevenue,\n // render: renderDollarAmount\n // },\n {\n name: 'authorizedPeriod',\n sorter: (a, b) =>\n dayjs(a.approvalEffectiveOn) - dayjs(b.approvalEffectiveOn),\n render: (text, record) =>\n isInactive(record)\n ? '-'\n : isNotApproved(record)\n ? 'unknown'\n : `${dayjs(record.approvalEffectiveOn).format('M/D/YY')}${\n record.approvalExpiresOn\n ? ` - ${dayjs(record.approvalExpiresOn).format('M/D/YY')}`\n : ''\n }`\n },\n {\n name: 'actions',\n render: renderActions,\n width: 175\n }\n ]\n }\n\n useEffect(() => {\n setSortedRows(\n [...tableData].sort((a, b) =>\n (!isInactive(a) && !isInactive(b)) || (isInactive(a) && isInactive(b))\n ? 0\n : isInactive(b)\n ? -1\n : 1\n )\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tableData])\n\n return (\n <>\n {shouldAllowToExport() && (\n \n )}\n \n }}\n />\n \n

\n {(isInactive(selectedChild)\n ? t('markActive')\n : t('markInactive')) +\n ': ' +\n (`${selectedChild?.child?.childFirstName} ${selectedChild?.child?.childLastName}` ||\n `${selectedChild?.childFirstName} ${selectedChild?.childLastName}`)}\n

\n \n }\n open={isMIModalVisible}\n onOk={handleMIModalOk}\n onCancel={handleModalCancel}\n footer={[\n ,\n \n {isInactive(selectedChild) ? t('markActive') : t('markInactive')}\n \n ]}\n >\n

\n {!isInactive(selectedChild)\n ? t('markInactiveInfo1') + ' ' + t('markInactiveInfo2')\n : t('markActiveInfo')}\n

\n {!isInactive(selectedChild) && (\n <>\n setInactiveReason(value)}\n value={inactiveReason}\n >\n \n {t('inactiveReason1')}\n \n \n {t('inactiveReason2')}\n \n \n {t('inactiveReason3')}\n \n \n \n )}\n

\n {isInactive(selectedChild)\n ? t('markActiveCalendarPrompt')\n : t('markInactiveCalendarPrompt')}\n

\n \n !isInactive(selectedChild)\n ? setInactiveDate(dateString)\n : setActiveDate(dateString)\n }\n value={\n inactiveDate || activeDate\n ? dayjs(inactiveDate || activeDate, 'YYYY-MM-DD')\n : inactiveDate || activeDate\n }\n />\n \n <>\n setIsAUModalVisible(false)}\n okText=\"Update Authorization\"\n >\n {renderAuthInfo(selectedChild)}\n \n \n \n )\n}\n\nDashboardTable.propTypes = {\n dateFilterValue: PropTypes.object,\n tableData: PropTypes.array.isRequired,\n userState: PropTypes.string,\n setActiveKey: PropTypes.func.isRequired\n}\n","import React from 'react'\nimport { useHistory } from 'react-router-dom'\nimport PropTypes from 'prop-types'\nimport { Button, Grid, Typography, Select } from 'antd'\nimport { PlusOutlined } from '@ant-design/icons'\nimport { useTranslation } from 'react-i18next'\nimport { useGoogleAnalytics } from '_shared/_hooks/useGoogleAnalytics'\nimport SiteFilterSelect from '_shared/SiteFilterSelect'\nimport '_assets/styles/dashboard-overrides.css'\n\nconst { useBreakpoint } = Grid\nconst { Option } = Select\n\nexport default function DashboardTitle({\n dates,\n setDates,\n makeMonth,\n businesses,\n filteredCases,\n getDashboardData\n}) {\n const { t } = useTranslation()\n const { sendGAEvent } = useGoogleAnalytics()\n const screens = useBreakpoint()\n const history = useHistory()\n const matchAndReplaceDate = (dateString = '') => {\n const match = dateString.match(/^[A-Za-z]+/)\n return match ? dateString.replace(match[0], t(match[0].toLowerCase())) : ''\n }\n\n const renderMonthSelector = () => (\n {\n sendGAEvent('dates_filtered', {\n page_title: 'dashboard',\n date_selected: value.slice(0, 7)\n })\n setDates({\n ...dates,\n dateFilterValue: makeMonth(new Date(value))\n })\n getDashboardData({ filterDate: value, businessIds: filteredCases })\n }}\n size=\"large\"\n className=\"my-2 mr-2 text-base date-filter-select\"\n >\n {(dates?.dateFilterMonths ?? []).map((month, k) => {\n return (\n \n )\n })}\n \n )\n\n return (\n
\n {(screens.sm || screens.xs) && !screens.md ? (\n
\n
\n \n {t('dashboardTitle')}\n \n
\n {renderMonthSelector()}\n \n {`${t(`asOf`)}: ${matchAndReplaceDate(dates.asOf)}`}\n \n
\n
\n {\n getDashboardData({\n businessIds: value,\n filterDate: dates?.dateFilterValue?.date\n })\n }}\n />\n
\n \n {t('revenueProjections')}\n \n {\n sendGAEvent('attendance_input_clicked', {\n page_title: 'dashboard'\n })\n\n history.push('/attendance/edit')\n }}\n >\n {t('addAttendance')} \n \n
\n
\n ) : (\n
\n
\n \n {t('dashboardTitle')}\n \n {renderMonthSelector()}\n \n {`${t(`asOf`)}: ${matchAndReplaceDate(dates.asOf)}`}\n \n
\n {\n getDashboardData({\n businessIds: value,\n filterDate: dates?.dateFilterValue?.date\n })\n }}\n />\n
\n {\n sendGAEvent('attendance_input_clicked', {\n page_title: 'dashboard'\n })\n\n history.push('/attendance/edit')\n }}\n >\n {t('addAttendance')} \n \n
\n
\n )}\n
\n )\n}\n\nDashboardTitle.propTypes = {\n dates: PropTypes.object,\n setDates: PropTypes.func,\n makeMonth: PropTypes.func,\n businesses: PropTypes.array,\n filteredCases: PropTypes.array,\n getDashboardData: PropTypes.func\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Button, Divider, List } from 'antd'\nimport dayjs from 'dayjs'\nimport { useTranslation } from 'react-i18next'\nimport { ExclamationCircleOutlined, MailOutlined } from '@ant-design/icons'\nimport { PIE_FOR_PROVIDERS_EMAIL } from '../constants'\nimport '_assets/styles/notification-list-overrides.css'\n\nconst Notifications = ({ messages, setShowModal, isModal = false }) => {\n const { t, i18n } = useTranslation()\n\n return (\n \n

{`${t('notifications')} ${\n messages.length > 0 ? `(${messages.length})` : ''\n }`}

\n {isModal ? null : (\n \n )}\n \n }\n dataSource={isModal ? messages : messages.slice(0, 2)}\n locale={{\n emptyText: (\n
\n \n
\n

{t('noNotifications1')}

\n

{t('noNotifications2')}

\n
\n
\n )\n }}\n footer={\n !isModal && messages.length > 0 ? (\n
\n \n
\n ) : null\n }\n renderItem={(item, index) => {\n const effectiveDate = dayjs(item.created_at)\n const expirationDate = dayjs(item.expires_on)\n return (\n
\n \n
\n
\n {i18n.language === 'en' ? (\n <>\n \n {item.first_name + ' ' + item.last_name + `'s `}\n \n {t('subsidyAuth') +\n ' ' +\n t('subAuthExpires') +\n expirationDate.format('MMM D') +\n '. '}\n \n ) : (\n <>\n {t('subsidyAuth')}\n \n {item.first_name + ' ' + item.last_name + ' '}\n \n {t('subAuthExpires') +\n expirationDate.format('D') +\n ' de ' +\n expirationDate.format('MMM') +\n '. '}\n \n )}\n {t('emailTo')}\n \n {PIE_FOR_PROVIDERS_EMAIL + '.'}\n \n
\n {i18n.language === 'en' ? (\n
\n {effectiveDate.format('MMM D, YYYY') || ''}\n
\n ) : (\n
\n {effectiveDate.format('D') +\n ' de ' +\n effectiveDate.format('MMM, YYYY')}\n
\n )}\n {!isModal || (isModal && messages.length !== index + 1) ? (\n \n ) : null}\n
\n
\n )\n }}\n />\n )\n}\n\nNotifications.propTypes = {\n messages: PropTypes.array,\n setShowModal: PropTypes.func,\n isModal: PropTypes.bool\n}\n\nexport default Notifications\n","/* eslint-disable no-debugger */\nimport React, { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Modal } from 'antd'\nimport { useApiResponse } from '_shared/_hooks/useApiResponse'\nimport { useCaseData } from '_shared/_hooks/useCaseData'\nimport { useAdminData } from '_shared/_hooks/useAdminData'\nimport { useProgress } from '_shared/_hooks/useProgress'\nimport { useDispatch, useSelector } from 'react-redux'\nimport useHotjar from 'react-use-hotjar'\nimport runtimeEnv from '@mars/heroku-js-runtime-env'\nimport { setUser } from '_reducers/userReducer'\nimport DashboardDefinitions from './DashboardDefinitions'\nimport DashboardStats from './DashboardStats'\nimport DashboardTable from './DashboardTable'\nimport DashboardTitle from './DashboardTitle'\nimport { setBusinesses } from '_reducers/businessesReducer'\nimport { setCaseData } from '_reducers/casesReducer'\nimport { setLoading } from '_reducers/uiReducer'\nimport Notifications from './Notifications'\nimport { setFilteredCases } from '_reducers/uiReducer'\nimport '_assets/styles/notification-modal-overrides.css'\n\nconst env = runtimeEnv()\n\nexport function Dashboard() {\n const dispatch = useDispatch()\n const { parseResult } = useProgress()\n const { identifyHotjar } = useHotjar()\n const { reduceTableData } = useCaseData()\n const { reduceAdminData } = useAdminData()\n const { makeRequest } = useApiResponse()\n const { t, i18n } = useTranslation()\n const currencyFormatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0\n })\n const { businesses, token, user, filteredCases, cases } = useSelector(\n state => ({\n businesses: state.businesses,\n token: state.auth.token,\n user: state.user,\n filteredCases: state.ui.filteredCases,\n cases: state.cases\n })\n )\n\n const summaryDataTotalsConfig = {\n ne: {\n earnedRevenueTotal: 0,\n estimatedRevenueTotal: 0,\n maxRevenueTotal: 0,\n totalApprovedTotal: 0,\n totalApprovedRevenueWithFamilyFeeTotal: 0\n },\n default: {\n guaranteedRevenueTotal: 0,\n potentialRevenueTotal: 0,\n maxApprovedRevenueTotal: 0,\n attendanceRateTotal: 0\n }\n }\n const [summaryDataTotals, setSummaryTotals] = useState(\n summaryDataTotalsConfig[`${user.state === 'NE' ? 'ne' : 'default'}`]\n )\n const [summaryData, setSummaryData] = useState([])\n const [tableData, setTableData] = useState([])\n const [notificationMessages, setNotificationMessages] = useState([])\n const [dates, setDates] = useState({\n asOf: '',\n dateFilterValue: {\n displayDate: '',\n date: ''\n },\n dateFilterMonths: []\n })\n const [activeKey, setActiveKey] = useState()\n const [showNotificationsModal, setShowNotificationsModal] = useState(false)\n\n const handleDefinitionsPanel = () => setActiveKey(activeKey === 1 ? null : 1)\n\n const generateSummaryData = (td = tableData, totals = summaryDataTotals) => {\n if (user.state === 'NE') {\n return user.is_admin\n ? []\n : [\n {\n title: t('earnedRevenue'),\n stat: `${currencyFormatter.format(\n (totals.earnedRevenueTotal || 0).toFixed()\n )}`,\n definition: t('earnedRevenueDef')\n },\n {\n title: t('estimatedRevenue'),\n stat: `${currencyFormatter.format(\n (totals.estimatedRevenueTotal || 0).toFixed()\n )}`,\n definition: t(`estimatedRevenueDef`)\n }\n ]\n } else if (totals.guaranteedRevenueTotal >= 0) {\n return [\n {\n title: t('earnedRevenue'),\n stat: `${currencyFormatter.format(\n totals.guaranteedRevenueTotal.toFixed()\n )}`,\n definition: t('guaranteedRevenueDef')\n },\n // {\n // title: t('potentialRevenue'),\n // stat: `${currencyFormatter.format(\n // totals.potentialRevenueTotal.toFixed()\n // )}`,\n // definition: t('potentialRevenueDef')\n // },\n // {\n // title: t('maxApprovedRevenue'),\n // stat: `${currencyFormatter.format(\n // totals.maxApprovedRevenueTotal.toFixed()\n // )}`,\n // definition: t('maxApprovedRevenueDef')\n // },\n {\n title: t('attendanceRate'),\n stat: `${((totals.attendanceRateTotal / td.length) * 100).toFixed(\n 2\n )}%`,\n definition: t('attendanceRateDef')\n }\n ]\n }\n\n return []\n }\n\n i18n.on('languageChanged', () => setSummaryData(generateSummaryData()))\n\n const reduceSummaryData = (data, res) => {\n if (user.state === 'NE') {\n return {\n ...data?.reduce((acc, cv) => {\n return {\n ...acc,\n earnedRevenueTotal: cv.active\n ? acc.earnedRevenueTotal + cv.earnedRevenue\n : acc.earnedRevenueTotal,\n estimatedRevenueTotal: cv.active\n ? acc.estimatedRevenueTotal + cv.estimatedRevenue\n : acc.estimatedRevenueTotal,\n totalApprovedRevenueWithFamilyFeeTotal:\n acc.totalApprovedWithFamilyFeeTotal\n }\n }, summaryDataTotalsConfig['ne']),\n ...res.reduce((acc, cv) => {\n const setTotal = (total, amount) =>\n total ??\n 0 +\n (typeof amount === 'string' || amount instanceof String\n ? 0\n : amount)\n\n return {\n maxRevenueTotal:\n cv.max_revenue === 'N/A'\n ? 'n/a'\n : setTotal(acc.maxRevenueTotal, cv.max_revenue),\n totalApprovedTotal:\n cv.total_approved === 'N/A'\n ? 'n/a'\n : setTotal(acc.totalApprovedTotal, cv.total_approved)\n }\n }, {})\n }\n }\n\n return data.reduce((acc, cv) => {\n const {\n guaranteedRevenue,\n maxApprovedRevenue,\n potentialRevenue,\n attendanceRate: { rate }\n } = cv\n\n return {\n guaranteedRevenueTotal: acc.guaranteedRevenueTotal + guaranteedRevenue,\n potentialRevenueTotal: acc.potentialRevenueTotal + potentialRevenue,\n maxApprovedRevenueTotal:\n acc.maxApprovedRevenueTotal + maxApprovedRevenue,\n attendanceRateTotal: acc.attendanceRateTotal + rate\n }\n }, summaryDataTotalsConfig['default'])\n }\n\n const makeMonth = (date = new Date()) => ({\n displayDate: date.toLocaleDateString('default', {\n month: 'short',\n year: 'numeric'\n }),\n date: date.toISOString().split('T')[0]\n })\n\n const reduceDates = (res, fd) => {\n const reduceDate = date_name => {\n return new Date(\n res?.reduce((user1, user2) => {\n return new Date(user1.as_of) > new Date(user2.as_of) ? user1 : user2\n })[`${date_name}`]\n )\n }\n const monthDiff = (dateFrom, dateTo) => {\n return (\n dateTo.getMonth() -\n dateFrom.getMonth() +\n 12 * (dateTo.getFullYear() - dateFrom.getFullYear())\n )\n }\n\n const firstMonth = reduceDate('first_approval_effective_date')\n let currentDate = new Date()\n const numOfMonths = monthDiff(firstMonth, currentDate)\n let dateFilterMonths = []\n dateFilterMonths.push(makeMonth(currentDate))\n\n for (let i = 0; i < numOfMonths; i++) {\n currentDate.setDate(0)\n dateFilterMonths.push(makeMonth(currentDate))\n }\n\n return {\n asOf: reduceDate('as_of').toLocaleDateString('default', {\n month: 'short',\n day: 'numeric'\n }),\n dateFilterValue: fd ? makeMonth(new Date(fd)) : makeMonth(),\n dateFilterMonths\n }\n }\n\n const getDashboardData = async ({\n businessIds = [],\n filterDate = undefined\n } = {}) => {\n dispatch(setLoading(true))\n const baseUrl = user.is_admin\n ? '/api/v1/dashboard_case'\n : '/api/v1/case_list_for_dashboard'\n const response = await makeRequest({\n type: 'get',\n url:\n businessIds.length > 0 || filterDate\n ? baseUrl +\n `?filter_date=${filterDate}&business=${businessIds.join(',')}`\n : baseUrl,\n headers: { Authorization: token }\n })\n const parsedResponse = await parseResult(response)\n\n if (!parsedResponse.error) {\n const tableData = user.is_admin\n ? reduceAdminData(parsedResponse[0].data)\n : reduceTableData(parsedResponse, user)\n\n const updatedSummaryDataTotals = reduceSummaryData(\n tableData,\n parsedResponse\n )\n\n if (dates.asOf === '') {\n const updatedDates = reduceDates(parsedResponse, filterDate)\n setDates(updatedDates)\n }\n dispatch(setFilteredCases(businessIds))\n dispatch(setCaseData(tableData))\n setSummaryTotals(updatedSummaryDataTotals)\n setSummaryData(generateSummaryData(tableData, updatedSummaryDataTotals))\n }\n dispatch(setLoading(false))\n }\n\n useEffect(() => {\n const getUserData = async () => {\n const response = await makeRequest({\n type: 'get',\n url: '/api/v1/profile',\n headers: {\n Authorization: token\n }\n })\n\n if (response.ok) {\n const resp = await response.json()\n\n dispatch(setUser(resp))\n identifyHotjar(resp.id ?? null, resp, console.info)\n setSummaryTotals(\n summaryDataTotalsConfig[`${resp.state === 'NE' ? 'ne' : 'default'}`]\n )\n }\n }\n\n const getBusinessData = async () => {\n const response = await makeRequest({\n type: 'get',\n url: '/api/v1/businesses',\n headers: {\n Authorization: token\n }\n })\n\n if (response.ok) {\n const resp = await response.json()\n\n dispatch(setBusinesses(resp))\n }\n }\n\n const getNotifications = async () => {\n const response = await makeRequest({\n type: 'get',\n url: '/api/v1/notifications',\n headers: {\n Authorization: token\n }\n })\n\n if (response.ok) {\n const resp = await response.json()\n\n setNotificationMessages(resp)\n }\n }\n\n if (Object.keys(user).length !== 0) {\n getDashboardData({\n filterDate: dates?.dateFilterValue?.date,\n businessIds: filteredCases\n })\n }\n\n if (Object.keys(user).length === 0) {\n getUserData()\n }\n\n if (businesses.length === 0) {\n getBusinessData()\n }\n\n if (notificationMessages.length === 0) {\n getNotifications()\n }\n // Interesting re: refresh tokens - https://github.com/waiting-for-dev/devise-jwt/issues/7#issuecomment-322115576\n // still haven't found a better way around this - sometimes we really do\n // only want the useEffect to fire on the first component load\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user])\n\n useEffect(() => {\n setTableData(cases)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cases])\n\n return (\n
\n \n
\n \n {env.REACT_APP_DASHBOARD_NOTIFICATIONS === 'true' ? (\n \n ) : null}\n
\n {\n if (activeKey) {\n return\n } else {\n handleDefinitionsPanel()\n setTimeout(() => {\n document.getElementById(href).click()\n }, 200)\n }\n }}\n />\n \n setShowNotificationsModal(false)}\n onCancel={() => setShowNotificationsModal(false)}\n >\n \n \n
\n )\n}\n","export function useCaseData() {\n const reduceTableData = (res, user) => {\n return res.flatMap(userResponse => {\n return userResponse.businesses.flatMap(business => {\n return business.cases.flatMap((childCase, index) => {\n return user.state === 'NE'\n ? {\n id: childCase.id ?? '',\n key: `${index}-${childCase.first_name}-${childCase.last_name}`,\n absences: childCase.nebraska_dashboard_case.absences ?? '',\n absences_dates:\n childCase.nebraska_dashboard_case.absences_dates,\n child: {\n childFirstName: childCase.first_name ?? '',\n childLastName: childCase.last_name ?? '',\n cNumber: childCase.nebraska_dashboard_case.case_number ?? '',\n business: business.name ?? ''\n },\n earnedRevenue:\n childCase.nebraska_dashboard_case.earned_revenue ?? '',\n estimatedRevenue:\n childCase.nebraska_dashboard_case.estimated_revenue ?? '',\n fullDays: {\n text: childCase.nebraska_dashboard_case.full_days ?? '',\n tag: childCase.nebraska_dashboard_case.attendance_risk ?? ''\n },\n partDays: {\n text: 'partialDays',\n info: childCase.nebraska_dashboard_case.part_days\n },\n totalPartDays: {\n text: 'totalPartDays',\n info: childCase.nebraska_dashboard_case.total_part_days\n },\n remainingPartDays:\n childCase.nebraska_dashboard_case.remaining_part_days,\n hours: childCase.nebraska_dashboard_case.hours ?? '',\n hoursAttended:\n childCase.nebraska_dashboard_case.hours_attended ?? '',\n familyFee: childCase.nebraska_dashboard_case.family_fee ?? '',\n active: childCase.active ?? true,\n hoursAuthorized:\n childCase.nebraska_dashboard_case.hours_authorized ?? '',\n hoursRemaining:\n childCase.nebraska_dashboard_case.hours_remaining ?? '',\n fullDaysAuthorized:\n childCase.nebraska_dashboard_case.full_days_authorized ?? '',\n fullDaysRemaining:\n childCase.nebraska_dashboard_case.full_days_remaining ?? '',\n approvalEffectiveOn:\n childCase.nebraska_dashboard_case.approval_effective_on ?? '',\n approvalExpiresOn:\n childCase.nebraska_dashboard_case.approval_expires_on ?? ''\n }\n : {\n id: childCase.id ?? '',\n key: `${index}-${childCase.first_name}-${childCase.last_name}`,\n childFirstName: childCase.first_name ?? '',\n childLastName: childCase.last_name ?? '',\n cNumber: childCase.illinois_dashboard_case.case_number ?? '',\n business: business.name ?? '',\n attendanceRate: {\n rate: childCase.illinois_dashboard_case.attendance_rate ?? '',\n riskCategory:\n childCase.illinois_dashboard_case.attendance_risk ?? ''\n },\n guaranteedRevenue:\n childCase.illinois_dashboard_case.guaranteed_revenue ?? '',\n maxApprovedRevenue:\n childCase.illinois_dashboard_case.max_approved_revenue ?? '',\n potentialRevenue:\n childCase.illinois_dashboard_case.potential_revenue ?? '',\n active: childCase.active ?? true,\n fullDaysAttended:\n childCase.illinois_dashboard_case.full_days_attended ?? true,\n partDaysAttended:\n childCase.illinois_dashboard_case.part_days_attended ?? true,\n approvalEffectiveOn:\n childCase.illinois_dashboard_case.approval_effective_on ?? '',\n approvalExpiresOn:\n childCase.illinois_dashboard_case.approval_expires_on ?? '',\n childInfo: childCase ?? ''\n }\n })\n })\n })\n }\n return { reduceTableData }\n}\n","export function useAdminData() {\n const reduceAdminData = data => {\n return data.map((item, index) => ({\n id: item.id ?? '',\n key: `${index}-${item.first_name}-${item.last_name}`,\n active: item.active ?? true,\n approvalEffectiveOn: item.effective_on ?? '',\n approvalExpiresOn: item.expires_on ?? '',\n child: {\n childFirstName: item.first_name ?? '',\n childLastName: item.last_name ?? '',\n cNumber: item.case_number ?? '',\n business: item.business_name ?? ''\n },\n partDays: { text: item.part_time.toString() ?? '0', info: '' },\n fullDays: { text: item.full_time.toString() ?? '0', tag: '' },\n absences: `${item.absences_count.toString() ?? '0'} of 5`,\n absences_dates: item.absences?.split(',') ?? [],\n hoursAttended: item.max_hours_per_week ?? '',\n familyFee: item.family_fee ?? ''\n }))\n }\n\n return { reduceAdminData }\n}\n","export default __webpack_public_path__ + \"static/media/pieWithSlice.7f2754c5.png\";","import React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport pieWithSlice from '../_assets/pieWithSlice.png'\n\nexport function ComingSoon() {\n const { t } = useTranslation()\n\n return (\n
\n
\n \"pieWithSlice\"\n
\n

{t('comingSoonMsg1')}

\n

{t('comingSoonMsg2')}

\n
\n )\n}\n","import React, { useEffect } from 'react'\nimport { Card, Typography } from 'antd'\nimport useHotjar from 'react-use-hotjar'\nimport { useApiResponse } from '_shared/_hooks/useApiResponse'\nimport Icon from '@material-ui/core/Icon'\nimport AssignmentIcon from '@material-ui/icons/Assignment'\nimport BusinessIcon from '@material-ui/icons/Business'\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload'\nimport PlaylistAddIcon from '@material-ui/icons/PlaylistAdd'\nimport { useTranslation } from 'react-i18next'\nimport { PaddedButton } from '_shared/PaddedButton'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { setUser } from '_reducers/userReducer'\n\n// NB: we're using CSS grid instead of Ant grid for these cards\n// because Ant grid doesn't flow into the next row when there are\n// more cards than columns\n\nexport function GettingStarted() {\n const dispatch = useDispatch()\n const { identifyHotjar } = useHotjar()\n const { token, user } = useSelector(state => ({\n token: state.auth.token,\n user: state.user\n }))\n const { t } = useTranslation()\n const { makeRequest } = useApiResponse()\n\n useEffect(() => {\n const getUser = async () => {\n const response = await makeRequest({\n type: 'get',\n url: '/api/v1/profile',\n headers: {\n Authorization: token\n }\n })\n\n if (response.ok) {\n const resp = await response.json()\n dispatch(setUser(resp))\n identifyHotjar(resp.id ?? null, resp, console.info)\n }\n }\n\n if (Object.keys(user).length === 0) {\n getUser()\n }\n // we only want this to run once; making the makeRequest hook a dependency causes an infinite re-run of this query\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const cards = [\n {\n description: t('gettingStartedBusinesses'),\n icon: ,\n title: t('gettingStartedBusinessesTitle')\n },\n {\n description: t('gettingStartedUpload'),\n icon: ,\n title: t('gettingStartedUploadTitle')\n },\n {\n description: t('gettingStartedDetails'),\n icon: ,\n title: t('gettingStartedDetailsTitle')\n },\n {\n description: t('gettingStartedAgencies'),\n icon: ,\n title: t('gettingStartedAgenciesTitle')\n }\n ]\n return (\n
\n
\n \n {t('gettingStartedWelcome')}\n {user.greeting_name && `, ${user.greeting_name}!`}\n \n\n
\n \n
{t('gettingStartedTitle')}
\n
\n

{t('gettingStartedInstructions')}

\n
\n \n
{t('steps')}
\n
\n
\n {cards.map((card, idx) => (\n \n {card.icon}\n

\n {idx + 1}. {card.title}\n

\n

{card.description}

\n \n ))}\n
\n\n
\n \n
\n
\n
\n )\n}\n","import { useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { useHistory } from 'react-router-dom'\nimport { useApiResponse } from '_shared/_hooks/useApiResponse'\nimport { useDispatch } from 'react-redux'\nimport { addAuth, removeAuth } from '_reducers/authReducer'\n\nexport function Confirmation({ location }) {\n const dispatch = useDispatch()\n const { makeRequest } = useApiResponse()\n let history = useHistory()\n\n useEffect(() => {\n window.MiniProfiler?.pageTransition()\n }, [])\n\n useEffect(() => {\n let isSubscribed = true\n const confirm = async () => {\n const params = new URLSearchParams(location.search)\n const confirmationToken = params.get('confirmation_token')\n const response = await makeRequest({\n type: 'get',\n url: `confirmation${\n confirmationToken ? `?confirmation_token=${confirmationToken}` : ''\n }`\n })\n const authToken = response.headers.get('authorization')\n if (isSubscribed) {\n if (!response.ok || authToken === null) {\n const errorMessage = await response.json()\n dispatch(removeAuth())\n history.push({\n pathname: '/login',\n state: {\n error: {\n status: response.status,\n message: errorMessage.error,\n attribute: errorMessage.attribute,\n type: errorMessage.type\n }\n }\n })\n } else {\n const { state } = await response.json()\n dispatch(addAuth(authToken))\n\n if (state === 'NE' || state === 'IL') {\n history.push('/dashboard')\n } else {\n history.push('/comingsoon')\n }\n }\n }\n }\n confirm()\n return () => (isSubscribed = false)\n // we only want this to run once; making the makeRequest hook a dependency causes an infinite re-run of this query\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return null\n}\n\nConfirmation.propTypes = {\n location: PropTypes.object.isRequired\n}\n","import React, { useEffect, useState } from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { useTranslation } from 'react-i18next'\nimport { Form, Input } from 'antd'\nimport { PaddedButton } from '_shared/PaddedButton'\nimport { useApiResponse } from '_shared/_hooks/useApiResponse'\nimport { useDispatch } from 'react-redux'\nimport { addAuth, removeAuth } from '_reducers/authReducer'\n\nexport const NewPassword = () => {\n const dispatch = useDispatch()\n const [loading, setLoading] = useState(false)\n const { makeRequest } = useApiResponse()\n let history = useHistory()\n const location = useLocation()\n const { t } = useTranslation()\n\n useEffect(() => {\n const verifyPasswordToken = async () => {\n const params = new URLSearchParams(location.search)\n const resetToken = params.get('reset_password_token')\n if (!resetToken) {\n history.push({\n pathname: '/login',\n state: {\n error: {\n status: 422,\n attribute: 'reset_password_token',\n type: 'blank'\n }\n }\n })\n }\n }\n verifyPasswordToken()\n }, [history, location.search])\n\n const onFinish = async values => {\n const { password } = values\n const params = new URLSearchParams(location.search)\n const resetToken = params.get('reset_password_token')\n setLoading(true)\n\n const response = await makeRequest({\n type: 'put',\n url: '/password',\n data: {\n user: {\n reset_password_token: resetToken,\n password: password,\n password_confirmation: password\n }\n }\n })\n\n setLoading(false)\n\n const data = await response.json()\n\n if (!response.ok) {\n dispatch(removeAuth())\n history.push({\n pathname: '/login',\n state: {\n error: {\n status: response.status,\n attribute: data.attribute,\n type: data.type\n }\n }\n })\n return\n }\n\n const authToken = response.headers.get('authorization')\n if (!authToken) {\n dispatch(removeAuth())\n // Unconfirmed users\n history.push({\n pathname: '/login',\n state: {\n error: {\n status: 401,\n attribute: 'email',\n type: 'unconfirmed',\n context: { email: data.email }\n }\n }\n })\n } else {\n dispatch(addAuth(authToken))\n history.push('/dashboard')\n }\n }\n\n return (\n <>\n
\n

\n {t('resetPassword')}\n

\n
\n\n \n \n \n \n\n ({\n validator(rule, value) {\n if (!value || getFieldValue('password') === value) {\n return Promise.resolve()\n }\n return Promise.reject(t('passwordConfirmationMatch'))\n }\n })\n ]}\n >\n \n \n\n \n \n \n \n \n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { useTranslation } from 'react-i18next'\n\nexport const ResendToken = ({ type }) => {\n const { t } = useTranslation()\n\n return (\n
\n {`${t('yourConfirmationToken')} ${t(type)}. ${t(\n 'mustUseConfirmationEmail'\n )} ${t('requestNewConfirmation')} `}\n \n Placeholder Link\n \n
\n )\n}\n\nResendToken.propTypes = {\n type: PropTypes.string.isRequired\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { useHistory } from 'react-router-dom'\nimport ResendToken from 'ResendToken'\nimport { useTranslation } from 'react-i18next'\nimport { useApiResponse } from '_shared/_hooks/useApiResponse'\nimport { PIE_FOR_PROVIDERS_EMAIL } from '../constants'\nimport { Link } from 'react-router-dom'\n\nconst ContactUs = ({ message }) => {\n const { t } = useTranslation()\n return (\n <>\n {message}{' '}\n {t('contactUs')}{' '}\n {t('forSupport')}\n \n )\n}\n\nContactUs.propTypes = {\n message: PropTypes.string.isRequired\n}\n\nconst showConfirmationAlert = email => \nconst resendToken = type => \nconst contactUs = message => \n\nconst ConfirmationAlert = ({ email }) => {\n const { t } = useTranslation()\n const history = useHistory()\n const { makeRequest } = useApiResponse()\n\n const resendConfirmation = async () => {\n const response = await makeRequest({\n type: 'post',\n url: '/confirmation',\n data: {\n email\n }\n })\n if (response.ok) {\n history.replace({\n pathname: '/login',\n state: {\n success: {\n message: t('confirmationEmailResent')\n }\n }\n })\n } else {\n const errorMessage = await response.json()\n history.replace({\n pathname: '/login',\n state: {\n error: {\n status: response.status,\n message: errorMessage.error,\n attribute: errorMessage.attribute,\n type: errorMessage.type\n }\n }\n })\n }\n }\n\n return (\n
\n {t('emailUnconfirmed')}{' '}\n \n {t('clickHere')}\n {' '}\n {t('toResendConfirmationEmail')}\n
\n )\n}\n\nConfirmationAlert.propTypes = {\n email: PropTypes.string.isRequired\n}\n\nexport const AuthStatusAlert = ({ attribute, context, type }) => {\n const { t } = useTranslation()\n\n const errorMessages = {\n email: {\n unauthenticated: () => t('unauthenticated'),\n already_confirmed: () => t('alreadyConfirmed'),\n confirmation_period_expired: () => t('confirmationPeriodExpired'),\n unconfirmed: () => showConfirmationAlert(context?.email),\n not_found: () => t('emailNotFound'),\n invalid: () => t('invalidEmailOrPassword'),\n not_found_in_database: () => t('invalidEmailOrPassword'),\n default: () => contactUs(t('genericEmailConfirmationError'))\n },\n confirmation_token: {\n blank: () => resendToken('blank'),\n invalid: () => resendToken('invalid'),\n default: () => contactUs(t('genericEmailConfirmationError'))\n },\n reset_password_token: {\n blank: () => t('passwordResetTokenBlank'),\n invalid: () => t('passwordResetTokenInvalid'),\n expired: () => t('passwordResetTokenExpired')\n },\n default: () => t('genericConfirmationError')\n }\n\n const attributeError = errorMessages[attribute]\n if (!attributeError) {\n return errorMessages.default()\n }\n const alert = attributeError[type] || attributeError.default\n return alert()\n}\n\nAuthStatusAlert.defaultProps = {\n context: null\n}\n\nAuthStatusAlert.propTypes = {\n attribute: PropTypes.string.isRequired,\n context: PropTypes.shape({\n email: PropTypes.string.isRequired\n }),\n type: PropTypes.string.isRequired\n}\n","import React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nexport function Login() {\n const { t } = useTranslation()\n\n return (\n
\n
\n

{t('gettingStartedWelcome')}

\n
\n \n

\n Pie for Providers is not actively operating at this time.\n
\n Please reach out with any questions to:\n
\n \n support@lillio.com\n \n

\n \n
\n )\n}\n","import React from 'react'\nimport { ErrorDisplay } from './_shared'\n\nfunction NotFound() {\n return \n}\n\nexport default NotFound\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { sendSpan } from '../_utils/appSignal'\nimport { withTranslation } from 'react-i18next'\nimport { ErrorDisplay } from '../_shared'\n\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props)\n this.state = { hasError: false }\n }\n\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n\n componentDidCatch(error, errorInfo) {\n sendSpan({\n tags: {\n userId: this.state.user?.id\n },\n params: errorInfo,\n error\n })\n this.setState({ hasError: true })\n }\n\n render() {\n if (this.state.hasError) return \n\n return this.props.children\n }\n}\nconst mapStateToProps = state => ({ user: state.user })\n\nErrorBoundary.propTypes = {\n t: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired\n}\n\nexport const ErrorBoundaryComponent = connect(mapStateToProps)(\n withTranslation()(ErrorBoundary)\n)\n","import { read, utils, SSF } from 'xlsx'\nimport Papa from 'papaparse'\nimport { sha1 } from 'hash-anything'\n\nconst parsers = {\n csv: {\n parse: fileContent => {\n const { data } = Papa.parse(fileContent)\n return { data }\n }\n },\n xlsx: {\n parse: (fileContent, options = {}) => {\n const workbook = read(fileContent, {\n type: options.readAsBinaryString ? 'binary' : 'array'\n })\n const [sheetName] = workbook.SheetNames\n const worksheet = workbook.Sheets[sheetName]\n const data = utils.sheet_to_json(worksheet, {\n header: 1,\n blankrows: false\n })\n return { data }\n }\n }\n}\n\nexport const parserTypes = {\n 'text/csv': parsers.csv,\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n parsers.xlsx,\n 'application/vnd.ms-excel': parsers.xlsx\n}\n\nexport const getColumns = t => [\n {\n dataIndex: 'firstName',\n key: 'firstName',\n title: t('firstName')\n },\n {\n dataIndex: 'lastName',\n key: 'lastName',\n title: t('lastName')\n },\n {\n dataIndex: 'dateOfBirth',\n key: 'dateOfBirth',\n title: t('dateOfBirth'),\n render: text => SSF.format('yyyy-mm-dd', text)\n },\n {\n dataIndex: 'caseStatus',\n key: 'caseStatus',\n title: t('caseStatus'),\n responsive: ['sm']\n },\n {\n dataIndex: 'caseNumber',\n key: 'caseNumber',\n title: t('caseNumber'),\n responsive: ['sm']\n },\n {\n dataIndex: 'fullDaysPerMonth',\n key: 'fullDaysPerMonth',\n title: t('fullDaysPerMonth'),\n responsive: ['md']\n },\n {\n dataIndex: 'partDaysPerMonth',\n key: 'partDaysPerMonth',\n title: t('partDaysPerMonth'),\n responsive: ['md']\n },\n {\n dataIndex: 'effectiveOn',\n key: 'effectiveOn',\n title: t('effectiveOn'),\n responsive: ['md']\n },\n {\n dataIndex: 'expiresOn',\n key: 'expiresOn',\n title: t('expiresOn'),\n responsive: ['md']\n },\n {\n dataIndex: 'copay',\n key: 'copay',\n title: t('copay'),\n responsive: ['lg']\n },\n {\n dataIndex: 'copayFrequency',\n key: 'copayFrequency',\n title: t('copayFrequency'),\n responsive: ['lg']\n }\n]\n\nexport const randomHash = array => {\n const randomString =\n Math.random().toString(36).substring(2, 5) +\n Math.random().toString(36).substring(2, 5)\n return sha1(`${array.join()}${randomString}`)\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Table } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport { getColumns } from './utils'\n\nexport function CasesImportReview({ kids }) {\n const { t } = useTranslation()\n\n return (\n
\n

{t('reviewImportedCases')}

\n {kids.length > 0 && (\n
\n \n
\n )}\n
\n )\n}\n\nCasesImportReview.defaultProps = {\n kids: []\n}\n\nCasesImportReview.propTypes = {\n kids: PropTypes.array\n}\n","import React, { useState } from 'react'\nimport { Alert, Typography } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload'\nimport { CasesImportReview } from './CasesImportReview'\nimport { parserTypes, getColumns, randomHash } from './utils'\n\nconst { Title } = Typography\n\nexport function CasesImport() {\n const [kids, setKids] = useState([])\n const [error, setError] = useState('')\n const { t } = useTranslation()\n\n const columns = getColumns(t)\n\n const getType = file => {\n const nameArray = file.name.split('.')\n const extension = nameArray[nameArray.length - 1]\n // sometimes xls files come in with an empty type so we want to parse\n // the extension to verify what parser to use\n if (file.type === '' && ['xls', 'xlsx'].includes(extension)) {\n return 'application/vnd.ms-excel'\n } else {\n return file.type\n }\n }\n\n const onFileChange = e => {\n setError('')\n\n const [file] = e.target.files\n if (file) {\n const type = getType(file)\n if (!(type in parserTypes)) {\n setKids([])\n setError(t('uploadCasesInvalidFileFormat'))\n return\n }\n\n const reader = new FileReader()\n const readAsBinaryString = !!reader.readAsBinaryString\n reader.onload = e => {\n const { data } = parserTypes[type].parse(e.target.result, {\n readAsBinaryString\n })\n // Skip the instruction, header and column description rows\n const rows = data.slice(3)\n const kids = rows\n .map(row =>\n row.reduce(\n (acc, item, index) => ({\n ...acc,\n [columns[index]?.key]: item\n }),\n {}\n )\n )\n .map(kid => ({\n ...kid,\n key: randomHash([kid.firstName, kid.lastName, kid.dateOfBirth])\n }))\n .filter(kid => kid.firstName && kid.lastName && kid.dateOfBirth)\n setKids(kids)\n }\n\n if (readAsBinaryString) {\n return reader.readAsBinaryString(file)\n }\n\n reader.readAsArrayBuffer(file)\n }\n }\n\n const sampleSpreadsheets = [\n {\n language: 'en',\n name: 'Pie.for.Providers.Template.Spreadsheet.English.v.10.5.xlsx',\n text: 'Download our sample spreadsheet in English'\n },\n {\n language: 'es',\n name: 'Pie.for.Providers.Plantilla.de.Hoja.de.Calculo.Espanol.v.10.5.xlsx',\n text: 'Baja nuestra plantilla de hoja de cálculo en español'\n }\n ]\n\n return (\n
\n {t('uploadCases')}\n {error && (\n \n )}\n \n
\n {sampleSpreadsheets.map(spreadsheet => (\n \n \n {spreadsheet.text}\n \n ))}\n
\n \n
\n )\n}\n","import React, { useEffect } from 'react'\nimport {\n BrowserRouter as Router,\n Redirect,\n Route,\n Switch,\n useLocation\n} from 'react-router-dom'\nimport useHotjar from 'react-use-hotjar'\nimport runtimeEnv from '@mars/heroku-js-runtime-env'\nimport AuthenticatedRoute from '_utils/_routes/AuthenticatedRoute.js'\nimport Attendance from './Attendance'\nimport AttendanceView from './AttendanceView'\nimport Dashboard from './Dashboard'\nimport ComingSoon from './ComingSoon'\nimport GettingStarted from './GettingStarted'\nimport Confirmation from './Confirmation'\nimport NewPassword from './PasswordReset'\nimport Login from './Login'\n// import Signup from './Signup'\nimport NotFound from './NotFound'\nimport { ConfigProvider } from 'antd'\nimport ErrorBoundary from './ErrorBoundary'\nimport CasesImport from './CasesImport'\nimport { AuthLayout } from '_shared'\nimport { useTranslation } from 'react-i18next'\nimport { useAuthentication } from '_shared/_hooks/useAuthentication'\nimport { useGoogleAnalytics } from '_shared/_hooks/useGoogleAnalytics'\n\nconst env = runtimeEnv()\n\nconst Routes = () => {\n const { t } = useTranslation()\n const { initHotjar } = useHotjar()\n const isAuthenticated = useAuthentication()\n const { initGoogleAnalytics } = useGoogleAnalytics()\n let location = useLocation()\n\n useEffect(() => {\n if (env.REACT_APP_HOTJAR_ID) {\n initHotjar(env.REACT_APP_HOTJAR_ID, env.REACT_APP_HOTJAR_SV)\n }\n\n initGoogleAnalytics()\n }, [initGoogleAnalytics, initHotjar])\n\n useEffect(() => {\n const script = document.createElement('script')\n script.async = true\n\n if (env.NODE_ENV !== 'development') {\n script.src =\n '/mini-profiler-resources/includes.js?v=12b4b45a3c42e6e15503d7a03810ff33'\n script.type = 'text/javascript'\n script.id = 'mini-profiler'\n script.setAttribute(\n 'data-css-url',\n '/mini-profiler-resources/includes.css?v=12b4b45a3c42e6e15503d7a03810ff33'\n )\n }\n script.setAttribute('data-version', '12b4b45a3c42e6e15503d7a03810ff33')\n script.setAttribute('data-path', '/mini-profiler-resources/')\n script.setAttribute('data-horizontal-position', 'left')\n script.setAttribute('data-vertical-position', 'top')\n script.setAttribute('data-ids', '')\n script.setAttribute('data-trivial', 'false')\n script.setAttribute('data-children', 'false')\n script.setAttribute('data-max-traces', '20')\n script.setAttribute('data-controls', 'false')\n script.setAttribute('data-total-sql-count', 'false')\n script.setAttribute('data-authorized', 'true')\n script.setAttribute('data-toggle-shortcut', 'Alt+P')\n script.setAttribute('data-start-hidden', 'false')\n script.setAttribute('data-collapse-results', 'true')\n script.setAttribute('data-hidden-custom-fields', '')\n script.setAttribute('data-html-container', 'body')\n document.head.appendChild(script)\n })\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst App = () => {\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default App\n","import { combineReducers } from 'redux'\nimport auth from '_reducers/authReducer'\nimport businesses from '_reducers/businessesReducer'\nimport cases from '_reducers/casesReducer'\nimport ui from '_reducers/uiReducer'\nimport user from '_reducers/userReducer'\n\nconst rootReducer = combineReducers({\n auth,\n businesses,\n cases,\n ui,\n user\n})\n\nexport default rootReducer\n","import { configureStore } from '@reduxjs/toolkit'\nimport rootReducer from '_reducers/rootReducer'\n\nexport const store = configureStore({\n reducer: rootReducer,\n devTools: process.env.NODE_ENV !== 'production'\n})\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport App from './App'\nimport './tailwind.generated.css'\nimport './i18n'\nimport { Provider } from 'react-redux'\nimport { store } from './configureStore'\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)\n"],"sourceRoot":""}