@dexteel/mesf-core 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account/logout.d.ts +0 -6
- package/dist/index.esm.js +61 -13
- package/dist/index.esm.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/utils.ts","../src/configuration/pages/job/reducers/JobsReducer.ts","../src/configuration/pages/job/context/JobsContext.tsx","../src/configuration/pages/job/repositories/JobsRepository.ts","../src/configuration/pages/job/components/JobsTable/customHooks/TableDataJobs/useJobsTableData.tsx","../src/controls/alert.tsx","../src/configuration/pages/job/components/JobsTable/TableJobs.tsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/controls/LazyLoading/LazyLoading.tsx","../src/configuration/pages/job/JobsPage.tsx","../src/configuration/pages/job/index.tsx","../src/configuration/pages/log/reducers/LogsReducer.ts","../src/configuration/pages/log/context/LogsContext.tsx","../src/configuration/pages/log/data/LogTypeCodes.ts","../src/configuration/pages/log/components/LogsTable/customHooks/useLogTableData.tsx","../src/configuration/pages/log/repositories/LogsRepository.ts","../src/configuration/pages/log/components/hook/useGetLogsFromAPI.ts","../src/configuration/pages/log/components/ModalLogSelected/ModalLogSelected.tsx","../src/configuration/pages/log/components/Filters/dateFilter.tsx","../src/configuration/pages/log/components/Filters/codeFilter.tsx","../src/configuration/pages/log/components/Filters/searchFilter.tsx","../src/configuration/pages/log/components/LogsTable/TableLogs.tsx","../src/configuration/pages/log/LogsPage.tsx","../src/configuration/pages/log/index.tsx","../src/configuration/pages/profiles/reducers/ProfilesReducer.ts","../src/configuration/pages/profiles/context/ProfileContext.tsx","../src/configuration/pages/profiles/repositories/ProfilesRepository.ts","../src/configuration/pages/profiles/components/common/Permissions/hooks/useGetPermissionsEffect.ts","../src/configuration/pages/profiles/components/common/hooks/useGetColorByPermissionId.ts","../src/configuration/pages/profiles/components/common/Permissions/utils/PermissionsUtils.ts","../src/configuration/pages/profiles/components/common/Permissions/hooks/useIsPermissionInherited.ts","../src/configuration/pages/profiles/components/common/Permissions/hooks/useHandleAsignedPermission.ts","../src/configuration/pages/profiles/components/common/Pickers/PermissionsPicker.tsx","../src/configuration/pages/profiles/models/FormInitialValues.ts","../src/configuration/pages/profiles/components/common/Profiles/hook/useGetProfilesEffect.ts","../src/configuration/pages/profiles/components/common/Pickers/ProfilesPicker.tsx","../src/configuration/pages/profiles/components/Edit/EditProfile.tsx","../src/configuration/pages/profiles/components/Create/CreateProfile.tsx","../src/configuration/pages/profiles/components/Delete/DeleteProfile.tsx","../src/configuration/pages/profiles/components/ProfilesTable/customHooks/useTableData.tsx","../src/configuration/pages/profiles/components/ProfilesTable/TableProfiles.tsx","../src/configuration/pages/profiles/ProfilesPage.tsx","../src/configuration/pages/profiles/index.tsx","../src/configuration/pages/shifCrew/models/FormInitialValues.ts","../src/configuration/pages/shifCrew/reducers/ShiftsCrewsReducer.ts","../src/configuration/pages/shifCrew/context/ShiftsCrewsContext.tsx","../src/configuration/pages/shifCrew/components/customHooks/useTableShift.tsx","../src/configuration/pages/shifCrew/repositories/ShiftsCrewsRepository.ts","../src/configuration/pages/shifCrew/components/Create/CreateShift.tsx","../src/configuration/pages/shifCrew/components/Delete/DeleteShift.tsx","../src/configuration/pages/shifCrew/components/Edit/EditShift.tsx","../src/configuration/pages/shifCrew/components/TableShifts.tsx","../src/configuration/pages/shifCrew/ShiftsCrewsPage.tsx","../src/configuration/pages/shifCrew/index.tsx","../src/configuration/pages/users/reducers/UsersReducer.ts","../src/configuration/pages/users/context/UsersContext.tsx","../src/configuration/pages/users/repositories/UsersRepository.ts","../src/configuration/pages/users/components/common/ProfilesPicker.tsx","../src/configuration/pages/users/models/FormInitialValues.ts","../src/configuration/pages/users/components/Create/CreateUser.tsx","../src/configuration/pages/users/components/EditUser/EditUser.tsx","../src/configuration/pages/users/components/Delete/DeleteUser.tsx","../src/configuration/pages/users/components/UsersDataTable/customHooks/useTableData.tsx","../src/configuration/pages/users/components/UsersDataTable/TableUsers.tsx","../src/configuration/pages/users/UsersPage.tsx","../src/configuration/pages/users/index.tsx","../src/configuration/formatters.ts","../src/configuration/stylesGetters.tsx","../src/configuration/configuration.ts","../src/services/ApiService.ts","../src/controls/charts/genericChart.tsx","../src/controls/filters/dialogFilter.tsx","../src/controls/filters/filters.tsx","../src/controls/tables/GenericTable.tsx","../src/controls/tables/dataGrid.tsx","../src/controls/panels.tsx","../src/account/useToken.ts","../src/account/changePassword.tsx","../src/account/account.tsx","../src/account/AuthProvider.tsx","../src/account/login-strategies/LoginWithEmailAndPassword.tsx","../src/account/login-strategies/azure-ad/AzureADAuthConfig.ts","../src/account/login-strategies/azure-ad/LoginWithAzureADForm.tsx","../src/account/login-strategies/azure-ad/LoginWithAzureAD.tsx","../src/account/login-strategies/LoginAsGuest.tsx","../src/account/login.tsx","../src/account/logout.tsx","../src/globalContext.tsx","../src/components/navigation/Header.tsx","../src/configurationMenu.tsx","../src/components/home/home.tsx","../src/routes/MESFMainRouter.tsx","../src/components/navigation/MainContainer.tsx","../src/components/navigation/Navigation.tsx","../src/MESFMain.tsx"],"sourcesContent":["export const MESSAGE_API = {\n ERROR_MESSAGE: 'There was an error to connect to server.',\n ERROR_EMPTY_SEARCH: \"Empty rows\"\n}\nexport const MESSAGE_ERRORS = {\n ERROR_TITLE: 'There was an error',\n ERROR_EMPTY_SEARCH: \"Empty rows\",\n ERROR_USER_API: \"Error on fetching data\",\n ERROR_USER_DEFAULT: \"Unknow error\",\n ERROR_SAVE_DATA: \"Error on saving data\",\n SUCCESS_SAVE_DATA: \"Data was saved successfully\"\n}\nexport const USER_LABELS = {\n CHOOSE_OPTION: 'Choose an option'\n}\n\nexport class FetchError extends Error {\n\n status: number;\n internalError: string;\n\n constructor(message: string, status: number, internalError: string) {\n super(message);\n this.name = 'FetchError';\n this.message = message || 'Error al procesar la solicitud';\n this.status = status;\n this.internalError = internalError;\n this.stack = this.stack || '';\n }\n\n getMessageUser = () => {\n if (this.name === 'FetchError') return MESSAGE_ERRORS.ERROR_USER_API;\n return MESSAGE_ERRORS.ERROR_USER_DEFAULT;\n };\n}","import { createSlice } from \"@reduxjs/toolkit\";\nimport { Job } from \"../models/Job\";\n\nconst JobsInitialState: {\n jobsData: Job[];\n} = {\n jobsData: [],\n};\n\nexport const JobsReducer = createSlice({\n name: \"__\",\n initialState: JobsInitialState,\n reducers: {\n setJobs(state, { payload }) {\n state.jobsData = payload;\n },\n },\n});\n","import {createContext, default as React, ReactNode, useContext} from \"react\";\nimport {JobsReducer} from \"../reducers/JobsReducer\";\nimport {useComplexState} from \"use-complex-state\";\n\n\nconst JobsContext = createContext({\n state: JobsReducer.getInitialState(),\n actions: JobsReducer.actions\n});\n\nexport const useJobsContext = () => useContext(JobsContext);\n\nexport const JobsProvider = ({children}: { children: ReactNode }) => {\n\n const [state, actions] = useComplexState({\n initialState:JobsReducer.getInitialState(),\n reducers: JobsReducer.caseReducers\n })\n\n return (\n <JobsContext.Provider value={{state,actions}}>\n {children}\n </JobsContext.Provider>\n )\n}","import { MESApiService, spParameter } from \"../../../../services/ApiService\";\n\nexport const GetJobsStatus = async () => {\n const apiService = new MESApiService();\n\n try {\n const resp = await apiService.call(\"[SYSTEM].[GetJobsStatus]\", []);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\nexport const SetJobEnable = async (Enable: boolean, sProcedure: string) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"Enable\", value: !Enable });\n parameters.push({ name: \"sProcedure\", value: sProcedure });\n\n try {\n const resp = await apiService.call(\"[SYSTEM].[SetJobEnable]\", parameters);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\nexport const RestartJob = async (sProcedure:string) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"sProcedure\", value: sProcedure });\n\n try {\n const resp = await apiService.call(\"[SYSTEM].[RestartJob]\", parameters);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n","import { GridCellParams, GridColumns } from \"@material-ui/data-grid\";\nimport React, { useState } from \"react\";\nimport { get } from \"react-hook-form\";\nimport { useJobsContext } from \"../../../../context/JobsContext\";\nimport { Job } from \"../../../../models/Job\";\nimport { RestartJob, SetJobEnable } from \"../../../../repositories/JobsRepository\";\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\ntype Props = {\n getJobsFromAPI: () => Promise<void>,\n setMessageLoading: Function,\n setMessageSuccesful: Function\n}\n\nexport const useJobsTableData = ({ getJobsFromAPI, setMessageLoading, setMessageSuccesful }: Props) => {\n const { state } = useJobsContext();\n const [blockButtons, setBlockButtons] = useState(false);\n const [open, setOpen] = useState(false);\n const [changeEnable, setChangeEnable] = useState(false)\n const [changeDisabled, setChangeDisabled] = useState(false)\n const [changeReset, setChangeReset] = useState(false)\n\n\n // const [error, setError] = useState<any | undefined>(undefined);\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n setChangeEnable(false)\n setChangeDisabled(false)\n setChangeReset(false)\n };\n\n const formatTime = (nowTime: Date) => {\n return ((nowTime.toLocaleDateString() + ' ' + nowTime.toLocaleTimeString()))\n }\n\n const rows = state.jobsData.map(({ JobId, sProcedure, Running, LastStarted, LastCounter, Enabled, RestartAfterFailure }: Job) => ({\n id: JobId,\n sProcedure,\n Running,\n LastStarted,\n LastCounter,\n Enabled,\n RestartAfterFailure\n\n }))\n\n const onEnable = (row: Job) => {\n let canceled = false\n const { Enabled, sProcedure } = row\n SetJobEnable(Enabled, sProcedure)\n .then((res) => {\n const enabledRes = get(res, \"data.tables[0].rows\", null);\n if (enabledRes) {\n if (canceled) return;\n setBlockButtons(false)\n setChangeEnable(false)\n setChangeDisabled(false)\n setChangeReset(false)\n getJobsFromAPI()\n }\n })\n .finally(() => {\n if (canceled)\n return;\n // setLoading(false);\n });\n return () => { canceled = true }\n }\n\n const onReset = (row: Job) => {\n let canceled = false\n const { sProcedure } = row\n setChangeReset(false)\n setMessageLoading(true)\n RestartJob(sProcedure)\n .then((res) => {\n const resOk = get(res, \"data.tables[0].rows\", null);\n if (resOk) {\n if (canceled) return;\n getJobsFromAPI()\n setBlockButtons(false)\n setMessageLoading(false)\n setMessageSuccesful(true)\n }\n })\n setBlockButtons(true)\n getJobsFromAPI()\n .finally(() => {\n if (canceled)\n return;\n // setLoading(false);\n });\n return () => { canceled = true }\n }\n\n const renderButtonEnable = (params: GridCellParams) => {\n const isDisabled = (params.row.Enabled) || (blockButtons);\n return (\n <>\n <Button fullWidth color=\"primary\" onClick={() => setChangeEnable(true)} disabled={isDisabled}>\n ENABLE\n </Button>\n <Dialog open={changeEnable} onClose={() => handleClose()} aria-labelledby=\"responsive-dialog-title\" >\n <DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n <DialogContent>\n <DialogContentText style={{ padding: 0, margin: 0 }}>\n Are you sure you want to change the state to enable?\n </DialogContentText>\n </DialogContent>\n <DialogActions style={{ padding: \"16px 24px\" }}>\n <Button onClick={() => setChangeEnable(false)} autoFocus color=\"default\">\n DISAGREE\n </Button>\n <Button onClick={() => { onEnable(params.row as Job) }} variant=\"outlined\" color=\"primary\">AGREE</Button >\n </DialogActions>\n </Dialog>\n </>\n );\n };\n\n const renderButtonDisable = (params: GridCellParams) => {\n const isDisabled = (!params.row.Enabled) || (blockButtons);\n return (\n <>\n <Button fullWidth color=\"secondary\" onClick={() => setChangeDisabled(true)} disabled={isDisabled} >\n DISABLED\n </Button>\n <Dialog open={changeDisabled} onClose={() => handleClose()} aria-labelledby=\"responsive-dialog-title\" >\n <DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n <DialogContent>\n <DialogContentText style={{ padding: 0, margin: 0 }}>\n Are you sure you want to change the state to disabled?\n </DialogContentText>\n </DialogContent>\n <DialogActions style={{ padding: \"16px 24px\" }}>\n <Button onClick={() => setChangeDisabled(false)} autoFocus color=\"default\">\n DISAGREE\n </Button>\n <Button onClick={() => { onEnable(params.row as Job) }} variant=\"outlined\" color=\"primary\" >AGREE</Button >\n </DialogActions>\n </Dialog>\n </>\n );\n };\n\n const renderButtonReset = (params: GridCellParams) => {\n const isDisabled = (!params.row.Enabled) || (blockButtons);\n return (\n <>\n <Button fullWidth color=\"primary\" onClick={() => setChangeReset(true)} disabled={isDisabled} >\n RESET\n </Button>\n <Dialog open={changeReset} onClose={() => handleClose()} aria-labelledby=\"responsive-dialog-title\">\n <DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n <DialogContent>\n <DialogContentText style={{ padding: 0, margin: 0 }}>\n Are you sure you want to reset? This action leaves the task in enable\n </DialogContentText>\n </DialogContent>\n <DialogActions style={{ padding: \"16px 24px\" }}>\n <Button onClick={() => setChangeReset(false)} autoFocus color=\"default\">\n DISAGREE\n </Button>\n <Button onClick={() => { onReset(params.row as Job) }} disabled={isDisabled} variant=\"outlined\" color=\"primary\" >AGREE</Button >\n </DialogActions>\n </Dialog>\n </>\n );\n };\n\n const columns: GridColumns = [\n { field: 'sProcedure', minWidth: 150, headerName: 'Procedure', type: 'string', flex: 2 },\n { field: 'Running', minWidth: 130, headerName: 'Status', valueFormatter: ({ value }) => (value ? 'running' : 'inactive'), flex: 2 },\n { field: 'LastStarted', minWidth: 140, headerName: 'Started', valueFormatter: ({ value }) => (value === null ? 'NULL' : formatTime(value as Date)), flex: 2 },\n { field: 'LastCounter', minWidth: 150, headerName: 'Last Seen', valueFormatter: ({ value }) => (value === null ? 'NULL' : formatTime(value as Date)), flex: 2 },\n { field: 'Enabled', minWidth: 140, headerName: 'Enabled', valueFormatter: ({ value }) => (!value ? 'N' : 'Y'), flex: 2 },\n { field: 'RestartAfterFailure', minWidth: 170, headerName: 'AutoRecover', valueFormatter: ({ value }) => (!value ? 'N' : 'Y'), flex: 2 },\n { field: 'Enable', headerName: 'Actions', minWidth: 120, disableColumnMenu: true, renderCell: renderButtonEnable, flex: 2 },\n { field: 'Disable', headerName: ' ', disableColumnMenu: true, renderCell: renderButtonDisable, flex: 2 },\n { field: 'Reset', headerName: ' ', disableColumnMenu: true, renderCell: renderButtonReset, flex: 2 }\n ];\n\n\n return { rows, columns }\n\n}","import React from 'react'\nimport MuiAlert, { AlertProps } from '@material-ui/lab/Alert';\n\nexport const Alert = (props: AlertProps) => {\n return <MuiAlert elevation={6} variant=\"filled\" {...props} />;\n}\n","import * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport Grid from '@material-ui/core/Grid';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport { useJobsTableData } from './customHooks/TableDataJobs/useJobsTableData';\nimport Typography from '@material-ui/core/Typography';\nimport { DataGrid } from '@material-ui/data-grid';\nimport { GetJobsStatus } from '../../repositories/JobsRepository';\nimport { useJobsContext } from '../../context/JobsContext';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { Alert } from '../../../../../controls/alert';\n\n\nconst useStyles = makeStyles((theme: Theme) =>\n\n createStyles({\n root: {\n '& .MuiDataGrid-row': {\n cursor: \"pointer\",\n },\n '& .MuiDataGrid-columnHeaderTitle, & .MuiTablePagination-caption': {\n fontWeight: \"bold\"\n },\n // FIXME: queda un padding entre los botones o sacamos a todos. \n // El problema es que se ve raro al hacer click porque no se como sacar ese selected/focus\n // '& .MuiDataGrid-cell': {\n // padding: 0\n // }\n },\n card: {\n backgroundColor: \"#e9f2f8\"\n },\n filters: {\n position: \"relative\",\n margin: \"0 10px\"\n },\n textfield: {\n margin: theme.spacing(2),\n },\n JobsTable: {\n padding: theme.spacing(1,2),\n },\n form: {\n display: \"flex\",\n flexDirection: \"column\",\n }\n }),\n);\n\nexport const TableJobs = () => {\n const classes = useStyles();\n const [loading, setLoading] = useState<boolean>(true);\n const { actions } = useJobsContext();\n const [messageLoading, setMessageLoading] = useState(false);\n const [messageSuccesful, setMessageSuccesful] = useState(false);\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setMessageSuccesful(false);\n };\n\n const getJobsFromAPI = async () => {\n setLoading(true)\n const resp = await GetJobsStatus();\n if (resp.ok) {\n actions.setJobs(resp.data.tables[0].rows);\n setLoading(false)\n } else {\n console.log(\"something happened!\");\n }\n }\n\n const { rows, columns } = useJobsTableData({ getJobsFromAPI, setMessageLoading, setMessageSuccesful })\n\n useEffect((\n ) => {\n getJobsFromAPI();\n }, []);\n\n return (\n <Grid container justifyContent=\"center\" alignItems=\"center\" className={classes.root}>\n <Grid item md={12} xs={12} style={{ padding: \"0 15px\" }} className={classes.filters}>\n <Typography variant=\"h5\" style={{ margin: \"20px 0 20px\", fontWeight: 600 }}>System Jobs</Typography>\n <Grid item md={12} >\n <DataGrid\n className={classes.JobsTable}\n density={'compact'}\n autoHeight\n loading={loading}\n rows={rows}\n columns={columns}\n pageSize={10}\n disableSelectionOnClick\n // FIXME: esto que hace? no entiendo. \n // Tiene que ver con el ts que le estamos mandando en el columns creo, no se si es algo del dataGrid\n {...{} as any}\n />\n {\n <Snackbar open={messageLoading} autoHideDuration={3500} onClose={handleClose} >\n <Alert style={{ width: \"250px\", justifyContent: \"center\", alignItems: \"center\" }} severity=\"info\">\n <Grid container alignItems=\"center\" spacing={2}>\n <Grid item>\n Waiting for reset\n </Grid>\n <Grid item>\n <CircularProgress style={{ color: \"#FFF\", width: 18, height: 18, marginTop:4 }} />\n </Grid>\n </Grid>\n </Alert>\n </Snackbar>}\n {<Snackbar open={messageSuccesful} autoHideDuration={2500} onClose={handleClose} >\n <Alert style={{ width: \"250px\", justifyContent: \"center\", alignItems: \"center\" }} severity=\"success\">Reset was successful</Alert>\n </Snackbar>}\n </Grid>\n </Grid>\n </Grid >\n );\n}","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export default n;\n","import React from 'react'\nimport \"./LazyLoading.css\"\n\nexport const LazyLoading = () => {\n return (\n <><div className=\"lds-ring\"><div></div><div></div><div></div><div></div></div></>\n )\n}\n","import * as React from \"react\";\nimport { useJobsContext } from \"./context/JobsContext\";\nimport Paper from '@material-ui/core/Paper';\nimport { TableJobs } from \"./components/JobsTable/TableJobs\";\nimport Grid from '@material-ui/core/Grid';\nimport { LazyLoading } from \"../../../controls/LazyLoading/LazyLoading\";\n\ntype Props = {\n};\n\nexport const Jobs = (prop: Props) => {\n const { state } = useJobsContext();;\n\n if (state.jobsData) {\n\n return (\n <Grid container justifyContent=\"center\" alignItems=\"center\">\n <Grid item md={12} xs={12} style={{ margin: 0 }}>\n <Paper elevation={1} style={{ width: \"100%\", padding: \"10px 0 20px\", borderRadius: \"0.75rem\" }}>\n <TableJobs />\n </Paper>\n </Grid>\n </Grid>\n );\n }\n return <LazyLoading />;\n};\n","import * as React from 'react';\nimport { JobsProvider } from './context/JobsContext';\nimport { Jobs } from './JobsPage';\n\ntype Props = {\n};\n\nconst JobsPage = (props: Props) => {\n return (\n <JobsProvider>\n <Jobs/>\n </JobsProvider>\n );\n};\n\nexport default JobsPage;","import { createSlice } from \"@reduxjs/toolkit\";\nimport moment from \"moment\";\nimport { Log } from \"../models/Log\";\nimport { SearchData } from \"../models/SearchData\";\n\nconst LogsInitialState: {\n logs: Log[];\n searchData: SearchData;\n} = {\n logs: [],\n searchData: {\n Start: moment().add(-5, \"days\").hour(0).minute(0).second(0).toDate(),\n End: moment().hour(23).minute(59).second(59).toDate(),\n Search: \"\",\n LogTypeCode: \"A\",\n },\n};\n\nexport const LogsReducer = createSlice({\n name: \"__\",\n initialState: LogsInitialState,\n reducers: {\n setLogs(state, { payload }) {\n state.logs = payload;\n },\n setSearchData(state, { payload }) {\n state.searchData = payload;\n },\n setStartFilter(state, { payload }) {\n state.searchData.Start = payload;\n },\n setEndFilter(state, { payload }) {\n state.searchData.End = payload;\n },\n setSearchFilter(state, { payload }) {\n state.searchData.Search = payload;\n },\n setLogTypeCodeFilter(state, { payload }) {\n state.searchData.LogTypeCode = payload;\n },\n resetFilters(state, { payload }) {\n state.searchData = {\n Start: moment().add(-5, \"days\").hour(0).minute(0).second(0).toDate(),\n End: moment().hour(23).minute(59).second(59).toDate(),\n Search: \"\",\n LogTypeCode: \"A\",\n };\n },\n },\n});\n","import {createContext, default as React, ReactNode, useContext} from \"react\";\nimport {LogsReducer as LogsReducer} from \"../reducers/LogsReducer\";\nimport {useComplexState} from \"use-complex-state\";\n\n\nconst LogsContext = createContext({\n state: LogsReducer.getInitialState(),\n actions: LogsReducer.actions\n});\n\nexport const useLogsContext = () => useContext(LogsContext);\n\nexport const LogsProvider = ({children}: { children: ReactNode }) => {\n\n const [state, actions] = useComplexState({\n initialState:LogsReducer.getInitialState(),\n reducers: LogsReducer.caseReducers\n })\n\n return (\n <LogsContext.Provider value={{state,actions}}>\n {children}\n </LogsContext.Provider>\n )\n}","export const LOG_TYPE_CODES = [\n { 'id': \"A\", 'description': \"All\" },\n { 'id': \"I\", 'description': \"Info\" },\n { 'id': \"E\", 'description': \"Error\" }\n];","import { useLogsContext } from \"../../../context/LogsContext\";\nimport { Log } from \"../../../models/Log\";\nimport { LOG_TYPE_CODES } from \"../../../data/LogTypeCodes\";\n\n\nexport const useLogTableData = () => {\n const { state } = useLogsContext();\n\n\n const formatTime = (nowTime: any) => {\n return ((nowTime.toLocaleDateString('en-US') + ' ' + nowTime.toLocaleTimeString()))\n }\n const formatUser = (nowUser: any) => {\n return (nowUser === null ? 'NULL' : nowUser)\n }\n\n const getLogTypeByCodeId = (logTypeCodeId: string) => {\n return LOG_TYPE_CODES.find(ltc => ltc.id === logTypeCodeId)?.description || `CodeId: ${logTypeCodeId}`;\n }\n\n const rows = state.logs.map(\n ({ LogId, Timestamp, Source, Message, LogTypeCode, User }: Log) => ({\n id: LogId,\n Timestamp: Timestamp === null ? null : new Date(Timestamp),\n Source,\n Message: Message.replaceAll(\"Added\", \" Added\"),\n LogTypeCode: getLogTypeByCodeId(LogTypeCode as string),\n User,\n }))\n\n const columns = [\n {\n field: 'Timestamp',\n headerName: 'Time',\n minWidth: 150,\n flex: 4,\n valueFormatter: ({ value }: { value: any }) => (value === null ? '' : formatTime(value))\n },\n {\n field: 'Source',\n headerName: 'Source',\n minWidth: 150,\n flex: 4,\n type: 'string'\n },\n {\n field: 'Message',\n headerName: 'Message',\n minWidth: 100,\n flex: 8,\n type: 'string'\n },\n {\n field: 'LogTypeCode',\n headerName: 'Type',\n minWidth: 130,\n flex: 3,\n },\n {\n field: 'User',\n headerName: 'User',\n minWidth: 130,\n flex: 3,\n type: 'string',\n valueFormatter: ({ value }: { value: any }) => (formatUser(value))\n }\n ];\n\n return { rows, columns }\n\n}","import { MESApiService, spParameter } from \"../../../../services/ApiService\";\n\n//fx obtener logs\nexport const GetLogs = async (\n Start: Date,\n End: Date,\n Search: string,\n LogTypeCode: number | string | null\n) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"Start\", value: Start });\n parameters.push({ name: \"End\", value: End });\n parameters.push({ name: \"Search\", value: Search });\n parameters.push({\n name: \"LogTypeCode\",\n value: LogTypeCode === \"A\" ? null : LogTypeCode,\n });\n\n try {\n const resp = await apiService.call(\"[MES].[GetLogs]\", parameters);\n\n if (apiService.hasErrors) {\n return { ok: false, message: apiService.error.internalError.message };\n }\n\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n","import { useEffect } from \"react\";\nimport { useLogsContext } from \"../../context/LogsContext\";\nimport { GetLogs } from \"../../repositories/LogsRepository\";\nimport { get } from \"lodash-es\";\nimport { useState } from \"react\";\n\ntype Props = {\n Start: Date;\n End: Date;\n Search: string;\n LogTypeCode: number | string | null;\n setLoading: Function;\n setErrorsApi:Function\n};\n\nexport const useGetLogsFromAPI = ({\n Start,\n End,\n Search,\n LogTypeCode,\n setLoading,\n setErrorsApi\n}: Props): ()=>void => {\n const { actions } = useLogsContext();\n const [shouldUpdate, setShouldUpdate] = useState(0);\n\n \n const update = () => {\n setShouldUpdate(shouldUpdate+1)\n }\n\n useEffect(() => {\n let canceled = false;\n GetLogs(Start, End, Search, LogTypeCode)\n .then((res) => {\n const logs = get(res, \"data.tables[0].rows\", null);\n if (logs) {\n if (canceled) return;\n actions.setLogs(logs);\n } if(!res.ok) { \n return setErrorsApi((prevErrors: any) => [...prevErrors, res.message]);}\n })\n .finally(() => {\n if (canceled) return;\n setLoading(false);\n });\n return () => {\n canceled = true;\n };\n }, [shouldUpdate]);\n\n return update;\n};\n","import React from 'react'\nimport { Modal } from 'react-bootstrap';\nimport TextField from '@material-ui/core/TextField';\nimport Grid from '@material-ui/core/Grid';\nimport { Log } from '../../models/Log';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\n\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n title: {\n fontSize: 15,\n },\n messageTitle: {\n marginBottom: 5,\n fontSize: 12,\n color: \"#0000008A\"\n\n }\n }),\n);\n\ntype Props = {\n show: boolean,\n onHide: (show: boolean) => void\n selectedLog: Log | undefined\n}\n\nconst formatTime = (nowTime: any) => {\n if (nowTime == undefined)\n return;\n return ((nowTime.toLocaleDateString() + ' ' + nowTime.toLocaleTimeString()))\n}\n\nexport const ModalLogSelected = ({ show, onHide, selectedLog }: Props) => {\n const classes = useStyles();\n return (\n <Grid container justifyContent=\"center\" alignItems=\"center\">\n <Modal\n {...{ show }}\n onHide={() => onHide(false)}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n LOG DETAILS\n </Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ padding: \"15px 30px\" }}>\n <Grid container spacing={1} alignItems=\"flex-start\">\n <Grid item md={6} xs={12} style={{ paddingRight: 20, paddingLeft: 5 }}>\n <TextField\n // disabled\n variant=\"standard\"\n // variant=\"outline\"\n fullWidth\n margin=\"dense\"\n label=\"User\"\n defaultValue={selectedLog?.User}\n InputProps={{\n readOnly: true,\n }}\n />\n </Grid>\n <Grid item md={6} xs={12} style={{ paddingRight: 20, paddingLeft: 5 }} >\n <TextField\n // disabled\n variant=\"standard\"\n // variant=\"outline\"\n fullWidth\n margin=\"dense\"\n label=\"Time\"\n defaultValue={formatTime(selectedLog?.Timestamp)}\n InputProps={{\n readOnly: true,\n }}\n />\n </Grid>\n <Grid item md={6} xs={12} style={{ paddingRight: 20, paddingLeft: 5 }}>\n <TextField\n // disabled\n variant=\"standard\"\n // variant=\"outline\"\n fullWidth\n margin=\"dense\"\n label=\"Source\"\n defaultValue={selectedLog?.Source}\n InputProps={{\n readOnly: true,\n }}\n />\n </Grid>\n <Grid item md={6} xs={12} style={{ paddingRight: 20, paddingLeft: 5 }}>\n <TextField\n // disabled\n variant=\"standard\"\n // variant=\"outline\"\n fullWidth\n margin=\"dense\"\n label=\"Type\"\n defaultValue={selectedLog?.LogTypeCode}\n InputProps={{\n readOnly: true,\n }}\n />\n </Grid>\n <Grid item md={12} xs={12} style={{ paddingRight: 20, paddingLeft: 5, marginBottom: 20 }}>\n <Card variant=\"outlined\" style={{ backgroundColor: \"#E9F2F8\" }}>\n <CardContent>\n <Typography className={classes.messageTitle}>\n Message:\n </Typography>\n <Typography style={{ fontSize:17 }}>\n {selectedLog?.Message}\n </Typography>\n </CardContent>\n </Card>\n </Grid>\n </Grid>\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n <Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={() => onHide(true)}>Close</Button>\n </Grid>\n </Grid>\n </Modal.Footer>\n </Modal>\n </Grid>\n )\n}\n","import React from 'react'\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from '@material-ui/pickers';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport MomentUtils from '@date-io/moment';\n\ntype Props ={\n date:Date,\n setDate:(date:Date)=>void,\n label: string | undefined\n}\n\nexport const DateFilter = ({date,setDate, label = 'Date'}:Props) => {\n\n const handleDateChange = (datePicker:MaterialUiPickersDate) => {\n setDate(datePicker!.toDate());\n };\n\n return (\n <MuiPickersUtilsProvider utils={MomentUtils} >\n <KeyboardDatePicker\n disableToolbar\n variant=\"inline\"\n format=\"MM/DD/yyyy\"\n id=\"date-picker-inline\"\n style={{ minWidth: \"100%\", borderTopLeftRadius:3,borderTopRightRadius:3 }}\n label={label}\n value={date}\n onChange={handleDateChange}\n KeyboardButtonProps={{\n 'aria-label': 'change date',\n }}\n />\n </MuiPickersUtilsProvider>\n );\n}\n","import React from 'react'\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport { LOG_TYPE_CODES } from '../../data/LogTypeCodes'\n\ntype Props = {\n LogTypeCode: number | string | null,\n setLogTypeCodeFilter: (logTypeCode: number | string | null) => void\n}\n\nexport const CodeFilter = ({ LogTypeCode, setLogTypeCodeFilter }: Props) => {\n\n return (\n <div style={{ marginTop: 6, borderTopLeftRadius: 3, borderTopRightRadius: 3 }}>\n <InputLabel id=\"demo-simple-select-label\" style={{ fontSize: 10, marginBottom: 0 }}>Type</InputLabel>\n <Select\n labelId=\"demo-simple-select-label\"\n id=\"demo-simple-select\"\n value={LogTypeCode}\n onChange={(newLogTypeCode) => setLogTypeCodeFilter(newLogTypeCode.target.value as any)}\n style={{ minWidth: \"100%\" }}\n >\n {\n LOG_TYPE_CODES.map((log) => {\n return (\n <MenuItem key={`logId-${log.id}`} value={log.id}>{log.description}</MenuItem>\n )\n })\n\n }\n </Select>\n </div>\n )\n}\n","import React from 'react'\nimport TextField from '@material-ui/core/TextField';\nimport { FormHelperText } from '@material-ui/core';\ntype Props = {\n search: string,\n setSearch: Function\n}\n\nexport const SearchFilter = ({ search, setSearch }: Props) => {\n return (\n <>\n <TextField\n style={{ minWidth: \"100%\", margin: \"15px 0px\", backgroundColor: \"#f5f8fa\", borderTopLeftRadius: 3, borderTopRightRadius: 3, paddingBottom: 0 }}\n label=\"Search\"\n variant=\"outlined\"\n margin=\"dense\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n autoComplete='off'\n />\n <FormHelperText style={{ marginBottom: 10, marginTop: -15 }}>Search by Source, Message or User</FormHelperText>\n </>\n )\n}\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { DataGrid, GridRowParams } from '@material-ui/data-grid';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport { useLogTableData } from './customHooks/useLogTableData';\nimport { useGetLogsFromAPI } from '../hook/useGetLogsFromAPI';\nimport { Log } from '../../models/Log';\nimport { useLogsContext } from '../../context/LogsContext';\nimport Typography from '@material-ui/core/Typography';\nimport { ModalLogSelected } from '../ModalLogSelected/ModalLogSelected';\nimport { Alert, AlertTitle } from '@material-ui/lab';\nimport { DateFilter } from '../Filters/dateFilter';\nimport { CodeFilter } from '../Filters/codeFilter';\nimport { SearchFilter } from '../Filters/searchFilter';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n '& .MuiDataGrid-row': {\n cursor: \"pointer\",\n },\n '& .MuiDataGrid-columnHeaderTitle, & .MuiTablePagination-caption': {\n fontWeight: \"bold\"\n }\n },\n card: {\n backgroundColor: \"#e9f2f8\"\n },\n filters: {\n position: \"relative\",\n margin: \"0 10px\"\n },\n textfield: {\n margin: theme.spacing(2),\n },\n LogsTable: {\n padding: theme.spacing(1,2),\n },\n form: {\n display: \"flex\",\n flexDirection: \"column\",\n }\n }),\n);\n\nexport const TableLogs = () => {\n const { state: {\n searchData: {\n Start,\n End,\n Search,\n LogTypeCode\n }\n }, actions: {\n setStartFilter,\n setEndFilter,\n setSearchFilter,\n setLogTypeCodeFilter,\n resetFilters\n } } = useLogsContext();\n const classes = useStyles();\n const [showLogModal, setShowLogModal] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(true);\n const [selectedLog, setSelectedLog] = useState<Log | undefined>(undefined);\n const [errorsApi, setErrorsApi] = useState<string[]>([])\n\n // Data grid\n const { rows, columns } = useLogTableData()\n\n // Btn reset data\n const resetFilter = () => {\n resetFilters(null)\n setSelectedLog(undefined)\n };\n\n const rowClicked = (rowClickedEvent: GridRowParams) => {\n let data = rowClickedEvent.row;\n if (data === undefined)\n return;\n setShowLogModal(true)\n setSelectedLog(data as Log);\n }\n\n const getLogs = useGetLogsFromAPI({ Start, End, Search, LogTypeCode, setErrorsApi, setLoading })\n\n const handleSubmit = (ev: React.FormEvent<HTMLFormElement>) => {\n ev.preventDefault();\n getLogs();\n errorsApi.length > 0 && setErrorsApi([])\n }\n\n const handleResetButtonClick = () => {\n resetFilter();\n getLogs();\n setErrorsApi([])\n };\n\n return (\n <Grid container justifyContent=\"center\" alignItems=\"center\" className={classes.root}>\n <Grid item md={12} xs={12} className={classes.filters} style={{ padding: \"0 15px\" }}>\n <ModalLogSelected\n show={showLogModal}\n onHide={() => setShowLogModal(false)}\n selectedLog={selectedLog} />\n <Typography variant=\"h5\" style={{ margin: \"20px 0 20px\", fontWeight: 600 }}>MES and System Logs</Typography>\n <Grid container direction=\"row\" style={{ margin: \"20px 0 30px\" }}>\n <Grid item md={12} xs={12}>\n <Card className={classes.card}>\n <CardContent >\n <form onSubmit={handleSubmit} className={classes.form}>\n <Grid container alignItems=\"center\" direction=\"row\"\n spacing={2}>\n <Grid item md={4} xs={12}>\n <DateFilter label=\"From\" date={Start} setDate={setStartFilter} />\n </Grid>\n <Grid item md={4} xs={12}>\n <DateFilter label=\"To\" date={End} setDate={setEndFilter} />\n </Grid>\n <Grid item md={4} xs={12}>\n <CodeFilter LogTypeCode={LogTypeCode} setLogTypeCodeFilter={setLogTypeCodeFilter} />\n </Grid>\n </Grid>\n <Grid container direction=\"row\">\n <Grid item md={12} xs={12}>\n <SearchFilter search={Search} setSearch={setSearchFilter} />\n </Grid>\n </Grid>\n <Grid container direction=\"row\" justifyContent=\"flex-start\" spacing={2}>\n <Grid item md={6} xs={12} >\n <Button variant=\"contained\" color=\"default\" onClick={handleResetButtonClick} fullWidth>\n Reset\n </Button>\n </Grid>\n <Grid item md={6} xs={12} >\n <Button variant=\"contained\" color=\"primary\" type=\"submit\" fullWidth>\n Search\n </Button>\n </Grid>\n </Grid>\n {!!errorsApi.length &&\n <Alert severity=\"error\" style={{ marginTop: 15 }}>\n <AlertTitle>Error</AlertTitle>\n <ul >\n {errorsApi.map(error => <li key={`err-${error}`}>{error}</li>)}\n </ul>\n </Alert>}\n\n </form>\n </CardContent>\n </Card>\n </Grid>\n </Grid>\n <Grid item md={12} >\n <DataGrid\n className={classes.LogsTable}\n density={'compact'}\n autoHeight\n loading={loading}\n rows={rows}\n columns={columns}\n pageSize={15}\n onRowClick={rowClicked}\n disableSelectionOnClick\n />\n </Grid>\n </Grid>\n </Grid >\n );\n}","import * as React from \"react\";\nimport { useLogsContext } from \"./context/LogsContext\";\nimport Paper from '@material-ui/core/Paper';\nimport { TableLogs } from \"./components/LogsTable/TableLogs\";\nimport Grid from '@material-ui/core/Grid';\nimport { LazyLoading } from \"../../../controls/LazyLoading/LazyLoading\";\n\ntype Props = {\n};\n\nexport const Logs = (prop: Props) => {\n const { state } = useLogsContext();\n\n if (state.logs) {\n\n return (\n <Grid container justifyContent=\"center\" alignItems=\"center\">\n <Grid item md={12} xs={12} style={{ margin: 0 }}>\n <Paper elevation={1} style={{ width: \"100%\", padding: \"10px 0 20px\", borderRadius: \"0.75rem\" }}>\n <TableLogs />\n </Paper>\n </Grid>\n </Grid>\n );\n }\n return <LazyLoading />;\n};\n","import * as React from 'react';\nimport { LogsProvider } from \"./context/LogsContext\";\nimport { Logs } from './LogsPage';\n\ntype Props = {\n};\n\nconst LogsPage = (props: Props) => {\n return (\n <LogsProvider>\n <Logs />\n </LogsProvider>\n );\n};\n\nexport default LogsPage;","import { createSlice } from \"@reduxjs/toolkit\";\nimport { Profile } from \"../../profiles/models/Profile\";\nimport { Permission } from \"../models/Permission\";\n\nconst ProfilesInitialState: {\n profiles: Profile[];\n permissions:Permission[]|null\n} = {\n profiles: [],\n permissions:null\n \n};\n\nexport const ProfilesReducer = createSlice({\n name: \"__\",\n initialState: ProfilesInitialState,\n reducers: {\n setProfiles(state, { payload }) {\n state.profiles = payload;\n },\n setPermissions(state, {payload}){\n state.permissions = payload;\n }\n },\n});\n","import {createContext, default as React, ReactNode, useContext} from \"react\";\nimport {ProfilesReducer} from \"../reducers/ProfilesReducer\";\nimport {useComplexState} from \"use-complex-state\";\n\n\nconst ProfilesContext = createContext({\n state: ProfilesReducer.getInitialState(),\n actions: ProfilesReducer.actions\n});\n\nexport const useProfilesContext = () => useContext(ProfilesContext);\n\nexport const ProfilesProvider = ({children}: { children: ReactNode }) => {\n\n const [state, actions] = useComplexState({\n initialState:ProfilesReducer.getInitialState(),\n reducers: ProfilesReducer.caseReducers\n })\n\n return (\n <ProfilesContext.Provider value={{state,actions}}>\n {children}\n </ProfilesContext.Provider>\n )\n}","import { MESApiService, spParameter } from \"../../../../services/ApiService\";\nimport { Profile } from \"../../profiles/models/Profile\";\n\n//fx obtener profiles\nexport const getProfiles = async () => {\n const apiService = new MESApiService();\n\n try {\n const resp = await apiService.call(\"[SEC].[GetProfiles]\", []);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\n//fx obtener permisos\nexport const getPermissions = async () => {\n const apiService = new MESApiService();\n\n try {\n const resp = await apiService.call(\"[SEC].[GetPermissions]\", []);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\n//fx crear/insertar new profile\nexport const upsertProfile = async (profile: Profile) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"ProfileId\", value: profile.ProfileId });\n parameters.push({ name: \"ProfileName\", value: profile.ProfileName });\n\n try {\n const resp = await apiService.call(\"[SEC].[UpsertProfile]\", parameters);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\n//fx setear permisos de un profile\nexport const setPermissionsToProfile = async (\n ProfileId: number,\n PermissionIds: number[]\n) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"ProfileId\", value: ProfileId });\n parameters.push({ name: \"PermissionIds\", value: PermissionIds.join(\" , \") });\n\n try {\n const resp = await apiService.call(\n \"[SEC].[SetPermissionsToProfile]\",\n parameters\n );\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\n//fx setear profiles de un profile\nexport const setProfilesToProfile = async (\n ProfileId: number,\n HasProfilesId: number[]\n) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"ProfileId\", value: ProfileId });\n parameters.push({ name: \"HasProfileIds\", value: HasProfilesId.join(\" , \") });\n\n try {\n const resp = await apiService.call(\n \"[SEC].[SetProfilesToProfile]\",\n parameters\n );\n\n if (apiService.hasErrors) {\n return { ok: false, message: apiService.error.internalError.message };\n }\n \n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\n// fx eliminar profile\nexport const deleteProfile = async (profileId: number) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"ProfileId\", value: profileId });\n\n try {\n const resp = await apiService.call(\"[SEC].[DeleteProfile]\", parameters);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n","import { useEffect } from \"react\";\nimport { get } from \"lodash-es\";\nimport { getPermissions } from \"../../../../repositories/ProfilesRepository\";\nimport { Permission } from \"../../../../models/Permission\";\n\ntype Props = {\n setIsLoading: (isLoading: boolean) => void;\n setPermissions: (permissions: Permission[]) => void;\n};\n\nexport const useGetPermissionsEffect = ({\n setIsLoading,\n setPermissions,\n}: Props): void => {\n useEffect(() => {\n let canceled = false;\n setIsLoading(true);\n getPermissions()\n .then((res) => {\n const permisions = get(res, \"data.tables[0].rows\", null);\n if (permisions) {\n if (canceled) return;\n setPermissions(permisions);\n } else console.log(\"algo falló\");\n })\n .finally(() => {\n if (canceled) return;\n setIsLoading(false);\n });\n return () => {\n canceled = true;\n };\n }, []);\n};\n","import { useProfilesContext } from \"../../../context/ProfileContext\";\n\nimport stc from \"string-to-color\";\n\ntype Props = {\n profilesToProfiles: number[];\n};\n\nexport const useGetColorByPermissionId = ({ profilesToProfiles }: Props) => {\n const {\n state: { profiles },\n } = useProfilesContext();\n return (PermissionId: number) => {\n const getColorByProfileName = (profileName: string): string => {\n return stc(profileName);\n };\n\n if (!profilesToProfiles) return false;\n\n let color = \"\";\n\n for (let i = 0; i < profilesToProfiles.length; i++) {\n const pId = profilesToProfiles[i];\n\n const profile = profiles.find((profile) => profile.ProfileId === pId);\n if (profile) {\n if (\n (profile.PermissionsId as string)\n ?.split(\",\")\n .map((prId) => parseInt(prId))\n .includes(PermissionId)\n ) {\n color = getColorByProfileName(profile.ProfileName);\n }\n\n if (color) break;\n }\n }\n\n return color;\n };\n};\n","export const isPermissionAssigned = (\n PermissionId: number,\n asignedPermissions: number[]\n): boolean => {\n return asignedPermissions?.includes(PermissionId);\n};","import { useProfilesContext } from \"../../../../context/ProfileContext\";\n\ntype Props = {\n profilesToProfiles: number[];\n};\nexport const useIsPermissionInherited = ({\n profilesToProfiles\n}: Props) => {\n\n const { state: {profiles}} = useProfilesContext();\n\n return (PermissionId: number): boolean => {\n if (!profilesToProfiles) return false;\n\n let permissionIsInherited = false;\n\n for (let i = 0; i < profilesToProfiles.length; i++) {\n const pId = profilesToProfiles[i];\n\n const profile = profiles.find((profile) => profile.ProfileId === pId);\n if (profile) {\n permissionIsInherited = (profile.PermissionsId as string)\n ?.split(\",\")\n .map((prId) => parseInt(prId))\n .includes(PermissionId);\n if (permissionIsInherited) break;\n }\n }\n return !!permissionIsInherited;\n };\n};\n","type Props = {\n asignedPermissions: number[],\n onChange: Function\n}\n\nexport const useHandleAsignedPermission = ({asignedPermissions, onChange}:Props) => {\n return (event: React.ChangeEvent<HTMLInputElement>): void => {\n const index = asignedPermissions.indexOf(parseInt(event.target.value))\n if (index === -1) {\n // si es -1 traemos los arr de asignados y agregamos el checkeado\n onChange([...asignedPermissions, parseInt(event.target.value)])\n } else {\n //si ya existe en el array devolvemos los permisos que no son iguales al permiso sin marcar\n onChange(asignedPermissions.filter(asignedPermission => asignedPermission !== parseInt(event.target.value)))\n }\n }\n}","import React, { useEffect, useState } from 'react';\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\nimport FormControl from '@material-ui/core/FormControl';\nimport { Permission } from '../../../models/Permission';\nimport Grid from '@material-ui/core/Grid';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { useProfilesContext } from '../../../context/ProfileContext';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport { useGetPermissionsEffect } from '../Permissions/hooks/useGetPermissionsEffect';\nimport { useGetColorByPermissionId } from '../hooks/useGetColorByPermissionId';\nimport { isPermissionAssigned } from '../Permissions/utils/PermissionsUtils';\nimport { useIsPermissionInherited } from '../Permissions/hooks/useIsPermissionInherited';\nimport { useHandleAsignedPermission } from '../Permissions/hooks/useHandleAsignedPermission';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n margin: \"0 12px\",\n width: \"50%\",\n userSelect: \"none\"\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n }),\n);\n\ntype Props = {\n value: number[],\n onChange: Function,\n profileForDelete: number | null,\n isLoading: boolean,\n setIsLoading: (isLoading: boolean) => void\n profilesToProfiles: number[],\n}\n\nexport const PermissionsPicker = ({ isLoading, setIsLoading, profileForDelete, value, onChange, profilesToProfiles }: Props) => {\n\n const { state: { profiles } } = useProfilesContext()\n const classes = useStyles();\n const [permissions, setPermissions] = useState<Permission[]>([])\n const [asignedPermissions, setAsignedPermissions] = useState<number[]>(value)\n\n const getColorByPermissionId = useGetColorByPermissionId({ profilesToProfiles });\n\n const handleAsignedPermission = useHandleAsignedPermission({ onChange, asignedPermissions })\n\n const isPermissionInherited = useIsPermissionInherited({ profilesToProfiles });\n\n const isPermissionChecked = (PermissionId: number): boolean => {\n\n return isPermissionAssigned(PermissionId, asignedPermissions) || isPermissionInherited(PermissionId)\n }\n\n function getPermissionNameById(permissionsId: number): string {\n return permissions.find(p => p.PermissionId === permissionsId)?.PermissionName.replaceAll(\"MES.\", \" \").replaceAll(\"Manage\", \"Manage \") || ''\n }\n\n function getProfileNameById(profile: number): string {\n // FIXME: issue prueba y manager quedan pegados\n return profiles.find(p => p.ProfileId === profile)?.ProfileName || ' '\n }\n\n useGetPermissionsEffect({ setIsLoading, setPermissions })\n\n useEffect(() => {\n setAsignedPermissions(value)\n }, [value])\n\n return (\n\n <Grid container>\n <Grid item md={12} xs={12}>\n {\n isLoading && <></>\n }\n {!isLoading && permissions.length && (\n <FormControl className={classes.formControl} >\n <FormGroup >\n {permissions.map(({ PermissionId }) => {\n return (\n <div key={`permission-${PermissionId}`}>\n <FormControlLabel style={{ margin: \"10 0\" }}\n disabled={!!profileForDelete ? !!profileForDelete : isPermissionInherited(PermissionId)}\n value={PermissionId}\n label={\n <Grid container justifyContent=\"center\" alignItems=\"center\">\n {getPermissionNameById(PermissionId)}\n {<div style={{\n height: 10, width: 10, backgroundColor: `${getColorByPermissionId(PermissionId)}`, marginLeft: 10, borderRadius: 50\n }}></div>}\n </Grid>}\n control={(\n <Checkbox\n color=\"primary\"\n checked={isPermissionChecked(PermissionId)}\n onChange={handleAsignedPermission}\n />\n )}\n />\n {isPermissionInherited(PermissionId) && <FormHelperText style={{ fontSize: 10, marginLeft: 30, marginTop: -15 }}>Inherited from: {profilesToProfiles.map(profile => getProfileNameById(profile).replaceAll(\"Profile\", \"\"))} </FormHelperText>}\n </div>\n )\n })\n }\n </FormGroup>\n </FormControl>\n )}\n </Grid>\n </Grid>\n );\n}","import { Profile } from \"../../profiles/models/Profile\";\n\nexport const INITIAL_VALUES: Profile = {\n ProfileId: null,\n ProfileName: \"\",\n HasProfilesId: [],\n HasProfiles: \"\",\n PermissionsId: [],\n Permissions: [],\n};\n","import { useEffect } from \"react\";\nimport { get } from \"lodash-es\";\nimport { getProfiles } from \"../../../../repositories/ProfilesRepository\";\nimport { Profile } from \"../../../../models/Profile\";\n\ntype Props = {\n setIsLoading: (isLoading: boolean) => void;\n setProfiles: (permissions: Profile[]) => void;\n};\n\nexport const useGetProfilesEffect = ({\n setIsLoading,\n setProfiles,\n}: Props): void => {\n useEffect(() => {\n let canceled = false;\n setIsLoading(true);\n getProfiles()\n .then((res) => {\n const permisions = get(res, \"data.tables[0].rows\", null);\n if (permisions) {\n if (canceled) return;\n setProfiles(permisions);\n } else console.log(\"algo falló\");\n })\n .finally(() => {\n if (canceled) return;\n setIsLoading(false);\n });\n return () => {\n canceled = true;\n };\n }, []);\n};\n","import React, { useEffect, useState } from 'react';\nimport { createStyles, makeStyles, useTheme, Theme } from '@material-ui/core/styles';\nimport FormControl from '@material-ui/core/FormControl';\nimport Grid from '@material-ui/core/Grid';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { useProfilesContext } from '../../../context/ProfileContext';\nimport { useGetProfilesEffect } from '../Profiles/hook/useGetProfilesEffect';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport stc from \"string-to-color\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n margin: \"0 12px\",\n width: \"50%\",\n userSelect: \"none\"\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n }),\n);\n\ntype Props = {\n value: number[],\n onChange: Function,\n profileForDelete: number | null,\n isLoading: boolean,\n setIsLoading: (isLoading: boolean) => void,\n profileIdForEdit: number | null | undefined\n}\n\nexport const ProfilesPicker = ({ isLoading, setIsLoading, profileForDelete, profileIdForEdit, value, onChange }: Props) => {\n const classes = useStyles();\n const { state: { profiles }, actions: { setProfiles } } = useProfilesContext();\n const [asignedProfiles, setAsignedProfiles] = useState<number[]>([])\n\n const handleAsignedProfile = (event: React.ChangeEvent<HTMLInputElement>) => {\n\n const index = asignedProfiles.indexOf(parseInt(event.target.value))\n if (index === -1) {\n onChange([...asignedProfiles, parseInt(event.target.value)])\n } else {\n onChange(asignedProfiles.filter(asignedProfile => asignedProfile !== parseInt(event.target.value)))\n }\n }\n\n function getProfileNameById(profilesId: number) {\n return profiles.find(p => p.ProfileId === profilesId)?.ProfileName.replaceAll(\"Profile\", \" \")\n }\n\n const doesProfileContainProfileForEdit = (ProfileId: number): boolean => {\n if (!profileIdForEdit)\n return false;\n\n const profile = profiles.find((p) => p.ProfileId === ProfileId);\n\n const hasProfilesIds =\n (profile?.HasProfilesId as string)\n ?.split(\",\")\n .map((pId) => parseInt(pId)) || [];\n\n return hasProfilesIds.includes(profileIdForEdit);\n }\n\n const isProfileIdForEdit = (ProfileId: number): boolean => {\n if (!profileIdForEdit)\n return false;\n\n return ProfileId === profileIdForEdit;\n }\n\n const isProfileIdDisabled = (ProfileId: number): boolean => {\n return isProfileIdForEdit(ProfileId) || doesProfileContainProfileForEdit(ProfileId)\n }\n\n useGetProfilesEffect({ setIsLoading, setProfiles })\n\n useEffect(() => {\n setAsignedProfiles(value)\n }, [value])\n\n const getColorByProfileName = (profileName: string): string => {\n return stc(profileName);\n };\n\n return (\n\n <Grid container>\n <Grid item md={12} xs={12}>\n {\n isLoading && <></>\n }\n {!isLoading && profiles.length && (\n <FormControl className={classes.formControl} >\n <FormGroup>\n {profiles.map(({ ProfileId, ProfileName }) => {\n return (\n <div key={`profile-${ProfileId}`}>\n <FormControlLabel\n style={{ margin: \"10 0\" }}\n disabled={!!profileForDelete ? !!profileForDelete : isProfileIdDisabled(ProfileId as number)}\n label={\n <Grid container justifyContent=\"center\" alignItems=\"center\">\n {getProfileNameById(ProfileId as number)}\n {asignedProfiles.includes(ProfileId as number) && <div style={{ height: 10, width: 10, backgroundColor: getColorByProfileName(ProfileName), marginLeft: 10, borderRadius: 50 }}></div>}\n </Grid>\n }\n control={\n < Checkbox\n value={ProfileId}\n color=\"primary\"\n checked={asignedProfiles.includes(ProfileId as number)}\n onChange={handleAsignedProfile}\n />\n }\n />\n {isProfileIdForEdit(ProfileId as number) && <FormHelperText style={{ fontSize: 10, marginLeft: 30, marginTop: -15 }}>Editing this profile</FormHelperText>}\n {doesProfileContainProfileForEdit(ProfileId as number) && <FormHelperText style={{ fontSize: 10, marginLeft: 30, marginTop: -15 }}>Circular reference not allowed</FormHelperText>}\n </div>\n )\n })\n }\n </FormGroup>\n </FormControl>\n )}\n </Grid>\n </Grid>\n );\n}","import * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { Controller, SubmitHandler, useForm } from 'react-hook-form';\nimport { TextField, } from '@material-ui/core';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { CircularProgress } from '@material-ui/core';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport { PermissionsPicker } from '../common/Pickers/PermissionsPicker';\nimport { setPermissionsToProfile, setProfilesToProfile, upsertProfile } from '../../repositories/ProfilesRepository';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport { INITIAL_VALUES } from '../../models/FormInitialValues';\nimport { Profile } from '../../models/Profile';\nimport { ProfilesPicker } from '../common/Pickers/ProfilesPicker';\nimport { useIsPermissionInherited } from '../common/Permissions/hooks/useIsPermissionInherited';\nimport { AlertTitle } from '@material-ui/lab';\nimport { Alert } from '../../../../../controls/alert';\nimport { LazyLoading } from '../../../../../controls/LazyLoading/LazyLoading';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n title: {\n fontSize: 15,\n },\n modalTitle: {\n fontSize: 15,\n marginTop: theme.spacing(1),\n },\n permissionsPicker: {\n padding: \"0\"\n },\n chip: {\n margin: 2,\n },\n errorLabel: {\n fontSize: 12,\n color: \"#F44336\"\n },\n error: {\n marginBottom: \"15px\"\n },\n textError: {\n listStyle: \"none\",\n padding: 0,\n margin: 0\n }\n }),\n);\n\ntype Props = {\n profileForEdit: Profile | null\n show: boolean\n onHide: (shouldUpdate: boolean) => void\n}\n\nexport const EditProfile = ({ profileForEdit, show, onHide }: Props) => {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n const [errorsApi, setErrorsApi] = useState<string[]>([])\n\n\n const {\n register,\n control,\n setValue,\n handleSubmit,\n formState: { errors },\n watch\n } = useForm<Profile>({ defaultValues: INITIAL_VALUES });\n\n const profilesToProfiles = watch('HasProfilesId');\n\n\n const isPermissionInherited = useIsPermissionInherited({\n profilesToProfiles: profilesToProfiles as number[]\n })\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n };\n\n const onSubmit: SubmitHandler<Profile> = async (data) => {\n setIsSubmitLoading(true);\n try {\n const res = await upsertProfile(data);\n const profileId = (res.data.tables[0].rows[0].ProfileId);\n\n const permissionsForSave = (data.PermissionsId as number[]).filter(pId => !isPermissionInherited(pId));\n\n await setPermissionsToProfile(profileId, permissionsForSave);\n if (data.HasProfilesId) {\n const sPtP = await setProfilesToProfile(profileId, data.HasProfilesId as number[])\n\n if (!sPtP.ok) {\n setIsSubmitLoading(false)\n return setErrorsApi(prevErrors => [...prevErrors, sPtP.message])\n }\n }\n setIsSubmitLoading(false)\n onHide(true);\n setOpen(true);\n } catch (e: any) {\n console.log(e)\n }\n };\n\n useEffect(() => {\n if (show) {\n setIsLoading(true);\n setIsSubmitLoading(false);\n setErrorsApi([])\n if (profileForEdit) {\n setValue(\"ProfileId\", profileForEdit.ProfileId)\n setValue(\"ProfileName\", profileForEdit.ProfileName)\n setValue(\"HasProfilesId\", (profileForEdit.HasProfilesId as string)?.split(',').map(pId => parseInt(pId)))\n setValue(\"HasProfiles\", profileForEdit.HasProfiles)\n setValue(\"Permissions\", profileForEdit.Permissions)\n setValue(\"PermissionsId\", ((profileForEdit.PermissionsId as string)?.split(',').map((pId: string) => parseInt(pId)) || []))\n }\n }\n }\n , [show])\n\n return (\n <>\n <Modal\n {...{ show }}\n onHide={() => onHide(false)}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n\n <form onSubmit={handleSubmit(onSubmit)} >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n PROFILE\n </Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ padding: \"15px 30px\" }}>\n {!!errorsApi.length &&\n <Alert severity=\"error\" className={classes.error}>\n <AlertTitle>Error</AlertTitle>\n <ul className={classes.textError}>\n {errorsApi.map(error => <li key={`error-${error}`}>{error}</li>)}\n </ul>\n </Alert>}\n {\n isLoading && <Grid container justifyContent='center' alignItems='center' style={{ minHeight: '150px' }}>\n <LazyLoading />\n </Grid>\n }\n {\n !isLoading && (\n <>\n <Grid container spacing={1}>\n <Grid item md={12} xs={12}>\n <TextField\n {...register(\"ProfileName\", { required: true })}\n label=\"Profile name\"\n variant=\"outlined\"\n error={!!errors.ProfileName}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n /> {errors.ProfileName?.type === 'required' && <span className={classes.errorLabel}>Profile name is required</span>}\n </Grid>\n </Grid>\n </>\n\n )\n }\n <Grid container>\n <Grid item md={6} xs={12}>\n <Modal.Title className={classes.modalTitle} id=\"contained-modal-title-vcenter\">\n PROFILES\n </Modal.Title>\n <Controller\n name=\"HasProfilesId\"\n control={control}\n render={({\n field: { onChange, value }\n }) => (\n <ProfilesPicker\n value={value as number[]}\n onChange={onChange}\n isLoading={isLoading}\n setIsLoading={setIsLoading}\n profileIdForEdit={profileForEdit?.ProfileId}\n profileForDelete={null} />\n )}\n />\n\n </Grid>\n <Grid item md={6} xs={12}>\n <Modal.Title className={classes.modalTitle} id=\"contained-modal-title-vcenter\">\n PERMISSIONS\n </Modal.Title>\n <Controller\n name=\"PermissionsId\"\n control={control}\n render={({\n field: { onChange, value }\n }) => (\n <PermissionsPicker\n isLoading={isLoading}\n setIsLoading={setIsLoading}\n onChange={onChange}\n profilesToProfiles={profilesToProfiles as number[]}\n value={value as number[]}\n profileForDelete={null} />\n )}\n />\n </Grid>\n </Grid>\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n <Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={() => onHide(false)}>Cancel</Button>\n </Grid>\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth startIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />}\n disabled={isSubmitLoading} variant=\"contained\" color=\"primary\" type='submit'>Save</Button>\n </Grid>\n </Grid>\n </Modal.Footer>\n </form>\n </Modal>\n <Snackbar open={open} autoHideDuration={2500} onClose={handleClose} >\n <Alert severity=\"info\" onClose={handleClose}>\n The profile was edited successfully\n </Alert>\n </Snackbar>\n </>\n );\n}","import * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { Profile } from '../../models/Profile';\nimport { Modal } from 'react-bootstrap';\nimport { Controller, SubmitHandler, useForm } from 'react-hook-form';\nimport { CircularProgress } from '@material-ui/core';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport { INITIAL_VALUES } from '../../models/FormInitialValues';\nimport { TextField, } from '@material-ui/core';\nimport { setPermissionsToProfile, setProfilesToProfile, upsertProfile } from '../../repositories/ProfilesRepository';\nimport { PermissionsPicker } from '../common/Pickers/PermissionsPicker';\nimport { ProfilesPicker } from '../common/Pickers/ProfilesPicker';\nimport { Alert } from '../../../../../controls/alert';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n title: {\n fontSize: 15,\n },\n modalTitle: {\n fontSize: 15,\n marginTop: theme.spacing(1),\n },\n permissionsPicker: {\n padding: \"0\"\n },\n chip: {\n margin: 2,\n },\n errorLabel: {\n fontSize: 12,\n color: \"#F44336\"\n }\n }),\n);\n\ntype Props = {\n show: boolean;\n onHide: () => void;\n getProfilesFromAPI: Function\n}\n\nexport const CreateProfile = ({ show, onHide, getProfilesFromAPI }: Props) => {\n const [open, setOpen] = useState(false);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const classes = useStyles();\n\n const {\n register,\n control,\n handleSubmit,\n reset,\n formState: { errors },\n watch\n } = useForm<Profile>({ defaultValues: INITIAL_VALUES });\n\n const profilesToProfiles = watch('HasProfilesId');\n\n const onSubmit: SubmitHandler<Profile> = async (data) => {\n setIsSubmitLoading(true);\n try {\n const res = await upsertProfile(data);\n const profileId = (res.data.tables[0].rows[0].ProfileId);\n await setPermissionsToProfile(profileId, data.PermissionsId as number[]);\n await setProfilesToProfile(profileId, data.HasProfilesId as number[]);\n setIsSubmitLoading(false);\n setOpen(true);\n onHide()\n getProfilesFromAPI()\n } catch (e: any) {\n console.log(e)\n }\n };\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n };\n\n useEffect(() => {\n if (show) {\n reset()\n }\n }, [show])\n\n return (\n <>\n <Grid container>\n <Grid item>\n <Modal\n {...{ show, onHide }}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <form onSubmit={handleSubmit(onSubmit)} >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n PROFILE\n </Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ padding: \"15px 30px\" }}>\n <Modal.Title className={classes.title} id=\"contained-modal-title-vcenter\">\n NEW PROFILE\n </Modal.Title>\n <Grid container spacing={1}>\n <Grid item md={12} xs={12}>\n <TextField\n {...register(\"ProfileName\", { required: true })}\n label=\"Profile name\"\n variant=\"outlined\"\n error={!!errors.ProfileName}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n /> {errors.ProfileName?.type === 'required' && <span className={classes.errorLabel}>Profile name is required</span>}\n </Grid>\n </Grid>\n\n <Grid container>\n <Grid item md={6} xs={12}>\n <Modal.Title className={classes.modalTitle} id=\"contained-modal-title-vcenter\">\n PROFILES\n </Modal.Title>\n <Controller\n name=\"HasProfilesId\"\n control={control}\n render={({\n field: { onChange, value }\n }) => (\n <ProfilesPicker\n value={value as number[]}\n onChange={onChange}\n isLoading={isLoading}\n setIsLoading={setIsLoading}\n profileForDelete={null}\n profileIdForEdit={undefined} />\n )}\n />\n </Grid>\n\n <Grid item md={6} xs={12}>\n <Modal.Title className={classes.modalTitle} id=\"contained-modal-title-vcenter\">\n PERMISSIONS\n </Modal.Title>\n <Controller\n name=\"PermissionsId\"\n control={control}\n render={({\n field: { onChange, value }\n }) => (\n <PermissionsPicker\n onChange={onChange}\n value={value as number[]}\n isLoading={isLoading}\n setIsLoading={setIsLoading}\n profileForDelete={null}\n profilesToProfiles={profilesToProfiles as number[]} />\n )}\n />\n </Grid>\n </Grid>\n\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n < Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={onHide}>Cancel</Button>\n </Grid>\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth startIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />}\n disabled={isSubmitLoading} variant=\"contained\" color=\"primary\" type='submit'>Save</Button>\n </Grid>\n </Grid>\n </Modal.Footer>\n </form>\n </Modal>\n </Grid>\n </Grid>\n <Snackbar open={open} autoHideDuration={2500} onClose={handleClose} >\n <Alert severity=\"success\" onClose={handleClose}>\n The permission was asigned successfully\n </Alert>\n </Snackbar>\n </>\n );\n}","import React, { useEffect, useState } from 'react'\nimport { Controller, SubmitHandler, useForm } from 'react-hook-form';\nimport Button from '@material-ui/core/Button';\nimport { Modal } from 'react-bootstrap';\nimport { TextField, } from '@material-ui/core';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport Grid from '@material-ui/core/Grid';\nimport { INITIAL_VALUES } from '../../models/FormInitialValues';\nimport { CircularProgress } from '@material-ui/core';\nimport { Profile } from '../../models/Profile';\nimport { deleteProfile } from '../../repositories/ProfilesRepository';\nimport { PermissionsPicker } from '../common/Pickers/PermissionsPicker';\nimport { ProfilesPicker } from '../common/Pickers/ProfilesPicker';\nimport { Alert } from '../../../../../controls/alert';import Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport { LazyLoading } from '../../../../../controls/LazyLoading/LazyLoading';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n\n title: {\n fontSize: 15,\n },\n modalTitle: {\n fontSize: 15,\n marginTop: theme.spacing(1),\n },\n permissionsPicker: {\n padding: \"0\"\n },\n chip: {\n margin: 2,\n },\n }),\n);\n\ntype Props = {\n profileForDelete: Profile | null\n show: boolean\n onHide: (shouldUpdate: boolean) => void\n}\n\nexport const DeleteProfile = ({ profileForDelete, show, onHide }: Props) => {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n const [deleteAlert, setDeleteAlert] = useState(false)\n const {\n register,\n control,\n setValue,\n watch,\n } = useForm<Profile>({ defaultValues: INITIAL_VALUES });\n\n const profilesToProfiles = watch('HasProfilesId');\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n setDeleteAlert(false)\n };\n\n useEffect(() => {\n if (show) {\n setIsSubmitLoading(false);\n if (profileForDelete) {\n setValue(\"ProfileId\", profileForDelete.ProfileId)\n setValue(\"ProfileName\", profileForDelete.ProfileName)\n setValue(\"HasProfilesId\", (profileForDelete.HasProfilesId as string)?.split(',').map(pId => parseInt(pId)))\n setValue(\"HasProfiles\", profileForDelete.HasProfiles)\n setValue(\"Permissions\", profileForDelete.Permissions)\n setValue(\"PermissionsId\", (profileForDelete.PermissionsId as string)?.split(',').map((pId: string) => parseInt(pId)))\n }\n }\n }\n , [show])\n\n const onDelete: (data: number) => Promise<void> = async (data: number) => {\n setIsSubmitLoading(true);\n try {\n await deleteProfile(data as number);\n onHide(true)\n setOpen(true);\n setDeleteAlert(false)\n } catch (e: any) {\n console.log(e)\n }\n };\n\n return (\n <>\n <Modal\n {...{ show }}\n onHide={() => onHide(false)}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <form >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n PROFILE\n </Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ padding: \"15px 30px\" }}>\n {\n isLoading && <Grid container justifyContent='center' alignItems='center' style={{ minHeight: '150px' }}>\n <LazyLoading />\n </Grid>\n }\n {\n !isLoading && (\n <>\n <Grid container spacing={1}>\n <Grid item md={12} xs={12}>\n <TextField\n {...register(\"ProfileName\", { required: true })}\n label=\"Profile name\"\n variant=\"outlined\"\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n disabled\n />\n </Grid>\n </Grid>\n </>\n )\n }\n <Grid container>\n <Grid item md={6} xs={12}>\n <Modal.Title className={classes.modalTitle} id=\"contained-modal-title-vcenter\">\n PROFILES\n </Modal.Title>\n <Controller\n name=\"HasProfilesId\"\n control={control}\n render={({\n field: { onChange, value }\n }) => (\n <ProfilesPicker\n value={value as number[]}\n onChange={onChange}\n isLoading={isLoading}\n setIsLoading={setIsLoading}\n profileForDelete={profileForDelete?.ProfileId as number}\n profileIdForEdit={undefined} />\n )}\n />\n </Grid>\n <Grid item md={6} xs={12}>\n <Modal.Title className={classes.modalTitle} id=\"contained-modal-title-vcenter\">\n PERMISSIONS\n </Modal.Title>\n <Controller\n name=\"PermissionsId\"\n control={control}\n render={({\n field: { onChange, value }\n }) => (\n <PermissionsPicker\n isLoading={isLoading}\n setIsLoading={setIsLoading}\n onChange={onChange}\n value={value as number[]}\n profileForDelete={profileForDelete?.ProfileId as number}\n profilesToProfiles={profilesToProfiles as number[]} />\n )}\n />\n </Grid>\n </Grid>\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n <Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={() => onHide(false)}>Cancel</Button>\n </Grid>\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"secondary\" onClick={() => setDeleteAlert(true)} >\n DELETE\n </Button>\n </Grid>\n </Grid>\n </Modal.Footer>\n <Dialog\n open={deleteAlert}\n onClose={() => handleClose()}\n aria-labelledby=\"responsive-dialog-title\"\n\n >\n <DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n <DialogContent>\n <DialogContentText style={{ padding: 0, margin: 0 }}>\n Be careful, once deleted you will not be able to recover this profile, are you sure you want to delete it?\n </DialogContentText>\n </DialogContent>\n <DialogActions style={{ padding: \"16px 24px\" }}>\n <Button onClick={() => setDeleteAlert(false)} autoFocus color=\"default\">\n CANCEL\n </Button>\n <Button startIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />} autoFocus color=\"secondary\"\n onClick={() => onDelete(profileForDelete?.ProfileId as number)}>Delete</Button>\n </DialogActions>\n </Dialog>\n </form>\n </Modal>\n <Snackbar open={open} autoHideDuration={2500} onClose={handleClose} >\n <Alert severity=\"error\" onClose={handleClose}>\n The profile was deleted successfully\n </Alert>\n </Snackbar>\n </>\n );\n}\n","import React from 'react';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { GridColDef } from \"@material-ui/data-grid\";\n\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { Profile } from '../../../models/Profile';\nimport { useProfilesContext } from '../../../context/ProfileContext';\n\ntype Props = {\n setProfileForEdit: (profile: Profile) => void,\n setModalEditPermissionsProfile: (showModal: boolean) => void,\n setProfileForDelete: (profile: Profile) => void,\n setModalDeleteProfile: (showModal: boolean) => void\n}\n\nexport const useTableData = ({\n setProfileForEdit,\n setModalEditPermissionsProfile,\n setProfileForDelete,\n setModalDeleteProfile }: Props) => {\n const { state } = useProfilesContext();\n const rows = state.profiles.map(\n ({ ProfileId,\n ProfileName,\n Permissions,\n PermissionsId,\n HasProfiles,\n HasProfilesId }: Profile) => ({\n id: ProfileId,\n ProfileId,\n HasProfiles: (HasProfiles as string)?.replaceAll(\"Profile\", \" \"),\n HasProfilesId,\n ProfileName: ProfileName?.replaceAll(\"Profile\", \"\"),\n PermissionsId,\n Permissions: (Permissions as string)?.replaceAll(\"MES.\", \" \").replaceAll(\"Manage\", \"Manage \")\n })\n );\n\n const columns: GridColDef[] = [\n\n {\n field: 'ProfileName', headerName: 'Profile name',\n minWidth: 170,\n flex: 2,\n },\n {\n field: 'HasProfiles', headerName: 'Profiles',\n minWidth: 140,\n flex: 2,\n },\n {\n field: 'Permissions', headerName: 'Permissions',\n minWidth: 150,\n flex: 3,\n },\n {\n field: \"Actions\",\n renderCell: (params) => {\n return (\n <>\n <Grid container justifyContent='center' alignItems='center'>\n <Grid item style={{padding:\"0 20px\"}}>\n <Button onClick={\n () => {\n (async () => {\n setProfileForEdit(params.row as Profile);\n setModalEditPermissionsProfile(true);\n })();\n }\n }>\n <EditIcon style={{width: 16, height: 16}} color=\"primary\" />\n </Button>\n <Button onClick={\n () => {\n (async () => {\n setProfileForDelete(params.row as Profile);\n setModalDeleteProfile(true);\n })();\n }\n }>\n <DeleteIcon style={{width: 16, height: 16}} color=\"secondary\" />\n </Button>\n </Grid>\n </Grid>\n </>\n )\n },\n headerName: ' ',\n minWidth:150,\n },\n ];\n\n return { rows, columns };\n}","import * as React from 'react';\nimport { useState } from 'react';\nimport { DataGrid } from '@material-ui/data-grid';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport { EditProfile } from '../Edit/EditProfile';\nimport { CreateProfile } from '../Create/CreateProfile';\nimport { Profile } from '../../models/Profile';\nimport { DeleteProfile } from '../Delete/DeleteProfile';\nimport { useTableData } from './customHooks/useTableData';\nimport Typography from '@material-ui/core/Typography';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n '& .MuiDataGrid-row': {\n cursor: \"pointer\",\n },\n '& .MuiDataGrid-columnHeaderTitle, & .MuiTablePagination-caption': {\n fontWeight: \"bold\",\n fontSize: \"12px\",\n },\n '& .MuiDataGrid-columnHeaderTitleContainer': {\n padding: \"0\"\n },\n '& .MuiDataGrid-cell--textLeft': {\n fontSize:\"12px\"\n }\n },\n relative: {\n position: \"relative\"\n },\n textfield: {\n margin: theme.spacing(2),\n },\n btnModal: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n\n },\n ProfilesTable: {\n padding: theme.spacing(1, 2),\n },\n }),\n);\n\ntype Props = {\n getProfilesFromAPI: Function;\n isLoading: boolean;\n}\nexport const TableProfiles = ({ getProfilesFromAPI, isLoading }: Props) => {\n\n const [modalCreateActive, setModalCreateActive] = useState(false)\n const [modalEditPermissionsProfile, setModalEditPermissionsProfile] = useState(false)\n const [modalDeleteProfile, setModalDeleteProfile] = useState(false)\n\n const [profileForEdit, setProfileForEdit] = useState<Profile | null>(null)\n const [profileForDelete, setProfileForDelete] = useState<Profile | null>(null)\n\n const classes = useStyles();\n\n const { rows, columns } = useTableData({\n setModalDeleteProfile,\n setModalEditPermissionsProfile,\n setProfileForDelete,\n setProfileForEdit\n })\n\n return (\n <Grid container justifyContent=\"center\">\n <Grid item md={12} xs={12} style={{ padding: \"0 15px\" }}>\n <Typography variant=\"h5\" style={{ margin: \"20px 0 20px\", fontWeight: 600 }}>Profile Management</Typography>\n </Grid>\n <Grid container justifyContent=\"center\" alignItems=\"center\" className={classes.root}>\n <Grid item md={12} xs={12} style={{ padding: \"0 15px\" }} className={classes.relative}>\n <CreateProfile\n show={modalCreateActive}\n onHide={() => setModalCreateActive(false)}\n getProfilesFromAPI={getProfilesFromAPI}\n />\n <EditProfile\n show={modalEditPermissionsProfile}\n profileForEdit={profileForEdit}\n onHide={(shouldUpdate: boolean) => {\n setModalEditPermissionsProfile(false);\n setProfileForEdit(null)\n if (shouldUpdate)\n getProfilesFromAPI().then(() => { });\n }}\n />\n <DeleteProfile\n show={modalDeleteProfile}\n profileForDelete={profileForDelete}\n onHide={(shouldUpdate: boolean) => {\n setModalDeleteProfile(false);\n setProfileForDelete(null)\n if (shouldUpdate)\n getProfilesFromAPI().then(() => { });\n }}\n />\n <div style={{ width: '100%' }} >\n <DataGrid\n className={classes.ProfilesTable}\n density={'compact'}\n autoHeight\n loading={isLoading}\n rows={rows}\n columns={columns}\n pageSize={20}\n disableSelectionOnClick />\n </div>\n <Grid container justifyContent=\"flex-end\">\n <Grid item md={2} xs={12} className={classes.btnModal}>\n <Button variant=\"contained\" color=\"primary\" onClick={() => setModalCreateActive(!modalCreateActive)} fullWidth style={{ margin: \"20px 0 20px\"}}>\n NEW\n </Button>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n );\n}","import * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { getProfiles } from \"./repositories/ProfilesRepository\";\nimport { useProfilesContext } from \"./context/ProfileContext\";\nimport Paper from '@material-ui/core/Paper';\nimport { TableProfiles } from \"./components/ProfilesTable/TableProfiles\";\nimport Grid from '@material-ui/core/Grid';\nimport { LazyLoading } from \"../../../controls/LazyLoading/LazyLoading\";\n\ntype Props = {\n};\n\nexport const Profiles = (prop: Props) => {\n const { state, actions } = useProfilesContext();\n const [ isLoading, setIsLoading] = useState(true);\n\n\n const getProfilesFromAPI = async () => {\n setIsLoading(true);\n const resp = await getProfiles();\n if (resp.ok) {\n actions.setProfiles(resp.data.tables[0].rows);\n setIsLoading(false);\n } else {\n console.log(\"something happened!\");\n }\n }\n\n useEffect((\n ) => {\n getProfilesFromAPI();\n }, []);\n\n if (state.profiles) {\n\n return (\n <Grid container justifyContent=\"center\" alignItems=\"center\">\n <Grid item md={12} xs={12} style={{ margin: 0 }}>\n <Paper elevation={1} style={{ width: \"100%\", padding: \"10px 0 20px\", borderRadius: \"0.75rem\" }}>\n <TableProfiles isLoading={isLoading} getProfilesFromAPI={getProfilesFromAPI} />\n </Paper>\n </Grid>\n </Grid>\n );\n }\n return <LazyLoading />;\n};\n","import * as React from 'react';\nimport {ProfilesProvider} from \"./context/ProfileContext\";\nimport {Profiles} from \"./ProfilesPage\";\n\ntype Props = {\n};\n\nconst UsersPage = (props: Props) => {\n return (\n <ProfilesProvider>\n <Profiles/>\n </ProfilesProvider>\n );\n};\n\nexport default UsersPage;","import { ShiftParameters } from \"./ShiftParameters\";\n\nexport const INITIAL_VALUES: ShiftParameters = {\n //AssetId = --sP default asset per user\n PatternStart: new Date(),\n ShiftCodes: \"\",\n Crews: \"\",\n User: \"\",\n //FIXME: Aquí ya le pasamos como mín un 5 por defecto, minimo en sP?\n PatternDays: 5,\n CrewRotation: \"\",\n Comments: \"\",\n // FIXME:para que sirve este CanEdit, como lo incializamos?\n CanEdit: false,\n\n // FIXME: inicializo como 1? porque 0 no se puede enviar nunca, por lo menos siempre va a ser 1\n ShiftsPerDay: 1,\n NumberOfCrews: 1,\n};\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport { INITIAL_VALUES } from \"../models/FormInitialValues\";\nimport { ShiftParameters } from \"../models/ShiftParameters\";\n\nconst ShiftsCrewsInitialState: {\n shifts: ShiftParameters[],\n shiftTableData: ShiftParameters,\n pruebas:string\n} = {\n shifts: [],\n shiftTableData: INITIAL_VALUES,\n pruebas:\"hola\"\n};\n\nexport const ShiftsCrewsReducer = createSlice({\n name: \"__\",\n initialState: ShiftsCrewsInitialState,\n reducers: {\n setShiftsCrews(state, { payload }) {\n state.shifts = payload;\n },\n setShiftTableData(state, {payload}){\n state.shiftTableData = payload;\n },\n setPruebas(state, {payload}){\n state.pruebas = payload;\n }\n },\n});","import {createContext, default as React, ReactNode, useContext} from \"react\";\nimport {ShiftsCrewsReducer} from \"../reducers/ShiftsCrewsReducer\";\nimport {useComplexState} from \"use-complex-state\";\n\n\nconst ShiftsCrewsContext = createContext({\n state: ShiftsCrewsReducer.getInitialState(),\n actions: ShiftsCrewsReducer.actions\n});\n\nexport const useShiftsCrewsContext = () => useContext(ShiftsCrewsContext);\n\nexport const ShiftsCrewsProvider = ({children}: { children: ReactNode }) => {\n\n const [state, actions] = useComplexState({\n initialState:ShiftsCrewsReducer.getInitialState(),\n reducers: ShiftsCrewsReducer.caseReducers\n })\n\n return (\n <ShiftsCrewsContext.Provider value={{state,actions}}>\n {children}\n </ShiftsCrewsContext.Provider>\n )\n}","import React from 'react';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { GridColDef } from \"@material-ui/data-grid\";\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { useShiftsCrewsContext } from '../../context/ShiftsCrewsContext';\nimport { ShiftParameters } from '../../models/ShiftParameters';\nimport moment from 'moment';\n\ntype Props = {\n setModalEditShift: Function,\n setModalDeleteShift: Function\n}\n\nexport const useTableData = ({ setModalEditShift, setModalDeleteShift }: Props) => {\n const { state, actions } = useShiftsCrewsContext();\n // TODO: Assetid inicializamos como null en el model? en el sP se lo mandamos no más como parameter null\n\n const rows = state.shifts.map(\n ({ PatternStart, ShiftCodes, Crews, PatternDays, CrewRotation, Comments, CanEdit }: ShiftParameters) => ({\n // FIXME:aquí de Id paso ShiftCodes ya que el shiftParameters no viene con un id, este será el AssetsId? Revisar\n id: ShiftCodes,\n PatternStart,\n ShiftCodes,\n Crews,\n PatternDays,\n CrewRotation,\n Comments,\n CanEdit\n })\n );\n \n const columns: GridColDef[] = [\n\n {\n field: 'PatternStart', headerName: 'Pattern Start',\n valueFormatter: ({ value }: { value: any }) => `${moment(value).format('L')}, ${moment(value).format('LTS')}`,\n minWidth: 180,\n flex: 3,\n },\n {\n field: 'ShiftCodes', headerName: 'Shift Codes',\n minWidth: 150,\n flex: 2,\n },\n {\n field: 'Crews', headerName: 'Crews',\n minWidth: 150,\n flex: 2,\n },\n {\n field: \"PatternDays\",\n headerName: 'Shifts',\n minWidth: 130,\n flex: 1,\n },\n {\n field: \"Actions\",\n renderCell: (params) => {\n return (\n <>\n <Grid container justifyContent='center' alignItems='center'>\n <Grid item style={{ padding: \"0 20px\" }}>\n <Button onClick={\n () => {\n (async () => {\n actions.setShiftTableData(params.row as ShiftParameters);\n setModalEditShift(true);\n })();\n }\n }>\n <EditIcon color=\"primary\" />\n </Button>\n <Button onClick={\n () => {\n (async () => {\n actions.setShiftTableData(params.row as ShiftParameters);\n setModalDeleteShift(true);\n })();\n }\n }>\n <DeleteIcon color=\"secondary\" />\n </Button>\n </Grid>\n </Grid>\n </>\n )\n },\n headerName: ' ',\n minWidth: 150,\n },\n ];\n\n return { rows, columns };\n}","\nimport { MESApiService, spParameter } from \"../../../../services/ApiService\";\nimport { ShiftParameters } from \"../models/ShiftParameters\";\n\nexport const getShiftParameters = async () => {\n const apiService = new MESApiService();\n\n try {\n const resp = await apiService.call(\"[MES].[GetShiftParameters]\", []);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\nexport const upsertShiftParameters = async ({\n PatternStart,\n ShiftCodes,\n Crews,\n CrewRotation,\n Comments,\n}: ShiftParameters) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n // AssetId = null ?\n parameters.push({ name: \"AssetId\", value: null });\n parameters.push({ name: \"PatternStart\", value: PatternStart });\n parameters.push({ name: \"ShiftCodes\", value: ShiftCodes });\n parameters.push({ name: \"Crews\", value: Crews });\n parameters.push({ name: \"CrewRotation\", value: CrewRotation });\n parameters.push({ name: \"Comments\", value: Comments });\n\n try {\n const resp = await apiService.call(\n \"[MES].[UpsertShiftParameters]\",\n parameters\n );\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\nexport const CreateShiftsJob = async (\n StartDate: Date | null,\n DaysInAdvance: number,\n Loop: number\n) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"StartDate\", value: StartDate });\n parameters.push({ name: \"DaysInAdvance\", value: (DaysInAdvance = 7) });\n parameters.push({ name: \"Loop\", value: (Loop = 1) });\n\n try {\n const resp = await apiService.call(\"[MES].[CreateShiftsJob]\", parameters);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\nexport const DeleteShiftParameters = async (PatternStart: Date) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"AssetId\", value: null });\n parameters.push({ name: \"PatternStart\", value: PatternStart });\n\n try {\n const resp = await apiService.call(\n \"[MES].[DeleteShiftParameters]\",\n parameters\n );\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n","import * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { Controller, SubmitHandler, useForm } from 'react-hook-form';\nimport { CircularProgress } from '@material-ui/core';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport { TextField, } from '@material-ui/core';\nimport { INITIAL_VALUES } from '../../models/FormInitialValues';\nimport { upsertShiftParameters } from '../../repositories/ShiftsCrewsRepository';\nimport MomentUtils from '@date-io/moment';\nimport { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardTimePicker } from '@material-ui/pickers';\nimport { ShiftParameters } from '../../models/ShiftParameters';\nimport { useShiftsCrewsContext } from '../../context/ShiftsCrewsContext';\nimport { Alert } from '../../../../../controls/alert';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n title: {\n fontSize: 15,\n },\n modalTitle: {\n fontSize: 15,\n marginTop: theme.spacing(1),\n },\n permissionsPicker: {\n padding: \"0\"\n },\n chip: {\n margin: 2,\n },\n errorLabel: {\n fontSize: 12,\n color: \"#F44336\"\n },\n infoLabel: {\n fontSize: 12,\n color: \"#757575\"\n }\n }),\n);\n\ntype Props = {\n show: boolean;\n onHide: () => void;\n getShiftsCrewsFromAPI: Function\n}\n\nexport const CreateShift = ({ show, onHide, getShiftsCrewsFromAPI }: Props) => {\n const [open, setOpen] = useState(false);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n // const [isLoading, setIsLoading] = useState(true);\n const classes = useStyles();\n const { state: { shiftTableData } } = useShiftsCrewsContext();\n\n const {\n register,\n control,\n handleSubmit,\n reset,\n watch,\n setValue,\n formState: { errors },\n } = useForm<ShiftParameters>({ defaultValues: shiftTableData ? shiftTableData : INITIAL_VALUES });\n\n // Progress bar\n const calculatePercentage = () => ((crewRotation?.length as number) / maxCrewRotationLength) * 100;\n\n const onSubmit: SubmitHandler<ShiftParameters> = async (data) => {\n setIsSubmitLoading(true);\n\n try {\n await upsertShiftParameters(data);\n setIsSubmitLoading(false);\n setOpen(true);\n onHide()\n getShiftsCrewsFromAPI()\n } catch (e: any) {\n console.log(e)\n }\n };\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n };\n\n // const patternStart = watch('PatternStart');\n const shiftsPerDay = watch('ShiftsPerDay');\n const shiftCodes = watch('ShiftCodes');\n const numberOfCrews = watch('NumberOfCrews');\n const crewsCodes = watch('Crews');\n const rotationPattern = watch('PatternDays');\n const crewRotation = watch('CrewRotation');\n const comments = watch('Comments');\n const maxCrewRotationLength = shiftsPerDay * rotationPattern;\n\n\n useEffect(() => {\n if (show) {\n reset()\n setValue(\"PatternStart\", new Date())\n }\n }, [show])\n\n return (\n <>\n <Grid container >\n <Grid item>\n <Modal\n {...{ show, onHide }}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <form onSubmit={handleSubmit(onSubmit)} >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n NEW SHIFT/CREW\n </Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ padding: \"15px 30px 0\" }}>\n <Grid container spacing={2}>\n <Controller\n name=\"PatternStart\"\n control={control}\n render={({\n field: { value, onChange }\n }) => (\n <MuiPickersUtilsProvider utils={MomentUtils} >\n <Grid item md={6} xs={12} style={{ margin: \"8px 0 0\" }}>\n <KeyboardDatePicker\n fullWidth\n disablePast\n disableToolbar\n variant=\"inline\"\n format=\"MM/DD/yyyy\"\n id=\"date-picker-inline\"\n style={{ minWidth: \"100%\", borderTopLeftRadius: 3, borderTopRightRadius: 3 }}\n label=\"Start\"\n value={value}\n onChange={\n (evt: any) => onChange(evt?.toDate())}\n KeyboardButtonProps={{\n 'aria-label': 'change date'\n }} />\n </Grid>\n <Grid item md={6} xs={12} style={{ margin: \"8px 0 18px\" }}>\n <KeyboardTimePicker\n fullWidth\n variant=\"inline\"\n id=\"time-picker\"\n label=\"Time\"\n value={value}\n onChange={(evt: any) => onChange(evt?.toDate())}\n KeyboardButtonProps={{\n 'aria-label': 'change time',\n }}\n />\n </Grid>\n </MuiPickersUtilsProvider>)}\n />\n\n <Grid item md={6} xs={6}>\n <Controller\n name=\"ShiftsPerDay\"\n control={control}\n rules={{\n min: 1,\n }}\n render={({\n field: { onChange, value }\n }) => (\n <TextField\n label={`# ${shiftsPerDay > 1 ? \"Shifts\" : \"Shift\"} per day`}\n variant=\"outlined\"\n error={!!errors.ShiftsPerDay}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n type=\"number\"\n value={value}\n onChange={\n (evt) => parseInt(evt.target.value) >= 1 && parseInt(evt.target.value) <= 10 && onChange(evt)\n }\n />\n )}\n />\n {errors.ShiftsPerDay?.type === 'min' &&\n <span className={classes.errorLabel}>Shifts per day is required</span>}\n </Grid>\n <Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n <Controller\n name=\"ShiftCodes\"\n control={control}\n rules={{\n validate: (value) => value.length == shiftsPerDay\n }}\n render={({\n field: { onChange, value }\n }) => (\n <TextField\n label=\"Shifts Ids\"\n variant=\"outlined\"\n error={!!errors.ShiftCodes}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n value={value}\n onChange={\n (evt) => {\n // TODO: aquí podriamos hacer que no pueda haber dos valores iguales, para prevenir errores. Ej. dos DNN\n if ((evt.target.value.length) <= shiftsPerDay)\n onChange(evt.target.value.toString().toUpperCase())\n }}\n />\n )}\n />\n {!!errors.ShiftCodes && <span className={classes.errorLabel}>Please put {shiftsPerDay} shifts</span>}\n {shiftCodes.length < shiftsPerDay && !!errors.ShiftCodes === false &&\n <span className={classes.infoLabel}>{`Insert: ${shiftsPerDay} ${shiftsPerDay == 1 ? \"Id\" : \"Ids\"}. ${shiftsPerDay > 1 ? \"The Ids must be differents\" : \"\"}`}</span>}\n </Grid>\n <Grid item md={6} xs={6}>\n <Controller\n name=\"NumberOfCrews\"\n control={control}\n rules={{\n min: 1,\n max: 9\n }}\n render={({\n field: { onChange, value }\n }) => (\n <TextField\n\n label={`# ${numberOfCrews > 1 ? \"Crews\" : \"Crew\"}`}\n variant=\"outlined\"\n error={!!errors.NumberOfCrews}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n type=\"number\"\n onChange={\n (evt) => {\n // max. crew 15\n if (parseInt(evt.target.value) >= 1 && parseInt(evt.target.value) <= 15)\n onChange(evt)\n }\n }\n value={value}\n />\n )}\n />\n {errors.NumberOfCrews?.type === 'min' &&\n <span className={classes.errorLabel}># Crewss day is required</span>}\n </Grid>\n <Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n <Controller\n name=\"Crews\"\n control={control}\n rules={{\n validate: (value) => value.length == numberOfCrews\n }}\n render={({\n field: { onChange, value }\n }) => (\n <TextField\n label=\"Crews Ids\"\n variant=\"outlined\"\n error={!!errors.Crews}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n value={value}\n onChange={\n (evt) => {\n if ((evt.target.value.length) <= numberOfCrews)\n onChange(evt.target.value.toString().toUpperCase())\n }}\n />\n )}\n />\n {!!errors.Crews && <span className={classes.errorLabel}>Please put {numberOfCrews} crews</span>}\n {crewsCodes.length < numberOfCrews && !!errors.Crews === false &&\n <span className={classes.infoLabel}>{`Insert: ${numberOfCrews} ${numberOfCrews == 1 ? \"Crew\" : \"Crews\"}. ${numberOfCrews > 1 ? \"The Crews must be differents\" : \"\"}`}</span>}\n </Grid>\n <Grid item md={6} xs={6} style={{ marginBottom: \"8px\" }}>\n <Controller\n name=\"PatternDays\"\n control={control}\n render={\n ({ field: { value, onChange } }) => (\n <TextField\n label=\"Rotation Pattern\"\n variant=\"outlined\"\n error={!!errors.PatternDays}\n fullWidth\n type=\"number\"\n margin=\"dense\"\n autoComplete='off'\n value={value}\n onChange={\n (evt) => {\n if (parseInt(evt.target.value) >= 5 && parseInt(evt.target.value) <= 60)\n onChange(evt)\n }\n }\n />\n )\n }\n />\n </Grid>\n <Grid item md={12} xs={12} style={{ padding: \"0 8px\" }}>\n <Controller\n name=\"CrewRotation\"\n control={control}\n rules={{\n validate: (value) => value.length == maxCrewRotationLength\n }}\n render={\n ({ field: { value, onChange } }) => (\n <TextField\n value={value}\n onChange={\n (evt) => {\n if (evt.target.value.length <= maxCrewRotationLength)\n onChange(evt.target.value.toString().toUpperCase())\n }\n }\n label=\"Crew rotation\"\n variant=\"outlined\"\n fullWidth\n error={!!errors.CrewRotation}\n margin=\"dense\"\n autoComplete='off'\n />\n )\n }\n />\n {<Grid container style={{ padding: \"0\", height: 2 }}>\n <Grid item style={{ height: 2, width: `${calculatePercentage()}% `, backgroundColor: `${crewRotation.length == maxCrewRotationLength ? \"#4CAF50\" : \"#F44336\"}`, transition: \" 0.2s ease\", margin: \"0 5px\" }}></Grid>\n </Grid>}\n <Grid container style={{ margin: \"4px 0 0\" }}>\n <Grid item>\n {(crewRotation?.length as number) >= 1 && (crewRotation?.length as number) !== maxCrewRotationLength &&\n <span className={classes.infoLabel} style={{ marginLeft: 5 }}>{`${crewRotation?.length}/${maxCrewRotationLength}`}</span>}\n </Grid>\n </Grid>\n {!!errors.CrewRotation && <span className={classes.errorLabel}>Please put {maxCrewRotationLength} crews</span>}\n {numberOfCrews > 0 && (Number.isInteger((maxCrewRotationLength) / (numberOfCrews))) === false &&\n < Grid container style={{ padding: \"0\", marginLeft: 5 }}>\n <Grid item className={classes.errorLabel}>{`Rotation # not a multiple of Shifts (${maxCrewRotationLength}) / Crews (${numberOfCrews})`}</Grid>\n </Grid>\n }\n </Grid>\n <Grid item md={12} xs={12} style={{ margin: \"12px 0 20px\", padding: \"0 8px\" }} >\n <Controller\n name=\"Comments\"\n control={control}\n render={\n ({ field: { value, onChange } }) => (\n <TextField\n style={{ margin: \"8px 0\" }}\n size=\"medium\"\n maxRows={5}\n label=\"Comments\"\n multiline\n variant=\"outlined\"\n fullWidth\n autoComplete='off'\n value={value}\n onChange={(evt) => {\n if ((evt.target.value.length) <= 200)\n onChange(evt)\n }}\n />\n )\n }\n />\n <Grid container style={{ marginBottom: 18 }}>\n <Grid item>\n {(comments?.length as number) >= 1 && (comments?.length as number) !== 200 &&\n <span className={classes.infoLabel} style={{ marginLeft: 5 }}>{`${comments?.length}/200 max.`}</span>}\n {(comments?.length as number) == 200 &&\n <span className={classes.infoLabel} style={{ marginLeft: 5 }}>Max. 200</span>}\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n < Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={onHide}>Cancel</Button>\n </Grid>\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth startIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />}\n disabled={isSubmitLoading} variant=\"contained\" color=\"primary\" type='submit'>Save</Button>\n </Grid>\n </Grid>\n </Modal.Footer>\n </form>\n </Modal>\n </Grid>\n </Grid >\n <Snackbar open={open} autoHideDuration={2500} onClose={handleClose} >\n <Alert severity=\"success\" onClose={handleClose}>\n The shift was created successfully\n </Alert>\n </Snackbar>\n </>\n );\n}","import * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { Controller, SubmitHandler, useForm } from 'react-hook-form';\nimport { CircularProgress } from '@material-ui/core';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport { TextField, } from '@material-ui/core';\nimport { DeleteShiftParameters } from '../../repositories/ShiftsCrewsRepository';\nimport MomentUtils from '@date-io/moment';\nimport { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardTimePicker } from '@material-ui/pickers';\nimport { ShiftParameters } from '../../models/ShiftParameters';\nimport { useShiftsCrewsContext } from '../../context/ShiftsCrewsContext';\nimport { INITIAL_VALUES } from '../../models/FormInitialValues';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport { Alert } from '../../../../../controls/alert';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n title: {\n fontSize: 15,\n },\n modalTitle: {\n fontSize: 15,\n marginTop: theme.spacing(1),\n },\n permissionsPicker: {\n padding: \"0\"\n },\n chip: {\n margin: 2,\n },\n errorLabel: {\n fontSize: 12,\n color: \"#F44336\"\n },\n infoLabel: {\n fontSize: 12,\n color: \"#757575\"\n }\n }),\n);\n\ntype Props = {\n show: boolean;\n onHide: (shouldUpdate: boolean) => void;\n}\n\nexport const DeleteShift = ({ show, onHide }: Props) => {\n const [open, setOpen] = useState(false);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n const [deleteAlert, setDeleteAlert] = useState(false)\n\n const classes = useStyles();\n const { state: { shiftTableData } } = useShiftsCrewsContext();\n\n const {\n control,\n setValue,\n reset,\n watch,\n formState: { errors },\n } = useForm<ShiftParameters>({ defaultValues: INITIAL_VALUES });\n\n const onDelete: (data: Date) => Promise<void> = async (data: Date) => {\n setIsSubmitLoading(true);\n\n try {\n await DeleteShiftParameters(data as Date);\n setIsSubmitLoading(false);\n setOpen(true);\n onHide(true)\n setDeleteAlert(false)\n } catch (e: any) {\n console.log(e)\n }\n };\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n setDeleteAlert(false)\n };\n\n\n\n const patternStart = watch('PatternStart');\n const shiftsPerDay = watch('ShiftsPerDay');\n const crewRotation = watch('CrewRotation');\n const numberOfCrews = watch('NumberOfCrews');\n const crewsCodes = watch('Crews');\n const rotationPattern = watch('PatternDays');\n\n useEffect(() => {\n if (show) {\n reset()\n setValue(\"PatternStart\", shiftTableData.PatternStart)\n setValue(\"ShiftCodes\", shiftTableData.ShiftCodes)\n setValue(\"Crews\", shiftTableData.Crews)\n setValue(\"PatternDays\", shiftTableData.PatternDays)\n setValue(\"CrewRotation\", shiftTableData.CrewRotation)\n setValue(\"Comments\", shiftTableData.Comments)\n\n }\n }, [show])\n\n return (\n <>\n <Grid container >\n <Grid item>\n <Modal\n {...{ show }}\n onHide={() => onHide(false)}\n size=\"lg\"\n\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <form >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n NEW SHIFT/CREW\n </Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ padding: \"15px 30px 0\" }}>\n <Grid container spacing={2}>\n <Controller\n name=\"PatternStart\"\n control={control}\n render={({\n field: { value, onChange }\n }) => (\n <MuiPickersUtilsProvider utils={MomentUtils} >\n <Grid item md={6} xs={12} style={{ margin: \"8px 0 0\" }}>\n <KeyboardDatePicker\n fullWidth\n //TODO: esto está dando la pauta de que como es anterior no se puede borrar?\n // disablePast\n disableToolbar\n variant=\"inline\"\n format=\"MM/DD/yyyy\"\n id=\"date-picker-inline\"\n style={{ minWidth: \"100%\", borderTopLeftRadius: 3, borderTopRightRadius: 3 }}\n label=\"Start\"\n value={value}\n disabled={!!shiftTableData}\n onChange={\n (evt: any) => onChange(evt?.toDate())}\n KeyboardButtonProps={{\n 'aria-label': 'change date'\n }} />\n </Grid>\n <Grid item md={6} xs={12} style={{ margin: \"8px 0 18px\" }}>\n <KeyboardTimePicker\n fullWidth\n variant=\"inline\"\n id=\"time-picker\"\n label=\"Time\"\n value={value}\n disabled={!!shiftTableData}\n onChange={(evt: any) => onChange(evt?.toDate())}\n KeyboardButtonProps={{\n 'aria-label': 'change time',\n }}\n />\n </Grid>\n </MuiPickersUtilsProvider>)}\n />\n\n <Grid item md={6} xs={6}>\n <Controller\n name=\"ShiftsPerDay\"\n control={control}\n rules={{\n min: 1,\n }}\n render={({\n field: { onChange, value }\n }) => (\n <TextField\n label={`# ${shiftsPerDay > 1 ? \"Shifts\" : \"Shift\"} per day`}\n variant=\"outlined\"\n error={!!errors.ShiftsPerDay}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n type=\"number\"\n value={crewRotation.length / rotationPattern}\n disabled={!!shiftTableData}\n />\n )}\n />\n {errors.ShiftsPerDay?.type === 'min' &&\n <span className={classes.errorLabel}>Shifts per day is required</span>}\n </Grid>\n <Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n <Controller\n name=\"ShiftCodes\"\n control={control}\n render={({\n field: { value }\n }) => (\n <TextField\n label=\"Shifts Ids\"\n variant=\"outlined\"\n error={!!errors.ShiftCodes}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n value={value}\n disabled={!!shiftTableData}\n />\n )}\n />\n </Grid>\n <Grid item md={6} xs={6}>\n <Controller\n name=\"NumberOfCrews\"\n control={control}\n rules={{\n min: 1,\n max: 9\n }}\n render={({\n field: { value }\n }) => (\n <TextField\n label={`# ${numberOfCrews > 1 ? \"Crews\" : \"Crew\"}`}\n variant=\"outlined\"\n error={!!errors.NumberOfCrews}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n type=\"number\"\n value={crewsCodes.length}\n disabled={!!shiftTableData}\n />\n )}\n />\n\n </Grid>\n <Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n <Controller\n name=\"Crews\"\n control={control}\n render={({\n field: { value }\n }) => (\n <TextField\n label=\"Crews Ids\"\n variant=\"outlined\"\n error={!!errors.Crews}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n value={value}\n disabled={!!shiftTableData}\n\n />\n )}\n />\n\n </Grid>\n <Grid item md={6} xs={6}>\n <Controller\n name=\"PatternDays\"\n control={control}\n render={\n ({ field: { value, } }) => (\n <TextField\n label=\"Rotation Pattern\"\n variant=\"outlined\"\n error={!!errors.PatternDays}\n fullWidth\n type=\"number\"\n margin=\"dense\"\n autoComplete='off'\n value={value}\n disabled={!!shiftTableData}\n />\n )\n }\n />\n </Grid>\n <Grid item md={12} xs={12}>\n <Controller\n name=\"CrewRotation\"\n control={control}\n render={\n ({ field: { value, onChange } }) => (\n <TextField\n label=\"Crew rotation\"\n variant=\"outlined\"\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n value={value}\n disabled={!!shiftTableData}\n />\n )\n }\n />\n </Grid>\n <Grid item md={12} xs={12} >\n <Controller\n name=\"Comments\"\n control={control}\n render={\n ({ field: { value, onChange } }) => (\n <TextField\n style={{ margin: \"8px 0\" }}\n size=\"medium\"\n maxRows={5}\n label=\"Comments\"\n multiline\n variant=\"outlined\"\n fullWidth\n autoComplete='off'\n value={value}\n disabled={!!shiftTableData}\n />\n )\n }\n />\n </Grid>\n </Grid>\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n < Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={() => onHide(false)}>Cancel</Button>\n </Grid>\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth startIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />} disabled={isSubmitLoading\n ? isSubmitLoading : new Date(shiftTableData.PatternStart) < new Date() && true\n } variant=\"contained\" color=\"secondary\" onClick={() => setDeleteAlert(true)}>Delete</Button>\n {new Date(shiftTableData.PatternStart) < new Date() &&\n <Grid item>\n <span className={classes.errorLabel} style={{ fontSize: 10 }}>Can not delete before the current date</span>\n </Grid>}\n </Grid>\n </Grid>\n </Modal.Footer>\n <Dialog\n open={deleteAlert}\n onClose={() => handleClose()}\n aria-labelledby=\"responsive-dialog-title\"\n\n >\n <DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n <DialogContent>\n <DialogContentText style={{ padding: 0, margin: 0 }}>\n Be careful, once deleted you will not be able to recover this shift, are you sure you want to delete it?\n </DialogContentText>\n </DialogContent>\n <DialogActions style={{ padding: \"16px 24px\" }}>\n <Button onClick={() => setDeleteAlert(false)} autoFocus color=\"default\">\n CANCEL\n </Button>\n <Button startIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />} autoFocus color=\"secondary\"\n onClick={() => onDelete(patternStart as Date)}>Delete</Button>\n </DialogActions>\n </Dialog>\n </form>\n </Modal>\n </Grid>\n </Grid >\n <Snackbar open={open} autoHideDuration={2500} onClose={handleClose} >\n <Alert severity=\"warning\" onClose={handleClose}>\n The shift was deleted successfully\n </Alert>\n </Snackbar>\n </>\n );\n}","import * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { Controller, SubmitHandler, useForm } from 'react-hook-form';\nimport { CircularProgress } from '@material-ui/core';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport { TextField, } from '@material-ui/core';\nimport { INITIAL_VALUES } from '../../models/FormInitialValues';\nimport { upsertShiftParameters } from '../../repositories/ShiftsCrewsRepository';\nimport MomentUtils from 'moment';\nimport { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardTimePicker } from '@material-ui/pickers';\nimport { ShiftParameters } from '../../models/ShiftParameters';\nimport { useShiftsCrewsContext } from '../../context/ShiftsCrewsContext';\nimport { Alert } from '../../../../../controls/alert';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n title: {\n fontSize: 15,\n },\n modalTitle: {\n fontSize: 15,\n marginTop: theme.spacing(1),\n },\n permissionsPicker: {\n padding: \"0\"\n },\n chip: {\n margin: 2,\n },\n errorLabel: {\n fontSize: 12,\n color: \"#F44336\"\n },\n infoLabel: {\n fontSize: 12,\n color: \"#757575\"\n }\n }),\n);\n\ntype Props = {\n show: boolean;\n onHide: (shouldUpdate: boolean) => void;\n}\n\nexport const EditShift = ({ show, onHide }: Props) => {\n const [open, setOpen] = useState(false);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n const [initialShiftPerDayAndCrewsNumber, setInitialShiftPerDayAndCrewsNumber] = useState(false)\n const classes = useStyles();\n const { state: { shiftTableData } } = useShiftsCrewsContext();\n\n const {\n control,\n setValue,\n handleSubmit,\n reset,\n watch,\n formState: { errors },\n } = useForm<ShiftParameters>({ defaultValues: INITIAL_VALUES });\n\n // Progress bar\n const calculatePercentage = () => ((crewRotation?.length as number) / maxCrewRotationLength) * 100;\n\n const onSubmit: SubmitHandler<ShiftParameters> = async (data) => {\n setIsSubmitLoading(true);\n\n try {\n await upsertShiftParameters(data);\n setIsSubmitLoading(false);\n setOpen(true);\n onHide(true)\n } catch (e: any) {\n console.log(e)\n }\n };\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n\n };\n\n // const patternStart = watch('PatternStart');\n const shiftsPerDay = watch('ShiftsPerDay');\n const shiftCodes = watch('ShiftCodes');\n const numberOfCrews = watch('NumberOfCrews');\n const crewsCodes = watch('Crews');\n const rotationPattern = watch('PatternDays');\n const comments = watch('Comments');\n const crewRotation = watch('CrewRotation');\n const maxCrewRotationLength = shiftsPerDay * rotationPattern;\n\n useEffect(() => {\n if (show) {\n reset()\n setValue(\"PatternStart\", shiftTableData.PatternStart)\n setValue(\"ShiftCodes\", shiftTableData.ShiftCodes)\n setValue(\"Crews\", shiftTableData.Crews)\n setValue(\"PatternDays\", shiftTableData.PatternDays)\n setValue(\"CrewRotation\", shiftTableData.CrewRotation)\n setValue(\"Comments\", shiftTableData.Comments)\n setInitialShiftPerDayAndCrewsNumber(!initialShiftPerDayAndCrewsNumber)\n }\n }, [show])\n\n\n useEffect(() => {\n setValue(\"ShiftsPerDay\", crewRotation.length / rotationPattern)\n setValue(\"NumberOfCrews\", crewsCodes.length)\n }, [initialShiftPerDayAndCrewsNumber])\n\n\n return (\n <>\n <Grid container >\n <Grid item>\n <Modal\n {...{ show }}\n onHide={() => onHide(false)}\n size=\"lg\"\n\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <form onSubmit={handleSubmit(onSubmit)} >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n NEW SHIFT/CREW\n </Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ padding: \"15px 30px 0\" }}>\n <Grid container spacing={2}>\n <Controller\n name=\"PatternStart\"\n control={control}\n render={({\n field: { value, onChange }\n }) => (\n <MuiPickersUtilsProvider utils={MomentUtils} >\n <Grid item md={6} xs={12} style={{ margin: \"8px 0 0\" }}>\n <KeyboardDatePicker\n fullWidth\n // FIXME: sumé este disabled past\n disablePast\n disableToolbar\n variant=\"inline\"\n format=\"MM/DD/yyyy\"\n id=\"date-picker-inline\"\n style={{ minWidth: \"100%\", borderTopLeftRadius: 3, borderTopRightRadius: 3 }}\n label=\"Start\"\n value={value}\n onChange={\n (evt: any) => onChange(evt?.toDate())}\n KeyboardButtonProps={{\n 'aria-label': 'change date'\n }} />\n </Grid>\n <Grid item md={6} xs={12} style={{ margin: \"8px 0 18px\" }}>\n <KeyboardTimePicker\n fullWidth\n variant=\"inline\"\n id=\"time-picker\"\n label=\"Time\"\n value={value}\n onChange={(evt: any) => onChange(evt?.toDate())}\n KeyboardButtonProps={{\n 'aria-label': 'change time',\n }}\n />\n </Grid>\n </MuiPickersUtilsProvider>)}\n />\n\n <Grid item md={6} xs={6}>\n <Controller\n name=\"ShiftsPerDay\"\n control={control}\n rules={{\n min: 1,\n }}\n render={({\n field: { onChange, value }\n }) => (\n <TextField\n label={`# ${shiftsPerDay > 1 ? \"Shifts\" : \"Shift\"} per day`}\n variant=\"outlined\"\n error={!!errors.ShiftsPerDay}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n type=\"number\"\n value={value}\n onChange={\n // FIXME: límite de 10?\n (evt) => parseInt(evt.target.value) >= 1 && parseInt(evt.target.value) <= 10 && onChange(evt)\n }\n />\n )}\n />\n </Grid>\n <Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n <Controller\n name=\"ShiftCodes\"\n control={control}\n rules={{\n validate: (value) => value.length == shiftsPerDay\n }}\n render={({\n field: { onChange, value }\n }) => (\n <TextField\n label=\"Shifts Ids\"\n variant=\"outlined\"\n error={!!errors.ShiftCodes}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n value={value}\n onChange={\n (evt) => {\n // TODO: aquí deberíamos prevenir, que no pueda haber dos valores iguales, . Ej. dos DNN\n if ((evt.target.value.length) <= shiftsPerDay)\n onChange(evt.target.value.toString().toUpperCase())\n }}\n />\n )}\n />\n {!!errors.ShiftCodes && <span className={classes.errorLabel}>Please put {shiftsPerDay} shifts</span>}\n {shiftCodes.length < shiftsPerDay && !!errors.ShiftCodes === false &&\n <span className={classes.infoLabel}>{`Insert: ${shiftsPerDay} ${shiftsPerDay == 1 ? \"Id\" : \"Ids\"}. ${shiftsPerDay > 1 ? \"The Ids must be differents\" : \"\"}`}</span>}\n </Grid>\n <Grid item md={6} xs={6}>\n <Controller\n name=\"NumberOfCrews\"\n control={control}\n rules={{\n min: 1,\n max: 9\n }}\n render={({\n field: { onChange, value }\n }) => (\n <TextField\n label={`# ${numberOfCrews > 1 ? \"Crews\" : \"Crew\"}`}\n variant=\"outlined\"\n error={!!errors.NumberOfCrews}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n type=\"number\"\n value={value}\n onChange={\n (evt) => {\n if (parseInt(evt.target.value) >= 1 && parseInt(evt.target.value) <= 9)\n onChange(evt)\n }\n }\n />\n )}\n />\n {errors.NumberOfCrews?.type === 'min' &&\n <span className={classes.errorLabel}># Crewss day is required</span>}\n </Grid>\n <Grid item md={6} xs={6} style={{ paddingBottom: \"0\" }}>\n <Controller\n name=\"Crews\"\n control={control}\n rules={{\n validate: (value) => value.length == numberOfCrews\n }}\n render={({\n field: { onChange, value }\n }) => (\n <TextField\n label=\"Crews Ids\"\n variant=\"outlined\"\n error={!!errors.Crews}\n disabled={numberOfCrews <= 0}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n value={value}\n onChange={\n (evt) => {\n if ((evt.target.value.length) <= numberOfCrews)\n onChange(evt.target.value.toString().toUpperCase())\n }}\n />\n )}\n />\n {!!errors.Crews && <span className={classes.errorLabel}>Please put {numberOfCrews} crews</span>}\n {crewsCodes.length < numberOfCrews && !!errors.Crews === false &&\n <span className={classes.infoLabel}>{`Insert: ${numberOfCrews} ${numberOfCrews == 1 ? \"Crew\" : \"Crews\"}. ${numberOfCrews > 1 ? \"The Crews must be differents\" : \"\"}`}</span>}\n </Grid>\n <Grid item md={6} xs={6}>\n <Controller\n name=\"PatternDays\"\n control={control}\n // rules={{\n // required: true\n // }}\n render={\n ({ field: { value, onChange } }) => (\n <TextField\n label=\"Rotation Pattern\"\n variant=\"outlined\"\n error={!!errors.PatternDays}\n fullWidth\n type=\"number\"\n margin=\"dense\"\n autoComplete='off'\n value={value}\n onChange={\n (evt) => {\n // FIXME: consultar si estos valores están bien, son los limites del sP\n if (parseInt(evt.target.value) >= 5 && parseInt(evt.target.value) <= 60)\n onChange(evt)\n }\n //TODO: SUMAR UN HELPER: que diga: introduce a value betwen 5 and 60\n }\n />\n )\n }\n />\n </Grid>\n <Grid item md={12} xs={12} style={{ padding: \"0 8px\" }}>\n <Controller\n name=\"CrewRotation\"\n control={control}\n rules={{\n validate: (value) => value.length == maxCrewRotationLength\n }}\n render={\n ({ field: { value, onChange } }) => (\n <TextField\n value={value}\n onChange={\n (evt) => {\n if (evt.target.value.length <= maxCrewRotationLength)\n onChange(evt.target.value.toString().toUpperCase())\n }\n }\n error={!!errors.CrewRotation}\n label=\"Crew rotation\"\n variant=\"outlined\"\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n />\n )\n }\n />\n {<Grid container style={{ padding: \"0\", height: 2 }}>\n <Grid item style={{ height: 2, width: `${calculatePercentage()}% `, backgroundColor: `${crewRotation.length == maxCrewRotationLength ? \"#4CAF50\" : \"#F44336\"}`, transition: \" 0.2s ease\", margin: \"0 5px\" }}></Grid>\n </Grid>}\n <Grid container style={{ margin: \"4px 0 0\" }}>\n <Grid item>\n {(crewRotation?.length as number) >= 1 && (crewRotation?.length as number) !== maxCrewRotationLength &&\n <span className={classes.infoLabel} style={{ marginLeft: 5 }}>{`${crewRotation?.length}/${maxCrewRotationLength}`}</span>}\n </Grid>\n </Grid>\n {!!errors.CrewRotation && <span className={classes.errorLabel}>Please put {maxCrewRotationLength} crews</span>}\n {numberOfCrews > 0 && (Number.isInteger((maxCrewRotationLength) / (numberOfCrews))) === false &&\n < Grid container style={{ padding: \"0\", marginLeft: 5 }}>\n <Grid item className={classes.errorLabel}>{`Rotation # not a multiple of Shifts (${maxCrewRotationLength}) / Crews (${numberOfCrews})`}</Grid>\n </Grid>\n }\n </Grid>\n <Grid item md={12} xs={12} style={{ margin: \"12px 0 20px\", padding: \"0 8px\" }} >\n <Controller\n name=\"Comments\"\n control={control}\n render={\n ({ field: { value, onChange } }) => (\n <TextField\n style={{ margin: \"8px 0\" }}\n size=\"medium\"\n maxRows={5}\n label=\"Comments\"\n multiline\n variant=\"outlined\"\n fullWidth\n autoComplete='off'\n value={value}\n onChange={(evt) => {\n if ((evt.target.value.length) <= 200)\n onChange(evt)\n }}\n />\n )\n }\n />\n <Grid container style={{ marginBottom: 18 }}>\n <Grid item>\n {(comments?.length as number) >= 1 && (comments?.length as number) !== 200 &&\n <span className={classes.infoLabel} style={{ marginLeft: 5 }}>{`${comments?.length}/200`}</span>}\n {(comments?.length as number) == 200 &&\n <span className={classes.infoLabel} style={{ marginLeft: 5 }}>Max. 200</span>}\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n < Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={() => onHide(false)}>Cancel</Button>\n </Grid>\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth startIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />}\n disabled={isSubmitLoading} variant=\"contained\" color=\"primary\" type='submit'>Save</Button>\n </Grid>\n </Grid>\n </Modal.Footer>\n </form>\n </Modal>\n </Grid>\n </Grid >\n <Snackbar open={open} autoHideDuration={2500} onClose={handleClose} >\n <Alert severity=\"success\" onClose={handleClose}>\n The shift was created successfully\n </Alert>\n </Snackbar>\n </>\n );\n}","import * as React from 'react';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport { DataGrid } from '@material-ui/data-grid';\nimport { useTableData } from './customHooks/useTableShift';\nimport Typography from '@material-ui/core/Typography';\nimport { useState } from 'react';\nimport { CreateShift } from './Create/CreateShift';\nimport { DeleteShift } from './Delete/DeleteShift';\nimport { EditShift } from './Edit/EditShift';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n '& .MuiDataGrid-row': {\n cursor: \"pointer\",\n },\n '& .MuiDataGrid-columnHeaderTitle, & .MuiTablePagination-caption': {\n fontWeight: \"bold\"\n },\n },\n relative: {\n position: \"relative\"\n },\n textfield: {\n margin: theme.spacing(2),\n },\n btnModal: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n },\n dataTable: {\n padding: theme.spacing(1, 2),\n },\n }),\n);\n\ntype Props = {\n getShiftsCrewsFromAPI: Function,\n isLoading: boolean;\n}\nexport const TableShiftsCrews = ({ isLoading, getShiftsCrewsFromAPI }: Props) => {\n const classes = useStyles();\n const [modalNewActive, setModalNewActive] = useState(false)\n const [modalEditShift, setModalEditShift] = useState(false)\n const [modalDeleteShift, setModalDeleteShift] = useState(false)\n\n const { rows, columns } = useTableData({ setModalEditShift, setModalDeleteShift })\n\n return (\n <Grid container justifyContent=\"center\" alignItems=\"center\" className={classes.root}>\n <Grid item md={12} xs={12} style={{ padding: \"0 15px\" }}>\n <Typography variant=\"h5\" style={{ margin: \"20px 0 20px\", fontWeight: 600 }}>Shifts / Crew</Typography>\n </Grid>\n <Grid container justifyContent=\"center\" alignItems=\"center\" className={classes.root}>\n <Grid item md={12} xs={12} style={{ padding: \"0 15px\" }} className={classes.relative}>\n\n <CreateShift\n show={modalNewActive}\n onHide={() => setModalNewActive(false)}\n getShiftsCrewsFromAPI={getShiftsCrewsFromAPI}\n />\n <EditShift\n show={modalEditShift}\n onHide={(shouldUpdate: boolean) => {\n setModalEditShift(false);\n // setProfileForEdit(null)\n if (shouldUpdate)\n getShiftsCrewsFromAPI().then(() => { });\n }}\n />\n <DeleteShift\n show={modalDeleteShift}\n // profileForDelete={profileForDelete}\n onHide={(shouldUpdate: boolean) => {\n setModalDeleteShift(false);\n // TODO: debería reiniciar el el actiones.shifData con initial value? o un arreglo vacio de initial value o un arreglo vacio simplemente?\n if (shouldUpdate)\n getShiftsCrewsFromAPI().then(() => { });\n }}\n />\n <DataGrid\n className={classes.dataTable}\n density={'compact'}\n autoHeight\n loading={isLoading}\n rows={rows}\n columns={columns}\n pageSize={12}\n disableSelectionOnClick />\n <Grid container justifyContent=\"flex-end\">\n <Grid item md={2} xs={12} className={classes.btnModal}>\n <Button variant=\"contained\" color=\"primary\" onClick={() => setModalNewActive(!modalNewActive)} fullWidth style={{ margin: \"20px 0 20px\" }}>\n NEW\n </Button>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n\n </Grid>\n );\n}","import * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport { TableShiftsCrews } from \"./components/TableShifts\";\nimport { getShiftParameters } from \"./repositories/ShiftsCrewsRepository\";\nimport { LazyLoading } from \"../../../controls/LazyLoading/LazyLoading\";\nimport { useShiftsCrewsContext } from \"./context/ShiftsCrewsContext\";\n\ntype Props = {\n};\n\nexport const ShiftsCrews = (prop: Props) => {\n const [isLoading, setIsLoading] = useState(true);\n const { state:{shifts, pruebas}, actions:{setShiftsCrews, setPruebas} } = useShiftsCrewsContext();\n\n const [prueba, setPrueba] = useState([])\n // console.log(prueba)\n console.log(pruebas)\n\n const getShiftsCrewsFromAPI = async () => {\n setIsLoading(true);\n const resp = await getShiftParameters();\n if (resp.ok) {\n // console.log(resp.data.tables[0].rows)\n console.log(\"1\",resp.data.tables[0].rows)\n console.log(\"2\",shifts)\n setShiftsCrews(resp.data.tables[0].rows);\n // FIXME: el seter no está funcionando\n\n setPrueba(resp.data.tables[0].rows)\n \n setIsLoading(false);\n // debugger;\n } else {\n console.log(\"something happened!\");\n }\n }\n\n setPruebas(\"cambié\")\n\n useEffect((\n ) => {\n getShiftsCrewsFromAPI();\n }, []);\n\n if (shifts) {\n return (\n <Grid container justifyContent=\"center\" alignItems=\"center\">\n <Grid item md={12} xs={12} style={{ margin: 0 }}>\n <Paper elevation={1} style={{ width: \"100%\", padding: \"10px 0 20px\", borderRadius: \"0.75rem\" }}>\n <TableShiftsCrews isLoading={isLoading} getShiftsCrewsFromAPI={getShiftsCrewsFromAPI} />\n </Paper>\n </Grid>\n </Grid>\n );\n }\n return <LazyLoading />;\n};\n","import * as React from 'react';\nimport { ShiftsCrewsProvider } from './context/ShiftsCrewsContext';\nimport { ShiftsCrews } from './ShiftsCrewsPage';\n\ntype Props = {\n};\n\nconst ShiftsCrewsPage = (props: Props) => {\n return (\n <ShiftsCrewsProvider>\n <ShiftsCrews/>\n </ShiftsCrewsProvider>\n );\n};\n\nexport default ShiftsCrewsPage;","import { createSlice } from \"@reduxjs/toolkit\";\nimport { User } from \"../models/User\";\n\nconst UsersInitialState: {\n users: User[];\n} = {\n users: []\n};\n\nexport const UsersReducer = createSlice({\n name: \"__\",\n initialState: UsersInitialState,\n reducers: {\n setUsers(state, { payload }) {\n state.users = payload;\n },\n },\n});\n","import {createContext, default as React, ReactNode, useContext} from \"react\";\nimport {UsersReducer} from \"../reducers/UsersReducer\";\nimport {useComplexState} from \"use-complex-state\";\n\n\nconst UsersContext = createContext({\n state: UsersReducer.getInitialState(),\n actions: UsersReducer.actions\n});\n\nexport const useUsersContext = () => useContext(UsersContext);\n\nexport const UsersProvider = ({children}: { children: ReactNode }) => {\n\n const [state, actions] = useComplexState({\n initialState:UsersReducer.getInitialState(),\n reducers: UsersReducer.caseReducers\n })\n\n return (\n <UsersContext.Provider value={{state,actions}}>\n {children}\n </UsersContext.Provider>\n )\n}","\nimport { MESApiService, spParameter } from \"../../../..\";\nimport { User } from \"../models/User\";\n\nexport const getUsers = async () => {\n const apiService = new MESApiService();\n\n try {\n const resp = await apiService.call(\"[SEC].[GetUsers]\", []);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\nexport const getDataUser = async (UserId: number | null) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"UserId\", value: UserId });\n parameters.push({ name: \"UserName\", value: null });\n\n try {\n const resp = await apiService.call(\"[SEC].[GetUser]\", parameters);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\nexport const getProfiles = async () => {\n const apiService = new MESApiService();\n\n try {\n const resp = await apiService.call(\"[SEC].[GetProfiles]\", []);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\nexport const deleteUser = async (userId: number) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"UserId\", value: userId });\n\n try {\n const resp = await apiService.call(\"[SEC].[DeleteUser]\", parameters);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\n// inserta una nueva fila o actualiza una fila existente\nexport const upsertUser = async (user: User) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"UserId\", value: user.UserId });\n parameters.push({ name: \"UserName\", value: user.UserName });\n parameters.push({ name: \"Name\", value: user.FirstName });\n parameters.push({ name: \"LastName\", value: user.LastName });\n parameters.push({ name: \"IsDomainUser\", value: user.IsDomainUser });\n parameters.push({ name: \"IsActive\", value: user.IsActive });\n\n try {\n const resp = await apiService.call(\"[SEC].[UpsertUser]\", parameters);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n\nexport const setProfilesToUser = async (\n UserId: number,\n profileIds: number[]\n) => {\n const apiService = new MESApiService();\n\n const parameters: spParameter[] = [];\n\n parameters.push({ name: \"UserId\", value: UserId });\n parameters.push({ name: \"ProfileIds\", value: profileIds.join(\" , \") });\n\n try {\n const resp = await apiService.call(\"[SEC].[setProfilesToUser]\", parameters);\n return {\n ok: true,\n data: resp,\n };\n } catch (e: any) {\n return { ok: false, message: e.toString() };\n }\n};\n","import React, { useEffect, useState } from 'react';\nimport { get } from \"lodash-es\";\nimport { createStyles, makeStyles, useTheme, Theme } from '@material-ui/core/styles';\nimport Input from '@material-ui/core/Input';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport Chip from '@material-ui/core/Chip';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport { getProfiles } from '../../repositories/UsersRepository';\nimport { Profile } from '../../models/Profile';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n \"& .MuiSelect-select\": {\n height: \"auto\",\n },\n },\n formControl: {\n margin: theme.spacing(1),\n width: \"50%\",\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n }),\n);\n\nconst getStyles = (profileId: number, profiles: Profile[], theme: Theme) => {\n return {\n fontWeight:\n !!profiles.find(p => p.ProfileId === profileId)\n ? theme.typography.fontWeightRegular\n : theme.typography.fontWeightMedium,\n };\n}\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n};\n\ntype Props = {\n value: number[],\n onChange: Function,\n userIdForDelete: number | null\n}\n\nexport const ProfilesPicker = ({ value, onChange, userIdForDelete }: Props) => {\n const classes = useStyles();\n const theme = useTheme();\n const [isLoading, setIsLoading] = useState(true);\n const [profiles, setProfiles] = useState<Profile[]>([])\n\n useEffect(() => {\n let canceled = false\n setIsLoading(true);\n getProfiles()\n .then(\n (res) => {\n const profilesData = get(res, \"data.tables[0].rows\", null);\n if (profilesData) {\n if (canceled) return;\n setProfiles(profilesData)\n }\n else\n console.log('algo falló')\n })\n .finally(() => {\n if (canceled) return;\n setIsLoading(false);\n })\n return () => { canceled = true }\n }, [])\n\n function getProfileNameById(profileId: number) {\n return profiles.find(p => p.ProfileId === profileId)?.ProfileName.replaceAll(\"Profile\", \"\") || ''\n }\n\n return (\n\n <div className={classes.root}>\n {!isLoading && profiles.length && (\n <FormControl className={classes.formControl} disabled={!!userIdForDelete} >\n <InputLabel id=\"demo-mutiple-chip-label\">Profiles</InputLabel>\n <Select\n\n autoWidth={true}\n labelId=\"demo-mutiple-chip-label\"\n id=\"demo-mutiple-chip\"\n multiple\n value={value}\n onChange={onChange as any}\n input={\n <Input id=\"select-multiple-chip\" />}\n renderValue={(selected) => (\n <div className={classes.chips} >\n {(selected as number[]).map((profileId) => (\n <Chip key={`selected-profile-${profileId}`} label={getProfileNameById(profileId)} className={classes.chip} />\n ))}\n </div>\n )}\n MenuProps={MenuProps}\n >\n {profiles.map((profile) => (\n <MenuItem key={`profile-${profile.ProfileId}`} value={profile.ProfileId} style={getStyles(profile.ProfileId, profiles, theme)}>\n {profile.ProfileName.replaceAll(\"Profile\", \"\")}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n </div>\n );\n}","import { User } from \"./User\";\n\nexport const INITIAL_VALUES: User = {\n UserId: null,\n UserName: \"\",\n FirstName: \"\",\n LastName: \"\",\n IsDomainUser: false,\n IsActive: true,\n LastLogin: null,\n ProfilesId: [],\n Profiles: [],\n}","import * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { User } from '../../models/User';\nimport { Modal } from 'react-bootstrap';\nimport { Controller, SubmitHandler, useForm } from 'react-hook-form';\nimport { CircularProgress } from '@material-ui/core';\nimport { TextField, } from '@material-ui/core';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport { ProfilesPicker } from '../common/ProfilesPicker';\nimport { setProfilesToUser, upsertUser } from '../../repositories/UsersRepository';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport { INITIAL_VALUES } from '../../models/FormInitialValues';\nimport { Alert } from '../../../../../controls/alert';\n\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n checkbox: {\n userSelect: \"none\"\n },\n title: {\n fontSize: 15,\n },\n chip: {\n margin: 2,\n },\n errorLabel: {\n fontSize: 12,\n color: \"#F44336\"\n }\n }),\n);\n\ntype Props = {\n show: boolean;\n onHide: () => void;\n getUsersFromAPI: Function\n}\n\nexport const CreateUser = ({ show, onHide, getUsersFromAPI }: Props) => {\n const [open, setOpen] = useState(false);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n const classes = useStyles();\n\n const {\n register,\n control,\n handleSubmit,\n reset,\n formState: { errors },\n } = useForm<User>({ defaultValues: INITIAL_VALUES });\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n };\n\n const onSubmit: SubmitHandler<User> = async (data:any) => {\n setIsSubmitLoading(true);\n try {\n const res = await upsertUser(data);\n const userId = (res.data.tables[0].rows[0].UserId);\n const res2 = await setProfilesToUser(userId, data.ProfilesId as number[]);\n setIsSubmitLoading(false);\n setOpen(true);\n onHide()\n getUsersFromAPI()\n } catch (e: any) {\n console.log(e)\n }\n };\n\n useEffect(() => {\n if (show) {\n reset()\n }\n }, [show])\n\n return (\n <>\n <Modal\n {...{ show, onHide }}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <form onSubmit={handleSubmit(onSubmit)} >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n USER FORM\n </Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ padding: \"15px 30px\" }}>\n <Modal.Title className={classes.title} id=\"contained-modal-title-vcenter\">\n NEW USER\n </Modal.Title>\n <Grid container spacing={1}>\n <Grid item md={12} xs={12}>\n <TextField\n {...register(\"UserName\", { required: true })}\n label=\"Username\"\n variant=\"outlined\"\n error={!!errors.UserName}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n />\n {errors.UserName?.type === 'required' && <span className={classes.errorLabel}>User name is required</span>}\n </Grid>\n <Grid item md={6} xs={12}>\n <TextField\n {...register(\"FirstName\", { required: true })}\n label=\"First name\"\n variant=\"outlined\"\n error={!!errors.FirstName}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n />\n {errors.FirstName?.type === 'required' && <span className={classes.errorLabel}>First name is required</span>}\n </Grid>\n <Grid item md={6} xs={12} >\n <TextField\n {...register(\"LastName\", { required: true })}\n label=\"Last name\"\n variant=\"outlined\"\n error={!!errors.FirstName}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n />\n {errors.LastName?.type === 'required' && <span className={classes.errorLabel}>Last name is required</span>}\n </Grid>\n <Grid item md={3} xs={6} style={{ paddingTop: 0, paddingBottom: 0, margin: \"10px 0\" }}>\n <Controller\n name=\"IsDomainUser\"\n control={control}\n render={({ field }) => (\n <FormControlLabel className={classes.checkbox}\n control={\n <Checkbox\n checked={field.value}\n onChange={field.onChange}\n name=\"IsDomainUser\"\n color=\"primary\"\n />\n }\n label=\"Domain user\"\n />\n )}\n />\n </Grid>\n <Grid item md={3} xs={6} style={{ paddingTop: 0, paddingBottom: 0, margin: \"10px 0\" }}>\n <Controller\n name=\"IsActive\"\n control={control}\n render={({ field }) => (\n <FormControlLabel className={classes.checkbox}\n control={\n <Checkbox\n checked={field.value}\n onChange={field.onChange}\n name=\"IsActive\"\n color=\"primary\"\n />\n }\n label=\"Active\"\n />\n )}\n />\n </Grid>\n </Grid>\n <Modal.Title className={classes.title} id=\"contained-modal-title-vcenter\">\n PROFILES USER\n </Modal.Title>\n <Grid container>\n <Grid item md={12} xs={12} >\n <Controller\n name=\"ProfilesId\"\n control={control}\n rules={{ required: true }}\n render={({\n field: { onChange, value }\n }) => (\n <ProfilesPicker\n onChange={onChange}\n value={value as number[]}\n userIdForDelete={null}\n />\n )}\n />\n {errors.ProfilesId && <span className={classes.errorLabel} >{\"Select a profile(s)\"}</span>}\n </Grid>\n </Grid>\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n <Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} >\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={onHide}>Cancel</Button>\n </Grid>\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth startIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />}\n disabled={isSubmitLoading} variant=\"contained\" color=\"primary\" type='submit'>Save</Button>\n </Grid>\n </Grid>\n </Modal.Footer>\n </form>\n </Modal>\n <Snackbar open={open} autoHideDuration={2500} onClose={handleClose} >\n <Alert severity=\"success\" onClose={handleClose}>\n The user was created successfully\n </Alert>\n </Snackbar>\n </>\n );\n}","import * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { User } from '../../models/User';\nimport { Modal } from 'react-bootstrap';\nimport { Controller, SubmitHandler, useForm } from 'react-hook-form';\nimport { TextField, } from '@material-ui/core';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { CircularProgress } from '@material-ui/core';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport { ProfilesPicker } from '../common/ProfilesPicker';\nimport { getDataUser, setProfilesToUser, upsertUser } from '../../repositories/UsersRepository';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport { INITIAL_VALUES } from '../../models/FormInitialValues';\nimport { Alert } from '../../../../../controls/alert';\nimport { LazyLoading } from '../../../../../controls/LazyLoading/LazyLoading';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n checkbox: {\n userSelect: \"none\"\n },\n modalBody: {\n },\n title: {\n fontSize: 15,\n },\n chip: {\n margin: 2,\n },\n errorLabel: {\n fontSize: 12,\n color: \"#F44336\"\n }\n }),\n);\n\ntype Props = {\n userIdForEdit: number | null\n show: boolean\n onHide: (shouldUpdate: boolean) => void\n}\n\nexport const EditUser = ({ userIdForEdit, show, onHide }: Props) => {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\n const {\n register,\n control,\n setValue,\n handleSubmit,\n formState: { errors },\n } = useForm<User>({ defaultValues: INITIAL_VALUES });\n\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n };\n\n const onSubmit: SubmitHandler<User> = async (data) => {\n setIsSubmitLoading(true);\n try {\n const res = await upsertUser(data);\n const userId = (res.data.tables[0].rows[0].UserId);\n await setProfilesToUser(userId, data.ProfilesId as number[]);\n onHide(true);\n setOpen(true);\n } catch (e: any) {\n console.log(e)\n }\n };\n\n useEffect(() => {\n if (show) {\n setIsSubmitLoading(false);\n (async () => {\n setIsLoading(true);\n const userResponse = await getDataUser(userIdForEdit);\n const userSelected = userResponse.data.tables[0].rows[0];\n if (userSelected) {\n setValue(\"UserId\", userSelected!.UserId)\n setValue(\"UserName\", userSelected!.UserName)\n setValue(\"FirstName\", userSelected!.FirstName)\n setValue(\"LastName\", userSelected!.LastName)\n setValue(\"IsDomainUser\", userSelected!.IsDomainUser)\n setValue(\"IsActive\", userSelected!.IsActive)\n setValue(\"LastLogin\", userSelected!.LastLogin)\n setValue(\"ProfilesId\", userSelected!.ProfilesId.split(',').map((pId: string) => parseInt(pId)))\n setIsLoading(false);\n }\n\n }\n\n )();\n }\n }\n , [show])\n\n return (\n <>\n <Modal\n {...{ show }}\n onHide={() => onHide(false)}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <form onSubmit={handleSubmit(onSubmit)} >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n USER FORM\n </Modal.Title>\n </Modal.Header>\n <Modal.Body className={classes.modalBody} style={{ padding: \"15px 30px\" }}>\n {\n isLoading && <Grid container justifyContent='center' alignItems='center' style={{ minHeight: '300px' }}>\n <LazyLoading />\n </Grid>\n }\n\n {\n !isLoading && (\n <>\n <Modal.Title className={classes.title} id=\"contained-modal-title-vcenter\">\n USER\n </Modal.Title>\n <Grid container spacing={1}>\n <Grid item md={12} xs={12}>\n <TextField\n {...register(\"UserName\", { required: true })}\n label=\"Username\"\n variant=\"outlined\"\n error={!!errors.UserName}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n />\n {errors.UserName?.type === 'required' && <span className={classes.errorLabel}>User name is required</span>}\n </Grid>\n <Grid item md={6} xs={12}>\n <TextField\n {...register(\"FirstName\", { required: true })}\n label=\"First name\"\n variant=\"outlined\"\n error={!!errors.FirstName}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n />\n {errors.FirstName?.type === 'required' && <span className={classes.errorLabel}>First name is required</span>}\n </Grid>\n <Grid item md={6} xs={12} >\n <TextField\n {...register(\"LastName\", { required: true })}\n label=\"Last name\"\n variant=\"outlined\"\n error={!!errors.FirstName}\n fullWidth\n margin=\"dense\"\n autoComplete='off'\n />\n {errors.LastName?.type === 'required' && <span className={classes.errorLabel}>Last name is required</span>}\n </Grid>\n <Grid item md={3} xs={6} style={{ paddingTop: 0, paddingBottom: 0, margin: \"10px 0\" }}>\n <Controller\n name=\"IsDomainUser\"\n control={control}\n render={({ field }) => (\n <FormControlLabel className={classes.checkbox}\n control={\n <Checkbox\n checked={field.value}\n onChange={field.onChange}\n name=\"IsDomainUser\"\n color=\"primary\"\n />\n }\n label=\"Domain user\"\n />\n )}\n />\n </Grid>\n <Grid item md={3} xs={6} style={{ paddingTop: 0, paddingBottom: 0, margin: \"10px 0\" }}>\n <Controller\n name=\"IsActive\"\n control={control}\n render={({ field }) => (\n <FormControlLabel className={classes.checkbox}\n control={\n <Checkbox\n checked={field.value}\n onChange={field.onChange}\n name=\"IsActive\"\n color=\"primary\"\n />\n }\n label=\"Active\"\n />\n )}\n />\n </Grid>\n </Grid>\n\n <Modal.Title className={classes.title} id=\"contained-modal-title-vcenter\">\n PROFILES USER\n </Modal.Title>\n </>\n\n )\n }\n <Grid container>\n <Grid item md={12} xs={12} >\n <Controller\n name=\"ProfilesId\"\n control={control}\n rules={{ required: true }}\n render={({\n field: { onChange, value }\n }) => (\n <ProfilesPicker\n onChange={onChange}\n value={value as number[]}\n userIdForDelete={null} />\n )}\n />\n {errors.ProfilesId && <span className={classes.errorLabel} >{\"Select a profile(s)\"}</span>}\n </Grid>\n </Grid>\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n <Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={() => onHide(false)}>Cancel</Button>\n </Grid>\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth\n startIcon={isSubmitLoading ? <CircularProgress size=\"1rem\" /> : <></>}\n disabled={isSubmitLoading}\n variant=\"contained\" color=\"primary\" type='submit'>Save</Button>\n </Grid>\n </Grid>\n </Modal.Footer>\n </form>\n </Modal>\n <Snackbar open={open} autoHideDuration={2500} onClose={handleClose} >\n <Alert severity=\"info\" onClose={handleClose}>\n The user was edited successfully\n </Alert>\n </Snackbar>\n </>\n );\n}","import React, { useEffect, useState } from 'react'\nimport { Controller, SubmitHandler, useForm } from 'react-hook-form';\nimport { deleteUser, getDataUser } from '../../repositories/UsersRepository';\nimport { User } from '../../models/User';\nimport Button from '@material-ui/core/Button';\nimport { Modal } from 'react-bootstrap';\nimport { TextField, } from '@material-ui/core';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport Grid from '@material-ui/core/Grid';\nimport { INITIAL_VALUES } from '../../models/FormInitialValues';\nimport { ProfilesPicker } from '../common/ProfilesPicker';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { CircularProgress } from '@material-ui/core';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport { LazyLoading } from '../../../../../controls/LazyLoading/LazyLoading';\nimport { Alert } from '../../../../../controls/alert';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n title: {\n fontSize: 15,\n },\n }),\n);\n\ntype Props = {\n userIdForDelete: number | null\n show: boolean\n onHide: (shouldUpdate: boolean) => void\n}\n\nexport const DeleteUser = ({ userIdForDelete, show, onHide }: Props) => {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n const [deleteAlert, setDeleteAlert] = useState(false)\n\n const {\n register,\n control,\n setValue,\n } = useForm<User>({ defaultValues: INITIAL_VALUES });\n\n const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n setDeleteAlert(false)\n };\n\n useEffect(() => {\n if (show) {\n setIsSubmitLoading(false);\n (async () => {\n setIsLoading(true);\n const userResponse = await getDataUser(userIdForDelete);\n const userSelected = userResponse.data.tables[0].rows[0];\n if (userSelected) {\n setValue(\"UserId\", userSelected!.UserId)\n setValue(\"UserName\", userSelected!.UserName)\n setValue(\"FirstName\", userSelected!.FirstName)\n setValue(\"LastName\", userSelected!.LastName)\n setValue(\"IsDomainUser\", userSelected!.IsDomainUser)\n setValue(\"IsActive\", userSelected!.IsActive)\n setValue(\"LastLogin\", userSelected!.LastLogin)\n setValue(\"ProfilesId\", userSelected!.ProfilesId.split(',').map((pId: string) => parseInt(pId)))\n setIsLoading(false);\n }\n }\n )();\n }\n }\n , [show])\n\n const onSubmit = async (userSelected: number | null) => {\n setIsSubmitLoading(true);\n try {\n await deleteUser(userSelected as number);\n onHide(true)\n setOpen(true);\n setDeleteAlert(false)\n } catch (e: any) {\n console.log(e)\n }\n };\n\n return (\n <>\n <Modal\n {...{ show }}\n onHide={() => onHide(false)}\n size=\"lg\"\n aria-labelledby=\"contained-modal-title-vcenter\"\n centered\n >\n <form >\n <Modal.Header closeButton style={{ padding: \"10px 30px\" }}>\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ margin: \"20px 0 0\" }}>\n USER\n </Modal.Title>\n </Modal.Header>\n <Modal.Body style={{ padding: \"15px 30px\" }} >\n {\n isLoading && <Grid container justifyContent='center' alignItems='center' style={{ minHeight: '300px' }}>\n <LazyLoading />\n </Grid>\n }\n {\n !isLoading && (\n <>\n <Grid container spacing={1}>\n <Grid item md={12} xs={12}>\n <TextField\n {...register(\"UserName\", { required: true })}\n disabled\n variant=\"outlined\"\n fullWidth\n margin=\"dense\"\n label=\"Username\"\n />\n\n </Grid>\n <Grid item md={6} xs={12}>\n <TextField\n {...register(\"FirstName\", { required: true })}\n disabled\n variant=\"outlined\"\n fullWidth\n margin=\"dense\"\n label=\"FirstName\"\n />\n </Grid>\n <Grid item md={6} xs={12} >\n <TextField\n {...register(\"LastName\", { required: true })}\n disabled\n variant=\"outlined\"\n fullWidth\n margin=\"dense\"\n label=\"LastName\"\n />\n </Grid>\n <Grid item md={3} xs={6} style={{ paddingTop: 0, paddingBottom: 0, margin: \"10px 0\" }}>\n <Controller\n name=\"IsDomainUser\"\n control={control}\n render={({ field }) => (\n <FormControlLabel\n disabled\n control={\n <Checkbox\n checked={field.value}\n onChange={field.onChange}\n name=\"IsDomainUser\"\n />\n }\n label=\"Domain user\"\n />\n )}\n />\n </Grid>\n <Grid item md={3} xs={6} style={{ paddingTop: 0, paddingBottom: 0, margin: \"10px 0\" }}>\n <Controller\n name=\"IsActive\"\n control={control}\n render={({ field }) => (\n <FormControlLabel\n disabled\n control={\n <Checkbox\n checked={field.value}\n onChange={field.onChange}\n name=\"IsActive\"\n />\n }\n label=\"Active\"\n />\n )}\n />\n </Grid>\n </Grid>\n\n <Modal.Title className={classes.title} id=\"contained-modal-title-vcenter\">\n PROFILES USER\n </Modal.Title>\n </>\n )\n }\n <Grid container>\n <Grid item md={12} xs={12} >\n <Controller\n name=\"ProfilesId\"\n control={control}\n render={({\n field: { onChange, value }\n }) => (\n <ProfilesPicker\n onChange={onChange}\n value={value as number[]}\n userIdForDelete={userIdForDelete} />\n )}\n />\n </Grid>\n </Grid>\n </Modal.Body>\n <Modal.Footer style={{ padding: \"20px 30px 30px\" }}>\n <Grid container spacing={2} justifyContent=\"flex-end\">\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"default\" onClick={() => onHide(false)}>CANCEL</Button>\n </Grid>\n <Grid item md={3} xs={12} style={{ margin: 0 }}>\n <Button fullWidth variant=\"contained\" color=\"secondary\" onClick={() => setDeleteAlert(true)} >\n DELETE\n </Button>\n </Grid>\n </Grid>\n </Modal.Footer>\n </form>\n </Modal>\n <Snackbar open={open} autoHideDuration={2500} onClose={handleClose} >\n <Alert severity=\"warning\" onClose={handleClose}>\n The user was deleted successfully\n </Alert>\n </Snackbar>\n <Dialog open={deleteAlert} onClose={() => handleClose()} aria-labelledby=\"responsive-dialog-title\">\n <DialogTitle id=\"responsive-dialog-title\">{\"WARNING\"}</DialogTitle>\n <DialogContent>\n <DialogContentText style={{ padding: 0, margin: 0 }}>\n Be careful, once deleted you will not be able to recover this user, are you sure you want to delete it?\n </DialogContentText>\n </DialogContent>\n <DialogActions style={{ padding: \"16px 24px\" }}>\n <Button onClick={() => setDeleteAlert(false)} autoFocus color=\"default\">\n CANCEL\n </Button>\n <Button startIcon={isSubmitLoading && <CircularProgress size=\"1rem\" />} autoFocus color=\"secondary\"\n onClick={() => onSubmit(userIdForDelete)}>Delete</Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n","import React from 'react'\nimport { useUsersContext } from '../../../context/UsersContext';\nimport { GridColDef } from '@material-ui/data-grid';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\n\n\ntype Props = {\n setModalEditDataUser: Function,\n setModalDeleteUser: Function,\n setUserIdForEdit: Function,\n setUserIdForDelete: Function\n}\n\nexport const useTableData = ({ setUserIdForEdit, setModalEditDataUser, setUserIdForDelete, setModalDeleteUser }: Props) => {\n const { state } = useUsersContext();\n\n const columns: GridColDef[] = [\n {\n field: 'UserId',\n headerName: \" \",\n sortable: true,\n width: 0,\n },\n {\n field: 'UserName',\n headerName: 'UserName',\n sortable: false,\n flex: 1,\n },\n {\n field: 'FirstName',\n headerName: 'First name',\n sortable: false,\n flex: 1,\n },\n {\n field: 'LastName',\n headerName: 'Last name',\n sortable: false,\n flex: 1,\n },\n {\n field: 'Profiles',\n headerName: 'Profiles',\n sortable: false,\n flex: 1,\n },\n {\n field: \"Actions\",\n renderCell: (params) => {\n return (\n <Grid container justifyContent='center' alignItems='center' spacing={1} style={{ padding: \"0\" }}>\n <Grid item md={6} xs={6} style={{ padding: \"0\", marginLeft: -25 }}>\n <Button\n fullWidth\n onClick={\n () => {\n (async () => {\n setUserIdForEdit(params.row.UserId);\n setModalEditDataUser(true);\n })();\n }\n }>\n <EditIcon style={{width: 16, height: 16}} color=\"primary\" />\n </Button>\n </Grid>\n <Grid item md={6} xs={6} style={{ padding: \"0\" }}>\n <Button\n fullWidth\n onClick={\n () => {\n (async () => {\n setUserIdForDelete(params.row.UserId);\n setModalDeleteUser(true);\n })();\n }\n }>\n <DeleteIcon style={{width: 16, height: 16}} color=\"secondary\" />\n </Button>\n </Grid>\n </Grid>\n )\n },\n headerName: ' ',\n sortable: false,\n },\n ];\n\n const rows = state.users.map(\n ({ UserId, UserName, LastName, FirstName, Profiles }) => ({ UserId, UserName, LastName, FirstName, Profiles: (Profiles as string).replaceAll(\"Profile\", \"\"), id: UserId })\n );\n return { rows, columns };\n}\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { DataGrid } from '@material-ui/data-grid';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles';\nimport { CreateUser } from '../Create/CreateUser';\nimport { EditUser } from '../EditUser/EditUser';\nimport { DeleteUser } from '../Delete/DeleteUser';\nimport Typography from '@material-ui/core/Typography';\nimport { useTableData } from './customHooks/useTableData';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n '& .MuiDataGrid-row': {\n cursor: \"pointer\",\n },\n '& .MuiDataGrid-columnHeaderTitle, & .MuiTablePagination-caption': {\n fontWeight: \"bold\",\n fontSize: \"12px\",\n },\n '& .MuiDataGrid-columnHeaderTitleContainer': {\n padding: \"0\"\n },\n // '& .MuiButtonBase-root':{\n // padding: \"8px 0\",\n // },\n '& .MuiDataGrid-cell--textLeft': {\n fontSize:\"12px\"\n }\n },\n relative: {\n position: \"relative\"\n },\n textfield: {\n margin: theme.spacing(2),\n },\n btnModal: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n },\n dataTable: {\n padding: theme.spacing(1, 2),\n },\n }),\n);\n\ntype Props = {\n getUsersFromAPI: Function;\n isLoading: boolean;\n}\nexport const TableUsers = ({ getUsersFromAPI, isLoading }: Props) => {\n\n const [modalCreateActive, setModalCreateActive] = useState(false)\n const [modalEditDataUser, setModalEditDataUser] = useState(false)\n const [modalDeleteUser, setModalDeleteUser] = useState(false)\n const classes = useStyles();\n\n const [userIdForEdit, setUserIdForEdit] = useState<number | null>(null)\n const [userIdForDelete, setUserIdForDelete] = useState<number | null>(null)\n\n\n const { rows, columns } = useTableData({ setUserIdForEdit, setModalEditDataUser, setUserIdForDelete, setModalDeleteUser })\n\n return (\n <Grid container justifyContent=\"center\">\n <Grid item md={12} xs={12} style={{ padding: \"0 15px\" }}>\n <Typography variant=\"h5\" style={{ margin: \"20px 0 20px\", fontWeight: 600 }}>User Management</Typography>\n </Grid>\n <Grid container justifyContent=\"center\" alignItems=\"center\" className={classes.root}>\n <Grid item md={12} xs={12} style={{ padding: \"0 15px\" }} className={classes.relative}>\n\n <CreateUser\n show={modalCreateActive}\n onHide={() => setModalCreateActive(false)}\n getUsersFromAPI={getUsersFromAPI}\n />\n <EditUser\n show={modalEditDataUser}\n userIdForEdit={userIdForEdit}\n onHide={(shouldUpdate: boolean) => {\n setModalEditDataUser(false);\n setUserIdForEdit(null)\n if (shouldUpdate)\n getUsersFromAPI().then(() => { });\n }}\n />\n <DeleteUser\n show={modalDeleteUser}\n userIdForDelete={userIdForDelete}\n onHide={(shouldUpdate: boolean) => {\n setModalDeleteUser(false);\n setUserIdForDelete(null)\n if (shouldUpdate)\n getUsersFromAPI().then(() => { });\n }}\n />\n <div style={{ width: '100%', height: \"60vh\" }} >\n <DataGrid\n className={classes.dataTable}\n density={'compact'}\n loading={isLoading}\n rows={rows}\n columns={columns}\n pageSize={25}\n disableColumnMenu\n disableColumnFilter\n disableColumnSelector\n disableSelectionOnClick\n />\n </div>\n <Grid container justifyContent=\"flex-end\">\n <Grid item md={2} xs={12} className={classes.btnModal}>\n <Button variant=\"contained\" color=\"primary\" onClick={() => setModalCreateActive(!modalCreateActive)} fullWidth style={{ margin: \"20px 0 20px\" }}>\n New user\n </Button>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n );\n}","import * as React from \"react\";\nimport { Outlet } from 'react-router-dom';\nimport { useEffect, useState } from \"react\";\nimport { getUsers } from \"./repositories/UsersRepository\";\nimport { useUsersContext } from \"./context/UsersContext\";\nimport Paper from '@material-ui/core/Paper';\nimport { TableUsers } from \"./components/UsersDataTable/TableUsers\";\nimport Grid from '@material-ui/core/Grid';\nimport { LazyLoading } from \"../../../controls/LazyLoading/LazyLoading\";\n\ntype Props = {\n};\n\nexport const Users = (prop: Props) => {\n const { state, actions } = useUsersContext();\n const [isLoading, setIsLoading] = useState(true);\n\n const getUsersFromAPI = async () => {\n setIsLoading(true);\n const resp = await getUsers();\n if (resp.ok) {\n actions.setUsers(resp.data.tables[0].rows);\n setIsLoading(false);\n } else {\n console.log(\"something happened!\");\n }\n\n }\n\n useEffect((\n ) => {\n getUsersFromAPI();\n }, []);\n\n\n if (state.users) {\n return (\n <Grid container justifyContent=\"center\" alignItems=\"center\">\n <Grid item md={12} xs={12} style={{ margin: 0 }}>\n <Paper elevation={1} style={{ width: \"100%\", padding: \"10px 0 20px\", borderRadius: \"0.75rem\" }}>\n <TableUsers isLoading={isLoading} getUsersFromAPI={getUsersFromAPI} />\n </Paper>\n <Outlet />\n </Grid>\n </Grid>\n );\n }\n return <LazyLoading />;\n};\n","import * as React from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport {UsersProvider} from \"./context/UsersContext\";\nimport {Users} from \"./UsersPage\";\nimport { PruebaUserId } from './components/Prueba/Prueba';\n\ntype Props = {\n};\n\nconst UsersPage = (props: Props) => {\n return (\n <UsersProvider>\n <Users/>\n </UsersProvider>\n );\n};\n\nexport default UsersPage;\n\n","const CurrencyFormatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n});\nconst NumberFormatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n});\nconst IntegerFormatter = new Intl.NumberFormat('en-US', {});\nconst DateTimeFormatter = new Intl.DateTimeFormat('en-US-u-hc-h23', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false,\n // timeZone: 'America/Los_Angeles'\n});\nconst DateFormatter = new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n // timeZone: 'America/Los_Angeles'\n});\nconst TimeFormatter = new Intl.DateTimeFormat('en-US-u-hc-h23', {\n hour: '2-digit',\n minute: 'numeric',\n second: 'numeric',\n hour12: false,\n // timeZone: 'America/Los_Angeles'\n});\nexport {\n CurrencyFormatter,\n NumberFormatter,\n IntegerFormatter,\n DateTimeFormatter,\n DateFormatter,\n TimeFormatter\n};\n","import React from \"react\";\n\nconst getShiftStyle = (shift:string) => {\n if (shift === 'D') {\n return {'color': '#52a8b7'}\n } else if (shift === 'N') {\n return {'color': '#A5A5A5'}\n } else {\n return {};\n }\n}\n\nconst getCrewStyle = (crew:string) =>{\n if(crew === 'A'){\n return { 'color' : '#0070C0' }\n }else if(crew === 'B'){\n return { 'color' : '#FFD24A'}\n }else if(crew === 'C'){\n return { 'color' : '#FD8359'}\n }else if(crew === 'D'){\n return { 'color' : '#00B050'}\n }\n else{\n return {};\n }\n}\nconst GetShiftColor = (props:any) =>{\n return (<React.Fragment><i className=\"fas fa-square mr-2\" style={getShiftStyle(props.value)} ></i></React.Fragment>)\n};\nconst GetCrewColor = (props:any) =>{\n return (<React.Fragment><i className=\"fas fa-square mr-2\" style={getCrewStyle(props.value)} ></i></React.Fragment>)\n};\n\nexport { getShiftStyle, getCrewStyle, GetShiftColor, GetCrewColor };","export class Configuration {\n\n API_PROCEDURE_URL:string = document.getElementsByTagName('base')[0].href + \"backend\";\n API_AUTH_URL:string = document.getElementsByTagName('base')[0].href + \"authentication\";\n TOKEN:string;\n\n constructor() {\n this.TOKEN = JSON.parse(\n <string>localStorage.getItem('userMESData')\n )?.token || '';\n }\n}","import {FetchError} from \"../utils\";\nimport moment from \"moment\"\nimport {Configuration} from \"../configuration\";\n\ntype PostData = { [key: string]: any };\n\ntype isError = {\n ok:boolean,\n status?: number,\n statusText?: string\n}\n\ntype FormattedParameter = {\n name?: string;\n value?: any;\n}\n\ntype ExportColumn = {\n columnName?: string;\n caption?: string;\n order?: number;\n}\n\ntype ExportSheet = {\n order?: number;\n resultSetIndex?: number;\n sheetName?: string;\n showAllColumns?: boolean;\n columns?: ExportColumn[];\n}\n\ntype ExportStructure = {\n showAllSheets?: boolean;\n sheets?: ExportSheet[];\n}\n\nconst base = document.getElementsByTagName('base')[0].getAttribute('href') || '/'\n\nexport type spParameter = { name:string,value: string|number|boolean|null|Date };\n\nexport class MESApiService {\n\n private config:Configuration;\n // @ts-ignore\n public hasErrors: boolean;\n // @ts-ignore\n public error: any;\n private TOKEN:string;\n\n constructor() { \n this.config = new Configuration(); \n this.hasErrors = false;\n this.error = undefined; \n this.TOKEN = this.config.TOKEN;\n }\n prepareCall(){\n this.hasErrors = false;\n this.error = undefined;\n }\n\n async changePassword(userId:string, password:string){\n this.prepareCall();\n let isError: isError = {ok:true};\n const data:PostData = {};\n data.userId = userId;\n data.password = password; \n return fetch(this.config.API_AUTH_URL + '/ChangePassword',{\n method: \"POST\",\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json\",\n 'Authorization': 'Bearer ' + this.TOKEN,\n },\n body: JSON.stringify(data)\n })\n .catch((errorMsg) =>{\n throw new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n })\n .then((response) => {\n isError = {ok:response.ok ,status: response.status, statusText: response.statusText};\n return response.json();\n }) \n .then((object) => { \n if(!isError.ok) throw new FetchError(\n <string>isError.statusText,\n <number>isError.status,\n object\n );\n return object;\n })\n .catch(err => {\n this.hasErrors = true;\n this.error = err;\n return {\n hasErrors : true,\n error: err\n }\n });\n };\n async authenticate(userName:string,password:string){\n this.prepareCall();\n let isError: isError = {ok:true};\n const data:PostData = {};\n data.userName = userName;\n data.password = password; \n return fetch(this.config.API_AUTH_URL + '/Authenticate',{\n method: \"POST\",\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data)\n })\n .catch((errorMsg) =>{\n throw new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n })\n .then((response) => {\n isError = {ok:response.ok ,status: response.status, statusText: response.statusText};\n return response.json();\n }) \n .then((object) => { \n if(!isError.ok) throw new FetchError(<string>isError.statusText,<number>isError.status,object);\n return object;\n })\n .catch(err => {\n this.hasErrors = true;\n this.error = err;\n return {\n hasErrors : true,\n error: err\n }\n });\n }\n\n async loginWithAzureAD(accessToken:string){\n this.prepareCall();\n let isError: isError = {ok:true};\n const data:PostData = {};\n data.AccessToken = accessToken;\n return fetch(this.config.API_AUTH_URL + '/authenticate-with-azure-ad',{\n method: \"POST\",\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data)\n })\n .catch((errorMsg) =>{\n throw new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n })\n .then((response) => {\n isError = {ok:response.ok ,status: response.status, statusText: response.statusText};\n return response.json();\n })\n .then((object) => {\n if(!isError.ok) throw new FetchError(<string>isError.statusText,<number>isError.status,object);\n return object;\n })\n .catch(err => {\n this.hasErrors = true;\n this.error = err;\n return {\n hasErrors : true,\n error: err\n }\n });\n }\n\n\n async call(procedure:string, parameters:any[], database ='') {\n const data: PostData = {}\n const formattedParameters:FormattedParameter[] = [];\n parameters.forEach((element:any) => {\n const formattedParameter:FormattedParameter = {};\n formattedParameter.name = element.name;\n if(element.value === null || element.value === undefined)\n formattedParameter.value = null;\n else\n formattedParameter.value = element.value;\n formattedParameters.push(formattedParameter);\n });\n data.method = procedure;\n data.dataBaseName = database;\n data.parameters = formattedParameters;\n Date.prototype.toJSON = function(){ return moment(this).format('YYYY-MM-DDTHH:mm:ss'); } // eslint-disable-line\n let isError:isError = {ok:true};\n return fetch(this.config.API_PROCEDURE_URL + '/Execute',{\n method: \"POST\",\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json\",\n 'Authorization': 'Bearer ' + this.TOKEN,\n },\n body: JSON.stringify(data)\n })\n .catch((errorMsg) =>{\n throw new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n })\n .then((response) => {\n if(response.status === 401){\n window.location.href=`${base}logout?message=Session%20expired&redirectTo=${window.location.href}`\n }\n isError = {ok:response.ok ,status: response.status, statusText: response.statusText};\n return response.json();\n }) \n .then((object) => { \n if(!isError.ok) throw new FetchError(<string>isError.statusText,<number>isError.status,object);\n return object;\n })\n .catch(err => { \n this.hasErrors = true;\n this.error = err;\n return;\n });\n }\n\n async callJSON(procedure:string, parameters:any[], database ='') {\n const data: PostData = {}\n const formattedParameters:FormattedParameter[] = [];\n parameters.forEach((element:any) => {\n const formattedParameter:FormattedParameter = {};\n formattedParameter.name = element.name;\n if(element.value === null || element.value === undefined)\n formattedParameter.value = null;\n else\n formattedParameter.value = element.value;\n formattedParameters.push(formattedParameter);\n });\n data.method = procedure;\n data.dataBaseName = database;\n data.parameters = formattedParameters;\n Date.prototype.toJSON = function(){ return moment(this).format('YYYY-MM-DDTHH:mm:ss'); } // eslint-disable-line\n let isError:isError = {ok:true};\n return fetch(this.config.API_PROCEDURE_URL + '/ExecuteJSON',{\n method: \"POST\",\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json\",\n 'Authorization': 'Bearer ' + this.TOKEN,\n },\n body: JSON.stringify(data)\n })\n .catch((errorMsg) =>{\n throw new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n })\n .then((response) => {\n if(response.status === 401){\n window.location.href=`${base}logout?message=Session%20expired&redirectTo=${window.location.href}`\n }\n isError = {ok:response.ok ,status: response.status, statusText: response.statusText};\n return response.json();\n }) \n .then((object) => { \n if(!isError.ok) throw new FetchError(<string>isError.statusText,<number>isError.status,object);\n return object;\n })\n .catch(err => { \n this.hasErrors = true;\n this.error = err;\n return;\n });\n }\n async import(procedure:string,parameters:any[],files:any[], uniqueFile:any, database = ''){\n const formData = new FormData();\n const formattedParameters:FormattedParameter[] = [];\n parameters.forEach(element => {\n const formattedParameter:FormattedParameter = {};\n formattedParameter.name = element.name;\n if(element.value === null || element.value === undefined)\n formattedParameter.value = null;\n else\n formattedParameter.value = element.value;\n formattedParameters.push(formattedParameter);\n });\n Date.prototype.toJSON = function(){ return moment(this).format('YYYY-MM-DDTHH:mm:ss'); } // eslint-disable-line\n let isError:isError = {ok:true};\n files.forEach((element )=> {\n formData.append('formFiles', element); \n });\n \n formData.append('method', procedure);\n formData.append('dataBaseName', database);\n formData.append('processFirstFile', uniqueFile);\n formData.append('parameters', JSON.stringify(formattedParameters));\n return fetch(this.config.API_PROCEDURE_URL + '/Import',{\n method: \"POST\",\n mode: \"cors\",\n headers: { \n 'Authorization': 'Bearer ' + this.TOKEN,\n },\n body: formData\n })\n .catch((errorMsg) =>{\n throw new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n })\n .then((response) => {\n if(response.status === 401){\n window.location.href=`${base}logout?message=Session%20expired&redirectTo=${window.location.href}`\n }\n isError = {ok:response.ok ,status: response.status, statusText: response.statusText};\n return response.json();\n }) \n .then((object) => { \n if(!isError.ok) throw new FetchError(<string>isError.statusText,<number>isError.status,object);\n return object;\n })\n .catch(err => { \n this.hasErrors = true;\n this.error = err;\n return;\n }); \n }\n async export(procedure:string, parameters: spParameter[], fileName:string, database:string = ''){\n const data:{[key:string]:any} = {} ;\n const formattedParameters: FormattedParameter[] = [];\n parameters.forEach(element => {\n const formattedParameter:FormattedParameter = {};\n formattedParameter.name = element.name;\n if(element.value === null || element.value === undefined)\n formattedParameter.value = null;\n else\n formattedParameter.value = element.value;\n formattedParameters.push(formattedParameter);\n });\n data.method = procedure;\n data.dataBaseName = database;\n data.parameters = formattedParameters;\n data.fileName = fileName || 'Default.xlsx';\n Date.prototype.toJSON = function(){ return moment(this).format('YYYY-MM-DDTHH:mm:ss'); } // eslint-disable-line\n let isError:isError = {ok:true};\n return fetch(this.config.API_PROCEDURE_URL + '/Export',{\n method: \"POST\",\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json\",\n 'Authorization': 'Bearer ' + this.TOKEN,\n },\n body: JSON.stringify(data)\n })\n .catch((errorMsg) =>{\n throw new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n })\n .then((response) => {\n if(response.status === 401){\n window.location.href=`${base}logout?message=Session%20expired&redirectTo=${window.location.href}`\n }\n isError = {ok:response.ok ,status: response.status, statusText: response.statusText};\n if(!isError.ok)\n return response.json();\n else\n return response.blob();\n }) \n .then((blob) => { \n if(!isError.ok) throw new FetchError(<string>isError.statusText, <number>isError.status,blob);\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = fileName || 'Default.xlsx';\n document.body.appendChild(a); // we need to append the element to the dom -> otherwise it will not work in firefox\n a.click(); \n a.remove(); //afterwards we remove the element again \n return 'ok';\n })\n .catch(err => { \n this.hasErrors = true;\n this.error = err;\n return;\n });\n }\n async exportExcel(procedure:string, parameters:spParameter[], fileName:string, excelStructure:ExportStructure, database:string = ''){\n const data:{[key:string]:any} = {} ;\n /******* Parameters *******/\n const formattedParameters: FormattedParameter[] = [];\n parameters.forEach(element => {\n const formattedParameter:FormattedParameter = {};\n formattedParameter.name = element.name;\n if(element.value === null || element.value === undefined)\n formattedParameter.value = null;\n else\n formattedParameter.value = element.value;\n formattedParameters.push(formattedParameter);\n });\n /******* Excel Structure *******/\n if(excelStructure.showAllSheets !== undefined && excelStructure.showAllSheets !== null )\n data.showAllSheets = excelStructure.showAllSheets;\n if(excelStructure.sheets !== undefined && excelStructure.sheets !== null )\n data.sheets = excelStructure.sheets;\n /******* Other Parameter *******/\n data.method = procedure;\n data.dataBaseName = database;\n data.parameters = formattedParameters;\n data.fileName = fileName || 'Default.xlsx';\n Date.prototype.toJSON = function(){ return moment(this).format('YYYY-MM-DDTHH:mm:ss'); } // eslint-disable-line\n let isError:isError = {ok:true};\n return fetch(this.config.API_PROCEDURE_URL + '/ExportExcel',{\n method: \"POST\",\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json\",\n 'Authorization': 'Bearer ' + this.TOKEN,\n },\n body: JSON.stringify(data)\n })\n .catch((errorMsg) =>{\n throw new FetchError(errorMsg.message, 404, \"ERR_CONNECTION_REFUSED\");\n })\n .then((response) => {\n if(response.status === 401){\n window.location.href=`${base}logout?message=Session%20expired&redirectTo=${window.location.href}`\n }\n isError = {ok:response.ok ,status: response.status, statusText: response.statusText};\n if(!isError.ok)\n return response.json();\n else\n return response.blob();\n }) \n .then((blob) => { \n if(!isError.ok) throw new FetchError(<string>isError.statusText, <number>isError.status,blob);\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = fileName || 'Default.xlsx';\n document.body.appendChild(a); // we need to append the element to the dom -> otherwise it will not work in firefox\n a.click(); \n a.remove(); //afterwards we remove the element again \n return 'ok';\n })\n .catch(err => { \n this.hasErrors = true;\n this.error = err;\n return;\n });\n }\n}","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport { ResponsiveBar } from '@nivo/bar'\n\nconst BarChartControl = (props:any) => {\n const { height, minWidth, data, keys, indexBy, legendX, legendY, colors, ...other } = props; \n return(\n <React.Fragment>\n <div className=\"container-fluid my-2 p-2\" style={{\"height\":height, \"minWidth\":minWidth}}>\n <ResponsiveBar\n data={data}\n keys={keys}\n indexBy={indexBy}\n margin={{ top: 50, right: 130, bottom: 50, left: 60 }}\n padding={0.3}\n valueScale={{ type: 'linear' }}\n indexScale={{ type: 'band', round: true }}\n colors={ colors === undefined ? { scheme: 'nivo' } : colors}\n defs={[\n {\n id: 'dots',\n type: 'patternDots',\n background: 'inherit',\n color: '#38bcb2',\n size: 4,\n padding: 1,\n stagger: true\n },\n {\n id: 'lines',\n type: 'patternLines',\n background: 'inherit',\n color: '#eed312',\n rotation: -45,\n lineWidth: 6,\n spacing: 10\n }\n ]}\n fill={[\n {\n match: {\n id: 'fries'\n },\n id: 'dots'\n },\n {\n match: {\n id: 'sandwich'\n },\n id: 'lines'\n }\n ]}\n borderColor={{ from: 'color', modifiers: [ [ 'darker', 1.6 ] ] }}\n axisTop={null}\n axisRight={null} \n axisBottom={{\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n legend: (legendX === undefined ? '' : legendX),\n legendPosition: 'middle',\n legendOffset: 32\n }}\n axisLeft={{\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n legend: (legendY === undefined ? '' : legendY),\n legendPosition: 'middle',\n legendOffset: -40\n }}\n labelSkipWidth={12}\n labelSkipHeight={12}\n labelTextColor={{ from: 'color', modifiers: [ [ 'darker', 1.6 ] ] }}\n // legends={[\n // {\n // dataFrom: 'keys',\n // anchor: 'bottom-right',\n // direction: 'column',\n // justify: false,\n // translateX: 120,\n // translateY: 0,\n // itemsSpacing: 2,\n // itemWidth: 100,\n // itemHeight: 20,\n // itemDirection: 'left-to-right',\n // itemOpacity: 0.85,\n // symbolSize: 20,\n // effects: [\n // {\n // on: 'hover',\n // style: {\n // itemOpacity: 1\n // }\n // }\n // ]\n // }\n // ]}\n animate={true}\n motionStiffness={90}\n motionDamping={15}\n \n {...other}\n > \n </ResponsiveBar>\n </div>\n </React.Fragment>\n );\n}\nBarChartControl.propTypes = {\n data: PropTypes.array,\n keys: PropTypes.array,\n};\n\nexport {BarChartControl};","import React, { useEffect, useRef, useState } from \"react\";\nimport PropTypes from 'prop-types'\n\nimport { Typography } from '@material-ui/core';\nimport { alpha, makeStyles, withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport TreeView from '@material-ui/lab/TreeView';\nimport SvgIcon from '@material-ui/core/SvgIcon';\nimport TreeItem from '@material-ui/lab/TreeItem';\nimport Collapse from '@material-ui/core/Collapse';\nimport Code from '@material-ui/icons/Code';\nimport Folder from '@material-ui/icons/Folder';\nimport { useSpring, animated } from 'react-spring'; // web.cjs is required for IE 11 support\n/**********************MATERIAL UI STYLES********************** */\n\n/*************************************************************** */\nfunction MinusSquare(props:any) {\n return (\n <SvgIcon fontSize=\"inherit\" style={{ width: 14, height: 14 }} {...props}>\n {/* tslint:disable-next-line: max-line-length */}\n <path d=\"M22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0zM17.873 11.023h-11.826q-.375 0-.669.281t-.294.682v0q0 .401.294 .682t.669.281h11.826q.375 0 .669-.281t.294-.682v0q0-.401-.294-.682t-.669-.281z\" />\n </SvgIcon>\n );\n }\n \n function PlusSquare(props:any) {\n return (\n <SvgIcon fontSize=\"inherit\" style={{ width: 14, height: 14 }} {...props}>\n {/* tslint:disable-next-line: max-line-length */}\n <path d=\"M22.047 22.074v0 0-20.147 0h-20.12v0 20.147 0h20.12zM22.047 24h-20.12q-.803 0-1.365-.562t-.562-1.365v-20.147q0-.776.562-1.351t1.365-.575h20.147q.776 0 1.351.575t.575 1.351v20.147q0 .803-.575 1.365t-1.378.562v0zM17.873 12.977h-4.923v4.896q0 .401-.281.682t-.682.281v0q-.375 0-.669-.281t-.294-.682v-4.896h-4.923q-.401 0-.682-.294t-.281-.669v0q0-.401.281-.682t.682-.281h4.923v-4.896q0-.401.294-.682t.669-.281v0q.401 0 .682.281t.281.682v4.896h4.923q.401 0 .682.281t.281.682v0q0 .375-.281.669t-.682.294z\" />\n </SvgIcon>\n );\n }\nfunction TransitionComponent(props:any) {\n const style = useSpring({\n from: { opacity: 0, transform: 'translate3d(20px,0,0)' },\n to: { opacity: props.in ? 1 : 0, transform: `translate3d(${props.in ? 0 : 20}px,0,0)` },\n });\n \n return (\n <animated.div style={style}>\n <Collapse {...props} />\n </animated.div>\n );\n} \nTransitionComponent.propTypes = {\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n};\n\nconst StyledTreeItem = withStyles((theme) => ({\n iconContainer: {\n '& .close': {\n opacity: 0.3,\n },\n },\n group: {\n marginLeft: 7,\n paddingLeft: 18,\n borderLeft: `1px dashed ${alpha(theme.palette.text.primary, 0.4)}`,\n },\n }))(\n (props) => (\n /* @ts-ignore */\n <TreeItem {...props} TransitionComponent={TransitionComponent} />\n ));\nconst useTreviewStyle = makeStyles((theme) => ({\n root: {\n \"min-height\": 264,\n flexGrow: 1,\n maxWidth: 400,\n },\n treLabelIcon: {\n marginRight: theme.spacing(1),\n },\n treeLabelRoot: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0.5, 0),\n },\n treeLabelText: {\n fontWeight: 'inherit',\n flexGrow: 1,\n },\n treeLabelInactive: {\n textDecoration: 'line-through',\n textDecorationColor: 'red'\n }\n}));\nconst ModalTreeFilterControl = (props:any) => {\n const { onClose, value: valueProp, open, title, data,selectBranch,selectActive,selectInternal, ...other } = props;\n const [value, setValue] = useState(valueProp); \n const [ expanded, setExpanded] = useState([]);\n const treeRef = useRef<any>(null);\n \n useEffect(() => {\n if (!open) {\n setValue(valueProp);\n \n }else{\n if(valueProp !== undefined)\n expandNode(valueProp);\n }\n }, [valueProp, open]);// eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n if (open) {\n let findNode = getNodeData(data, parseInt(value));\n if(findNode === null) findNode = {};\n const activeFilter = (selectActive && findNode.isActive) || selectActive !== true;\n const internalFilter = (selectInternal && findNode.isInternal) || selectInternal !== true;\n if(findNode.isLeaf) \n {\n if(activeFilter && internalFilter)\n onClose(value,findNode.name, findNode);\n }\n }\n }, [value]);// eslint-disable-line react-hooks/exhaustive-deps\n \n const handleEntering = () => {\n if (treeRef.current != null) {\n treeRef.current.focus();\n }\n };\n const handleCancel = () => {\n onClose();\n };\n const handleOk = () => { \n let findNode = getNodeData(data, parseInt(value));\n if(findNode === null) findNode = {};\n var activeFilter = (selectActive && findNode.isActive) || selectActive !== true;\n var internalFilter = (selectInternal && findNode.isInternal) || selectInternal !== true;\n var branchFilter = (selectBranch && !findNode.isLeaf);\n if(findNode.isLeaf) \n {\n if(activeFilter && internalFilter)\n onClose(value,findNode.name, findNode)\n }\n else{\n if(branchFilter)\n onClose(value,findNode.name, findNode)\n }\n };\n const expandNode = (node: any, same:boolean = false) => {\n const expandedNode = getNodeParent(data,node,[]);\n \n expandedNode.push(node.toString());\n setExpanded(expandedNode);\n };\n const handleChange = (event: Event, node:any) => {\n setValue(node);\n }; \n const handleToogle = (event: Event, nodes:any) => {\n setExpanded(nodes);\n }\n const getNodeData = (node:any,id:number):any => {\n if(id=== undefined)\n return null;\n if(node.id === id)\n return node;\n if(Array.isArray(node.children) ){\n var i;\n var result = null;\n for(i=0; result == null && i < node.children.length; i++){\n result = getNodeData(node.children[i], id);\n }\n return result; \n }\n return null;\n }; \n const classes:any = useTreviewStyle();\n \n const renderTree = (nodes:any) => (\n /* @ts-ignore */\n <StyledTreeItem key={nodes.id} nodeId={nodes.id.toString()}\n label={\n <div className={classes.treeLabelRoot}>\n {nodes.isCode === true &&\n <Code className={classes.treeLabelIcon} htmlColor={\"#1ABC9C\"} /> \n }\n {nodes.isCode === false &&\n <Folder className={classes.treeLabelIcon} htmlColor={'#F1C40F'} />\n }\n <Typography variant=\"body2\" className={[classes.treeLabelText, (nodes.isActive ? '' : classes.treeLabelInactive)].join(' ')}> \n <span>\n {nodes.isCode &&\n <i className=\"fas fa-square mr-2\" style={{\"color\": (nodes.delayCategoryColor||'#FFFFFF' )}}></i>\n }\n {nodes.name}\n </span>\n </Typography> \n </div>\n } \n className = {\"delay-item-node\"}\n id = { nodes.id } \n data-isbranch ={!nodes.isCode}\n >\n {Array.isArray(nodes.children) ? nodes.children.map((node:any) => renderTree(node)) : null}\n </StyledTreeItem> \n );\n const getNodeParent = (node:any, id:number, chain:any): any=> {\n if(id === undefined)\n return [];\n if(node.id.toString() === id.toString())\n return chain;\n if(Array.isArray(node.children) ){\n var i;\n var result = null;\n chain.push(node.id.toString());\n for(i=0; result == null && i < node.children.length; i++){\n result = getNodeParent(node.children[i], id,chain);\n }\n return result; \n }\n return null;\n };\n return ( \n <Dialog\n onClose={(event,reason)=> null}\n aria-label={title}\n maxWidth=\"xs\"\n TransitionProps={{onEntering:handleEntering}}\n aria-labelledby=\"confirmation-dialog-title\"\n open={open}\n {...other}\n > \n <DialogTitle id=\"confirmation-dialog-title\">{title}</DialogTitle>\n <DialogContent dividers>\n <TreeView\n className={classes.root}\n defaultCollapseIcon={<MinusSquare />}\n defaultExpandIcon={<PlusSquare />} \n ref ={treeRef}\n selected = { value === undefined ? \"\" : value.toString()}\n expanded = { expanded }\n /* @ts-ignore */\n onNodeSelect = {handleChange} onNodeToggle = {handleToogle}\n >\n {data.id !== undefined &&\n renderTree(data)\n }\n </TreeView>\n </DialogContent>\n <DialogActions>\n <Button autoFocus onClick={handleCancel} color=\"primary\">Cancel</Button>\n <Button onClick={handleOk} color=\"primary\">Ok</Button>\n </DialogActions>\n </Dialog>\n );\n};\nModalTreeFilterControl.propTypes = {\n onClose: PropTypes.func.isRequired,\n open: PropTypes.bool.isRequired, \n title: PropTypes.string.isRequired,\n data: PropTypes.object.isRequired\n};\n\n\n\n\n\n\nexport {ModalTreeFilterControl};","import { TextField, Typography } from \"@material-ui/core\";\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport { makeStyles } from '@material-ui/core/styles';\nimport moment from \"moment\";\nimport React, { Component } from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport { ModalTreeFilterControl } from \"./dialogFilter\";\nimport Grid from '@material-ui/core/Grid';\n\ntype TreePickerControlProps = {\n onSelect: (value: string, description: string, findNode: any) => void,\n [key: string]: any\n};\nexport const TreePickerControl = (props: TreePickerControlProps) => {\n const useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n backgroundColor: theme.palette.background.paper,\n \"& .MuiInputBase-input\": {\n color: \"black\",\n cursor: \"pointer\",\n paddingRight:45\n }\n },\n paper: {\n width: '100%',\n maxWidth: 600,\n maxHeight: 600,\n },\n }));\n const classes = useStyles();\n const { onSelect, value, styleLabel, dataSource, ...other }: TreePickerControlProps = props;\n const [open, setOpen] = React.useState(false);\n const handleClickListItem = () => {\n setOpen(true);\n };\n\n const handleClose = (newValue: any, newDescription: any, findNode: any) => {\n setOpen(false);\n if (newValue) {\n if (onSelect !== undefined)\n onSelect(newValue, newDescription, findNode);\n }\n };\n\n return (\n <Grid container className={classes.root}>\n <Grid item md={12} xs={12} style={{ position: \"relative\" }}>\n <TextField\n label=\"Asset\"\n variant=\"outlined\"\n onClick={handleClickListItem}\n value={props.description}\n margin=\"dense\"\n autoComplete='off'\n fullWidth\n disabled\n />\n <>\n <i className=\"fa fa-search\" onClick={handleClickListItem} style={{ position: \"absolute\", right: 17, top: 20, cursor: \"pointer\" }}></i>\n </>\n </Grid>\n\n <ModalTreeFilterControl\n classes={{\n paper: classes.paper,\n }}\n id=\"modal-treeview-filter\"\n title={props.title}\n keepMounted\n open={open}\n onClose={handleClose}\n value={value}\n data={dataSource}\n {...other as any}\n >\n </ModalTreeFilterControl>\n </Grid>\n )\n}\n\ninterface DateControlProps {\n value?: any,\n onChange?: any,\n title?: string,\n styleGeneral?: any,\n styleLabel?: any\n}\n\nexport function DateControl({ value, onChange, title, styleGeneral, styleLabel }: DateControlProps) {\n return (\n <>\n <div className=\"input-group row\" style={(styleGeneral || {})}>\n <div className=\"input-group-prepend col-sm-3\">\n <span className=\"input-group-text\" style={(styleLabel || {})}>{title}</span>\n </div>\n <div className=\"col-sm-9\">\n <DatePicker className=\"form-control mes-filter-datepicker\"\n selected={value}\n onChange={date => onChange(date)}\n />\n </div>\n </div>\n </>\n )\n\n}\nexport const DateTimeControl = (props: any) => {\n const { value, title, styleLabel, readOnly, styleTextTimeBox, onChange, name } = props;\n const formatTime = () => {\n const date = moment(value);\n if (!date.isValid())\n return ''\n return date.format('HH:mm:ss');\n };\n const [formattedTimeValue, setFormattedTimeValue] = React.useState(formatTime());\n const changeDate = (e: any) => {\n setFormattedTimeValue(e.target.value);\n };\n const blurDate = (e: any) => {\n const date = moment(e.target.value, 'hh:mm:ss');\n if (date.isValid() && moment(value).isValid()) {\n const newDate = (moment(value)).set('hour', date.hour()).set('minute', date.minute()).set('second', date.second());\n onChange(newDate.toDate(), name || '');\n } else {\n setFormattedTimeValue(formatTime());\n }\n };\n React.useEffect(() => {\n setFormattedTimeValue(formatTime());\n }, [value]); // eslint-disable-line react-hooks/exhaustive-deps\n return (\n <>\n <div className=\"input-group\">\n <div className=\"input-group-prepend\">\n <span className=\"input-group-text\" style={(styleLabel || {})}>{title}</span>\n </div>\n <DatePicker className=\"form-control mes-filter-datepicker mes-not-rounded\"\n selected={value}\n onChange={date => onChange(date, name || '')}\n readOnly={readOnly || false}\n />\n <input type=\"text\"\n className=\"form-control input-group-append mes-filter-datetimepicker\"\n placeholder={\"time\"}\n value={formattedTimeValue || ''}\n readOnly={readOnly || false}\n style={styleTextTimeBox || {}}\n onBlur={e => blurDate(e)}\n onChange={e => changeDate(e)}\n >\n </input>\n </div>\n </>\n )\n}\nexport const SimpleTimeControl = (props: any) => {\n const { value, title, styleLabel, readOnly, styleTextBox, onChange, name } = props;\n\n const formatDate = () => {\n const date = moment(value);\n if (!date.isValid())\n return 'INVALID TIME'\n return date.format('HH:mm:ss');\n };\n const [formattedValue, setFormattedValue] = React.useState(formatDate());\n React.useEffect(() => {\n setFormattedValue(formatDate());\n }, [value]); // eslint-disable-line react-hooks/exhaustive-deps\n\n\n const blurDate = (e: any) => {\n const date = moment(e.target.value, 'hh:mm:ss');\n if (date.isValid() && moment(value).isValid()) {\n const newDate = (moment(value)).set('hour', date.hour()).set('minute', date.minute()).set('second', date.second());\n onChange(newDate.toDate(), name || '');\n } else {\n setFormattedValue(formatDate());\n }\n }\n const changeDate = (e: any) => {\n setFormattedValue(e.target.value);\n }\n return (\n <div className=\"input-group\">\n <div className=\"input-group-prepend\">\n <span className={\"input-group-text\"} style={(styleLabel || {})}>{title}</span>\n </div>\n <input type=\"text\" className=\"form-control\"\n placeholder={title} readOnly={readOnly || false} value={formattedValue || ''}\n onBlur={e => blurDate(e)}\n onChange={e => changeDate(e)}\n style={styleTextBox || {}}\n >\n </input>\n </div>\n );\n}\n\n\ninterface SimpleInputSearchControlProps {\n title?: string,\n onChange?: any,\n styleLabel?: any,\n isNumeric?: boolean,\n readOnly?: boolean,\n value?: any,\n name?: any,\n styleTextBox?: any,\n onKeyDown?: any,\n lengthCharacters?: any,\n}\nexport function SimpleInputSearchControl({ title, styleLabel, isNumeric, readOnly, value, onChange, name, styleTextBox, onKeyDown, lengthCharacters }: SimpleInputSearchControlProps) {\n return (\n <>\n <div className=\"input-group\">\n <div className=\"input-group-prepend\">\n <span className=\"input-group-text\" style={(styleLabel || {})}>{title}</span>\n </div>\n <input type=\"text\" className={\"form-control \" + (isNumeric ? 'mes-numeric' : '')}\n placeholder={title} readOnly={readOnly} value={value || ''}\n onChange={e => onChange(e.target.value, name || '')}\n style={(styleTextBox || {})}\n onKeyDown={e => onKeyDown(e)}\n maxLength={lengthCharacters || ''}></input>\n </div>\n </>\n );\n}\nexport class TimeControl extends Component<any>{\n render() {\n return (\n <>\n <div className=\"input-group\">\n <div className=\"input-group-prepend\">\n <span className={\"input-group-text\"} style={(this.props.styleLabel || {})}>{this.props.title}</span>\n </div>\n <DatePicker className=\"form-control mes-filter-datepicker\"\n selected={this.props.value}\n onChange={date => this.props.onChange(date, this.props.name || '')}\n showTimeSelect={this.props.showSelector || false}\n showTimeSelectOnly\n timeIntervals={15}\n timeCaption=\"Time\"\n dateFormat=\"HH:mm:ss\"\n timeFormat=\"HH:mm\"\n readOnly={this.props.readOnly || false}\n />\n </div>\n </>\n )\n }\n}\nexport class SimpleTextControl extends Component<any>{\n render() {\n return (\n <div className=\"input-group\">\n <div className=\"input-group-prepend\">\n <span className=\"input-group-text\" style={(this.props.styleLabel || {})}>{this.props.title}</span>\n </div>\n <input type=\"text\" className={\"form-control \" + (this.props.isNumeric ? 'mes-numeric' : '')}\n placeholder={this.props.title} readOnly={this.props.readOnly} value={this.props.value || ''}\n onChange={e => this.props.onChange(e.target.value, this.props.name || '')}\n style={(this.props.styleTextBox || {})}\n maxLength={this.props.lengthCharacters || ''}></input>\n </div>\n );\n }\n}\nexport class SimplePasswordControl extends Component<any>{\n render() {\n return (\n <div className=\"input-group\">\n <div className=\"input-group-prepend\">\n <span className=\"input-group-text\" style={(this.props.styleLabel || {})}>{this.props.title}</span>\n </div>\n <input className={\"form-control \"} type=\"password\"\n placeholder={this.props.title} readOnly={this.props.readOnly} value={this.props.value || ''}\n onChange={e => this.props.onChange(e.target.value, this.props.name || '')}\n style={(this.props.styleTextBox || {})}\n maxLength={this.props.lengthCharacters || ''}\n >\n </input>\n </div>\n );\n }\n}\nexport const formatNumber = (value: number) => {\n const number = Number(value);\n if (Number.isNaN(number))\n return '';\n return number.toString();\n}\n\nexport type NumericTextControlProps = {\n value: any;\n title: any;\n styleLabel: any;\n readOnly: any;\n styleTextBox: any;\n onChange: any;\n name: any;\n typeNumber: any;\n}\n\nexport const NumericTextControl = (props: NumericTextControlProps) => {\n const { value, title, styleLabel, readOnly, styleTextBox, onChange, name, typeNumber } = props; //typeNumber 1 = real, 2 = integer, 3 = natural \n const [formattedValue, setFormattedValue] = React.useState(formatNumber(value));\n const changedValue = (e: any) => {\n setFormattedValue(e.target.value);\n }\n const valueBlured = (inputValue: string) => {\n const number = Number(inputValue);\n if (Number.isNaN(number))\n setFormattedValue(formatNumber(value));\n else if (typeNumber === 2 && !Number.isInteger(number))\n setFormattedValue(formatNumber(value));\n else if (typeNumber === 3 && (!Number.isInteger(number) || number < 0))\n setFormattedValue(formatNumber(value));\n else\n onChange(number, name || '');\n }\n React.useEffect(() => {\n setFormattedValue(formatNumber(value));\n }, [value]); // eslint-disable-line react-hooks/exhaustive-deps\n return (\n <div className=\"input-group\">\n <div className=\"input-group-prepend\" >\n <span className=\"input-group-text\" style={(styleLabel || {})}>{title}</span>\n </div>\n <input type=\"text\" className={\"form-control mes-numeric\"}\n placeholder={title} readOnly={readOnly} value={formattedValue || ''}\n onChange={e => changedValue(e)}\n onBlur={e => valueBlured(e.target.value)}\n style={(styleTextBox || {})}\n >\n </input>\n </div>\n );\n}\nexport class HorizontalTextControl extends Component<any> {\n render() {\n return (\n <>\n <div className=\"input-group\" >\n <div className=\"input-group-prepend\">\n <span className=\"input-group-text\" style={(this.props.styleLabel || {})} >{this.props.title}</span>\n </div>\n <input\n type=\"text\" className={\"form-control \" + (this.props.isNumeric ? 'mes-numeric' : '')}\n placeholder={this.props.title} readOnly={this.props.readOnly} value={this.props.value || ''}\n style={(this.props.styleText || {})}\n onChange={e => this.props.onChange(e.target.value, this.props.name || '')}>\n </input>\n <div className=\"input-group-append\">\n <span className=\"input-group-text\" style={(this.props.styleSubLabel || {})}>{this.props.subTitle || ''}</span>\n </div>\n </div>\n </>\n );\n }\n}\nexport class SimpleTextAreaControl extends Component<any>{\n render() {\n return (\n <div className=\"input-group\" >\n <div className=\"input-group-prepend\">\n <span className=\"input-group-text\" style={(this.props.styleLabel || {})}>{this.props.title}</span>\n </div>\n <textarea className=\"form-control\" placeholder={this.props.title} value={this.props.value || ''}\n onChange={e => this.props.onChange(e.target.value, this.props.name || '')} style={(this.props.styleText || {})} disabled={!!(this.props.disabled)}>\n </textarea>\n </div>\n );\n }\n}\n\ninterface SimpleSelectorControlProps {\n title?: string,\n dataSource?: any,\n selectedValue?: any,\n onChange?: any,\n showColor?: boolean,\n styleLabel?: any,\n styleList?: any,\n hasChoose?: boolean,\n}\nexport function SimpleSelectorControl({ title, dataSource, selectedValue, onChange, showColor, styleLabel, styleList, hasChoose }: SimpleSelectorControlProps) {\n const options = dataSource.map((item: any, index: number) =>\n <MenuItem value={item.id.toString()} key={index}>\n {showColor === true &&\n <i className=\"fas fa-square mr-2\" style={{ \"color\": (item.color || '#FFFFFF') }}></i>\n }\n <span>{item.description}</span>\n </MenuItem>\n );\n return (\n <>\n <div className=\"input-group\">\n <div className=\"input-group-prepend\">\n <span className=\"input-group-text\" style={(styleLabel || {})}>{title}</span>\n </div>\n <Select className={\"custom-select mes-custom-select\"} onChange={e => onChange(e.target.value === 'DEFAULT' ? '' : e.target.value)} value={selectedValue || \"DEFAULT\"} style={(styleList || {})}>\n {(hasChoose && <MenuItem value={\"DEFAULT\"}>{\"Choose \" + title}</MenuItem>)}\n {options}\n </Select>\n </div>\n </>\n )\n}\nexport const MultipleSelectorControl = (props: any) => {\n const options = (props.dataSource || []).map((item: any, index: number) =>\n <option\n value={item[props.valueField]}\n key={index} className=\"p-1\"\n >\n {item[props.textField]}\n </option>\n );\n return (\n <div className=\"card\">\n <div className=\"card-header\">\n {props.title || ''}\n </div>\n <div className=\"card-body p-0\">\n <select\n className=\"form-select col-md-12 p-0 mes-no-border\"\n multiple aria-label={props.title || ''} value={props.value || []}\n onChange={(e) => { let value = Array.from(e.target.selectedOptions, option => option.value); props.onChange(value); }}\n onDoubleClick={props.onDoubleClick || undefined}\n >\n {options}\n </select>\n </div>\n </div>\n )\n}\nexport const CheckBoxControl = (props: any) => {\n return (\n <>\n <div className=\"input-group\">\n <div className=\"input-group-prepend\">\n <div className=\"input-group-text\">\n <input type=\"checkbox\" checked={props.value} onChange={e => { props.onCheck(e.target.checked); }} disabled={props.disabled} ></input>\n </div>\n </div>\n <input type=\"text\" className=\"form-control\" aria-label={props.title} value={props.title} readOnly style={(props.styleTextBox || [])}></input>\n </div>\n </>\n );\n};\nexport const UploadFileControl = (props: any) => {\n const FileChanged = (e: any) => {\n\n props.onChange(e.target.files[0]);\n }\n return (\n <>\n <div className=\"input-group mes-upload-control\">\n <div className=\"input-group-prepend\">\n <div className=\"input-group-text p-0 file-box\">\n <div className=\"file-detail\" style={{}}>\n {props.selectedFile &&\n <>\n <h5>File Details:</h5>\n <table>\n <tbody>\n <tr><td>File Name: {props.selectedFile.name}</td></tr>\n <tr><td>File Type: {props.selectedFile.type}</td></tr>\n <tr><td>Last Modified: {props.selectedFile.lastModifiedDate.toDateString()}</td></tr>\n </tbody>\n </table>\n </>\n }\n {props.selectedFile === undefined &&\n <div className=\"pt-4\">\n <Typography>Select or drag a file</Typography>\n </div>\n }\n </div>\n <input id=\"myFile\" type=\"file\" className=\"formcontrol\" style={{}} onChange={FileChanged} accept={props.acceptFile || '*.*'} />\n </div>\n </div>\n {/* <input type=\"file\" className=\"formcontro\" /> */}\n <div className=\"input-group-append\">\n <button className=\"btn btn-primary mes-button-primary\" disabled={props.selectedFile === undefined} onClick={props.onUpload} >\n <i className=\"fas fa-upload pr-2\"></i><span>Upload</span>\n </button>\n </div>\n </div>\n </>\n );\n};","import React, {Component} from \"react\";\n\nfunction GenericRow(props:any) {\n const cells = props.row.map((cell:any,index:number) =>\n <td key={index}>{cell}</td>\n );\n return (\n <tr>\n { cells }\n </tr>\n )\n}\nclass GenericTable extends Component<any>\n{ \n render (){ \n const theads = (\n this.props.columns.map((column:any, index:number) =>\n <th scope=\"col\" key={index}>\n {column}\n </th>\n )\n ); \n const tbody = (\n this.props.data.map((row:any, index:number) =>\n <GenericRow row={row} key={index} ></GenericRow>\n )\n );\n \n return ( \n <React.Fragment>\n <div className=\"container-fluid my-3\">\n <div className=\"table-responsive-md\">\n <table className=\"table table-hover table-striped table-sm\">\n <thead>\n <tr> \n {theads}\n </tr>\n </thead>\n <tbody>\n {tbody}\n </tbody>\n </table>\n </div>\n </div>\n </React.Fragment>\n )\n }\n}\nexport {GenericTable};","import React from \"react\";\nimport PropTypes from 'prop-types'\nimport { GridOverlay, DataGrid } from '@material-ui/data-grid';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStylesForOverlay = makeStyles((theme) => ({\n root: {\n flexDirection: 'column',\n '& .ant-empty-img-1': {\n fill: theme.palette.type === 'light' ? '#aeb8c2' : '#262626',\n },\n '& .ant-empty-img-2': {\n fill: theme.palette.type === 'light' ? '#f5f5f7' : '#595959',\n },\n '& .ant-empty-img-3': {\n fill: theme.palette.type === 'light' ? '#dce0e6' : '#434343',\n },\n '& .ant-empty-img-4': {\n fill: theme.palette.type === 'light' ? '#fff' : '#1c1c1c',\n },\n '& .ant-empty-img-5': {\n fillOpacity: theme.palette.type === 'light' ? '0.8' : '0.08',\n fill: theme.palette.type === 'light' ? '#f5f5f5' : '#fff',\n },\n },\n label: {\n marginTop: theme.spacing(1),\n },\n}));\n\nfunction CustomNoRowsOverlay() {\n const classes = useStylesForOverlay();\n\n return (\n <GridOverlay className={classes.root}>\n <svg\n width=\"120\"\n height=\"100\"\n viewBox=\"0 0 184 152\"\n aria-hidden\n focusable=\"false\"\n >\n <g fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(24 31.67)\">\n <ellipse\n className=\"ant-empty-img-5\"\n cx=\"67.797\"\n cy=\"106.89\"\n rx=\"67.797\"\n ry=\"12.668\"\n />\n <path\n className=\"ant-empty-img-1\"\n d=\"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n />\n <path\n className=\"ant-empty-img-2\"\n d=\"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n />\n <path\n className=\"ant-empty-img-3\"\n d=\"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n />\n </g>\n <path\n className=\"ant-empty-img-3\"\n d=\"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n />\n <g className=\"ant-empty-img-4\" transform=\"translate(149.65 15.383)\">\n <ellipse cx=\"20.654\" cy=\"3.167\" rx=\"2.849\" ry=\"2.815\" />\n <path d=\"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\" />\n </g>\n </g>\n </svg>\n <div className={classes.label}>No Rows</div>\n </GridOverlay>\n );\n}\n\nconst DataGridControl = (props:any) => {\n const { columns, rows, ...other } = props; \n return (\n <React.Fragment>\n <div className=\"container-fluid my-3\"> \n <DataGrid \n components={{\n NoRowsOverlay: CustomNoRowsOverlay,\n }} \n rows={rows} \n columns={columns||[]} \n autoHeight={true} \n rowHeight={25} \n {...(other as any)}>\n </DataGrid>\n </div>\n </React.Fragment>\n )\n};\n\nDataGridControl.propTypes = {\n columns: PropTypes.array,\n rows: PropTypes.array,\n};\n\n\n\n\n\n\nexport {DataGridControl};","import React, {Component, MouseEventHandler} from \"react\";\nimport {makeStyles} from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport {Alert} from 'react-bootstrap'\n\ntype GenericPanelProps = {\n title: string;\n description: string;\n showPromptSuccess?: boolean;\n showPromptError?: boolean;\n onDismissSuccess?: MouseEventHandler;\n onDismissError?: MouseEventHandler;\n successMessage?: string;\n error?: any;\n children: any;\n}\n\n/********************MATERIAL UI STYLES********************************** */\n\n/************************************************************************* */\n\nconst GenericPanel = ({\n title,\n description,\n showPromptSuccess = false,\n showPromptError = false,\n onDismissSuccess = ()=>null,\n onDismissError = ()=>null,\n successMessage,\n error,\n children,\n }:GenericPanelProps) => (\n <div className=\"content-wrapper\">\n <div className=\"row\">\n <div className=\"col-lg-12\">\n <Alert show={showPromptError} variant=\"danger\" dismissible={true} onClose={onDismissError}>\n <strong>There was an error</strong>\n <p>{error === undefined ? 'There was an error' :\n (error.internalError.message === undefined ? error.internalError : error.internalError.message)}\n </p>\n </Alert>\n <Alert show={showPromptSuccess} variant=\"success\"\n onClose={onDismissSuccess}>\n <p>{successMessage || 'Operation was success'}</p>\n </Alert>\n </div>\n </div>\n <h3>{title}\n <small>{description}</small>\n </h3>\n {children}\n </div>\n);\n\ntype MasterDetailPanelProps = {\n title: string;\n onSave: MouseEventHandler;\n onCancel: MouseEventHandler;\n onDelete: MouseEventHandler;\n saveStatus: boolean;\n deleteStatus: boolean;\n showSave: boolean;\n showDelete: boolean;\n}\n\nclass MasterDetailPanel extends Component<MasterDetailPanelProps> {\n useStyles() {\n return makeStyles((theme) => ({\n root: {\n '& > *': {\n margin: theme.spacing(1),\n },\n marginBottom: theme.spacing(1)\n },\n }));\n }\n\n render() {\n return (\n <div className=\"pb-2\">\n <Card variant=\"outlined\">\n <CardContent>\n <Typography gutterBottom variant=\"h5\" component=\"h2\">\n {this.props.title || ''}\n </Typography>\n {this.props.children}\n </CardContent>\n <CardActions className=\"px-3 \">\n <button className=\"btn btn-danger\" onClick={this.props.onCancel}\n disabled={!this.props.saveStatus}>Cancel\n </button>\n {(this.props.showSave === undefined || this.props.showSave) &&\n <button className=\"btn btn-primary mes-button-primary\" onClick={this.props.onSave}\n disabled={!this.props.saveStatus}>Save</button>\n }\n {this.props.showDelete &&\n <button className=\"btn btn-primary mes-button-primary\" onClick={this.props.onDelete}\n disabled={!this.props.deleteStatus}>Delete</button>\n }\n </CardActions>\n </Card>\n </div>\n )\n }\n}\n\ntype ExtraButton = {\n name:string;\n onClick:MouseEventHandler;\n}\n\ntype FilterPanelProps = {\n onClickExport?:Function;\n onClickReset:Function;\n OnClickGo:Function;\n showButtons:boolean;\n showExport:boolean;\n extraButtons?:ExtraButton[]\n}\n\nclass FilterPanel extends Component<FilterPanelProps> {\n public onClickGo:MouseEventHandler;\n public onClickReset:MouseEventHandler;\n public onClickExport:MouseEventHandler;\n\n constructor(props: FilterPanelProps) {\n super(props);\n this.state = {};\n this.onClickGo = this.GetFilterValues.bind(this);\n this.onClickReset = this.ResetFilterValues.bind(this);\n this.onClickExport = this.ExportData.bind(this);\n }\n\n ExportData() {\n if (this.props.onClickExport !== undefined)\n this.props.onClickExport();\n }\n\n ResetFilterValues() {\n if (this.props.onClickReset !== undefined)\n this.props.onClickReset();\n };\n\n GetFilterValues() {\n if (this.props.OnClickGo !== undefined)\n this.props.OnClickGo();\n };\n\n render() {\n const buttonList = this.props.extraButtons === undefined ? [] : this.props.extraButtons;\n const extraButtons = buttonList.map((button, index) =>\n <button type=\"button\" className=\"btn btn-primary btn-sm mr-2\" onClick={button.onClick}\n key={index}>{button.name}</button>\n );\n return (\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-12\">\n <div className=\"row\">\n {this.props.children}\n\n <div className=\"me-auto\">\n {!!this.props.showButtons &&\n <React.Fragment>\n <div className=\"pt-2\">\n <button type=\"button\" className=\"btn btn-primary btn mr-2\"\n onClick={this.onClickGo}>Go\n </button>\n <button type=\"button\" className=\"btn btn-danger btn-sm mr-2\"\n onClick={this.onClickReset}>Reset\n </button>\n </div>\n </React.Fragment>\n }\n {extraButtons}\n {!!this.props.showExport &&\n <div className=\"pt-2\">\n <button type=\"button\" className=\"btn btn-success\" onClick={this.onClickExport}>\n <i className=\"fa fa-download\"></i>Excel\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n\n {/* <div className=\"col-md-1\"> \n \n <div className=\"btn-group ml-auto mr-0 my-auto\" role=\"group\" aria-label=\"Basic example\"> \n \n </div> \n </div> \n } */}\n </div>\n </div>\n )\n };\n}\n\nclass LongFilterPanel extends Component<FilterPanelProps> {\n public onClickGo:MouseEventHandler;\n public onClickReset:MouseEventHandler;\n public onClickExport:MouseEventHandler;\n\n constructor(props:any) {\n super(props);\n this.state = {\n };\n this.onClickGo = this.GetFilterValues.bind(this);\n this.onClickReset = this.ResetFilterValues.bind(this);\n this.onClickExport = this.ExportData.bind(this);\n }\n ExportData() {\n if (this.props.onClickExport !== undefined)\n this.props.onClickExport();\n }\n ResetFilterValues() {\n if (this.props.onClickReset !== undefined)\n this.props.onClickReset();\n };\n GetFilterValues() {\n if (this.props.OnClickGo !== undefined)\n this.props.OnClickGo();\n };\n\n render() {\n const buttonList = this.props.extraButtons === undefined ? [] : this.props.extraButtons;\n const extraButtons = buttonList.map((button, index) =>\n <button type=\"button\" className=\"btn btn-primary btn-sm mr-2\" onClick={button.onClick} key={index}>{button.name}</button>\n );\n return (\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-12\">\n\n {this.props.children}\n\n <div className=\"me-auto\" >\n {!!this.props.showButtons &&\n\n <div className=\"container-fluid\">\n <div className=\"col-md-10\">\n <div className=\"pt-2\">\n <button type=\"button\" className=\"btn btn-primary btn mr-2\" onClick={this.onClickGo}>Go</button>\n <button type=\"button\" className=\"btn btn-danger btn-sm mr-2\" onClick={this.onClickReset}>Reset</button>\n {!!this.props.showExport &&\n\n <button type=\"button\" className=\"btn btn-success\" onClick={this.onClickExport}>\n <i className=\"fa fa-download\"></i>Excel\n </button>\n\n }\n {extraButtons}\n </div>\n\n\n </div>\n </div>\n\n }\n\n </div>\n </div>\n\n </div>\n </div>\n )\n };\n}\n\nexport {GenericPanel, FilterPanel, MasterDetailPanel, LongFilterPanel};","import { useState } from 'react';\n\n\n\nexport function useToken() {\n const getToken = () => {\n const tokenString = localStorage.getItem('userMESData');\n const userToken = JSON.parse(<string>tokenString);\n return userToken?.token\n };\n\n const [token, setToken] = useState(getToken());\n\n // TODO: userToken typings\n const saveToken = (userToken:any) => {\n localStorage.setItem('userMESData', JSON.stringify(userToken));\n setToken(userToken.token);\n };\n\n const clearUserData = () =>{\n localStorage.removeItem('userMESData');\n setToken(undefined);\n }\n const getUserName = ()=>{ \n const sessionData = localStorage.getItem('userMESData');\n const userData = JSON.parse(<string>sessionData);\n return ((userData||{}).lastName||'') + ', ' +((userData||{}).firstName||'') ;\n }\n const getFirstName = () => {\n const sessionData = localStorage.getItem('userMESData');\n const userData = JSON.parse(<string>sessionData);\n return ((userData || {}).firstName || '');\n }\n const getLastName = () => {\n const sessionData = localStorage.getItem('userMESData');\n const userData = JSON.parse(<string>sessionData);\n return ((userData || {}).lastName || '');\n }\n const getUserId = () => {\n const sessionData = localStorage.getItem('userMESData');\n const userData = JSON.parse(<string>sessionData);\n return ((userData || {}).id|| (-1));\n }\n const hasPermission = (permissionId:number)=>{\n const sessionData = localStorage.getItem('userMESData');\n if(sessionData === undefined)\n return false;\n const userData = JSON.parse(<string>sessionData);\n const permissions = userData.permissions||[];\n return permissions.indexOf(permissionId) > -1; //case sensitve\n };\n\n return {\n getUserName: getUserName,\n setToken: saveToken,\n clearToken: clearUserData,\n getFirstName: getFirstName,\n getLastName: getLastName,\n getUserId: getUserId,\n hasPermission: hasPermission,\n token\n }\n}","import React from 'react';\nimport {Alert} from 'react-bootstrap';\nimport {SimplePasswordControl} from '../controls';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport Button from '@material-ui/core/Button';\n\nimport {MESApiService} from \"../services\";\nexport function ChangePassword(props:any){\n const { onClose, userId, open} = props;\n //states\n const [password, setPassword] = React.useState('');\n const [confirmPassword, setConfirmPassword] = React.useState('');\n const [canChange, setCanChange] = React.useState(false);\n const [showError, setShowError] = React.useState(false);\n const [error, setError] = React.useState<any>(undefined);\n //functions\n const handleCancel = () => {\n onClose(false);\n };\n const handleOk = () => { \n if(userId >= 0){\n let apiService = new MESApiService();\n apiService.changePassword(userId,password)\n .then(response =>{\n if(apiService.hasErrors){\n setShowError(true);\n setError(apiService.error)\n }\n else{\n onClose(true);\n }\n });\n }else{\n onClose(false);\n }\n };\n //efects\n React.useEffect(() => {\n setCanChange((password === confirmPassword) && password.length > 0);\n }, [password, confirmPassword]);\n React.useEffect(() => {\n setPassword(''); \n setConfirmPassword('')\n }, [userId, open]);\n return(\n <Dialog\n onClose={(event,reason)=> null}\n aria-label={\"Change Password\"}\n maxWidth=\"xs\"\n aria-labelledby=\"confirmation-dialog-title\"\n open={open}\n >\n <DialogTitle id=\"confirmation-dialog-title\">{\"Change Password\"}</DialogTitle>\n <DialogContent dividers>\n <Alert show={showError} variant=\"danger\" dismissible={true} onClose={() => { setShowError(false); setError(undefined)}}>\n <strong>There was an error</strong>\n <p> {error === undefined ? 'There was an error': \n (error.internalError.message === undefined ? error.internalError : error.internalError.message)}\n </p>\n </Alert> \n <div className=\"row\">\n <div className=\"col-md-12 px-3 py-1\">\n <SimplePasswordControl \n title=\"Password\"\n styleLabel = {{'minWidth': '150px',}} \n onChange = {setPassword}\n name = 'password'\n value = {password}\n > \n </SimplePasswordControl>\n </div> \n </div>\n <div className=\"row\">\n <div className=\"col-md-12 px-3 py-1\">\n <SimplePasswordControl \n title=\"Confirm Password\"\n styleLabel = {{'minWidth': '150px',}} \n onChange = {setConfirmPassword}\n name = 'confirmPassword'\n value = {confirmPassword}\n > \n </SimplePasswordControl>\n </div> \n </div>\n </DialogContent>\n <DialogActions>\n <Button autoFocus onClick={handleCancel} color=\"primary\">Cancel</Button>\n <Button onClick={handleOk} color=\"primary\" disabled={!canChange}>Change Password</Button>\n </DialogActions>\n </Dialog>\n );\n}\n","import React from \"react\";\nimport { GenericPanel } from \"../controls\"\nimport { SimpleTextControl, CheckBoxControl } from '../controls';\nimport {useToken} from './useToken'\nimport { Typography } from '@material-ui/core';\nimport {ChangePassword} from './changePassword';\nimport {MESApiService} from \"../services/ApiService\"\n\n\nexport function Account() {\n const { getUserName, getUserId } = useToken();\n const [showError, setShowError] = React.useState<boolean>(false);\n const [error, setError] = React.useState<any>(undefined);\n const [userLastName, setUserLastName] = React.useState<string>(\"\");\n const [userFirstName, setUserFirstName] = React.useState<string>(\"\");\n const [userId] = React.useState(getUserId);\n const [userParam] = React.useState(getUserName);\n const [userName, setUserName] = React.useState<string>('');\n const [userIsDomain, setUserIsDomain] = React.useState<boolean>(false);\n const [userIsActive, setUserIsActive] = React.useState<boolean>(false);\n const [userProfiles, setUserProfiles] = React.useState<string>('');\n const [userPermissions, setUserPermissions] = React.useState<string>('');\n const [userProcedures, setUserProcedures] = React.useState<string>('');\n const [open, setOpen] = React.useState<boolean>(false);\n const [showSuccess, setShowSuccess] = React.useState<boolean>(false);\n const [successMessage, setSuccessMessage] = React.useState<string>('');\n\n const changePassword = () => {\n setOpen(true);\n }\n const closeChangePassword = (flag:boolean) => {\n if (flag) {\n setShowSuccess(true);\n setSuccessMessage('Password was changed successfully.');\n }\n setOpen(false);\n}\n const stringToList = (s:string) => {\n s = s.replace(/,/g, '\\n');\n s = s.replace(/ *\\([^)]*\\) */g, \"\");\n return s;\n };\n const loadUserData = () => {\n let apiService = new MESApiService(); \n const parameters = [];\n parameters.push({ name: \"@UserId\", value: userId});\n parameters.push({ name: \"@UserName\", value: userParam });\n apiService.call('SEC.GetUser', parameters)\n .then(response => {\n if (apiService.hasErrors) {\n setShowError(true); \n setError(apiService.error);\n }\n if (response !== undefined && response.tables !== undefined && response.tables[0] !== undefined) {\n var userData = response.tables[0].rows[0];\n setUserName(userData.UserName);\n setUserLastName(userData.LastName);\n setUserFirstName(userData.FirstName);\n setUserIsDomain(userData.IsDomainUser);\n setUserIsActive(userData.IsActive);\n setUserProfiles(stringToList((userData.Profiles || '')));\n setUserProcedures(stringToList((userData.Procedures || '')));\n setUserPermissions(stringToList((userData.Permissions || '')));\n }\n });\n }\n\n const closeMessage = () => {\n setTimeout(function () {\n setShowSuccess(false);\n setSuccessMessage('');\n }, 2000);\n }\n\n React.useEffect(loadUserData, []);\n React.useEffect(() => {\n if (showSuccess === true) {\n closeMessage();\n }\n }, [showSuccess]);\n\n return (\n /* @ts-ignore */\n <GenericPanel title=\"Account Configuration\"\n showPromptError={showError} error={error} showPromptSuccess={showSuccess} successMessage={successMessage} \n >\n\n \n <div className=\"row\">\n <div className=\"col-md-3 px-3 py-1\">\n <SimpleTextControl title=\"Username\"\n styleLabel={{ 'minWidth': '110px' }}\n styleTextBox={{ 'maxWidth': '200px', 'minWidth': '100px'}}\n readOnly={true}\n name='userName'\n value={userName} \n styleGeneral={{'display':'flex'}}\n >\n </SimpleTextControl>\n </div>\n <div className=\"col-md-4 px-3 py-1\">\n\n <button className=\"btn btn-primary mes-button-primary\" onClick={changePassword}>\n <i className=\"fas fa-lock pr-1\"></i>Change Password\n </button>\n <ChangePassword\n open={open}\n onClose={closeChangePassword}\n userId={userId}\n >\n </ChangePassword>\n\n </div>\n </div>\n \n \n \n <div className=\"row\">\n <div className=\"col-md-3 px-3 py-1\">\n <SimpleTextControl\n title=\"Name\"\n styleLabel={{ 'minWidth': '110px' }}\n styleTextBox={{'maxWidth': '200px', 'minWidth':'100px'}}\n readOnly={true}\n name = 'firstName'\n value={userFirstName}\n styleGeneral={{ 'display': 'flex' }}\n >\n </SimpleTextControl>\n </div>\n <div className=\"col-md-3 px-3 py-1\">\n <SimpleTextControl\n title=\"Lastname\"\n styleLabel={{ 'minWidth': '110px', }}\n styleTextBox={{'maxWidth': '200px', 'minWidth':'100px'}}\n readOnly={true}\n name = 'lastName'\n value={userLastName}\n styleGeneral={{ 'display': 'flex' }}\n >\n </SimpleTextControl>\n </div>\n </div>\n \n <div className=\"row\">\n <div className=\"col-md-3 px-3 py-1\">\n <CheckBoxControl\n value={userIsDomain}\n \n title=\"Domain User\"\n readOnly={true}\n styleTextBox={{ 'maxWidth': '300px' }}\n disabled={true}\n >\n </CheckBoxControl>\n </div>\n <div className=\"col-md-3 px-3 py-1\">\n <CheckBoxControl\n value={userIsActive}\n \n title=\"Active\"\n readOnly={true}\n styleTextBox={{ 'maxWidth': '300px' }}\n disabled={true}\n >\n </CheckBoxControl>\n </div>\n </div>\n\n \n <div className=\"row\">\n <div className=\"col-md-4\">\n <Typography gutterBottom variant=\"h5\" component=\"h2\" className=\"pt-1\">\n Profiles\n </Typography>\n <textarea className=\"form-control\" placeholder={userProfiles} readOnly={true} style={{ \"height\": \"50vh\" }}>\n </textarea> \n </div>\n \n \n <div className=\"col-md-4\">\n <Typography gutterBottom variant=\"h5\" component=\"h2\" className=\"pt-1\">\n Permissions\n </Typography>\n <textarea className=\"form-control\" placeholder={userPermissions} readOnly={true} style={{ \"height\": \"50vh\" }}>\n </textarea>\n \n </div>\n \n \n <div className=\"col-md-4\">\n <Typography gutterBottom variant=\"h5\" component=\"h2\" className=\"pt-1\">\n Procedures\n </Typography>\n <textarea className=\"form-control\" placeholder={userProcedures} readOnly={true} style={{ \"height\": \"50vh\" }}>\n </textarea>\n \n </div>\n </div>\n\n \n \n \n\n </GenericPanel>\n \n )\n\n}\n","import React from 'react';\nimport {useToken} from \"./useToken\";\nimport {Login} from \"./login\";\nimport {BrowserRouter, Route, Router, Routes} from \"react-router-dom\";\n\nexport const AuthContext = React.createContext({} as any);\n\nexport type AuthConfig = {\n guestIsEnabled:boolean,\n useEmailAndPassword:boolean,\n useAzureAD:boolean,\n AzureConfig:AzureConfig\n}\nexport type AzureConfig = {\n clientId:string,\n authority:string,\n redirectUri:string,\n}\n\ntype AuthProviderProps = {\n children: any,\n authConfig:AuthConfig\n};\n\nconst base = document.getElementsByTagName('base')[0].getAttribute('href') || '/'\n\nexport const AuthProvider = ({children, authConfig}:AuthProviderProps) => {\n const useTokenHook = useToken();\n return (\n <>\n <AuthContext.Provider value={useTokenHook}>\n {!!useTokenHook.token && <Authenticated>{children}</Authenticated>}\n {!useTokenHook.token && <Unauthenticated authConfig={authConfig} />}\n </AuthContext.Provider>\n </>\n );\n};\n\nconst Authenticated = ({children}:{children:any}) => (\n <>\n {children}\n </>\n);\n\nconst Unauthenticated = ({authConfig}:{authConfig:AuthConfig}) => (\n <BrowserRouter basename={base}>\n <Routes>\n <Route path={'/'} element={<Login authConfig={authConfig} />} />\n </Routes>\n </BrowserRouter>\n);","import React, {KeyboardEvent, useState} from 'react';\nimport {Alert} from \"react-bootstrap\";\nimport {MESApiService} from \"../../services\";\nimport {AuthContext} from \"../AuthProvider\";\n\nexport const LoginWithEmailAndPassword = () =>{\n const [username, setUserName] = useState('');\n const [password, setPassword] = useState('');\n const [showError, setShowError] = React.useState(false);\n const [error, setError] = React.useState<any>(undefined);\n\n const { setToken } = React.useContext(AuthContext);\n\n\n const apiService = new MESApiService();\n const login = async (e: any) => {\n e.preventDefault();\n const response = await apiService.authenticate(username, password);\n if (apiService.hasErrors) {\n setShowError(true);\n setError(apiService.error)\n } else {\n setToken(response);\n }\n }\n const handleKeypress = (e: KeyboardEvent) => {\n if (e.charCode === 13) {\n login(e);\n }\n }\n\n return (\n <>\n <form onSubmit={login}>\n <Alert show={showError} variant=\"danger\" dismissible={true} onClose={() => {\n setShowError(false);\n setError(undefined)\n }}>\n <strong>Bad credentials</strong>\n <p> {error === undefined ? 'There was an error' :\n (error.internalError.message === undefined ? error.internalError : error.internalError.message)}\n </p>\n </Alert>\n <div className=\"form-group row\">\n <input id=\"txtUserName\" placeholder=\"User\" name=\"userName\"\n onChange={e => setUserName(e.target.value)} type=\"text\" autoComplete=\"off\"\n className=\"form-control\"></input>\n </div>\n <div className=\"form-group row\">\n <input id=\"txtPassword\" placeholder=\"Password\" name=\"password\"\n onChange={e => setPassword(e.target.value)} onKeyPress={handleKeypress}\n type=\"password\" className=\"form-control\">\n </input>\n </div>\n <div className=\"row\">\n <button className=\"btn btn-primary mes-button-primary mx-auto col-md-12 mt-3 \"\n type=\"submit\"\n disabled={password.length === 0 || username.length === 0}\n >Login\n </button>\n </div>\n\n </form>\n </>\n )\n}","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { LogLevel } from \"@azure/msal-browser\";\n\n/**\n * Configuration object to be passed to MSAL instance on creation. \n * For a full list of MSAL.js configuration parameters, visit:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md \n */\nexport const msalConfig = {\n auth: {\n clientId: \"7c77d607-51e0-4e03-bd50-d7aa18a7163g\",\n authority: \"https://login.microsoftonline.com/common\",\n redirectUri: \"http://localhost:5000/\"\n },\n cache: {\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\n },\n system: {\t\n loggerOptions: {\t\n loggerCallback: (level:number, message:string, containsPii:boolean) => {\n if (containsPii) {\t\t\n return;\t\t\n }\t\t\n switch (level) {\t\t\n case LogLevel.Error:\t\t\n console.error(message);\t\t\n return;\t\t\n case LogLevel.Info:\t\t\n console.info(message);\t\t\n return;\t\t\n case LogLevel.Verbose:\t\t\n console.debug(message);\t\t\n return;\t\t\n case LogLevel.Warning:\t\t\n console.warn(message);\t\t\n return;\t\t\n }\t\n }\t\n }\t\n }\n};\n\n/**\n * Scopes you add here will be prompted for user consent during sign-in.\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\n * For more information about OIDC scopes, visit: \n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\n */\nexport const loginRequest = {\n scopes: [\"User.Read\"]\n};\n\n/**\n * Add here the scopes to request when obtaining an access token for MS Graph API. For more information, see:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\n */\nexport const graphConfig = {\n graphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\"\n};\n","import React, {FormEvent, FormEventHandler} from 'react';\nimport {useMsal} from \"@azure/msal-react\";\nimport {loginRequest} from \"./AzureADAuthConfig\";\nimport {AuthenticationResult} from \"@azure/msal-browser\";\nimport {MESApiService} from \"../../../services\";\nimport {AuthContext} from \"../../AuthProvider\";\n\nexport const LoginWithAzureADForm = () => {\n const { setToken } = React.useContext(AuthContext);\n const { instance } = useMsal();\n const login:FormEventHandler = async (e:FormEvent) => {\n e.preventDefault();\n try{\n const result: AuthenticationResult = await instance.loginPopup(loginRequest);\n\n const api = new MESApiService();\n try{\n const loginResponse = await api.loginWithAzureAD(result.accessToken);\n setToken(loginResponse);\n }catch (e) {\n console.log(e);\n }\n\n }catch (e) {\n console.log({e})\n }\n }\n\n return (\n <form onSubmit={login}>\n {/*<Alert show={showError} variant=\"danger\" dismissible={true} onClose={() => {*/}\n {/* setShowError(false);*/}\n {/* setError(undefined)*/}\n {/*}}>*/}\n {/* <strong>Bad credentials</strong>*/}\n {/* <p> {error === undefined ? 'There was an error' :*/}\n {/* (error.internalError.message === undefined ? error.internalError : error.internalError.message)}*/}\n {/* </p>*/}\n {/*</Alert>*/}\n <div className=\"row\">\n <button className=\"btn btn-primary mes-button-primary mx-auto col-md-12 mt-3 \"\n type=\"submit\"\n >Login with Active Directory\n </button>\n </div>\n </form>\n );\n}","import React from 'react';\nimport {MsalProvider} from \"@azure/msal-react\";\nimport {PublicClientApplication} from \"@azure/msal-browser\";\nimport {msalConfig} from \"./AzureADAuthConfig\";\nimport {LoginWithAzureADForm} from \"./LoginWithAzureADForm\";\nimport {AzureConfig} from \"../../AuthProvider\";\n\n\nexport const LoginWithAzureAD = ({config}:{config:AzureConfig}) =>{\n const msalInstance = new PublicClientApplication({\n ...msalConfig,\n ...{\n auth: {\n ...config\n }\n }\n });\n\n return (\n <>\n <MsalProvider instance={msalInstance}>\n <LoginWithAzureADForm />\n </MsalProvider>\n </>\n )\n}","import React, {useState} from 'react';\nimport {MESApiService} from \"../../services\";\nimport {Alert} from \"react-bootstrap\";\nimport {AuthContext} from \"../AuthProvider\";\n\nexport const LoginAsGuest = () => {\n const [showError, setShowError] = React.useState(false);\n const [error, setError] = React.useState<any>(undefined);\n\n const { setToken } = React.useContext(AuthContext);\n\n\n const apiService = new MESApiService();\n const loginAsGuest = async (e: any) => {\n e.preventDefault();\n const response = await apiService.authenticate('public', 'public');\n if (apiService.hasErrors) {\n setShowError(true);\n setError(apiService.error)\n } else {\n setToken(response);\n }\n }\n return (\n <>\n <Alert show={showError} variant=\"danger\" dismissible={true} onClose={() => {\n setShowError(false);\n setError(undefined)\n }}>\n <strong>Bad credentials</strong>\n <p> {error === undefined ? 'There was an error' :\n (error.internalError.message === undefined ? error.internalError : error.internalError.message)}\n </p>\n </Alert>\n <div className=\"row\">\n <button className=\"btn btn-primary mes-button-primary mx-auto col-md-12 mt-3 \"\n role=\"button\"\n onClick={loginAsGuest}\n >Guest\n </button>\n </div>\n </>\n)}","import React, {useEffect, useState} from 'react';\nimport {Navbar} from 'react-bootstrap';\nimport { get } from 'lodash-es'\nimport PropTypes from 'prop-types';\nimport {LoginParams} from \"./models/login.models\";\nimport {LoginWithEmailAndPassword} from \"./login-strategies/LoginWithEmailAndPassword\";\nimport {LoginWithAzureAD} from \"./login-strategies/azure-ad/LoginWithAzureAD\";\nimport {LoginAsGuest} from \"./login-strategies/LoginAsGuest\";\nimport {useSearchParams} from \"react-router-dom\";\nimport { Snackbar } from '@material-ui/core';\nimport {Alert} from \"@material-ui/lab\";\n\nexport function Login({authConfig}: LoginParams) {\n\n const [params, setParams] = useSearchParams();\n const [open, setOpen] = useState(false);\n const [message, setMessage] = useState('');\n\n const useEmailAndPassword = get(authConfig,'useEmailAndPassword',true);\n const useAzureAD = get(authConfig,'useAzureAD',false);\n const guestIsEnabled = get(authConfig,'guestIsEnabled',false);\n\n const handleClose = () => {\n setOpen(false);\n params.delete('message');\n setParams(params);\n }\n\n useEffect(()=>{\n if(params.has('message')){\n setMessage(params.get('message')!);\n setOpen(true);\n }\n },[params.toString()])\n\n return (\n <React.Fragment>\n <header>\n <Navbar variant=\"dark\" expand=\"lg\" className=\"mes-primary-color mes-menu-top\">\n <Navbar.Brand href=\"/\">MESF</Navbar.Brand>\n </Navbar>\n </header>\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-3 mx-auto my-5\">\n <div className=\"card\">\n <div className=\"card-header text-center\">Login</div>\n <div className=\"card-body m-3\">\n {useEmailAndPassword && <LoginWithEmailAndPassword />}\n {useAzureAD && <LoginWithAzureAD config={authConfig.AzureConfig} />}\n {guestIsEnabled && <LoginAsGuest/>}\n </div>\n </div>\n </div>\n </div>\n </div>\n <Snackbar open={open} autoHideDuration={6000} onClose={handleClose} message={message}/>\n </React.Fragment>\n );\n}\n\nLogin.propTypes = {\n setToken: PropTypes.func\n}","import React, {useContext, useEffect} from 'react';\nimport {useNavigate, useSearchParams} from 'react-router-dom';\nimport {AuthContext} from \"./AuthProvider\";\n\n\nexport function Logout() {\n\n const {clearToken} = useContext(AuthContext);\n const navigate = useNavigate();\n const [params, setParams] = useSearchParams();\n\n const logout = async () => {\n clearToken();\n navigate(`/?${params.toString()}`);\n }\n useEffect(()=>{\n logout()\n },[])\n return (\n <React.Fragment>\n <div>logging out!!!</div>\n </React.Fragment>\n );\n}","import React from \"react\";\nimport {ConfigurationsType} from \"./configurationMenu\";\n\n\nconst RouterContext = React.createContext<React.FunctionComponent>(() => <></>);\nconst ConfigurationContext = React.createContext<ConfigurationsType>(\n [\n [],\n () => (<></>)\n ]\n);\nconst NavbarContext = React.createContext<React.FunctionComponent>(() => <></>);\n\n\nexport {RouterContext, ConfigurationContext, NavbarContext};","import React, {useContext} from \"react\";\nimport {Container, Nav, Navbar, NavDropdown} from \"react-bootstrap\";\nimport {NavbarContext} from \"../../globalContext\";\nimport {useToken} from \"../../account\";\nimport {Link} from \"react-router-dom\";\n\n\n\nexport default function Header() {\n const {getUserName} = useToken();\n const [date, setDate] = React.useState(new Date());\n const [userName] = React.useState(getUserName());\n\n const CustomNavbar: any = useContext(NavbarContext)\n\n const tick = () => {\n setDate(new Date());\n }\n React.useEffect(() => {\n const timerID = setTimeout(() => {\n tick();\n }, 1000);\n return () => {\n clearTimeout(timerID)\n };\n });\n\n return (\n <Navbar variant=\"dark\" expand=\"lg\" className=\"mes-primary-color mes-menu-top\">\n <Container fluid>\n <Navbar.Brand as={Link} to=\"/home\">MESF</Navbar.Brand>\n <Navbar.Toggle aria-controls=\"basic-navbar-nav\"/>\n <Navbar.Collapse id=\"basic-navbar-nav\">\n <Nav className=\"me-auto\">\n <Nav.Link as={Link} to=\"/\">Home</Nav.Link>\n <CustomNavbar/>\n </Nav>\n\n <Nav className=\"ml-auto\">\n <Nav>\n <span className=\"navbar-text\">\n {date.toLocaleTimeString()}\n </span>\n </Nav>\n <Nav className=\"mx-2\">\n <Nav.Link as={Link} to=\"/configuration\"><i className=\"fas fa-cog\"></i></Nav.Link>\n </Nav>\n <NavDropdown id=\"user-menu\" title={<><i className=\"fas fa-user mx-2\"></i>{userName}</>} className=\"mx-2\">\n <NavDropdown.Item href=\"account\">\n Account\n </NavDropdown.Item>\n <NavDropdown.Item href=\"logout\">\n Logout\n </NavDropdown.Item>\n </NavDropdown>\n </Nav>\n </Navbar.Collapse>\n </Container>\n </Navbar>\n );\n}\n","import React, { useContext } from \"react\";\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MenuList from '@material-ui/core/MenuList';\nimport { Link, Navigate, Route, Routes, useParams } from \"react-router-dom\";\n\nimport { ConfigurationContext } from \"./globalContext\";\nimport { GenericPanel } from \"./controls\";\nimport Users from \"./configuration/pages/users\";\nimport ShiftsCrews from \"./configuration/pages/shifCrew\";\nimport Logs from \"./configuration/pages/log\";\nimport Jobs from \"./configuration/pages/job\";\nimport Profiles from \"./configuration/pages/profiles\";\n\n\ntype SectionComponent = {\n path: string,\n sidebar: React.FunctionComponent,\n main: React.FunctionComponent,\n exact?: boolean,\n}\n\nexport interface SidebarType extends React.FunctionComponent<{ option?: string }> {\n}\n\nexport type ConfigurationsType = [\n SectionComponent[],\n SidebarType\n]\n\nexport default function Configuration() {\n let { option }: any = useParams();\n\n const [customConfiguration, CustomSidebar] = useContext<ConfigurationsType>(ConfigurationContext);\n\n const routes = [\n {\n path: \"/\",\n sidebar: () => <div>Configuration</div>,\n main: () => <Navigate to=\"users\" />\n },\n {\n path: \"shifts\",\n sidebar: () => <div>Shifts</div>,\n main: () => <ShiftsCrews />\n },\n {\n path: \"users\",\n sidebar: () => <div>Users</div>,\n main: () => <Users />\n },\n {\n path: \"profiles\",\n sidebar: () => <div>profiles</div>,\n main: () => <Profiles />\n },\n ...customConfiguration,\n {\n path: \"logs\",\n sidebar: () => <div>Logs</div>,\n main: () => <Logs />\n },\n {\n path: \"jobs\",\n sidebar: () => <div>Jobs</div>,\n main: () => <Jobs />\n }\n ];\n return (\n <GenericPanel title=\"Configuration\" description=\"\">\n <div className=\"row\">\n <div className=\"col-md-2 mt-3 pt-0 pr-0 mes-div-submenu\">\n <h3 className=\"mes-menu-group\">Plant</h3>\n <MenuList className=\"mes-submenu\">\n <MenuItem selected={option === 'shifts'} className=\"p-0\"><Link to=\"/configuration/shifts\" className=\"nav-link\">Shift / Crews</Link></MenuItem>\n </MenuList>\n <h3 className=\"mes-menu-group\">Security</h3>\n <MenuList className=\"mes-submenu\">\n <MenuItem selected={option === 'users'} className=\"p-0\"><Link to=\"/configuration/users\" className=\"nav-link\">Users</Link></MenuItem>\n <MenuItem selected={option === 'profiles'} className=\"p-0\"><Link to=\"/configuration/profiles\" className=\"nav-link\">Profiles</Link></MenuItem>\n </MenuList>\n <CustomSidebar option={option} />\n <h3 className=\"mes-menu-group\">Maintenance</h3>\n <MenuList className=\"mes-submenu\">\n <MenuItem selected={option === 'logs'} className=\"p-0\"><Link to=\"/configuration/logs\" className=\"nav-link\">Logs</Link></MenuItem>\n <MenuItem selected={option === 'jobs'} className=\"p-0\"><Link to=\"/configuration/jobs\" className=\"nav-link\">Jobs</Link></MenuItem>\n </MenuList>\n </div>\n <div className=\"col-md-9 m-3\">\n <Routes>\n {routes.map((route, index) => (\n <Route\n key={index}\n path={route.path}\n element={<route.main />}\n />\n ))}\n </Routes>\n </div>\n </div>\n </GenericPanel>\n );\n}","import React from \"react\";\n\nconst Home = () => (\n <div style={{\n backgroundImage: `url(\"/home.jpg\")`,\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n minHeight: '100%',\n height: '100vh',\n width:'100%',\n position: 'absolute'\n }}>\n </div>\n)\nexport {Home};","import React, {useContext} from 'react'\nimport {Navigate, Route, Routes} from 'react-router-dom';\n\nimport Configuration from \"../configurationMenu\";\n\nimport {RouterContext} from \"../globalContext\";\nimport {Account} from \"../account\";\nimport {Home} from \"../components/home/home\";\n\nconst MESFMainRouter = () => {\n\n const CustomRoutes:React.FunctionComponent = useContext(RouterContext);\n\n return (\n <>\n <Routes>\n <Route path=\"/\" element={<Navigate replace to=\"/home\" />}/>\n <Route path=\"/configuration/*\" element={<Configuration />}/>\n <Route path=\"/account\" element={<Account />}/>\n <Route path=\"/home\" element={<Home />}/>\n </Routes>\n <CustomRoutes/>\n </>\n\n )\n};\nexport default MESFMainRouter;","import React from \"react\";\nimport MESFMainRouter from \"../../routes/MESFMainRouter\";\n\n\nconst MESFMainContainer = () => (\n <div id=\"mainSection\" className=\"container-fluid container-fluid-main\">\n <MESFMainRouter />\n </div>\n )\nexport {MESFMainContainer};","import React, {useEffect, useRef} from \"react\";\nimport Header from \"./Header\";\n// import SideBar from \"./SideBar\";\n// import OffSideBar from \"./OffSideBar\";\n// import Footer from \"./Footer\";\nimport {MESFMainContainer} from \"./MainContainer\";\nimport {useSearchParams} from \"react-router-dom\";\n\nconst Navigation = () =>{\n\n const [params,setParams] = useSearchParams();\n const mounted = useRef(true);\n\n useEffect(()=>{\n mounted.current = true;\n if(params.has('redirectTo')){\n setTimeout(()=>{\n if(mounted.current){\n window.location.href = decodeURI(params.get('redirectTo')!)\n }\n },100)\n }\n\n return () => {\n mounted.current = false\n }\n },[params.toString()])\n\n return (\n <div className=\"wrapper\">\n {/*<!-- top navbar-->*/}\n <Header/>\n {/*<!-- sidebar-->*/}\n {/* <SideBar/> */}\n\n <MESFMainContainer/>\n {/*<!-- Page footer-->*/}\n {/* <Footer/> */}\n </div> )\n};\nexport default Navigation;","import React from 'react';\nimport {BrowserRouter as Router, Route, Routes} from \"react-router-dom\";\n\nimport Navigation from \"./components/navigation/Navigation\";\nimport {AuthProvider, Logout} from \"./account\";\nimport './css/index.css';\nimport {ConfigurationContext, NavbarContext, RouterContext} from \"./globalContext\";\n\nconst base = document.getElementsByTagName('base')[0].getAttribute('href')?.replace(/\\/$/, \"\") || '/'\n\nfunction MESFMain(props:any)\n{\n return (\n <AuthProvider authConfig={props.authentication}>\n <RouterContext.Provider value={props.routes}>\n <NavbarContext.Provider value={props.navbar}>\n <ConfigurationContext.Provider value={props.configurations}>\n <Router basename={base}>\n <Routes>\n <Route path=\"/logout\" element={<Logout />} />\n </Routes>\n <Navigation />\n </Router>\n </ConfigurationContext.Provider>\n </NavbarContext.Provider>\n </RouterContext.Provider>\n </AuthProvider>\n )\n \n}\nexport { MESFMain };"],"names":["React","useStyles","get","Alert","getProfiles","FormHelperText","INITIAL_VALUES","ProfilesPicker","TextField","CircularProgress","useTableData","UsersPage","MomentUtils","Configuration","base","Typography","Snackbar","ShiftsCrews","Users","Profiles","Logs","Jobs","Router"],"mappings":"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"}
|