{"version":3,"sources":["Views/Pages/Auth/Components/LoginForm.js","Views/Pages/Auth/Components/SendCodeForm.js","Views/Pages/Auth/Components/NewPasswordForm.js","Views/Pages/Auth/Components/EnterCodeForm.js","variables.js","contexts.js","Views/Pages/Auth/Login.js","Views/Components/Background.js","res/icons/Keystone_LOGO_V2.wdpic.png","Views/Components/Logo.js","Views/Pages/Home/Components/Sidebar/LookupSelectForms.js","res/images/justice-bridge-logo.png","Views/Pages/Home/Components/Sidebar/Sidebar.js","res/images/aaclog.png","Views/Pages/Home/Components/DataTable/DataTable.js","Views/Pages/Home/Components/Users/UserForm.js","Views/Pages/Home/Components/Extensions/ExtensionForm.js","Views/Components/Dialoger.js","res/data/tableData.js","Views/Pages/Home/Home.js","AppContent.js","App.js","serviceWorkerRegistration.js","reportWebVitals.js","index.js"],"names":["textFieldStyles","width","backgroundColor","theme","palette","common","white","borderRadius","spacing","input","fontSize","height","border","borderColor","lightGray","LoginForm","formValues","handleChange","handleClickShowPassword","useTheme","Box","TextField","id","variant","type","sx","mb","onChange","placeholder","fullWidth","showPassword","InputProps","endAdornment","InputAdornment","position","IconButton","onClick","edge","style","color","primary","main","SendCodeForm","Typography","NewPasswordForm","minHeight","EnterCodeForm","axiosSiteData","axios","create","defaults","baseURL","process","langMessages","gvUserConnected","name","email","county","phone","token","companyID","lang","axiosSiteDataConfig","headers","setGvUserConnected","userConnected","localStorage","setItem","JSON","stringify","UserTypes","SeriesTypes","StatePrisons","JailDetention","Sheriff","CountyJudge","PublicDefender","ProsecutorsOffice","CircuitCourt","DistrictCourt","ParoleProbation","ArkansasSheriffsAssociation","UserConnectedContext","createContext","LoggedInContext","UtilitiesContext","submitButtonStyles","dark","forgotPwdStages","Login","show","handleClose","loading","setLoading","setFetchData","APIError","useContext","setLoggedIn","useState","_Email","_Password","newPassword","resetCode","setFormValues","resettingPassword","setResettingPassword","forgotPasswordStage","setForgotPasswordStage","enqueueSnackbar","useSnackbar","prop","event","target","value","e","preventDefault","submitButtonLabel","Dialog","open","onClose","DialogTitle","mx","DialogContent","boxSizing","display","flexDirection","justifyContent","pb","pt","px","Link","underline","cursor","link","mt","Button","trim","password","code","messages","loginCredentials","post","then","response","theUser","data","User","_FirstName","_LastName","join","_Type","Token","catch","errors","handleSubmit","CircularProgress","Background","children","background","Logo","props","src","logo","alt","selectFieldStyles","marginBottom","fieldLabelStyles","Menu","counties","series","lookup","onLookupChange","disabled","FormControl","Select","labelId","MenuItem","map","option","_Name","_id","menuBoxStyles","alignItems","secondary","opacity","padding","tabButtonStyles","my","py","Sidebar","manageUsers","onChangeManageUsers","loggedIn","smallerScreen","useMediaQuery","justiceBridgeLogo","alignSelf","LookupSelectForms","Divider","Switch","checked","DataTable","rows","columns","rowsToShow","flexGrow","DataGrid","pageSize","rowsPerPageOptions","disableSelectionOnClick","columnBuffer","disableColumnFilter","selectFieldStylesMuted","text","muted","letterSpacing","UserForm","action","userData","onAddUser","onEditUser","_Active","FormControlLabel","control","label","firstName","lastName","dataToSubmit","selectCountyNoneObject","ExtensionForm","extensionData","onAddExtension","onEditExtension","extensionDataTemplate","_CountyCode","_County","_Member","_Series","_IntercomNum","_MacAddress","_SerialNum","_NoGeoNum","_Model","_GeoPasswrd","_StateCode","find","console","log","_Code","idx","countyCode","member","intercomNum","macAddress","serialNum","noGeoNum","model","geoPassword","stateCode","containerStyles","zIndex","Dialoger","title","content","onAction","React","setOpen","fullScreen","breakpoints","down","DialogActions","autoFocus","colsExtensions","field","headerName","colsExtensionsExpanded","flex","colsUsers","boxShadow","contentStyles","margin","loginButtonStyles","p","logoutButtonStyles","error","seriesList","push","Home","setCounties","setLookup","columnsExt","setColumnsExt","columnsUsers","fetchData","setManageUsers","userList","setUserList","setUserData","showLoginForm","setShowLoginForm","showUserForm","setShowUserForm","userFormAction","setUserFormAction","extensionList","setExtensionList","allExtensions","setAllExtensions","setExtensionData","showExtensionForm","setShowExtensionForm","еxtensionFormAction","setExtensionFormAction","expandTable","setExpandTable","deleteCallback","setDeleteCallback","Logout","useEffect","parse","getItem","_","checkToken","get","result","ticker","setInterval","clearInterval","getExtensionList","endpointAddition","encodeURIComponent","res","err","getUserList","withCustomRowStyles","styles","boolTextYes","boolTextNo","col","substring","renderCell","params","row","withActionsColumn","onDelete","confirmTemplateDeletion","endpoint","delete","closeUserForm","closeExtensionForm","dialogerTarget","withIDField","colsToShow","mr","wordBreak","doc","jsPDF","setFontSize","startY","head","body","ext","autoTable","save","downloadExtensions","isExpanded","put","float","AppContent","mode","exact","path","element","createTheme","black","paper","default","light","contrastText","hint","typography","allVariants","fontFamily","h1","h2","h3","h4","lineHeight","h5","h6","subtitle1","subtitle2","body1","body2","components","MuiButton","styleOverrides","root","shadows","AppConfig","removeItem","Provider","toTranslate","status","App","setUserConnected","ThemeProvider","autoHideDuration","maxSnack","anchorOrigin","vertical","horizontal","Boolean","window","location","hostname","match","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById","navigator","serviceWorker","ready","registration","unregister","message"],"mappings":"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","file":"static/js/main.eaaf1024.chunk.js","sourcesContent":["import React from \"react\";\n\n// Mui\nimport {\n Box,\n InputAdornment,\n IconButton,\n TextField,\n useTheme,\n} from \"@mui/material\";\nimport Visibility from \"@mui/icons-material/Visibility\";\nimport VisibilityOff from \"@mui/icons-material/VisibilityOff\";\n\nconst textFieldStyles = {\n width: \"100%\",\n backgroundColor: (theme) => theme.palette.common.white,\n borderRadius: (theme) => theme.spacing(1),\n\n input: {\n fontSize: \"15px\",\n height: (theme) => theme.spacing(2),\n },\n [`& fieldset`]: {\n borderRadius: (theme) => theme.spacing(1),\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\nconst LoginForm = ({ formValues, handleChange, handleClickShowPassword }) => {\n const theme = useTheme();\n return (\n \n {/* Email */}\n theme.spacing(2) }}\n onChange={handleChange(\"_Email\")}\n placeholder=\"Email\"\n fullWidth\n />\n\n {/* Password */}\n \n \n {formValues && formValues.showPassword ? : }\n \n \n ),\n }}\n />\n \n );\n};\n\nexport default LoginForm;\n","import React from \"react\";\nimport {\n Typography,\n TextField,\n} from \"@mui/material\";\n// MUI\n\nconst textFieldStyles = {\n width: \"100%\",\n backgroundColor: (theme) => theme.palette.common.white,\n borderRadius: (theme) => theme.spacing(1),\n\n input: {\n fontSize: \"15px\",\n height: (theme) => theme.spacing(2),\n },\n [`& fieldset`]: {\n borderRadius: (theme) => theme.spacing(1),\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\nconst SendCodeForm = ({ handleChange }) => {\n\n return (\n <>\n \n Please enter you email and we'll send you a reset code\n \n theme.spacing(2) }}\n onChange={handleChange(\"_Email\")}\n placeholder=\"Email\"\n fullWidth\n />\n \n >\n );\n};\n\nexport default SendCodeForm;\n","// MUI\nimport {\n Typography,\n TextField,\n IconButton,\n InputAdornment,\n useTheme,\n} from \"@mui/material\";\nimport Visibility from \"@mui/icons-material/Visibility\";\nimport VisibilityOff from \"@mui/icons-material/VisibilityOff\";\n\nconst textFieldStyles = {\n width: \"100%\",\n backgroundColor: (theme) => theme.palette.common.white,\n borderRadius: (theme) => theme.spacing(1),\n\n input: {\n fontSize: \"15px\",\n height: (theme) => theme.spacing(2),\n },\n [`& fieldset`]: {\n borderRadius: (theme) => theme.spacing(1),\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\n\nconst NewPasswordForm = ({\n handleChange,\n showPassword,\n handleClickShowPassword,\n}) => {\n const theme = useTheme();\n\n return (\n <>\n Enter your new password\n theme.spacing(2) }}\n fullWidth\n InputProps={{\n endAdornment: (\n \n \n {showPassword ? : }\n \n \n ),\n }}\n />\n >\n );\n};\n\nexport default NewPasswordForm;\n","import React from \"react\";\n\n// MUI\nimport {Typography, TextField } from \"@mui/material\";\n\n\nconst textFieldStyles = {\n width: \"100%\",\n backgroundColor: (theme) => theme.palette.common.white,\n borderRadius: (theme) => theme.spacing(1),\n\n input: {\n fontSize: \"15px\",\n height: (theme) => theme.spacing(2),\n },\n [`& fieldset`]: {\n borderRadius: (theme) => theme.spacing(1),\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\nconst EnterCodeForm = ({ handleChange}) => {\n\n return (\n <>\n \n Enter the reset code you received in your email inbox\n \n theme.spacing(2) }}\n onChange={handleChange(\"resetCode\")}\n placeholder=\"Reset code\"\n fullWidth\n />\n >\n );\n};\n\nexport default EnterCodeForm;\n","import axios from 'axios'\n\nexport const axiosSiteData = axios.create()\naxiosSiteData.defaults.baseURL = process.env.REACT_APP_BASE_URL\n\nexport const projectName = 'Justice Bridge Directory' \n\nexport const versionCode = \"2.1.0\"\n\nexport let gvUserConnected = {\n name: '',\n email: '',\n county: '',\n phone: '',\n token: '',\n type: 'admin',\n companyID: '',\n theme: 'dark',\n lang: 'en'\n}\n//\n\nexport let axiosSiteDataConfig = { headers: { 'user-token': gvUserConnected.token } }\n\nexport function setGvUserConnected(userConnected) {\n gvUserConnected = userConnected\n localStorage.setItem('user', JSON.stringify(gvUserConnected))\n axiosSiteDataConfig.headers['user-token'] = gvUserConnected.token\n}\n\nexport function getFileExtension(filename) {\n return filename.slice((filename.lastIndexOf(\".\") - 1 >>> 0) + 2).toLowerCase();\n}\n\n// Language\nexport let langMessages\nexport function setLangData(data){\n langMessages = data\n}\n\n\nexport function SetLangMessages(messages, afterUploading, onError) {\n // We upload Lang data\n axiosSiteData.post(`/files/lang.json`, messages, axiosSiteDataConfig)\n .then((_) => {\n\n langMessages = messages\n afterUploading()\n })\n .catch(_ => onError())\n}\n\nexport const UserTypes = {\n SuperAdmin: \"super-admin\",\n Admin: \"admin\",\n User: \"user\",\n}\n\nexport const SeriesTypes = {\n StatePrisons: \"State Prisons\",\n JailDetention: \"Jail / Detention\",\n Sheriff : \"Sheriff\",\n CountyJudge : \"County Judge\",\n PublicDefender: \"Public Defender\",\n ProsecutorsOffice: \"Prosecutors Office\",\n CircuitCourt: \"Circuit Court\",\n DistrictCourt: \"District Court\",\n ParoleProbation: \"Parole/Probation\",\n ArkansasSheriffsAssociation: \"Arkansas Sheriffs Association\",\n}\n\n\n\n\n\n","import { createContext } from 'react'\n\nexport const UserConnectedContext = createContext()\n// export const PanelUserContext = createContext()\nexport const LoggedInContext = createContext()\nexport const UtilitiesContext = createContext()\n\n","import { useState, useContext } from \"react\";\n\n// Components\nimport LoginForm from \"./Components/LoginForm\";\nimport SendCodeForm from \"./Components/SendCodeForm\";\nimport NewPasswordForm from \"./Components/NewPasswordForm\";\nimport EnterCodeForm from \"./Components/EnterCodeForm\";\n// Mui\nimport {\n Box,\n Typography,\n Button,\n useTheme,\n CircularProgress,\n Dialog,\n DialogTitle,\n DialogContent,\n Link,\n} from \"@mui/material\";\n// import useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useSnackbar } from \"notistack\";\n\n// Variables\nimport {\n axiosSiteData,\n gvUserConnected,\n setGvUserConnected,\n langMessages,\n} from \"../../../variables\";\nimport { UtilitiesContext, LoggedInContext } from \"../../../contexts\";\n\nconst submitButtonStyles = {\n height: (theme) => theme.spacing(5),\n borderRadius: (theme) => theme.spacing(1),\n backgroundColor: (theme) => theme.palette.primary.main,\n\n [`&:hover`]: {\n backgroundColor: (theme) => theme.palette.primary.dark,\n },\n};\n\nconst forgotPwdStages = {\n sendCode: \"enter-email\",\n enterCode: \"enter-code\",\n enterNewPassword: \"enter-new-password\",\n};\n\nconst Login = ({ show, handleClose, loading, setLoading, setFetchData }) => {\n // Context\n const { APIError } = useContext(UtilitiesContext);\n const { setLoggedIn } = useContext(LoggedInContext);\n\n // State\n const [formValues, setFormValues] = useState({\n _Email: \"\",\n _Password: \"\",\n newPassword: \"\",\n resetCode: \"\",\n showPassword: false,\n });\n\n const [resettingPassword, setResettingPassword] = useState(false);\n const [forgotPasswordStage, setForgotPasswordStage] = useState(\n forgotPwdStages.sendCode\n );\n const { enqueueSnackbar } = useSnackbar();\n\n // Form\n const handleChange = (prop) => (event) => {\n setFormValues({ ...formValues, [prop]: event.target.value });\n };\n\n const handleClickShowPassword = (e) => {\n e.preventDefault();\n setFormValues({ ...formValues, showPassword: !formValues.showPassword });\n };\n\n const handleSubmit = () => {\n // Formated form values\n const email = formValues._Email.trim();\n const password = formValues._Password.trim();\n const code = formValues.resetCode.trim();\n const newPassword = formValues.newPassword.trim();\n\n if (!resettingPassword) {\n // Submit login credentials\n // We make sure some fields aren't empty\n if (email === \"\" || password === \"\") {\n enqueueSnackbar(\"Please enter login credentials\", { variant: \"info\" });\n return;\n }\n\n const loginCredentials = {\n _Email: email,\n _Password: password,\n };\n\n setLoading(true);\n axiosSiteData\n .post(`/login`, loginCredentials)\n .then((response) => {\n const theUser = response.data.User;\n setGvUserConnected({\n ...gvUserConnected,\n name: [theUser._FirstName, theUser._LastName].join(\" \"),\n email: theUser._Email,\n type: theUser._Type,\n token: response.data.Token,\n });\n // State\n setLoggedIn(true);\n handleClose();\n setFetchData(true)\n })\n .catch((errors) => {\n setLoading(false);\n APIError(errors);\n });\n } else if (\n resettingPassword &&\n forgotPasswordStage === forgotPwdStages.sendCode\n ) {\n // Send reset code to user (resetting password)\n // Alert user for empty field\n if (email === \"\") {\n enqueueSnackbar(\n langMessages.messages?.[gvUserConnected.lang]?.[\"Err.Login.Empty\"] ||\n \"Please enter your email\",\n { variant: \"info\" }\n );\n return;\n }\n // Send code to user's email\n setLoading(true);\n // axiosSiteData\n // .get(`/users/password/${email}/reset/send-code`)\n // .then(() => {\n // setLoading(false);\n // enqueueSnackbar(\"Check your email inbox\", {\n // variant: \"success\",\n // });\n // setForgotPasswordStage(forgotPwdStages.enterCode);\n // })\n // .catch((errors) => {\n // setLoading(false);\n // APIError(errors);\n // });\n\n // TODO: Remove when API enpoints are ready\n setForgotPasswordStage(forgotPwdStages.enterCode);\n enqueueSnackbar(\"Check your email inbox\", {\n variant: \"success\",\n });\n setLoading(false);\n //\n } else if (\n resettingPassword &&\n forgotPasswordStage === forgotPwdStages.enterCode\n ) {\n // Enter code (resetting password)\n // Alert user for empty field\n if (code === \"\") {\n enqueueSnackbar(\n langMessages.messages?.[gvUserConnected.lang]?.[\"Err.Login.Empty\"] ||\n \"Please enter the password reset code\",\n { variant: \"error\" }\n );\n return;\n }\n // Submit reset code\n setLoading(true);\n\n // axiosSiteData\n // .get(`/users/password/${email}/reset/${code}`)\n // .then(() => {\n // setLoading(false);\n // setForgotPasswordStage(forgotPwdStages.enterNewPassword);\n // })\n // .catch((errors) => {\n // setLoading(false);\n // APIError(errors);\n // });\n // TODO: Remove when API enpoints are ready\n setForgotPasswordStage(forgotPwdStages.enterNewPassword);\n setLoading(false);\n } else if (\n resettingPassword &&\n forgotPasswordStage === forgotPwdStages.enterNewPassword\n ) {\n // Alert user for empty field\n if (newPassword === \"\") {\n enqueueSnackbar(\n langMessages.messages?.[gvUserConnected.lang]?.[\"Err.Login.Empty\"] ||\n \"Please enter your new password\",\n { variant: \"error\" }\n );\n return;\n }\n // Submit reset code\n setLoading(true);\n\n // axiosSiteData\n // .get(`/users/password/${email}/reset/${code}/${newPassword}`)\n // .then(() => {\n // setLoading(false);\n // enqueueSnackbar(\n // langMessages.messages?.[gvUserConnected.lang]?.[\n // \"Err.Login.Empty\"\n // ] || \"Password successfuly changed\",\n // { variant: \"success\" }\n // );\n // // Reset password resetting process\n // setForgotPasswordStage(forgotPwdStages.sendCode);\n // // Reset fields\n // setFormValues({\n // ...formValues,\n // resetCode: \"\",\n // newPassword: \"\",\n // showPassword: false,\n // });\n // // Go back to login form\n // setResettingPassword(false);\n // })\n // .catch((errors) => {\n // setLoading(false);\n // APIError(errors);\n // });\n setLoading(false);\n enqueueSnackbar(\"Password successfuly changed\", { variant: \"success\" });\n // Reset password resetting process\n setForgotPasswordStage(forgotPwdStages.sendCode);\n // Reset fields\n setFormValues({\n ...formValues,\n resetCode: \"\",\n newPassword: \"\",\n showPassword: false,\n });\n setResettingPassword(false);\n handleClose();\n }\n };\n\n // Mui\n const theme = useTheme();\n // const smallerScreen = useMediaQuery(\"(max-height: 840px)\");\n\n let submitButtonLabel = \"Sign in\";\n if (forgotPasswordStage === forgotPwdStages.sendCode) {\n submitButtonLabel = \"Send\";\n }\n if (forgotPasswordStage === forgotPwdStages.enterCode) {\n submitButtonLabel = \"Submit\";\n }\n if (forgotPasswordStage === forgotPwdStages.enterNewPassword) {\n submitButtonLabel = \"Submit\";\n }\n\n return (\n \n );\n};\n\nexport default Login;\n","import React from \"react\";\nimport { Box } from \"@mui/material\";\n\nconst Background = ({ children }) => {\n return (\n \n {children}\n \n );\n};\n\nexport default Background;\n","export default __webpack_public_path__ + \"static/media/Keystone_LOGO_V2.wdpic.e6c12e73.png\";","import React from \"react\";\nimport logo from \"../../res/icons/Keystone_LOGO_V2.wdpic.png\";\n\nconst Logo = ({ ...props }) => {\n return (\n
\n );\n};\n\nexport default Logo;\n","import React from \"react\";\n\n// Mui\nimport { Box, FormControl, Select, MenuItem, Typography } from \"@mui/material\";\n\nconst selectFieldStyles = {\n marginBottom: 1.5,\n height: \"50px\",\n borderRadius: (theme) => theme.spacing(1),\n backgroundColor: (theme) => theme.palette.common.white,\n\n [`& fieldset`]: {\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\nconst fieldLabelStyles = {\n mb: (theme) => theme.spacing(0.7),\n fontSize: \"1.2rem\",\n};\n\nconst Menu = ({ counties, series, lookup, onLookupChange, disabled }) => {\n return (\n \n {/* Series lookup */}\n \n {/* Label */}\n Series\n \n \n\n {/* Country lookup */}\n \n {/* Label */}\n Lookup via County\n \n \n \n );\n};\n\nexport default Menu;\n","export default __webpack_public_path__ + \"static/media/justice-bridge-logo.20bc666b.png\";","import React, { useContext } from \"react\";\nimport LookupSelectForms from \"./LookupSelectForms\";\nimport justiceBridgeLogo from \"../../../../../res/images/justice-bridge-logo.png\";\nimport aacLogo from \"../../../../../res/images/aaclog.png\";\n\n// Context\nimport { LoggedInContext } from \"../../../../../contexts\";\n\n// Mui\nimport { Box, useTheme, Typography, Switch, Divider } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nconst menuBoxStyles = {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n height: \"100%\",\n width: \"340px\",\n boxSizing: \"border-box\",\n backgroundColor: (theme) => theme.palette.secondary.main,\n borderRadius: \"20px \",\n opacity: 1,\n padding: (theme) => `${theme.spacing(2)} ${theme.spacing(3)} `,\n};\n\nconst tabButtonStyles = {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n backgroundColor: (theme) => theme.palette.primary.main,\n my: (theme) => theme.spacing(1),\n py: (theme) => theme.spacing(1),\n px: (theme) => theme.spacing(1.5),\n fontSize: \"1.1rem\",\n height: \"100%\",\n border: \"1px solid\",\n borderColor: (theme) => theme.palette.common.lightGray,\n borderRadius: (theme) => theme.spacing(1),\n};\n\nconst Sidebar = ({\n counties,\n series,\n lookup,\n onLookupChange,\n manageUsers,\n onChangeManageUsers,\n}) => {\n const theme = useTheme();\n const { loggedIn } = useContext(LoggedInContext);\n const smallerScreen = useMediaQuery(\"(max-height: 840px)\");\n\n return (\n \n \n {/* Justice Bridge Logo */}\n
\n\n {/* Select fields */}\n \n\n {/* Manage users button */}\n {loggedIn && (\n <>\n theme.spacing(1) }} />\n \n // loggedIn ? Logout() : setShowLoginForm(!showLoginForm)\n // }\n >\n \n Manage users\n \n\n onChangeManageUsers(e.target.checked)}\n color=\"secondary\"\n />\n \n >\n )}\n\n {/* Need help link */}\n {/* \n Need help?\n */}\n \n\n {/* AAC Logo */}\n
\n \n );\n};\n\nexport default Sidebar;\n","export default \"data:image/png;base64,R0lGODlhawFXAOfcAE1MRUtNSk5NRUxOS05ORk1PTE9PR05QTVBQSFRPTk9RTlFRSU9TRVBST1JSSlNSS1FTUFRTTFJUUVNUUlVUTVRVU1ZVTldWTldZVlhaV1taUllbWFxbU1pcWVxcVFtdWl1dVVxeW15eVl1fXF9fV15gXV9hXmJkYWVkXGNlYmRlY2dmXmVmZGhnX2ZnZWloYGdoZmppYWhpZ2hqZ2tqYmlraG5wbXFwaG9xbnJxaXByb3NyanFzcHRza3J0cXV0bHN1cnZ1bXR2c3d2bnV3dHh3b3Z4dXd5dnl7eHx7c3p8eXt9en59dXx+e39+dn1/fIB/d36AfYGAeH+BfoKBeYCCf4OCeoGDgIKEgYSGg4WHhIaIhYmIgIeJhoiKh4uKgomLiIyLg4qMiY2MhIuNioyOi42PjI6QjY+RjpCSj5GTkJKUkZWUjJOVkpSWk5WXlJiXj5WZiZaYlZeZlpial5qbmJudmZyem52fnJ6gnZ+hnqWgn6Cin6OjmqGjoKSkm6KkoaOloqSmo6WnpKaopaeppqiqp6mrqKqsqautqqyuq6+upa2vrLCvpq6wrbGwqLWwr7CyrrGzr7K0sbO1srS2s7W3tLy2tba4tb23tre5tri6t7u6sbm7uLq8ubu9ur69tMG8ury+u7++tcDCvsHDv8fCwcLEwcPFwsTGw8XHxMbIxcnIv8fJxsjKx8vOys3Py9POzc7QzNHRyM/RztDSz9PSydTR1tHT0NTTytjS0dLU0dPV0tTW09XX1Nja1tnb19rc2d7b4OHb2tvd2t/c4eLc29ze293f3N7g3d/h3uPl4eTm4+Xn5Ozm5ebo5efp5uro7Ojq5+nr6Ovu6vDy7/Hz8PP18vv9+v/9//z/+/7//P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAP8ALAAAAABrAVcAQAj+AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmy5MgnCwQ8cKDloBgFCyI4QKAAmYQFKz84MsirwwMEDxYsWGKy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\"","import React from \"react\";\nimport { DataGrid } from \"@mui/x-data-grid\";\nimport { Box } from \"@mui/material\";\n\nconst DataTable = ({ rows, columns }) => {\n let rowsToShow = rows ? rows : []\n \n return (\n \n \n \n );\n};\nexport default DataTable;\n","import { useState } from \"react\";\n\n// Components\n\n// Mui\nimport {\n Box,\n Typography,\n Button,\n InputAdornment,\n IconButton,\n TextField,\n useTheme,\n CircularProgress,\n Dialog,\n DialogTitle,\n DialogContent,\n Switch,\n FormControlLabel,\n FormControl,\n Select,\n MenuItem\n} from \"@mui/material\";\nimport Visibility from \"@mui/icons-material/Visibility\";\nimport VisibilityOff from \"@mui/icons-material/VisibilityOff\";\n// import useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useSnackbar } from \"notistack\";\n\n// Variables\nimport {\n UserTypes,\n} from \"../../../../../variables\";\n\n\nconst selectFieldStyles = {\n marginBottom: 2,\n borderRadius: (theme) => theme.spacing(1),\n backgroundColor: (theme) => theme.palette.common.white,\n\n [`& fieldset`]: {\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\nconst selectFieldStylesMuted = {\n borderRadius: (theme) => theme.spacing(1),\n color: (theme) => theme.palette.text.muted,\n marginBottom: 2,\n fontSize: \"15px\",\n letterSpacing: \"0.5px\",\n\n [`& fieldset`]: {\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\nconst textFieldStyles = {\n width: \"100%\",\n backgroundColor: (theme) => theme.palette.common.white,\n borderRadius: (theme) => theme.spacing(1),\n\n input: {\n fontSize: \"15px\",\n height: (theme) => theme.spacing(2),\n },\n [`& fieldset`]: {\n borderRadius: (theme) => theme.spacing(1),\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\nconst submitButtonStyles = {\n height: (theme) => theme.spacing(5),\n borderRadius: (theme) => theme.spacing(1),\n backgroundColor: (theme) => theme.palette.primary.main,\n mt: (theme) => theme.spacing(1),\n [`&:hover`]: {\n backgroundColor: (theme) => theme.palette.primary.dark,\n },\n};\n\nconst UserForm = ({\n show,\n handleClose,\n action,\n userData,\n onAddUser,\n onEditUser,\n loading\n}) => {\n const userDataTemplate = {\n _FirstName: \"\",\n _LastName: \"\",\n _Email: \"\",\n _Type: \"none\",\n _Password: \"\",\n _Active: false,\n showPassword: false,\n };\n\n // Context\n\n // State\n const [formValues, setFormValues] = useState(\n userData ? { ...userData, showPassword: false } : userDataTemplate\n );\n\n const { enqueueSnackbar } = useSnackbar();\n\n // Form\n const handleChange = (prop) => (event) => {\n setFormValues({ ...formValues, [prop]: event.target.value });\n };\n\n const handleClickShowPassword = (e) => {\n e.preventDefault();\n setFormValues({ ...formValues, showPassword: !formValues.showPassword });\n };\n\n // Submit data\n const handleSubmit = () => {\n // Formated form values\n const firstName = formValues._FirstName && formValues._FirstName.trim();\n const lastName = formValues._LastName && formValues._LastName.trim();\n const email = formValues._Email && formValues._Email.trim();\n const password = formValues._Password && formValues._Password.trim();\n\n // We make sure some fields aren't empty\n if (\n firstName === \"\" ||\n lastName === \"\" ||\n email === \"\"\n ) {\n enqueueSnackbar(\"Please fill in all fields\", { variant: \"info\" });\n return;\n }\n\n // Constuct data that will be sent to server\n const dataToSubmit = {\n ...formValues,\n _FirstName: firstName,\n _LastName: lastName,\n _Email: email,\n _Password: password,\n };\n\n if (action === \"add\") {\n onAddUser(dataToSubmit);\n } else {\n onEditUser(dataToSubmit);\n }\n };\n // Mui\n const theme = useTheme();\n // const smallerScreen = useMediaQuery(\"(max-height: 840px)\");\n\n return (\n \n );\n};\n\nexport default UserForm;\n","import { useState } from \"react\";\n\n// Components\n\n// Mui\nimport {\n Box,\n Typography,\n Button,\n InputAdornment,\n IconButton,\n TextField,\n useTheme,\n CircularProgress,\n Dialog,\n DialogTitle,\n DialogContent,\n Switch,\n FormControlLabel,\n FormControl,\n Select,\n MenuItem,\n} from \"@mui/material\";\nimport Visibility from \"@mui/icons-material/Visibility\";\nimport VisibilityOff from \"@mui/icons-material/VisibilityOff\";\nimport { useSnackbar } from \"notistack\";\n\nconst selectFieldStyles = {\n marginBottom: 2,\n borderRadius: (theme) => theme.spacing(1),\n backgroundColor: (theme) => theme.palette.common.white,\n\n [`& fieldset`]: {\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\nconst selectFieldStylesMuted = {\n borderRadius: (theme) => theme.spacing(1),\n color: (theme) => theme.palette.text.muted,\n marginBottom: 2,\n fontSize: \"15px\",\n letterSpacing: \"0.5px\",\n\n [`& fieldset`]: {\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\nconst textFieldStyles = {\n color: (theme) => theme.palette.text.muted,\n marginBottom: 2,\n width: \"100%\",\n backgroundColor: (theme) => theme.palette.common.white,\n borderRadius: (theme) => theme.spacing(1),\n\n input: {\n fontSize: \"15px\",\n height: (theme) => theme.spacing(2),\n },\n [`& fieldset`]: {\n borderRadius: (theme) => theme.spacing(1),\n border: \"1px solid \",\n borderColor: (theme) => theme.palette.common.lightGray,\n },\n};\n\nconst submitButtonStyles = {\n height: (theme) => theme.spacing(5),\n borderRadius: (theme) => theme.spacing(1),\n backgroundColor: (theme) => theme.palette.primary.main,\n mt: (theme) => theme.spacing(1),\n [`&:hover`]: {\n backgroundColor: (theme) => theme.palette.primary.dark,\n },\n};\n\nconst selectCountyNoneObject = { id: \"none\", _Name: \"none\" };\n\nconst ExtensionForm = ({\n show,\n handleClose,\n action,\n extensionData,\n onAddExtension,\n onEditExtension,\n counties,\n series,\n}) => {\n // Helpers\n const getCountyCodeFromName = (name) => {\n return counties.find((county) => county._Name === name);\n };\n \n const extensionDataTemplate = {\n _CountyCode: \"\",\n _County: selectCountyNoneObject,\n _Member: false,\n _Series: \"none\",\n _IntercomNum: \"\",\n _Name: \"\",\n _MacAddress: \"\",\n _SerialNum: \"\",\n _NoGeoNum: \"\",\n _Model: \"\",\n _GeoPasswrd: \"\",\n _StateCode: \"\",\n showPassword: false,\n };\n // State\n const [formValues, setFormValues] = useState(\n extensionData\n ? {\n ...extensionData,\n _County: getCountyCodeFromName(extensionData._County),\n showPassword: false,\n }\n : extensionDataTemplate\n );\n const [loading] = useState(false);\n\n console.log(\"formValues\", formValues);\n\n const { enqueueSnackbar } = useSnackbar();\n\n // Form\n const handleChange = (prop) => (event) => {\n if (prop === \"_County\")\n setFormValues({\n ...formValues,\n [prop]: event.target.value,\n _CountyCode: event.target.value._Code,\n });\n else setFormValues({ ...formValues, [prop]: event.target.value });\n };\n\n const handleClickShowPassword = (e) => {\n e.preventDefault();\n setFormValues({ ...formValues, showPassword: !formValues.showPassword });\n };\n\n // Submit data\n const handleSubmit = () => {\n // Formated form values\n const countyCode = formValues._CountyCode.trim();\n const county = formValues._County._Name.trim();\n const member = formValues._Member;\n const series = formValues._Series.trim();\n const intercomNum = formValues._IntercomNum.trim();\n const name = formValues._Name.trim();\n const macAddress = formValues._MacAddress.trim();\n const serialNum = formValues._SerialNum.trim();\n const noGeoNum = formValues._NoGeoNum.trim();\n const model = formValues._Model.trim();\n const geoPassword = formValues._GeoPasswrd.trim();\n const stateCode = formValues._StateCode.trim();\n\n // Validation\n if (\n countyCode === \"\" ||\n county === \"\" ||\n county._Name === \"none\" ||\n series === \"\" ||\n intercomNum === \"\" ||\n name === \"\" ||\n macAddress === \"\" ||\n serialNum === \"\" ||\n noGeoNum === \"\" ||\n model === \"\" ||\n geoPassword === \"\" ||\n stateCode === \"\"\n ) {\n enqueueSnackbar(\"Please fill in all fields\", { variant: \"info\" });\n return;\n }\n\n // Constuct data that will be sent to server\n const dataToSubmit = {\n ...formValues,\n _CountyCode: countyCode,\n _County: county,\n _Member: member,\n _Series: series,\n _IntercomNum: intercomNum,\n _Name: name,\n _MacAddress: macAddress,\n _SerialNum: serialNum,\n _NoGeoNum: noGeoNum,\n _Model: model,\n _GeoPasswrd: geoPassword,\n _StateCode: stateCode,\n };\n\n if (action === \"add\") {\n onAddExtension(dataToSubmit);\n } else {\n onEditExtension(dataToSubmit);\n }\n };\n\n // Mui\n const theme = useTheme();\n // const smallerScreen = useMediaQuery(\"(max-height: 840px)\");\n return (\n \n );\n};\n\nexport default ExtensionForm;\n","import React from \"react\";\nimport {\n useTheme,\n useMediaQuery,\n Dialog,\n Typography,\n DialogActions,\n DialogContent,\n DialogTitle,\n Button,\n Box,\n} from \"@mui/material\";\n\nconst containerStyles = {\n padding: (theme) => `${theme.spacing(2)} ${theme.spacing(3)}`,\n boxSizing: \"border-box\",\n\n borderRadius: (theme) => theme.spacing(1),\n zIndex: \"1\",\n color: \"white\",\n};\n\nfunction Dialoger({ title, content, onClose, onAction, loading }) {\n const theme = useTheme();\n const [open, setOpen] = React.useState(true);\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n const handleOk = () => {\n onAction(setOpen);\n };\n\n const handleClose = () => {\n setOpen(false);\n onClose();\n };\n\n return (\n \n );\n}\n\nexport default Dialoger;\n","export const colsExtensions = [\n { field: \"_Name\", headerName: \"Name\", width: 300 },\n { field: \"_IntercomNum\", headerName: \"Extension\", width: 150 },\n { field: \"_County\", headerName: \"County \", width: 200 },\n { field: \"_Series\", headerName: \"Series\", width: 200 },\n { field: \"_CountyCode\", headerName: \"Code\", width: 150 },\n];\n\nexport const colsExtensionsExpanded = [\n { field: \"_CountyCode\", headerName: \"Code\", flex: 1 },\n { field: \"_County\", headerName: \"County \", flex: 1 },\n { field: \"_Series\", headerName: \"Series\", flex: 1 },\n { field: \"_Member\", headerName: \"Member\", flex: 1 },\n { field: \"_IntercomNum\", headerName: \"Intercom Number \", flex: 1 },\n { field: \"_Name\", headerName: \"Name\", flex: 1 },\n { field: \"_MacAddress\", headerName: \"MacAddress\", flex: 1 },\n { field: \"_SerialNum\", headerName: \"Serial Number\", flex: 1 },\n { field: \"_NoGeoNum\", headerName: \"NoGeo Number\", flex: 1 },\n { field: \"_Model\", headerName: \"Model\", flex: 1 },\n { field: \"_GeoPasswrd\", headerName: \"Geo Password\", flex: 1 },\n { field: \"_StateCode\", headerName: \"StateCode\", flex: 1 },\n];\nexport const colsUsers = [\n { field: \"_FirstName\", headerName: \"First Name\", flex: 1 },\n { field: \"_LastName\", headerName: \"Last Name\", flex: 1 },\n { field: \"_Email\", headerName: \"Email\", flex: 1 },\n { field: \"_Type\", headerName: \"Type\", flex: 1 },\n { field: \"_Active\", headerName: \"Active\", flex: 1 },\n];\n\n// Mock data\n// export const mockRows = [\n// {\n// id: 4270850160,\n// _CountyCode: \"34\",\n// _County: \"Jackson\",\n// _Series: \"State Prisons\",\n// _Member: \"member\",\n// _IntercomNum: \"number\",\n// _Name: \"Tucker\",\n// _MacAddress: \"2C:54:91:88:C9:E3\",\n// _SerialNum: \"9203781239\",\n// _NoGeoNum: \"1232323\",\n// _Model: \"321\",\n// _GeoPasswrd: \"password\",\n// _StateCode: \"ARK\",\n// },\n// {\n// id: 3021182924,\n// _CountyCode: \"32\",\n// _County: \"Baxter\",\n// _Series: \"Sheriff\",\n// _Member: \"member\",\n// _IntercomNum: \"number\",\n// _Name: \"Polk County Sheriff\",\n// _MacAddress: \"3C:54:12:88:A9:E5\",\n// _SerialNum: \"9203781239\",\n// _NoGeoNum: \"1232323\",\n// _Model: \"321\",\n// _GeoPasswrd: \"password\",\n// _StateCode: \"ARK\",\n// },\n// {\n// id: 1150073492,\n// _CountyCode: \"34\",\n// _County: \"Jackson\",\n// _Series: \"State Prisons\",\n// _Member: \"member\",\n// _IntercomNum: \"number\",\n// _Name: \"Tucker\",\n// _MacAddress: \"2C:54:91:88:C9:E3\",\n// _SerialNum: \"9203781239\",\n// _NoGeoNum: \"1232323\",\n// _Model: \"321\",\n// _GeoPasswrd: \"password\",\n// _StateCode: \"ARK\",\n// },\n// {\n// id: 1688890451,\n// _CountyCode: \"34\",\n// _County: \"Jackson\",\n// _Series: \"State Prisons\",\n// _Member: \"member\",\n// _IntercomNum: \"number\",\n// _Name: \"Tucker\",\n// _MacAddress: \"2C:54:91:88:C9:E3\",\n// _SerialNum: \"9203781239\",\n// _NoGeoNum: \"1232323\",\n// _Model: \"321\",\n// _GeoPasswrd: \"password\",\n// _StateCode: \"ARK\",\n// },\n// {\n// id: 2065065230,\n// _CountyCode: \"32\",\n// _County: \"Baxter\",\n// _Series: \"Sheriff\",\n// _Member: \"member\",\n// _IntercomNum: \"number\",\n// _Name: \"Polk County Sheriff\",\n// _MacAddress: \"3C:54:12:88:A9:E5\",\n// _SerialNum: \"9203781239\",\n// _NoGeoNum: \"1232323\",\n// _Model: \"321\",\n// _GeoPasswrd: \"password\",\n// _StateCode: \"ARK\",\n// },\n// {\n// id: 3706049119,\n// _CountyCode: \"34\",\n// _County: \"Jackson\",\n// _Series: \"State Prisons\",\n// _Member: \"member\",\n// _IntercomNum: \"number\",\n// _Name: \"Tucker\",\n// _MacAddress: \"2C:54:91:88:C9:E3\",\n// _SerialNum: \"9203781239\",\n// _NoGeoNum: \"1232323\",\n// _Model: \"321\",\n// _GeoPasswrd: \"password\",\n// _StateCode: \"ARK\",\n// },\n// {\n// id: 3595673759,\n// _CountyCode: \"34\",\n// _County: \"Jackson\",\n// _Series: \"State Prisons\",\n// _Member: \"member\",\n// _IntercomNum: \"number\",\n// _Name: \"Tucker\",\n// _MacAddress: \"2C:54:91:88:C9:E3\",\n// _SerialNum: \"9203781239\",\n// _NoGeoNum: \"1232323\",\n// _Model: \"321\",\n// _GeoPasswrd: \"password\",\n// _StateCode: \"ARK\",\n// },\n// {\n// id: 2705203014,\n// _CountyCode: \"32\",\n// _County: \"Baxter\",\n// _Series: \"Sheriff\",\n// _Member: \"member\",\n// _IntercomNum: \"number\",\n// _Name: \"Polk County Sheriff\",\n// _MacAddress: \"3C:54:12:88:A9:E5\",\n// _SerialNum: \"9203781239\",\n// _NoGeoNum: \"1232323\",\n// _Model: \"321\",\n// _GeoPasswrd: \"password\",\n// _StateCode: \"ARK\",\n// },\n// {\n// id: 83644316,\n// _CountyCode: \"34\",\n// _County: \"Jackson\",\n// _Series: \"State Prisons\",\n// _Member: \"member\",\n// _IntercomNum: \"number\",\n// _Name: \"Tucker\",\n// _MacAddress: \"2C:54:91:88:C9:E3\",\n// _SerialNum: \"9203781239\",\n// _NoGeoNum: \"1232323\",\n// _Model: \"321\",\n// _GeoPasswrd: \"password\",\n// _StateCode: \"ARK\",\n// },\n// ];\n\n\n\n// export const mockRowsUsers = [\n// {\n// id: 1198367592,\n// _FirstName: \"Chester\",\n// _LastName: \"French\",\n// _Email: \"johnjack@gmail.com\",\n// _Active: true,\n// },\n// {\n// id: 3753629438,\n// _FirstName: \"Clarence\",\n// _LastName: \"Greene\",\n// _Email: \"cgreene@gmail.com\",\n// _Active: false,\n// },\n// {\n// id: 1815573536,\n// _FirstName: \"Russell\",\n// _LastName: \"Johnston\",\n// _Email: \"rjohnston@gmail.com\",\n// _Active: true,\n// },\n// ];\n","import { useState, useEffect, useContext } from \"react\";\n\n// PDF\nimport jsPDF from \"jspdf\";\nimport \"jspdf-autotable\";\n\nimport {\n gvUserConnected,\n axiosSiteData,\n axiosSiteDataConfig,\n setGvUserConnected,\n SeriesTypes,\n versionCode,\n} from \"../../../variables\";\nimport { UtilitiesContext, LoggedInContext } from \"../../../contexts\";\n\n// Components\nimport Background from \"../../Components/Background\";\nimport Logo from \"../../Components/Logo\";\nimport Sidebar from \"./Components/Sidebar/Sidebar\";\n// import SearchBar from \"./Components/SearchBar/SearchBar\";\nimport DataTable from \"./Components/DataTable/DataTable\";\nimport LoginForm from \"../Auth/Login\";\nimport UserForm from \"./Components/Users/UserForm\";\nimport ExtensionForm from \"./Components/Extensions/ExtensionForm\";\nimport Dialoger from \"../../Components/Dialoger\";\n\n// Mui\nimport {\n Box,\n Typography,\n Button,\n IconButton,\n Switch,\n FormControlLabel,\n} from \"@mui/material\";\nimport { useSnackbar } from \"notistack\";\nimport EditIcon from \"@mui/icons-material/Edit\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport AccountCircle from \"@mui/icons-material/AccountCircle\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport DownloadIcon from \"@mui/icons-material/Download\";\n// Table data\nimport {\n colsExtensions,\n colsExtensionsExpanded,\n colsUsers,\n} from \"../../../res/data/tableData\";\n\nconst containerStyles = {\n display: \"flex\",\n boxSizing: \"border-box\",\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"white\",\n borderRadius: \"20px\",\n zIndex: \"1\",\n boxShadow: \"0px 5px 25px rgba(0, 0, 0, 0.15)\",\n};\n\nconst contentStyles = {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"94vh\",\n margin: \"0 40px\",\n padding: \"10px 0 \",\n};\n\nconst loginButtonStyles = {\n backgroundColor: (theme) => theme.palette.primary.main,\n p: \"0 25px\",\n fontSize: \"1.1rem\",\n height: \"100%\",\n};\nconst logoutButtonStyles = {\n backgroundColor: (theme) => theme.palette.error.main,\n p: \"0 25px\",\n fontSize: \"1.1rem\",\n height: \"100%\",\n [`&:hover`]: {\n backgroundColor: (theme) => theme.palette.error.dark,\n },\n};\n\nlet seriesList = [];\nfor (let series in SeriesTypes) {\n seriesList.push(SeriesTypes[series]);\n}\n\nconst Home = () => {\n // State\n const [series] = useState(seriesList);\n const [counties, setCounties] = useState();\n\n const [lookup, setLookup] = useState({\n series: \"All\",\n county: \"All\",\n });\n\n // Table columns state\n // Extensions\n const [columnsExt, setColumnsExt] = useState(colsExtensions);\n // Users\n const [columnsUsers] = useState(colsUsers);\n\n const [fetchData, setFetchData] = useState(false);\n\n // Conditional rendering state\n const [manageUsers, setManageUsers] = useState(false);\n const [loading, setLoading] = useState(false);\n\n // Users state\n const [userList, setUserList] = useState();\n const [userData, setUserData] = useState();\n const [showLoginForm, setShowLoginForm] = useState(false);\n const [showUserForm, setShowUserForm] = useState(false);\n const [userFormAction, setUserFormAction] = useState(\"add\");\n\n // Extension state\n const [extensionList, setExtensionList] = useState();\n const [allExtensions, setAllExtensions] = useState();\n const [extensionData, setExtensionData] = useState();\n const [showExtensionForm, setShowExtensionForm] = useState(false);\n const [еxtensionFormAction, setExtensionFormAction] = useState(\"add\");\n const [expandTable, setExpandTable] = useState(false);\n\n const [{ deleteCallback }, setDeleteCallback] = useState({\n deleteCallback: null,\n });\n\n // Context\n const { APIError, Logout } = useContext(UtilitiesContext);\n const { loggedIn } = useContext(LoggedInContext);\n\n // Mui\n const { enqueueSnackbar } = useSnackbar();\n\n // USER LOG IN REFRESH TOKEN\n // effects for checking token\n useEffect(() => {\n let theUser;\n try {\n theUser = JSON.parse(localStorage.getItem(\"user\"));\n if (theUser.email.trim() === \"\") {\n //#TO-REVERTBACK\n Logout();\n // setPage('default')\n return;\n }\n } catch (_) {\n //#TO-REVERTBACK\n Logout();\n // setPage('default')\n return;\n }\n setGvUserConnected(theUser);\n\n const checkToken = () => {\n axiosSiteData\n .get(`/token/refresh`, axiosSiteDataConfig)\n .then((response) => {\n setGvUserConnected({\n ...theUser,\n token: response.data.result,\n });\n setLoading(false);\n })\n .catch((_) => {\n Logout();\n });\n };\n checkToken();\n\n let ticker = setInterval(() => {\n checkToken();\n }, 480000);\n\n // cancel timer\n return () => {\n clearInterval(ticker);\n };\n }, [Logout]);\n\n //────────────────────────────────────────────────────────────────────────────────────────────────────────\n //─────────── GET DATA ────────────────────────────────────────────────────────────────────────────────\n //────────────────────────────────────────────────────────────────────────────────────────────────────────\n // Get County codes\n const getCountyList = () => {\n axiosSiteData\n .get(`/countycode`)\n .then((res) => {\n setCounties(res.data);\n setLoading(false);\n })\n .catch((err) => {\n APIError(err);\n setLoading(false);\n });\n setFetchData(false);\n };\n\n // Get Extensions\n const getExtensionList = () => {\n let endpointAddition = \"?\";\n\n // Look up with county\n if (lookup.county !== \"All\") {\n endpointAddition += `county=${encodeURIComponent(lookup.county)}`;\n if (lookup.series !== \"All\") {\n endpointAddition += `&series=${encodeURIComponent(lookup.series)}`;\n }\n } else {\n if (lookup.series !== \"All\") {\n endpointAddition += `series=${encodeURIComponent(lookup.series)}`;\n }\n }\n\n axiosSiteData\n .get(`/accphoneext${endpointAddition}`)\n .then((res) => {\n setExtensionList(res.data);\n setLoading(false);\n })\n .catch((err) => {\n APIError(err);\n setLoading(false);\n });\n setFetchData(false);\n };\n\n // Get full list of extensions\n // This is used for PDF export\n const getAllExtensions = () => {\n axiosSiteData\n .get(`/accphoneext`)\n .then((res) => {\n setAllExtensions(res.data);\n setLoading(false);\n })\n .catch((err) => {\n APIError(err);\n setLoading(false);\n });\n setFetchData(false);\n };\n\n // Get Users\n const getUserList = () => {\n if (manageUsers) {\n axiosSiteData\n .get(`/users`, axiosSiteDataConfig)\n .then((res) => {\n setUserList(res.data);\n setLoading(false);\n })\n .catch((err) => {\n APIError(err);\n setLoading(false);\n });\n setFetchData(false);\n }\n };\n\n // Get all data\n useEffect(getCountyList, [fetchData, APIError]);\n useEffect(getExtensionList, [fetchData, lookup, APIError, manageUsers]);\n useEffect(getAllExtensions, [fetchData, lookup, APIError, manageUsers]);\n useEffect(getUserList, [manageUsers, fetchData, APIError]);\n\n // Save delete callback to state\n const confirmTemplateDeletion = (deleteCallback) => {\n setDeleteCallback({ deleteCallback });\n };\n\n const withCustomRowStyles = (columns, field) => {\n const styles = {\n boolTextYes: {\n color: \"#00A4FF\",\n },\n boolTextNo: {\n color: \"#ff3f34\",\n },\n };\n return [\n ...columns.map((col) => {\n if (col.field !== field) {\n return col;\n } else {\n return {\n field: field,\n headerName: field.substring(1),\n flex: 1,\n renderCell: (params) => {\n return (\n \n {params.row[field] ? \"Yes\" : \"No\"}\n \n );\n },\n };\n }\n }),\n ];\n };\n // Manage table data\n const withActionsColumn = (columns, target) => {\n return [\n ...columns,\n {\n field: \"Actions\",\n headerName: \"Actions\",\n flex: 2,\n renderCell: (params) => {\n const onEdit = (e) => {\n if (target === \"extensions\") {\n setExtensionData(params.row);\n // Show extension form\n setShowExtensionForm(true);\n\n // Handle form with edit action\n setExtensionFormAction(\"edit\");\n } else {\n setUserData(params.row);\n // Show extension form\n setShowUserForm(true);\n\n // Handle form with edit action\n setUserFormAction(\"edit\");\n }\n };\n\n const onDelete = (e) => {\n // Save the delete callback which will be sent to the server after confirmation\n confirmTemplateDeletion(() => {\n setLoading(true);\n let endpoint = target === \"extensions\" ? \"accphoneext\" : \"users\";\n // API Call\n axiosSiteData\n .delete(`/${endpoint}/${params.row._id}`, axiosSiteDataConfig)\n .then(() => {\n // Fetch folders from server\n enqueueSnackbar(\n `Successfully deleted ${\n target === \"extensions\" ? \"extension\" : \"user\"\n }`,\n {\n variant: \"success\",\n }\n );\n setFetchData(true);\n setLoading(false);\n })\n .catch((err) => {\n APIError(err);\n setLoading(false);\n });\n });\n };\n\n return (\n \n onEdit(e)}>\n \n \n onDelete(e)}>\n \n \n \n );\n },\n },\n ];\n };\n\n const onChangeExpandedTable = (isExpanded) => {\n // Update state\n setExpandTable(isExpanded);\n\n // Update columns\n if (isExpanded) setColumnsExt(colsExtensionsExpanded);\n else setColumnsExt(colsExtensions);\n\n // Fetch new extensions data\n getExtensionList();\n };\n\n const onChangeManageUsers = (show) => {\n // Update state\n setManageUsers(show);\n // Fetch new users data\n getUserList();\n };\n\n //────────────────────────────────────────────────────────────────────────────────────────────────────────\n //─────────── USER ACTIONS ────────────────────────────────────────────────────────────────────────────────\n //────────────────────────────────────────────────────────────────────────────────────────────────────────\n\n const closeUserForm = () => {\n setShowUserForm(false);\n setUserFormAction(\"add\");\n setUserData();\n };\n\n const onAddUser = (data) => {\n setLoading(true);\n // API Call\n axiosSiteData\n .post(`/users`, data, axiosSiteDataConfig)\n .then(() => {\n // Fetch folders from server\n enqueueSnackbar(\"Successfully added user\", {\n variant: \"success\",\n });\n setFetchData(true);\n setLoading(false);\n })\n .catch((err) => {\n APIError(err);\n setLoading(false);\n });\n\n // Reset state and close form\n closeUserForm();\n };\n const onEditUser = (data) => {\n setLoading(true);\n // API Call\n axiosSiteData\n .put(`/users/${data._id}`, data, axiosSiteDataConfig)\n .then(() => {\n // Fetch folders from server\n enqueueSnackbar(\"Successfully edited user\", {\n variant: \"success\",\n });\n setFetchData(true);\n setLoading(false);\n })\n .catch((err) => {\n APIError(err);\n setLoading(false);\n });\n // Reset state and close form\n closeUserForm();\n };\n\n const LogoutUser = () => {\n // Update page state\n setManageUsers(false);\n setExpandTable(false);\n\n // Log user out\n Logout();\n };\n\n //─────────────────────────────────────────────────────────────────────────────────────────────\n //─────────── EXTENSIONS ACTIONS ────────────────────────────────────────────────────────────────────────────────\n //─────────────────────────────────────────────────────────────────────────────────────────────\n\n const closeExtensionForm = () => {\n setShowExtensionForm(false);\n setExtensionFormAction(\"add\");\n setExtensionData();\n };\n\n const onAddExtension = (data) => {\n setLoading(true);\n // API Call\n axiosSiteData\n .post(`/accphoneext`, data, axiosSiteDataConfig)\n .then(() => {\n // Fetch folders from server\n enqueueSnackbar(\"Successfully added extension\", {\n variant: \"success\",\n });\n setFetchData(true);\n setLoading(false);\n })\n .catch((err) => {\n APIError(err);\n setLoading(false);\n });\n\n // Reset state and close form\n closeExtensionForm();\n };\n const onEditExtension = (data) => {\n setLoading(true);\n // API Call\n axiosSiteData\n .put(`/accphoneext/${data._id}`, data, axiosSiteDataConfig)\n .then(() => {\n // Fetch folders from server\n enqueueSnackbar(\"Successfully edited extension\", {\n variant: \"success\",\n });\n setFetchData(true);\n setLoading(false);\n })\n .catch((err) => {\n APIError(err);\n setLoading(false);\n });\n // Reset state and close form\n closeExtensionForm();\n };\n console.log('allExtensions', allExtensions)\n\n // Download extensions\n // PDF format\n const downloadExtensions = () => {\n const unit = \"pt\";\n const size = \"A4\"; // Use A1, A2, A3 or A4\n const orientation = \"portrait\"; // portrait or landscape\n\n const marginLeft = 40;\n const doc = new jsPDF(orientation, unit, size);\n\n doc.setFontSize(15);\n\n const title = \"Justice Bridge Extensions\";\n const headers = [[\"Name\", \"Extension\", \"County\", \"Series\", \"Code\"]];\n\n const data = allExtensions.map((ext) => [\n ext._Name,\n ext._IntercomNum,\n ext._County,\n ext._Series,\n ext._CountyCode,\n ]);\n\n let content = {\n startY: 50,\n head: headers,\n body: data,\n };\n\n doc.text(title, marginLeft, 40);\n doc.autoTable(content);\n doc.save(\"Justice_Bridge_Extensions.pdf\");\n };\n\n // Message displayed in delete dialog\n let dialogerTarget = \"\";\n if (manageUsers) {\n dialogerTarget = \"user\";\n } else {\n dialogerTarget = \"extension\";\n }\n\n // id value is required for DataGrid component\n const withIDField = (rows) => {\n return rows && [...rows.map((row) => ({ ...row, id: row._id }))];\n };\n\n // Render table data accordingly\n let rowsToShow = manageUsers\n ? withIDField(userList)\n : withIDField(extensionList);\n\n let colsToShow = manageUsers\n ? withIDField(\n withActionsColumn(withCustomRowStyles(columnsUsers, \"_Active\"), \"users\")\n )\n : expandTable\n ? withIDField(\n withActionsColumn(\n withCustomRowStyles(columnsExt, \"_Member\"),\n \"extensions\"\n )\n )\n : withIDField(columnsExt);\n\n const smallerScreen = useMediaQuery(\"(max-height: 840px)\");\n\n return (\n \n \n {/* Keystone Logo */}\n theme.spacing(1) }}>\n \n \n \n \n {/* Sidebar */}\n onChangeManageUsers(show)}\n />\n {/* Main panel */}\n theme.spacing(4),\n borderRadius: \"10px\",\n }}\n >\n {/* Header */}\n theme.spacing(4.2),\n height: \"50px\",\n }}\n >\n \n \n {/* Table label */}\n theme.spacing(2),\n fontSize: smallerScreen ? \"1.8rem\" : \"2rem\",\n }}\n >\n {manageUsers ? \"Users\" : \"Extension Directory\"}\n \n {/* Add user/extension button */}\n {loggedIn && (\n \n )}\n \n\n {/* Download button */}\n \n \n Download full extensions list\n \n \n downloadExtensions()} />\n \n\n {loggedIn && (\n // Expand extension table\n \n onChangeExpandedTable(e.target.checked)\n }\n color=\"primary\"\n disabled={manageUsers}\n />\n }\n label=\"Expand\"\n />\n )}\n \n \n\n {/* Logged in user message */}\n \n {loggedIn && (\n theme.spacing(2), width: \"200px\" }}\n >\n \n smallerScreen\n ? theme.spacing(1.2)\n : theme.spacing(2),\n }}\n />\n \n {gvUserConnected.name}\n \n \n )}\n\n {/* Login / Logout button */}\n \n \n \n\n {/* Table of contents */}\n \n {/* Table */}\n \n \n\n {/* Dialogs */}\n\n {/* Login form */}\n setShowLoginForm(false)}\n loading={loading}\n setLoading={setLoading}\n setFetchData={setFetchData}\n />\n\n {/* User add/edit form */}\n {showUserForm && (\n {\n closeUserForm();\n }}\n onAddUser={onAddUser}\n onEditUser={onEditUser}\n loading={loading}\n />\n )}\n\n {/* Extension add/edit form */}\n {showExtensionForm && (\n closeExtensionForm()}\n onAddExtension={onAddExtension}\n onEditExtension={onEditExtension}\n loading={loading}\n counties={counties}\n series={series}\n />\n )}\n\n {/* DELETE dialoger */}\n {deleteCallback && (\n {\n setDeleteCallback({ deleteCallback: null });\n }}\n onAction={() => {\n deleteCallback();\n setDeleteCallback({ deleteCallback: null });\n }}\n loading={loading}\n />\n )}\n \n \n \n \n \n v{versionCode}\n \n \n );\n};\n\nexport default Home;\n","import React from \"react\";\n\nimport Login from \"../src/Views/Pages/Auth/Login\";\nimport Home from \"../src/Views/Pages/Home/Home\";\nimport { BrowserRouter as Router, Route, Routes } from \"react-router-dom\";\n\nfunction AppContent() {\n return (\n \n \n {/* Login */}\n } />\n {/* Contacts */}\n } />\n \n \n );\n}\n\nexport default AppContent;\n","import React, { useContext, useEffect, useState } from \"react\";\nimport { createTheme, ThemeProvider } from \"@mui/material/styles\";\n\n// Views\nimport AppContent from \"./AppContent\";\n// import Panel from 'Views/Pages/Panel'\n\nimport {\n gvUserConnected,\n langMessages,\n setGvUserConnected,\n setLangData,\n axiosSiteDataConfig,\n} from \"./variables\";\n\nimport {\n UserConnectedContext,\n LoggedInContext,\n UtilitiesContext,\n} from \"./contexts\";\n\n// Libs\nimport { SnackbarProvider, useSnackbar } from \"notistack\";\nimport axios from \"axios\";\n\n//\n// ────────────────────────────────────────────────── I ──────────\n// :::::: T H E M E : : : : : : : :\n// ────────────────────────────────────────────────────────────\n//\n\nconst getDesignTokes = (mode) => ({\n palette: {\n mode,\n common: {\n black: \"rgba(29, 29, 41, 1)\",\n white: \"#fff\",\n lightGray: \"#e0e0e0\",\n link: \"#6594E2\",\n },\n background: {\n paper: mode === \"light\" ? \"#fff\" : \"#1B2127\",\n default: mode === \"light\" ? \"#F8F9FF\" : \"#212121\",\n },\n\n primary: {\n light: \"#29669C\",\n main: \"#64B5F6\",\n dark: \"#4caaf5\",\n contrastText: \"#fff\",\n },\n secondary: {\n light: \"#004AFF\",\n main: \"#EFF6FF\",\n dark: \"#2F73AE\",\n contrastText: \"#fff\",\n },\n error: {\n light: \"rgba(252, 127, 114, 1)\",\n main: \"rgba(255, 31, 1, 1)\",\n dark: \"rgba(225, 27, 0, 1)\",\n contrastText: \"#fff\",\n },\n text: {\n primary: mode === \"light\" ? \"rgba(29, 29, 41, 1)\" : \"#fff\",\n secondary:\n mode === \"light\" ? \"rgba(29, 29, 41, 0.6)\" : \"rgba(255, 255, 255, 0.6)\",\n disabled:\n mode === \"light\" ? \"rgba(29, 29, 41, 0.4)\" : \"rgba(255, 255, 255, 0.4)\",\n hint:\n mode === \"light\" ? \"rgba(29, 29, 41, 0.4)\" : \"rgba(255, 255, 255, 0.4)\",\n muted: \"rgba(29, 29, 41, 0.45)\",\n },\n },\n\n typography: {\n allVariants: {\n color: \"rgba(56, 56, 58, 1)\",\n },\n fontFamily: '\"Gilroy-SemiBold\", sans-serif',\n // fontSize: 20,\n h1: {\n fontFamily: '\"Gilroy-SemiBold\"',\n // fontSize: 25\n },\n h2: {\n fontFamily: '\"Gilroy-SemiBold\"',\n // fontSize: 18\n },\n h3: {\n fontFamily: '\"Gilroy-SemiBold\"',\n // \"fontSize\": 17\n },\n h4: {\n fontFamily: '\"Gilroy-SemiBold\"',\n lineHeight: \"1.8\",\n // \"fontSize\": 16\n },\n h5: {\n fontFamily: '\"Gilroy-SemiBold\"',\n // \"fontSize\": 15\n },\n h6: {\n fontFamily: '\"Gilroy-SemiBold\"',\n // \"fontSize\": 14\n },\n\n subtitle1: {\n fontFamily: '\"Gilroy-SemiBold\"',\n // \"fontSize\": 14\n },\n subtitle2: {\n fontFamily: '\"Gilroy-SemiBold\"',\n // \"fontSize\": 13\n },\n\n body1: {\n // \"fontSize\": 13\n },\n body2: {\n // \"fontSize\": 11\n },\n },\n components: {\n MuiButton: {\n styleOverrides: {\n root: {\n borderRadius: 10,\n },\n },\n },\n },\n spacing: 10,\n shadows: [\n \"none\",\n \"0px 2px 1px -1px rgba(41,102,156,0.3),0px 1px 1px 0px rgba(41,102,156,0.2),0px 1px 3px 0px rgba(41,102,156,0.12)\",\n \"0px 3px 1px -2px rgba(41,102,156,0.3),0px 2px 2px 0px rgba(41,102,156,0.2),0px 1px 5px 0px rgba(41,102,156,0.12)\",\n \"0px 3px 3px -2px rgba(41,102,156,0.3),0px 3px 4px 0px rgba(41,102,156,0.2),0px 1px 8px 0px rgba(41,102,156,0.12)\",\n \"0px 2px 4px -1px rgba(41,102,156,0.3),0px 4px 5px 0px rgba(41,102,156,0.2),0px 1px 10px 0px rgba(41,102,156,0.12)\",\n \"0px 3px 5px -1px rgba(41,102,156,0.3),0px 5px 8px 0px rgba(41,102,156,0.2),0px 1px 14px 0px rgba(41,102,156,0.12)\",\n \"0px 3px 5px -1px rgba(41,102,156,0.3),0px 6px 10px 0px rgba(41,102,156,0.2),0px 1px 18px 0px rgba(41,102,156,0.12)\",\n \"0px 4px 5px -2px rgba(41,102,156,0.3),0px 7px 10px 1px rgba(41,102,156,0.2),0px 2px 16px 1px rgba(41,102,156,0.12)\",\n \"0px 5px 5px -3px rgba(41,102,156,0.3),0px 8px 10px 1px rgba(41,102,156,0.2),0px 3px 14px 2px rgba(41,102,156,0.12)\",\n \"0px 5px 6px -3px rgba(41,102,156,0.3),0px 9px 12px 1px rgba(41,102,156,0.2),0px 3px 16px 2px rgba(41,102,156,0.12)\",\n \"0px 6px 6px -3px rgba(41,102,156,0.3),0px 10px 14px 1px rgba(41,102,156,0.2),0px 4px 18px 3px rgba(41,102,156,0.12)\",\n \"0px 6px 7px -4px rgba(41,102,156,0.3),0px 11px 15px 1px rgba(41,102,156,0.2),0px 4px 20px 3px rgba(41,102,156,0.12)\",\n \"0px 7px 8px -4px rgba(41,102,156,0.3),0px 12px 17px 2px rgba(41,102,156,0.2),0px 5px 22px 4px rgba(41,102,156,0.12)\",\n \"0px 7px 8px -4px rgba(41,102,156,0.3),0px 13px 19px 2px rgba(41,102,156,0.2),0px 5px 24px 4px rgba(41,102,156,0.12)\",\n \"0px 7px 9px -4px rgba(41,102,156,0.3),0px 14px 21px 2px rgba(41,102,156,0.2),0px 5px 26px 4px rgba(41,102,156,0.12)\",\n \"0px 8px 9px -5px rgba(41,102,156,0.3),0px 15px 22px 2px rgba(41,102,156,0.2),0px 6px 28px 5px rgba(41,102,156,0.12)\",\n \"0px 8px 10px -5px rgba(41,102,156,0.3),0px 16px 24px 2px rgba(41,102,156,0.2),0px 6px 30px 5px rgba(41,102,156,0.12)\",\n \"0px 8px 11px -5px rgba(41,102,156,0.3),0px 17px 26px 2px rgba(41,102,156,0.2),0px 6px 32px 5px rgba(41,102,156,0.12)\",\n \"0px 9px 11px -5px rgba(41,102,156,0.3),0px 18px 28px 2px rgba(41,102,156,0.2),0px 7px 34px 6px rgba(41,102,156,0.12)\",\n \"0px 9px 12px -6px rgba(41,102,156,0.3),0px 19px 29px 2px rgba(41,102,156,0.2),0px 7px 36px 6px rgba(41,102,156,0.12)\",\n \"0px 10px 13px -6px rgba(41,102,156,0.3),0px 20px 31px 3px rgba(41,102,156,0.2),0px 8px 38px 7px rgba(41,102,156,0.12)\",\n \"0px 10px 13px -6px rgba(41,102,156,0.3),0px 21px 33px 3px rgba(41,102,156,0.2),0px 8px 40px 7px rgba(41,102,156,0.12)\",\n \"0px 10px 14px -6px rgba(41,102,156,0.3),0px 22px 35px 3px rgba(41,102,156,0.2),0px 8px 42px 7px rgba(41,102,156,0.12)\",\n \"0px 11px 14px -7px rgba(41,102,156,0.3),0px 23px 36px 3px rgba(41,102,156,0.2),0px 9px 44px 8px rgba(41,102,156,0.12)\",\n \"0px 11px 15px -7px rgba(41,102,156,0.3),0px 24px 38px 3px rgba(41,102,156,0.2),0px 9px 46px 8px rgba(41,102,156,0.12)\",\n ],\n});\n\nexport const theme = createTheme(getDesignTokes(\"light\"));\n\n// ────────────────────────────────────────────────────────────────────────────────\n\n//\n// ──────────────────────────────────────────────────────────────────────── I ──────────\n// :::::: G L O B A L V A R I A B L E S : : : : : : : :\n// ──────────────────────────────────────────────────────────────────────────────────\n//\n\n//\n// ───────────────────────────────────────────────────── END GLOBAL VARIABLES ─────\n\nfunction AppConfig() {\n // Contexts\n const { enqueueSnackbar } = useSnackbar();\n const { userConnected } = useContext(UserConnectedContext);\n\n // States\n const [loggedIn, setLoggedIn] = useState(false);\n\n // ─── FUNCTIONS ──────────────────────────────────────────────────────────────────\n // Logs out a user\n const Logout = () => {\n setGvUserConnected({\n ...gvUserConnected,\n name: \"\",\n email: \"\",\n county: \"\",\n phone: \"\",\n token: \"\",\n type: \"admin\",\n });\n localStorage.removeItem(\"user\");\n setLoggedIn(false);\n };\n\n useEffect(() => {\n let theUser;\n try {\n theUser = JSON.parse(localStorage.getItem(\"user\"));\n if (theUser.email.trim() === \"\") {\n //#TO-REVERTBACK\n Logout();\n // setPage('default')\n return;\n }\n } catch (_) {\n //#TO-REVERTBACK\n Logout();\n // setPage('default')\n return;\n }\n setGvUserConnected(theUser);\n setLoggedIn(true);\n }, []);\n\n // Returns an error after running an api\n const APIError = (error, toTranslate = false) => {\n if (error.response) {\n enqueueSnackbar(\n toTranslate\n ? langMessages.messages?.[userConnected.lang]?.[\n error.response.data.result\n ] || \"\"\n : error.response.data.result,\n { variant: \"error\" }\n );\n if (error.response.status === 401) Logout();\n } else {\n enqueueSnackbar(\"You're offline. Please check your internet and retry.\", {\n variant: \"error\",\n });\n }\n };\n\n return (\n \n \n {/* Main content */}\n \n \n \n );\n}\n\nfunction App() {\n const [userConnected, setUserConnected] = useState(gvUserConnected);\n useEffect(() => {\n let theUser;\n try {\n theUser = JSON.parse(localStorage.getItem(\"user\"));\n if (!theUser) {\n theUser = gvUserConnected;\n }\n } catch (_) {\n setUserConnected(gvUserConnected);\n return;\n }\n\n setUserConnected(theUser);\n setGvUserConnected(theUser);\n }, []);\n\n // Inits\n useEffect(() => {\n //Langs\n axios.get(`/lang.json`, axiosSiteDataConfig).then((response) => {\n setLangData(response.data);\n });\n }, []);\n\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","const reportWebVitals = (onPerfEntry) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorkerRegistration from \"./serviceWorkerRegistration\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.unregister();\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}