{"version":3,"sources":["components/modals/clinic-config-modal/reducer/index.js","@core/components/spinner/Fallback-spinner.js","configs/acl/initialAbility.js","utility/context/ThemeColors.js","assets/images/logo/logo.png","services/Memed.js","services/Api.js","configs/themeConfig.js","@core/auth/jwt/jwtDefaultConfig.js","@core/auth/jwt/jwtService.js","@core/auth/jwt/useJwt.js","assets/images/logo/logo_dronline.svg","views/atendimento/prescricoes/memed.js","services/Atendimentos.js","redux/authentication.js","services/Empresa.js","redux/navbar.js","views/configuracoes/procedimentos/store/reducer/index.js","views/configuracoes/colaboradores/store/reducer/index.js","views/pacientes/store/reducer/index.js","views/configuracoes/tabelas/store/reducer/index.js","views/configuracoes/unidades/store/reducer/index.js","views/configuracoes/recursos-agenda/store/reducer/index.js","views/configuracoes/prontuarios/store/reducer/index.js","views/configuracoes/modelo-documentos/store/reducer/index.js","views/pacientes/orcamentos/store/reducer/index.js","redux/rootReducer.js","redux/store.js","auth/jwt/useJwt.js","redux/layout.js","configs/acl/ability.js","@core/components/ripple-button/index.js","serviceWorker.js","index.js","@core/components/spinner/Background-spinner.js","components/CustomToast/index.tsx","redux/loader.js","utility/context/GlobalLoader.js","views/atendimento/reducer/index.js","services/Agenda.js","services/ListaEspera.js","views/agenda/reducer/index.js","services/TeleAtendimento.js","utility/context/TeleatendimentoContext.js","utility/context/Can.js","views/autenticacao/store/index.js"],"names":["obterPorId","createAsyncThunk","async","_response$data","_response$data2","response","obterEmpresaPorId","id","empresa","data","unidadeMatriz","atualizar","_ref","dispatch","result","atualizarEmpresa","obterEmpresasUnidadesPorUsuario","empresaSlice","createSlice","name","initialState","empresas","dadosGerais","nome","cpfCnpj","telefone","email","telefone1DDI","reducers","gravarDadosGerais","state","action","payload","extraReducers","builder","addCase","fulfilled","actions","SpinnerComponent","props","fixed","_jsxs","className","concat","children","_jsx","src","logo","alt","getAbilities","user","colaborator","can","rules","AbilityBuilder","Ability","ThemeColors","createContext","ThemeContext","colors","setColors","useState","useEffect","window","getHex","color","getComputedStyle","document","body","getPropertyValue","trim","obj","primary","light","main","secondary","success","danger","warning","info","dark","Provider","value","api","obterApi","process","obterToken","get","colaboradorId","salvarPrescricaoSalva","prescricaoId","token","atendimentoId","url","Api","axios","create","baseURL","interceptors","request","use","config","error","Promise","reject","resolve","setTimeout","_jwt$getToken","jwt","getToken","headers","Authorization","status","store","handleSkin","handleLogout","location","href","getResp","label","resp","localStorage","removeItem","json","message","toast","isActive","update","render","autoClose","toastId","ValidationErrors","getReq","api_url","navigator","onLine","url_completa","e","console","log","postReq","post","putReq","put","warn","deleteReq","delete","themeConfig","app","appName","appLogoImage","require","default","layout","isRTL","skin","routerTransition","type","contentWidth","menu","isHidden","isCollapsed","navbar","backgroundColor","footer","customizer","scrollTop","loginEndpoint","registerEndpoint","refreshEndpoint","logoutEndpoint","tokenType","storageTokenKeyName","storageRefreshTokenKeyName","JwtService","constructor","jwtOverrideConfig","jwtConfig","jwtDefaultConfig","isAlreadyFetchingAccessToken","subscribers","this","accessToken","originalRequest","refreshToken","then","r","setToken","setRefreshToken","onAccessTokenFetched","addSubscriber","filter","callback","push","getItem","getRefreshToken","setItem","login","_len","arguments","length","args","Array","_key","register","_len2","_key2","useJwt","iniciarMemed","dados","dadosMedico","dadosUnidade","MdSinapsePrescricao","event","add","module","MdHub","show","command","send","endereco","cidade","peso","altura","nome_mae","nomeMae","dificuldade_locomocao","idExterno","idPaciente","cpf","data_nascimento","deletePatient","removePatient","historyPrescription","newPrescription","optionsPrescription","removePrescription","editPatient","setPatientAllergy","autocompleteExams","autocompleteIndustrialized","autocompleteManipulated","autocompleteCompositions","autocompletePeripherals","copyMedicalRecords","buttonClose","newFormula","allowShareModal","conclusionModal","guidesOnboarding","editIdentification","showHelpMenu","city","pessoa","estado","sigla","cnes","local_name","address","logradouro","phone","telefone1","lenght","Number","idPrescricao","CriarAtendimento","model","EnviarQuestionarioPreConsulta","agendaId","ReenviarQuestionarioPreConsulta","VerificarFormularioSalvo","SalvarFormularioPreConsulta","AtualizarAtendimento","FinalizarAtendimento","AtendimentoAtual","AddProcedimento","ExcluirProcedimento","GerarArquivoExportacao","tipo","GerarContaAzul","AtualizarAvaliacao","SalvarSpeechs","files","avaliacaoId","empresaId","pacienteId","formData","FormData","forEach","item","append","obterAvaliacoesPorAtendimentoId","avaliacao","obterSpeechsPorPaciente","getFileSpeech","responseType","CadastrarVacina","AtualizarVacina","TotalAtendimentosEmpresa","TimeLinePaciente","PesquisarTimeLinePaciente","search","ListarFuncionalidadesAtendimento","idEmpresa","idUnidade","idColaborador","ListarFuncionalidadesAtendimentoPersonalizado","ObterAtendimentoPersonalizadoResposta","prontuarioPersonalizadoId","idAgenda","AtualizarRespostaProntuario","SalvarRespostaProntuario","ReagruparFuncionalidades","AtualizarFuncionalidade","FiltarAtendimentos","PaginacaoTimeLinePaciente","page","ListarTeleAtendimentosComGravacao","ObterConteudoProntuario","AnexosPrescricaoMevo","PesquisaCids","listarCidsSelect","take","ModelosDocumentosProntuario","ObterQuestionarioPreConsulta","questionarioId","SalvarQuestionarioPreConsulta","AtualizarQuestionarioPreConsulta","definirUnidadePadrao","getState","atualizarUnidadePadrao","unidadeId","handleSelectUnidade","reload","_ref2","obterEmpresasColaboradorPorUsuarioId","handleEmpresaColaboradorActions","atualizarPermissoesUnidades","_ref3","definirPermissaoUnidade","_data$empresas","_empresaPadrao$colabo","empresaPadrao","find","empresasDropdown","unidadePadrao","colaboradorUnidades","u","unidadesDropdown","handleSelectEmpresa","handleEmpresas","handleUnidades","unidade","_data$colaborador","_unidadesDropdown$0$u","colaborador","handleColaborador","authSlice","userData","initialUser","JSON","parse","initialEmpresas","unidades","initialUnidades","initialColaborador","empresaSelecionada","initialEmpresaSelecionada","unidadeSelecionada","initialUnidadeSelecionada","handleLogin","stringify","listarConveniosEmpresa","obterUnidadesPermissoes","conveniosEmpresaPaginado","pageSize","busca","alterarEmpresaIntegrador","bool","alterarEmpresaTiss","VerificarAtivacaoAutorizador","getBookmarks","suggestions","bookmarks","updateBookmarked","layoutSlice","query","handleSearchQuery","objectToUpdate","isBookmarked","bookmarkIndex","findIndex","x","splice","procedimentos","undefined","loading","Boolean","colaboradores","pacientes","tabelas","recursos","prontuarios","modelos","orcamentos","rootReducer","auth","agenda","loader","registroPlataforma","atendimento","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","authConfig","_process","_process$env","REACT_APP_API_URL","_process2","_process2$env","_process3","_process3$env","lastLayout","footerType","navbarType","menuHidden","menuCollapsed","navbarColor","handleRTL","handleLayout","handleFooterType","handleNavbarType","handleMenuHidden","handleLastLayout","handleNavbarColor","handleContentWidth","handleMenuCollapsed","handleRouterTransition","Button","Ripple","onClick","rest","mounted","setMounted","isRippling","setIsRippling","coords","setCoords","y","classnames","rect","target","getBoundingClientRect","clientX","left","clientY","top","style","hostname","match","yup","mixed","required","notType","string","min","max","LazyApp","lazy","ReactDOM","Suspense","fallback","Spinner","GlobalLoaderContext","AbilityContext","ability","TeleatendimentoContext","GoogleOAuthProvider","clientId","ToastContainer","newestOnTop","getElementById","serviceWorker","ready","registration","unregister","ComponentSpinner","blank","size","CustomToast","title","Fragment","loaderSlice","handleLoading","GlobalLoader","is_loading","setIsLoading","is_block_loader_active","setIsBlockLoaderActive","FallbackSpinnerComponent","_response$data3","_response$data4","_response$data5","_response$data6","_response$data7","_response$data8","_response$data9","_response$data10","_response$data11","_response$data12","_response$data13","_response$data14","_response$data15","_response$data16","_response$data17","_response$data18","_response$data19","_response$data20","_response$data21","_response$data22","_response$data23","anamnese","anamneseId","anexosAtendimento","condutaAdotada","condutaAdotadaId","dataAtendimento","dataFimAtendimento","exameFisico","exameFisicoId","hipoteseDiagnostica","hipoteseDiagnosticaId","prescricao","paciente","procedimentosRealizados","obterAtendimentoAtual","_response$data24","_response$data25","_response$data26","_response$data27","_response$data28","_response$data29","_response$data30","_response$data31","_response$data32","_response$data33","_response$data34","_response$data35","_response$data36","_response$data37","_response$data38","_response$data39","_response$data40","_response$data41","_response$data42","_response$data43","_response$data44","_response$data45","_response$data46","criar","_response$data47","personalizado","_response$data48","personalizado_atualizar","_ref4","_response$data49","handleAtendimento","atendimentoSlice","initAtendimento","personalizados","handleFinalizarAtendimento","GraficoHomeAgendas","atualizarRecurso","cadastrarRecurso","AgendarPaciente","AtualizarCarteiraAgenda","carteiraId","AgendarPacienteListaEspera","ExcluirEventoBloqueioAgenda","AgendaPorAtendimento","ExcluirEventoBloqueioAgendaAllDay","idBloqueio","AlterarSituacaoAgenda","situacao","UpdateAgendaOnDragPaciente","EnviarAvisoPorSMS","UpdateAgendaPaciente","CancelarAgendamento","AgendadosDoDia","ChegadaPaciente","MontarHorarios","DiasBloqueadosAgenda","ObterAgendasPorData","ObterAgendasPorDataPesquisaPaciente","ListarTarefasPorUnidade","SalvarTarefa","ListarTarefasPorColaborador","AlterarTarefa","ExcluirTarefaAgenda","ExcluirLabel","SalvarLabel","LabelSidebar","AtualizarLabel","SalvarBloqueioAgenda","ListarConfiguracoesAgenda","EditarConfiguracaoAgenda","ConfigurarAgenda","ObterAgendaColaborador","isSocial","obterEventosPorData","obterEventosPorDataPesquisa","gerarHorarios","obterListaEsperaPorUnidade","ListaEsperaPorUnidade","listarTarefas","salvarUnidadeId","salvarEvento","_ref5","modelEventosDataSelecionada","modelHorariosDataSelecionada","salvarEventoWaitList","_ref6","excluirEventoBloqueioAgenda","idEvento","_ref7","excluirEventoBloqueioAgendaAllDay","_ref8","alterarSituacaoAgenda","_ref9","atualizarEvento","_ref10","atualizarEventOnDrag","_ref11","adicionarListaEspera","idEventos","_ref12","_ref13","SalvarListaEspera","atualizarListaEspera","_ref14","AtualizarListaEspera","excluirListaEspera","_ref15","_ref16","ExcluirListaEspera","adicionarTarefa","_ref17","atualizarTarefa","_ref18","removerTarefa","_ref19","salvarBloqueio","_ref20","agendaSlice","eventos","horarios","listaEspera","tarefas","selectedEvent","selectedTask","selectedCalendars","selectEvent","selectTask","salvarModelHorariosDataSelecionada","salvarModelEventosDataSelecionada","Teleatendimento","timeRef","useRef","localMedia","remoteMedia","doctorLocalMedia","doctorRemoteMedia","doctorScreenMedia","setUrl","urlPaciente","setUrlPaciente","roomUniqueName","setRoomUniqueName","is_full_screen","setIsFullScreen","urlWhereby","setUrlWhereby","urlPacienteWhereby","setUrlPacienteWhereby","roomUniqueNameWhereby","setRoomUniqueNameWhereby","activeRoomWhereby","setActiveRoomWhereby","meetingId","setMeetingId","room","setRoom","timer","setTimer","activeRoom","setActiveRoom","is_room_disconnected","setIsRoomDisconnected","roomNameErr","setRoomNameErr","identity","setIdentity","is_doctor","setIsDoctor","is_connecting_room","setIsConnectingRoom","local_video_track","setLocalVideoTrack","is_local_video_track_enabled","setIsLocalVideoTrackEnabled","local_audio_track","setLocalAudioTrack","is_local_audio_track_enabled","setIsLocalAudioTrackEnabled","local_screen_track","setLocalScreenTrack","is_local_screen_track_enabled","setIsLocalScreenTrackEnabled","is_remote_screen_enabled","setIsRemoteScreenEnabled","is_recording","setIsRecording","is_remote_media_audio_enabled","setIsRemoteMediaAudioEnabled","is_remote_media_video_enabled","setIsRemoteMediaVideoEnabled","screenMedia","setScreenMedia","screenMediaRef","useCallback","node","encerrarVideo","setRoomDisconnection","sid","disconnect","clearRoom","clearTimer","onDisconect","on","localParticipant","tracks","publication","track","kind","detach","element","remove","stop","unpublish","clearInterval","current","joinRoom","uniqueName","connectOptions","createTracks","connected_room","connect","roomJoined","createLocalTracks","audio","video","width","newVideoTrack","newAudioTrack","innerHTML","appendChild","attach","startTimer","setInterval","prevState","participants","participantConnected","participant","trackPublished","isSubscribed","participantSubscribe","participantUnsubscribe","addTrackEvents","isEnabled","disableScreenShare","screen_track","unpublishTrack","startStop","startStopRecord","record","toggleVideoTrack","videoTracks","disable","enable","toggleAudioTrack","audioTracks","addVideoTracksFromActiveRoom","trackName","shareScreen","stream","mediaDevices","getDisplayMedia","LocalVideoTrack","getTracks","publishTrack","mediaStreamTrack","onended","changeDoctorVideoRefs","_activeRoom$participa","_activeRoom$participa2","_activeRoom$participa3","_activeRoom$participa4","stopRecord","createContextualCan","Consumer","registroPlataformaSlice","codigoPais","sexo","crm","especialidade","nomeClinica","password","confirmPassword","cienteRegistroInvalido","dadosOutro","funcao","tipoUsuario","tokenValidado","gravarDadosMedico","gravarDadosOutro","selecionarTipoUsuario","gravarTokenValidado","_action$payload"],"mappings":"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","file":"static/js/main.1689082d.chunk.js","sourcesContent":["// ** Redux Imports\nimport { createSlice, createAsyncThunk } from '@reduxjs/toolkit'\nimport { atualizarEmpresa, obterEmpresaPorId } from '@services/Empresa'\nimport { obterEmpresasUnidadesPorUsuario } from '../../../../redux/authentication'\n\n\nexport const obterPorId = createAsyncThunk('empresa/obterPorId', async id => {\n const response = await obterEmpresaPorId(id)\n return {\n empresa: response.data?.empresa,\n unidadeMatriz: response.data?.unidadeMatriz\n }\n})\n\nexport const atualizar = createAsyncThunk('empresa/atualizar', async (empresa, { dispatch }) => {\n const result = await atualizarEmpresa(empresa)\n await dispatch(obterEmpresasUnidadesPorUsuario())\n return result.data\n})\n\nexport const empresaSlice = createSlice({\n name: 'empresa',\n initialState: {\n empresas: [],\n empresa: {},\n unidadeMatriz: {},\n dadosGerais: {\n nome: '',\n cpfCnpj: '',\n telefone: '',\n email: '',\n telefone1DDI: ''\n },\n },\n reducers: {\n gravarDadosGerais: (state, action) => {\n state.dadosGerais = action.payload;\n }\n },\n extraReducers: builder => {\n builder\n .addCase(obterPorId.fulfilled, (state, action) => {\n state.empresa = action.payload.empresa\n state.unidadeMatriz = action.payload.unidadeMatriz\n })\n }\n})\n\nexport const {\n gravarDadosGerais,\n} = empresaSlice.actions\n\nexport default empresaSlice.reducer\n","// ** Logo\nimport logo from '@src/assets/images/logo/logo.png'\n\nconst SpinnerComponent = props => {\n const { fixed } = props\n \n return (\n
\n logo\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default SpinnerComponent\n","import { Ability, AbilityBuilder } from \"@casl/ability\"\n\nexport const getAbilities = (user, colaborator) => {\n const { can, rules } = new AbilityBuilder(Ability)\n \n can('view', 'all')\n\n // if (user?.claims.find(claim => claim.value === 'configuracoes')) {\n // can('view', 'all')\n // } else {\n // if (colaborator?.tipo === \"M\") {\n // can('view', 'Doctor')\n // } else {\n // // const roles = user?.roles ? user?.roles : user?.userToken?.roles\n // // roles?.forEach(role => {\n // // can('view', role)\n // // });\n // can('view', 'Doctor')\n // }\n // }\n \n return rules\n}\n\n","// ** React Imports\nimport { useEffect, useState, createContext } from 'react'\n\n// ** Create Context\nconst ThemeColors = createContext()\n\nconst ThemeContext = ({ children }) => {\n // ** State\n const [colors, setColors] = useState({})\n\n //** ComponentDidMount\n useEffect(() => {\n if (window !== 'undefined') {\n //** Get variable value\n const getHex = color => window.getComputedStyle(document.body).getPropertyValue(color).trim()\n\n //** Colors obj\n const obj = {\n primary: {\n light: getHex('--bs-primary').concat('1a'),\n main: getHex('--bs-primary')\n },\n secondary: {\n light: getHex('--bs-secondary').concat('1a'),\n main: getHex('--bs-secondary')\n },\n success: {\n light: getHex('--bs-success').concat('1a'),\n main: getHex('--bs-success')\n },\n danger: {\n light: getHex('--bs-danger').concat('1a'),\n main: getHex('--bs-danger')\n },\n warning: {\n light: getHex('--bs-warning').concat('1a'),\n main: getHex('--bs-warning')\n },\n info: {\n light: getHex('--bs-info').concat('1a'),\n main: getHex('--bs-info')\n },\n dark: {\n light: getHex('--bs-dark').concat('1a'),\n main: getHex('--bs-dark')\n }\n }\n\n setColors({ ...obj })\n }\n }, [])\n\n return {children}\n}\n\nexport { ThemeColors, ThemeContext }\n","export default \"data:image/png;base64,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\"","import { obterApi } from \"./Api\"\n\nconst api = () => {\n return obterApi(process.env.REACT_APP_API_URL + '/Memed')\n}\n\nexport const obterToken = async (colaboradorId) => {\n return api().get(`colaborador/${colaboradorId}`);\n}\n\nexport const salvarPrescricaoSalva = async (prescricaoId, token, atendimentoId) => {\n return api().get(`prescricao-salva/${prescricaoId}/${token}/${atendimentoId}`);\n}\n\nexport const cidadeMemed = async (cidade, uf) => {\n return api().get(`/cidades/${cidade}/${uf}`)\n}","import axios from 'axios'\nimport { toast } from 'react-toastify';\n\nimport jwt from '../auth/jwt/useJwt';\nimport { handleLogout } from '../redux/authentication';\nimport { handleSkin } from '../redux/layout';\nimport { store } from '../redux/store';\n\nexport const renovarToken = async () => {\n const refreshToken = jwt.getRefreshToken();\n \n let axiosConfig = {\n headers: {\n 'Content-Type': 'application/json;charset=UTF-8',\n \"Access-Control-Allow-Origin\": \"*\",\n }\n };\n return axios.post(jwt.jwtConfig.refreshEndpoint, `\"${refreshToken}\"`, axiosConfig)\n}\n\nexport const obterApi = (url) => {\n\n const Api = axios.create({ baseURL: `${url}` })\n\n Api.interceptors.request.use(\n async (config) => {\n config.baseURL = `${url}`\n return config\n },\n (error) => {\n return Promise.reject(error)\n }\n )\n\n Api.interceptors.request.use(async (config) => {\n return new Promise((resolve) => setTimeout(() => resolve(config), 200))\n })\n\n Api.interceptors.request.use(async (config) => {\n const token = jwt.getToken() ?? false\n if (token) config.headers.Authorization = `Bearer ${token}`\n return config\n })\n\n Api.interceptors.response.use(\n (response) => {\n return response\n },\n async (error) => {\n\n const { config, response } = error\n const originalRequest = config\n\n if (response && response.status === 401) {\n try {\n store.dispatch(handleSkin('light'))\n store.dispatch(handleLogout())\n window.location.href = '/login';\n return false\n // const response = await renovarToken();\n // const { accessToken, refreshToken } = response.data\n\n // jwt.setToken(accessToken)\n // jwt.setRefreshToken(refreshToken)\n \n // axios.defaults.headers.common['Authorization'] = `Bearer ${accessToken}`\n // return Api(originalRequest);\n \n } catch (error) {\n store.dispatch(handleSkin('light'))\n store.dispatch(handleLogout())\n window.location.href = '/login';\n return false\n }\n }\n return Promise.reject(error)\n }\n );\n\n return Api\n}\n\nconst getResp = async (label, resp) => {\n if (resp) {\n // const content_type = resp.headers.get(\"Content-Type\"); \n // if (content_type.includes(\"pdf\")) {\n // if (resp.status === 200) await getFilePDF(resp); \n // } else if (content_type.includes(\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\")) {\n // if (resp.status === 200) await getFileXLS(resp);\n // } else if (content_type.includes(\"text/html\")) {\n // if (resp.status === 200) await getFileHTML(resp);\n // } else {\n if (resp.status > 300) {\n if (resp.status === 401){\n localStorage.removeItem('userData')\n localStorage.removeItem('empresas')\n localStorage.removeItem('unidades')\n localStorage.removeItem('colaborador')\n localStorage.removeItem('empresaSelecionada')\n localStorage.removeItem('unidadeSelecionada')\n window.location.href = '/login';\n }\n if (json && json.message && json.message !== '') {\n \n if (!toast.isActive('toastDefaultError')) toast.error(`Erro no ${label}: `+json.message, {autoClose: false, toastId: 'toastDefaultError'});\n else toast.update('toastDefaultError', {render: `Erro no ${label}: `+json.message, autoClose: false});\n \n if (json.ValidationErrors) {\n return json\n }\n } \n } \n else return resp.data;\n // }\n } \n return null;\n}\n\nexport const getReq = async (label, api_url, url) => {\n if (navigator.onLine) {\n try { \n const url_completa = process.env.REACT_APP_API_URL + api_url;\n\n let resp = await obterApi(url_completa).get(url);\n // console.log('resp', resp)\n return await getResp(label, resp); \n } catch(e) {\n console.log(`Erro ao carregar ${label}: `+e);\n }\n } \n else toast.error('Sem conexão com a Internet.', {autoClose: false, toastId: 'toastError'});\n return null;\n} \n\nexport const postReq = async (label, api_url, url, body) => {\n if (navigator.onLine) {\n try {\n const url_completa = process.env.REACT_APP_API_URL + api_url;\n \n let resp = await obterApi(url_completa).post(url, body);\n \n return await getResp(label, resp);\n } catch(e) {\n console.log(`Erro ao criar ${label}: `+e);\n }\n } else toast.error('Sem conexão com a Internet.', {autoClose: false, toastId: 'toastError'});\n return null;\n}\n\nexport const putReq = async (label, api_url, url, body) => {\n if (navigator.onLine) {\n try {\n const url_completa = process.env.REACT_APP_API_URL + api_url;\n \n let resp = await obterApi(url_completa).put(url, body);\n \n return await getResp(label, resp);\n } catch(e) {\n console.warn(`Erro ao atualizar ${label}: `+e);\n }\n } else toast.error('Sem conexão com a Internet.', {autoClose: false, toastId: 'toastError'});\n return null;\n}\n\nexport const deleteReq = async (label, api_url, url) => {\n if (navigator.onLine) {\n try{\n const url_completa = process.env.REACT_APP_API_URL + api_url;\n \n let resp = await obterApi(url_completa).delete(url);\n\n if (resp.status !== 200) return await resp.json();\n }catch(e){\n console.warn(`Erro ao remover ${label}: `+e);\n }\n } else toast.error('Sem conexão com a Internet.', {autoClose: false, toastId: 'toastError'});\n return null;\n}\n\n// export const sendFile = async (label, url, body, check) => {\n// try{\n// let headers = setHeaders('', check);\n \n// let reqParams = {\n// method: \"POST\",\n// headers,\n// body\n// };\n\n// let urlCompleta = CONFIG.URL + url;\n// let resp = await fetch(urlCompleta, reqParams);\n \n// return await getResp(label, resp);\n// }catch(e){\n// console.warn(`Erro ao enviar imagem do ${label}: `+e);\n// }\n// }","// You can customize the template with the help of this file\n\n//Template config options\nconst themeConfig = {\n app: {\n appName: 'DrOnline',\n appLogoImage: require('@src/assets/images/logo/logo_dronline.svg').default\n },\n layout: {\n isRTL: false,\n skin: 'light', // light, dark, bordered, semi-dark\n routerTransition: 'fadeIn', // fadeIn, fadeInLeft, zoomIn, none or check this for more transition https://animate.style/\n type: 'horizontal', // vertical, horizontal\n contentWidth: 'full', // full, boxed\n menu: {\n isHidden: false,\n isCollapsed: false\n },\n navbar: {\n // ? For horizontal menu, navbar type will work for navMenu type\n type: 'sticky', // static , sticky , floating, hidden\n backgroundColor: 'white' // BS color options [primary, success, etc]\n },\n footer: {\n type: 'static' // static, sticky, hidden\n },\n customizer: true,\n scrollTop: true // Enable scroll to top button\n }\n}\n\nexport default themeConfig\n","// ** Auth Endpoints\nexport default {\n loginEndpoint: '/jwt/login',\n registerEndpoint: '/jwt/register',\n refreshEndpoint: '/jwt/refresh-token',\n logoutEndpoint: '/jwt/logout',\n\n // ** This will be prefixed in authorization header with token\n // ? e.g. Authorization: Bearer \n tokenType: 'Bearer',\n\n // ** Value of this property will be used as key to store JWT token in storage\n storageTokenKeyName: 'accessToken',\n storageRefreshTokenKeyName: 'refreshToken'\n}\n","import axios from 'axios'\nimport jwtDefaultConfig from './jwtDefaultConfig'\n\nexport default class JwtService {\n // ** jwtConfig <= Will be used by this service\n jwtConfig = { ...jwtDefaultConfig }\n\n // ** For Refreshing Token\n isAlreadyFetchingAccessToken = false\n\n // ** For Refreshing Token\n subscribers = []\n\n constructor(jwtOverrideConfig) {\n this.jwtConfig = { ...this.jwtConfig, ...jwtOverrideConfig }\n\n // ** Request Interceptor\n axios.interceptors.request.use(\n config => {\n // ** Get token from localStorage\n const accessToken = this.getToken()\n\n // ** If token is present add it to request's Authorization Header\n if (accessToken) {\n // ** eslint-disable-next-line no-param-reassign\n config.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`\n }\n return config\n },\n error => Promise.reject(error)\n )\n\n // ** Add request/response interceptor\n axios.interceptors.response.use(\n response => response,\n error => {\n // ** const { config, response: { status } } = error\n const { config, response } = error\n const originalRequest = config\n\n // ** if (status === 401) {\n if (response && response.status === 401) {\n if (!this.isAlreadyFetchingAccessToken) {\n this.isAlreadyFetchingAccessToken = true\n this.refreshToken().then(r => {\n this.isAlreadyFetchingAccessToken = false\n\n // ** Update accessToken in localStorage\n this.setToken(r.data.accessToken)\n this.setRefreshToken(r.data.refreshToken)\n\n this.onAccessTokenFetched(r.data.accessToken)\n })\n }\n const retryOriginalRequest = new Promise(resolve => {\n this.addSubscriber(accessToken => {\n // ** Make sure to assign accessToken according to your response.\n // ** Check: https://pixinvent.ticksy.com/ticket/2413870\n // ** Change Authorization header\n originalRequest.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`\n resolve(this.axios(originalRequest))\n })\n })\n return retryOriginalRequest\n }\n return Promise.reject(error)\n }\n )\n }\n\n onAccessTokenFetched(accessToken) {\n this.subscribers = this.subscribers.filter(callback => callback(accessToken))\n }\n\n addSubscriber(callback) {\n this.subscribers.push(callback)\n }\n\n getToken() {\n return localStorage.getItem(this.jwtConfig.storageTokenKeyName)\n }\n\n getRefreshToken() {\n return localStorage.getItem(this.jwtConfig.storageRefreshTokenKeyName)\n }\n\n setToken(value) {\n localStorage.setItem(this.jwtConfig.storageTokenKeyName, value)\n }\n\n setRefreshToken(value) {\n localStorage.setItem(this.jwtConfig.storageRefreshTokenKeyName, value)\n }\n\n login(...args) {\n return axios.post(this.jwtConfig.loginEndpoint, ...args)\n }\n\n register(...args) {\n return axios.post(this.jwtConfig.registerEndpoint, ...args)\n }\n\n refreshToken() {\n return axios.post(this.jwtConfig.refreshEndpoint, {\n refreshToken: this.getRefreshToken()\n })\n }\n}\n","// ** JWT Service Import\nimport JwtService from './jwtService'\n\n// ** Export Service as useJwt\nexport default function useJwt(jwtOverrideConfig) {\n const jwt = new JwtService(jwtOverrideConfig)\n\n return {\n jwt\n }\n}\n","export default __webpack_public_path__ + \"static/media/logo_dronline.e9e9186f.svg\";","import { salvarPrescricaoSalva } from \"../../../services/Memed\";\n\nfunction iniciarMemed(dados, token, atendimentoId, dadosMedico, dadosUnidade) {\n MdSinapsePrescricao.event.add('core:moduleInit', function moduleInitHandler(module) {\n MdHub.module.show('plataforma.prescricao')\n // O módulo da prescrição foi iniciado\n if (module.name === 'plataforma.prescricao') {\n // Registrando o evento de click no elemento\n // document.getElementById(\"botaoShowPrescricao\").addEventListener(\"click\", function () {\n MdHub.command.send('plataforma.prescricao', 'setPaciente', {\n // Nome do paciente (obrigatório)\n nome: dados.nome,\n // Endereço do paciente (opcional)\n endereco: dados.telefone ? dados.telefone : '-----',\n // Cidade do paciente (opcional)\n cidade: dados.cidade ? dados.cidade : '-----',\n // Telefone (opcional, DDD + digitos, somente números)\n telefone: dados.telefone,\n // Usado no receituário de alto custo (Opcional)\n peso: dados.peso,\n // Usado no receituário de alto custo (Opcional)\n altura: dados.altura,\n // Usado no receituário de alto custo (Opcional)\n nome_mae: dados.nomeMae,\n // Usado no receituário de alto custo (Opcional)\n dificuldade_locomocao: false,\n // Pode ser um documento criptografado do paciente, por exemplo\n // Usamos essa propriedade para destinguir nomes iguais\n idExterno: dados.idPaciente,\n cpf: dados.cpf,\n data_nascimento: dados.data_nascimento\n }).then(function success() {\n MdHub.command.send('plataforma.prescricao', 'setFeatureToggle', {\n // Desativa a opção de excluir um paciente (obrigatório)\n deletePatient: false,\n // Desabilita a opção de remover/trocar o paciente (obrigatório)\n removePatient: false,\n // Esconde o histórico de prescrições\n historyPrescription: true,\n // Esconde o botão \"Nova Prescrição\"\n newPrescription: true,\n // Esconde o botão \"Opções Receituário\"\n optionsPrescription: true,\n // Desabilita a opção de remover a prescrição no histórico\n removePrescription: false,\n // Esconde o formulário de edição do paciente\n editPatient: false,\n // Desabilita a opção para definir alergias para o paciente\n setPatientAllergy: true,\n // Desabilita a aba \"Exames\" do Autocomplete de medicamentos\n autocompleteExams: true,\n // Desabilita a aba \"Industrializados\" do Autocomplete de medicamentos\n autocompleteIndustrialized: true,\n // Desabilita a aba \"Manipulados\" do Autocomplete de medicamentos\n autocompleteManipulated: true,\n // Desabilita a aba \"Composições\" do Autocomplete de medicamentos\n autocompleteCompositions: true,\n // Desabilita a aba \"Periféricos\" do Autocomplete de medicamentos\n autocompletePeripherals: true,\n // Esconde o botão \"Copiar para Prontuário\" (que copia o conteúdo da prescrição para o clipboard)\n copyMedicalRecords: true,\n // Esconde o botão de fechar da prescrição\n buttonClose: false,\n // Habilita opção Nova Fórmula Manipulada no menu\n newFormula: true,\n // Desativa o componente de Novas Formas de envio da Receita \n allowShareModal: false,\n // Desabilita o modal de conclusao de fluxo\n conclusionModal: false,\n // Define se o guia de apresentação do módulo será exibido na primeira vez que o prescritor acessa a plataforma\n guidesOnboarding: false,\n // Controla se é permitido editar ou não os dados já preenchidos nos campos da tela de identificação de médico e paciente no fluxo de prescrição\n editIdentification: false,\n // Permite que o prescritor visualize o menu de ajuda.\n showHelpMenu: false,\n })\n MdHub.command.send('plataforma.prescricao', 'setWorkplace', {\n city: dadosMedico.pessoa.endereco.cidade.nome ? dadosMedico.pessoa.endereco.cidade.nome : '-----',\n state: dadosMedico.pessoa.endereco.cidade.estado.sigla ? dadosMedico.pessoa.endereco.cidade.estado.sigla : '-----',\n cnes: dadosUnidade.cnes ? dadosUnidade.cnes : '---',\n local_name: dadosUnidade.pessoa.nome ? dadosUnidade.pessoa.nome : '-----',\n address: dadosMedico.pessoa.endereco.logradouro ? dadosMedico.pessoa.endereco.logradouro : '-----',\n phone: dadosMedico.pessoa.telefone1 ? dadosMedico.pessoa.telefone1.lenght > 11 ? dadosMedico.pessoa.telefone1 : Number(dadosMedico.pessoa.telefone1) : '----------'\n });\n MdHub.module.show('plataforma.prescricao')\n })\n\n MdHub.event.add('prescricaoSalva', async function prescricaoSalvaCallback(idPrescricao) {\n // Aqui é possível enviar esse ID para seu back-end obter mais informações sobre a prescrição.\n // obterPrescricaoSalva(idPrescricao);\n try {\n const resp = await salvarPrescricaoSalva(idPrescricao, token, atendimentoId)\n if (resp) {\n console.log('Prescrição salva com sucesso!')\n }\n } catch (error) {\n console.log('Erro ao salvar prescrição!', error.message)\n }\n });\n\n MdHub.event.add('prescricaoExcluida', function prescricaoSalvaCallback(idPrescricao) {\n // Aqui é possível enviar esse ID para seu back-end obter mais informações sobre a prescrição.\n console.log(idPrescricao, 'exclui a prescrição')\n });\n\n // MdHub.event.add('prescricaoImpressa', function (prescriptionData) {\n // var element = document.getElementById(\"botaoprint\");\n // element.style.display = \"block\";\n // });\n }\n });\n}\n\nfunction finalizar() {\n MdHub.command.send('plataforma.sdk', 'logout');\n // Parar os event listeners da Memed\n MdHub.server.unbindEvents();\n // Remover o objeto principal da Memed\n MdHub = null;\n // Injetar novamente o script seguindo o passo 2 acima\n}\n\nexport { iniciarMemed, finalizar }","import { obterApi } from \"./Api\"\n\nconst api = () => {\n return obterApi(process.env.REACT_APP_API_URL + '/Atendimento')\n}\n\nexport const listarAtendimentosPaciente = async (idPaciente) => {\n return api().get(`listar?idPaciente=${idPaciente}`)\n}\n\nexport const CriarAtendimento = async (model) => {\n return api().post(`atendimento`, model)\n}\n\nexport const EnviarQuestionarioPreConsulta = async (colaboradorId, agendaId) => {\n return api().get(`enviar-questionario-pre-consulta/${colaboradorId}/${agendaId}`)\n}\n\nexport const ReenviarQuestionarioPreConsulta = async (agendaId) => {\n return api().get(`reenviar-questionario-pre-consulta/${agendaId}`)\n}\n\nexport const VerificarFormularioSalvo = async (colaboradorId) => {\n return api().get(`pre-consulta/${colaboradorId}`)\n}\n\nexport const SalvarFormularioPreConsulta = async (model) => {\n return api().post(`formulario-pre-consulta`, model)\n}\n\nexport const AtualizarAtendimento = async (model) => {\n return api().post(`atualizar`, model)\n}\n\nexport const FinalizarAtendimento = async (id) => {\n return api().get(`finalizar?id=${id}`)\n}\n\nexport const AtendimentoAtual = async (id) => {\n return api().get(`atendimento?id=${id}`)\n}\n\nexport const AddProcedimento = async (model) => {\n return api().post(`procedimento`, model)\n}\n\nexport const ExcluirProcedimento = async (id) => {\n return api().delete(`procedimento/${id}`)\n}\n\nexport const CadastrarConduta = async (model) => {\n return api().post(`salvarConduta`, model)\n}\n\nexport const GerarArquivoExportacao = async (tipo, model) => {\n return api().post(`exportar-dados?tipo=${tipo}`, model)\n}\n\nexport const GerarContaAzul = async (model) => {\n return api().post(`atendimentos-financeiro`, model)\n}\n\nexport const AtualizarConduta = async (model) => {\n return api().post(`atualizarConduta`, model)\n}\n\nexport const CadastrarAnamnese = async (model) => {\n return api().post(`salvarAnamnese`, model)\n}\n\nexport const AtualizarAnamnese = async (model) => {\n return api().post(`atualizarAnamnese`, model)\n}\n\nexport const CadastrarHipoteseDiagnostica = async (model) => {\n return api().post(`salvarHipoteseDiagnostica`, model)\n}\n\nexport const AtualizarHipoteseDiagnostica = async (model) => {\n return api().post(`atualizarHipoteseDiagnostica`, model)\n}\n\nexport const CadastrarExameFisico = async (model) => {\n return api().post(`salvarExameFisico`, model)\n}\n\nexport const AtualizarExameFisico = async (model) => {\n return api().post(`atualizarExameFisico`, model)\n}\n\nexport const AtualizarAvaliacao = async (model) => {\n return api().put(`avaliacao/${model?.id}`, model)\n}\n\nexport const SalvarSpeechs = async (files, avaliacaoId, empresaId, pacienteId) => {\n const formData = new FormData();\n if (files?.length > 0) {\n files.forEach(item => {\n formData.append('files', item)\n })\n }\n return api().post(`speechs?avaliacaoId=${avaliacaoId}&empresaId=${empresaId}&pacienteId=${pacienteId}`, formData)\n}\n\nexport const obterAvaliacoesPorAtendimentoId = async (id, avaliacao) => {\n return api().get(`${id}/avaliacoes?avaliacao=${avaliacao}`);\n}\n\nexport const obterSpeechsPorPaciente = async (pacienteId) => {\n return api().get(`${pacienteId}/speechs`);\n}\n\nexport const getFileSpeech = async (id) => {\n return api().get(`speechs/${id}`, { responseType: 'blob' })\n}\n\nexport const CadastrarVacina = async (model) => {\n return api().post(`salvarVacina`, model)\n}\n\nexport const AtualizarVacina = async (model) => {\n return api().post(`atualizarVacina`, model)\n}\n\nexport const FichaMedicaPaciente = async (id) => {\n return api().get(`ficha/${id}`)\n}\n\nexport const TotalAtendimentosEmpresa = async (id) => {\n return api().get(`total?id=${id}`)\n}\n\nexport const TimeLinePaciente = async (id) => {\n return api().get(`ultimos?id=${id}`)\n}\n\nexport const PesquisarTimeLinePaciente = async (id, search) => {\n return api().get(`pesquisartimeline?id=${id}&search=${search}`)\n}\n\nexport const ListarFuncionalidadesAtendimento = async (idEmpresa, idUnidade, idColaborador) => {\n return api().get(`funcionalidades?idEmpresa=${idEmpresa}&idUnidade=${idUnidade}&idColaborador=${idColaborador}`)\n}\n\nexport const ListarFuncionalidadesAtendimentoPersonalizado = async (idEmpresa, idColaborador, idPaciente) => {\n return api().get(`funcionalidades-prontuario?idEmpresa=${idEmpresa}&idColaborador=${idColaborador}&idPaciente=${idPaciente}`)\n}\n\nexport const ObterAtendimentoPersonalizadoResposta = async (id, prontuarioPersonalizadoId, idAgenda) => {\n return api().get(`resposta-prontuario?id=${id}&prontuarioPersonalizadoId=${prontuarioPersonalizadoId}&idAgenda=${idAgenda}`)\n}\n\nexport const AtualizarRespostaProntuario = async (model) => {\n return api().post(`atualizar-resposta-prontuario`, model)\n}\n\nexport const SalvarRespostaProntuario = async (model) => {\n return api().post(`salvar-resposta-prontuario`, model)\n}\n\nexport const ReagruparFuncionalidades = async (model) => {\n return api().post(`reagrupar`, model)\n}\n\nexport const AtualizarFuncionalidade = async (model) => {\n return api().post(`atualizarFuncionalidade`, model)\n}\n\nexport const FiltarAtendimentos = async (model) => {\n return api().post(`atendimentos-filtro`, model)\n}\n\nexport const ProcedimentosRealizadosPaciente = async (id) => {\n return api().get(`realizados?id=${id}`)\n}\n\nexport const PaginacaoTimeLinePaciente = async (id, search, page) => {\n return api().get(`paginacao?id=${id}&page=${page}&search=${search}`)\n}\n\nexport const ListarTeleAtendimentosComGravacao = async (idPaciente, colaboradorId, search, page) => {\n return api().get(`teleatendimentos-com-gravacao?pacienteId=${idPaciente}&colaboradorId=${colaboradorId}&page=${page}&search=${search}`)\n}\n\nexport const ObterGravacao = async (gravacaoId) => {\n return api().get(`obter-gravacao-transcricao?gravacaoId=${gravacaoId}`)\n}\n\nexport const ObterConteudoProntuario = async (model) => {\n return api().post(`prontuario`, model)\n}\n\nexport const BaixarPrescricao = async (id) => {\n return api().get(`download/${id}`)\n}\n\nexport const AnexosPrescricaoMevo = async (id) => {\n return api().get(`anexos-mevo/${id}`)\n}\n\nexport const PesquisaCids = async (nome) => {\n return api().get(`cids?nome=${nome}`)\n}\n\nexport const listarCidsSelect = async (take) => {\n return api().get(`cids-select?take=${take}`)\n}\n\nexport const ModelosDocumentosProntuario = async (idEmpresa) => {\n return api().get(`documentos?idEmpresa=${idEmpresa}`)\n}\n\nexport const salvarPrescricaoAtendimento = async (atendimentoId, model) => {\n return api().post(`${atendimentoId}/salvar-prescricao`, model)\n}\n\nexport const ObterQuestionarioPreConsulta = async (questionarioId) => {\n return api().get(`obter-questionario-pre-consulta/${questionarioId}`)\n}\n\nexport const SalvarQuestionarioPreConsulta = async (model) => {\n return api().post(`salvar-questionario-pre-consulta`, model)\n}\n\nexport const AtualizarQuestionarioPreConsulta = async (model) => {\n return api().put(`atualizar-questionario-pre-consulta`, model)\n}\n","// ** Redux Imports\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit'\n\n// ** UseJWT import to get config\nimport useJwt from '@src/auth/jwt/useJwt'\nimport { atualizarUnidadePadrao, definirPermissaoUnidade, obterEmpresasColaboradorPorUsuarioId } from '../services/Empresa'\nimport { finalizar } from '../views/atendimento/prescricoes/memed'\n\nconst config = useJwt.jwtConfig\n\nconst initialUser = () => {\n const item = window.localStorage.getItem('userData')\n //** Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : {}\n}\n\nconst initialEmpresas = () => {\n const item = window.localStorage.getItem('empresas')\n //** Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : []\n}\n\nconst initialUnidades = () => {\n const item = window.localStorage.getItem('unidades')\n //** Parse stored json or if none return initialValue\n return item && JSON.parse(item) ? JSON.parse(item) : []\n}\n\nconst initialColaborador = () => {\n const item = window.localStorage.getItem('colaborador')\n //** Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : {}\n}\n\nconst initialEmpresaSelecionada = () => {\n const item = window.localStorage.getItem('empresaSelecionada')\n //** Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : {}\n}\n\nconst initialUnidadeSelecionada = () => {\n const item = window.localStorage.getItem('unidadeSelecionada')\n //** Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : {}\n}\n\nexport const definirUnidadePadrao = createAsyncThunk('unidadePadrao/atualizar', async (model, { dispatch, getState }) => {\n await atualizarUnidadePadrao(model?.colaboradorId, model?.unidadeId)\n dispatch(handleSelectUnidade(model))\n location.reload();\n})\n\nexport const obterEmpresasUnidadesPorUsuario = createAsyncThunk('empresas/unidades', async (model, { dispatch, getState }) => {\n var result = await obterEmpresasColaboradorPorUsuarioId();\n return handleEmpresaColaboradorActions(result.data, dispatch);\n})\n\nexport const atualizarPermissoesUnidades = createAsyncThunk('unidades/permissoes', async (model, { dispatch, getState }) => {\n var result = await definirPermissaoUnidade(model);\n dispatch(obterEmpresasUnidadesPorUsuario())\n})\n\nconst handleEmpresaColaboradorActions = (data, dispatch) => {\n const empresaPadrao = data?.empresas?.find(e => e?.empresaPadrao);\n const empresasDropdown = data?.empresas;\n const unidadePadrao = empresaPadrao?.colaboradorUnidades?.find(u => u?.unidadePadrao);\n const unidadesDropdown = empresaPadrao?.colaboradorUnidades\n\n dispatch(handleSelectEmpresa(empresaPadrao))\n dispatch(handleEmpresas(empresasDropdown))\n\n dispatch(handleUnidades(unidadesDropdown))\n\n if (!unidadePadrao) {\n const model = {\n ...unidadesDropdown[0].unidade,\n colaboradorId: data?.colaborador?.id,\n unidadeId: unidadesDropdown[0].unidade?.id\n }\n dispatch(definirUnidadePadrao(model))\n } else {\n dispatch(handleSelectUnidade(unidadePadrao.unidade))\n }\n dispatch(handleColaborador(data?.colaborador))\n return data;\n}\n\nexport const authSlice = createSlice({\n name: 'authentication',\n initialState: {\n userData: initialUser(),\n empresas: initialEmpresas(),\n unidades: initialUnidades(),\n colaborador: initialColaborador(),\n empresaSelecionada: initialEmpresaSelecionada(),\n unidadeSelecionada: initialUnidadeSelecionada()\n },\n reducers: {\n handleLogin: (state, action) => {\n state.userData = action.payload\n state[config.storageTokenKeyName] = action.payload[config.storageTokenKeyName]\n state[config.storageRefreshTokenKeyName] = action.payload[config.storageRefreshTokenKeyName]\n localStorage.setItem('userData', JSON.stringify(action.payload))\n localStorage.setItem(config.storageTokenKeyName, action.payload.accessToken)\n localStorage.setItem(config.storageRefreshTokenKeyName, action.payload.refreshToken)\n },\n handleEmpresas: (state, action) => {\n state.empresas = action.payload\n if (action.payload) localStorage.setItem('empresas', JSON.stringify(action.payload))\n },\n handleUnidades: (state, action) => {\n state.unidades = action.payload\n if (action.payload) localStorage.setItem('unidades', JSON.stringify(action.payload))\n },\n handleColaborador: (state, action) => {\n state.colaborador = action.payload\n if (action.payload) localStorage.setItem('colaborador', JSON.stringify(action.payload))\n },\n handleSelectEmpresa: (state, action) => {\n state.empresaSelecionada = action.payload\n if (action.payload) localStorage.setItem('empresaSelecionada', JSON.stringify(action.payload))\n },\n handleSelectUnidade: (state, action) => {\n state.unidadeSelecionada = action.payload\n if (action.payload) localStorage.setItem('unidadeSelecionada', JSON.stringify(action.payload))\n },\n handleLogout: state => {\n state.userData = {}\n state[config.storageTokenKeyName] = null\n state[config.storageRefreshTokenKeyName] = null\n // ** Remove user, accessToken & refreshToken from localStorage\n localStorage.removeItem('atendimento')\n localStorage.removeItem('userData')\n localStorage.removeItem('empresas')\n localStorage.removeItem('unidades')\n localStorage.removeItem('colaborador')\n localStorage.removeItem('empresaSelecionada')\n localStorage.removeItem('unidadeSelecionada')\n localStorage.removeItem(config.storageTokenKeyName)\n localStorage.removeItem(config.storageRefreshTokenKeyName)\n }\n }\n})\n\nexport const { handleLogin, handleEmpresas, handleUnidades, handleColaborador, handleSelectEmpresa, handleSelectUnidade, handleLogout } = authSlice.actions\n\nexport default authSlice.reducer\n","import {obterApi} from \"./Api\"\n\nconst api = () => {\n return obterApi(process.env.REACT_APP_API_URL + '/Empresa')\n}\n\nexport const listarConveniosEmpresa = async (id) => {\n return api().get(`convenios?id=${id}`)\n}\n\nexport const obterEmpresasColaboradorPorUsuarioId = async () => {\n return api().get(`por-usuario`)\n}\n\nexport const obterEmpresaPorId = async (id) => {\n return api().get(`${id}`)\n}\n\nexport const atualizarEmpresa = async (empresa) => {\n return api().put(`${empresa.id}`, empresa)\n}\n\nexport const obterUnidadesPermissoes = async (colaboradorId, empresaId) => {\n return api().get(`unidades-permissoes?colaboradorId=${colaboradorId}&empresaId=${empresaId}`)\n}\n\nexport const conveniosEmpresaPaginado = async (idEmpresa, page, pageSize, busca) => {\n return api().get(`convenios-paginado?empresaId=${idEmpresa}&PageNumber=${page}&PageSize=${pageSize}&Busca=${busca}`)\n}\n\nexport const definirPermissaoUnidade = async (model) => {\n return api().put(`unidades-permissoes`, model)\n}\n\nexport const atualizarUnidadePadrao = async (colaboradorId, unidadeId) => {\n return api().put(`unidade-padrao?colaboradorId=${colaboradorId}&unidadeId=${unidadeId}`)\n}\n\nexport const cadastrarColaboradorUnidades = async (colaboradorId, empresaId) => {\n return api().post(`unidades-permissoes/novo-colaborador?colaboradorId=${colaboradorId}&empresaId=${empresaId}`)\n}\n\nexport const alterarEmpresaIntegrador = async (empresaId, bool) => {\n return api().get(`empresa-autorizador/${empresaId}/${bool}`)\n}\n\nexport const alterarEmpresaTiss = async (empresaId, bool) => {\n return api().get(`empresa-tiss/${empresaId}/${bool}`)\n}\n\nexport const VerificarAtivacaoAutorizador = async (empresaId) => {\n return api().get(`verificar-ativacao-autorizador/${empresaId}`)\n}","// ** Redux Imports\nimport { createSlice, createAsyncThunk } from '@reduxjs/toolkit'\n\n// ** Axios Imports\nimport axios from 'axios'\n\nexport const getBookmarks = createAsyncThunk('layout/getBookmarks', async () => {\n const response = await axios.get('/api/bookmarks/data')\n return {\n data: response.data.suggestions,\n bookmarks: response.data.bookmarks\n }\n})\n\nexport const updateBookmarked = createAsyncThunk('layout/updateBookmarked', async id => {\n await axios.post('/api/bookmarks/update', { id })\n return id\n})\n\nexport const layoutSlice = createSlice({\n name: 'layout',\n initialState: {\n query: '',\n bookmarks: [],\n suggestions: []\n },\n reducers: {\n handleSearchQuery: (state, action) => {\n state.query = action.payload\n }\n },\n extraReducers: builder => {\n builder\n .addCase(getBookmarks.fulfilled, (state, action) => {\n state.suggestions = action.payload.data\n state.bookmarks = action.payload.bookmarks\n })\n .addCase(updateBookmarked.fulfilled, (state, action) => {\n let objectToUpdate\n\n // ** find & update object\n state.suggestions.find(item => {\n if (item.id === action.payload) {\n item.isBookmarked = !item.isBookmarked\n objectToUpdate = item\n }\n })\n\n // ** Get index to add or remove bookmark from array\n const bookmarkIndex = state.bookmarks.findIndex(x => x.id === action.payload)\n\n if (bookmarkIndex === -1) {\n state.bookmarks.push(objectToUpdate)\n } else {\n state.bookmarks.splice(bookmarkIndex, 1)\n }\n })\n }\n})\n\nexport const { handleSearchQuery } = layoutSlice.actions\n\nexport default layoutSlice.reducer\n","// ** Initial State\nconst initialState = {\n data: []\n // total: 1,\n // params: {},\n // selectedUser: null\n}\n\nconst procedimentos = (state = initialState, action) => {\n switch (action.type) {\n case 'OBTER_PROCEDIMENTOS':\n return { ...state, data: action.data, loading: action.loading }\n // case 'GET_DATA':\n // return {\n // ...state,\n // data: action.data,\n // total: action.totalPages,\n // params: action.params\n // }\n // case 'GET_USER':\n // return { ...state, selectedUser: action.selectedUser }\n // case 'ADD_USER':\n // return { ...state }\n // case 'DELETE_USER':\n // return { ...state }\n default:\n return { ...state }\n }\n}\nexport default procedimentos\n","// ** Initial State\nconst initialState = {\n data: [],\n loading: Boolean\n // total: 1,\n // params: {},\n // selectedUser: null\n}\n\nconst colaboradores = (state = initialState, action) => {\n switch (action.type) {\n case 'OBTER_COLABORADORES':\n return { ...state, data: action.data, loading: action.loading }\n // case 'GET_DATA':\n // return {\n // ...state,\n // data: action.data,\n // total: action.totalPages,\n // params: action.params\n // }\n // case 'GET_USER':\n // return { ...state, selectedUser: action.selectedUser }\n // case 'ADD_USER':\n // return { ...state }\n // case 'DELETE_USER':\n // return { ...state }\n default:\n return { ...state }\n }\n}\nexport default colaboradores\n","// ** Initial State\nconst initialState = {\n data: []\n // total: 1,\n // params: {},\n // selectedUser: null\n }\n \n const pacientes = (state = initialState, action) => {\n switch (action.type) {\n case 'OBTER_PACIENTES':\n return { ...state, data: action.data }\n // case 'GET_DATA':\n // return {\n // ...state,\n // data: action.data,\n // total: action.totalPages,\n // params: action.params\n // }\n // case 'GET_USER':\n // return { ...state, selectedUser: action.selectedUser }\n // case 'ADD_USER':\n // return { ...state }\n // case 'DELETE_USER':\n // return { ...state }\n default:\n return { ...state }\n }\n }\n export default pacientes\n ","// ** Initial State\nconst initialState = {\n data: []\n // total: 1,\n // params: {},\n // selectedUser: null\n }\n \n const tabelas = (state = initialState, action) => {\n switch (action.type) {\n case 'OBTER_TABELAS':\n return { ...state, data: action.data, loading: action.loading }\n // case 'GET_DATA':\n // return {\n // ...state,\n // data: action.data,\n // total: action.totalPages,\n // params: action.params\n // }\n // case 'GET_USER':\n // return { ...state, selectedUser: action.selectedUser }\n // case 'ADD_USER':\n // return { ...state }\n // case 'DELETE_USER':\n // return { ...state }\n default:\n return { ...state }\n }\n }\n export default tabelas\n ","// ** Initial State\nconst initialState = {\n data: []\n // total: 1,\n // params: {},\n // selectedUser: null\n }\n \n const unidades = (state = initialState, action) => {\n switch (action.type) {\n case 'OBTER_UNIDADES':\n return { ...state, data: action.data, loading: action.loading }\n // case 'GET_DATA':\n // return {\n // ...state,\n // data: action.data,\n // total: action.totalPages,\n // params: action.params\n // }\n // case 'GET_USER':\n // return { ...state, selectedUser: action.selectedUser }\n // case 'ADD_USER':\n // return { ...state }\n // case 'DELETE_USER':\n // return { ...state }\n default:\n return { ...state }\n }\n }\n export default unidades\n ","// ** Initial State\nconst initialState = {\n data: []\n // total: 1,\n // params: {},\n // selectedUser: null\n}\n\nconst recursos = (state = initialState, action) => {\n switch (action.type) {\n case 'OBTER_RECURSOS':\n return { ...state, data: action.data, loading: action.loading }\n case 'OBTER_RECURSOS_POR_ID':\n return { ...state, data: action.data, loading: action.loading }\n case 'ATUALIZAR_RECURSO':\n return { ...state, data: action.data, loading: action.loading }\n case 'CADASTRAR_RECURSO':\n return { ...state, data: action.data, loading: action.loading }\n // case 'GET_DATA':\n // return {\n // ...state,\n // data: action.data,\n // total: action.totalPages,\n // params: action.params\n // }\n // case 'GET_USER':\n // return { ...state, selectedUser: action.selectedUser }\n // case 'ADD_USER':\n // return { ...state }\n // case 'DELETE_USER':\n // return { ...state }\n default:\n return { ...state }\n }\n}\nexport default recursos\n","// ** Initial State\nconst initialState = {\n data: []\n // total: 1,\n // params: {},\n // selectedUser: null\n}\n\nconst prontuarios = (state = initialState, action) => {\n switch (action.type) {\n case 'OBTER_PRONTUARIOS':\n return { ...state, data: action.data, loading: action.loading }\n case 'OBTER_PRONTUARIO_POR_ID':\n return { ...state, data: action.data, loading: action.loading }\n case 'ATUALIZAR_PRONTUARIO':\n return { ...state, data: action.data, loading: action.loading }\n case 'CADASTRAR_PRONTUARIO':\n return { ...state, data: action.data, loading: action.loading }\n default:\n return { ...state }\n }\n}\nexport default prontuarios\n","// ** Initial State\nconst initialState = {\n data: []\n // total: 1,\n // params: {},\n // selectedUser: null\n}\n\nconst modelos = (state = initialState, action) => {\n switch (action.type) {\n case 'OBTER_MODELOS_DOCUMENTOS':\n return { ...state, data: action.data, loading: action.loading }\n case 'OBTER_MODELO_DOCUMENTO_POR_ID':\n return { ...state, data: action.data, loading: action.loading }\n case 'ATUALIZAR_MODELO_DOCUMENTO':\n return { ...state, data: action.data, loading: action.loading }\n case 'CADASTRAR_MODELO_DOCUMENTO':\n return { ...state, data: action.data, loading: action.loading }\n default:\n return { ...state }\n }\n}\nexport default modelos\n","// ** Initial State\nconst initialState = {\n data: []\n // total: 1,\n // params: {},\n // selectedUser: null\n}\n\nconst orcamentos = (state = initialState, action) => {\n switch (action.type) {\n case 'OBTER_ORCAMENTOS_EMPRESA':\n return { ...state, data: action.data, loading: action.loading }\n case 'OBTER_ORCAMENTOS_UNIDADE':\n return { ...state, data: action.data, loading: action.loading }\n case 'OBTER_ORCAMENTOS_PACIENTE':\n return { ...state, data: action.data, loading: action.loading }\n case 'OBTER_ORCAMENTO_POR_ID':\n return { ...state, data: action.data, loading: action.loading }\n case 'ATUALIZAR_ORCAMENTO':\n return { ...state, data: action.data, loading: action.loading }\n case 'CADASTRAR_ORCAMENTO':\n return { ...state, data: action.data, loading: action.loading }\n default:\n return { ...state }\n }\n}\nexport default orcamentos\n","// ** Reducers Imports\nimport navbar from './navbar'\nimport layout from './layout'\nimport auth from './authentication'\nimport loader from './loader'\nimport procedimentos from '@src/views/configuracoes/procedimentos/store/reducer'\nimport colaboradores from '@src/views/configuracoes/colaboradores/store/reducer'\nimport pacientes from '@src/views/pacientes/store/reducer'\nimport tabelas from '@src/views/configuracoes/tabelas/store/reducer'\nimport unidades from '@src/views/configuracoes/unidades/store/reducer'\nimport recursos from '@src/views/configuracoes/recursos-agenda/store/reducer'\nimport prontuarios from '@src/views/configuracoes/prontuarios/store/reducer'\nimport modelos from '@src/views/configuracoes/modelo-documentos/store/reducer'\nimport registroPlataforma from '@src/views/autenticacao/store'\nimport atendimento from '@src/views/atendimento/reducer'\nimport agenda from '@src/views/agenda/reducer'\nimport empresa from '../components/modals/clinic-config-modal/reducer'\nimport orcamentos from '@src/views/pacientes/orcamentos/store/reducer'\n\n\nconst rootReducer = {\n auth,\n agenda,\n navbar,\n layout,\n loader,\n procedimentos,\n colaboradores,\n pacientes,\n tabelas,\n unidades,\n recursos,\n prontuarios,\n modelos,\n registroPlataforma,\n atendimento,\n empresa,\n orcamentos\n}\n\nexport default rootReducer\n","// ** Redux Imports\nimport rootReducer from './rootReducer'\nimport { configureStore } from '@reduxjs/toolkit'\n\nconst store = configureStore({\n reducer: rootReducer,\n middleware: getDefaultMiddleware => {\n return getDefaultMiddleware({\n serializableCheck: false\n })\n }\n})\n\nexport { store }\n","// ** Core JWT Import\nimport useJwt from '@src/@core/auth/jwt/useJwt'\n\nconst authConfig = {\n loginEndpoint: process?.env?.REACT_APP_API_URL + '/auth/acessar',\n // logoutEndpoint: \"/jwt/logout\"\n refreshEndpoint: process?.env?.REACT_APP_API_URL + '/auth/refresh-token',\n registerEndpoint: process?.env?.REACT_APP_API_URL + '/auth/registrar',\n storageRefreshTokenKeyName: \"refreshToken\",\n storageTokenKeyName: \"accessToken\"\n // tokenType: \"Bearer\"\n}\n\nconst { jwt } = useJwt(authConfig)\n\nexport default jwt\n","// ** Redux Imports\nimport { createSlice } from '@reduxjs/toolkit'\n\n// ** ThemeConfig Import\nimport themeConfig from '@configs/themeConfig'\n\nexport const layoutSlice = createSlice({\n name: 'layout',\n initialState: {\n skin: themeConfig.layout.skin,\n isRTL: themeConfig.layout.isRTL,\n layout: themeConfig.layout.type,\n lastLayout: themeConfig.layout.type,\n footerType: themeConfig.layout.footer.type,\n navbarType: themeConfig.layout.navbar.type,\n menuHidden: themeConfig.layout.menu.isHidden,\n contentWidth: themeConfig.layout.contentWidth,\n menuCollapsed: themeConfig.layout.menu.isCollapsed,\n routerTransition: themeConfig.layout.routerTransition,\n navbarColor: themeConfig.layout.navbar.backgroundColor\n },\n reducers: {\n handleRTL: (state, action) => {\n state.isRTL = action.payload\n window.localStorage.setItem('direction', JSON.stringify(action.payload))\n },\n handleSkin: (state, action) => {\n state.skin = action.payload\n window.localStorage.setItem('skin', JSON.stringify(action.payload))\n },\n handleLayout: (state, action) => {\n state.layout = action.payload\n },\n handleFooterType: (state, action) => {\n state.footerType = action.payload\n },\n handleNavbarType: (state, action) => {\n state.navbarType = action.payload\n },\n handleMenuHidden: (state, action) => {\n state.menuHidden = action.payload\n },\n handleLastLayout: (state, action) => {\n state.lastLayout = action.payload\n },\n handleNavbarColor: (state, action) => {\n state.navbarColor = action.payload\n },\n handleContentWidth: (state, action) => {\n state.contentWidth = action.payload\n },\n handleMenuCollapsed: (state, action) => {\n state.menuCollapsed = action.payload\n window.localStorage.setItem('menuCollapsed', JSON.stringify(action.payload))\n },\n handleRouterTransition: (state, action) => {\n state.routerTransition = action.payload\n }\n }\n})\n\nexport const {\n handleRTL,\n handleSkin,\n handleLayout,\n handleLastLayout,\n handleMenuHidden,\n handleNavbarType,\n handleFooterType,\n handleNavbarColor,\n handleContentWidth,\n handleMenuCollapsed,\n handleRouterTransition\n} = layoutSlice.actions\n\nexport default layoutSlice.reducer\n","import { Ability } from '@casl/ability'\nimport { getAbilities } from './initialAbility'\n\n// Read ability from localStorage\n// * Handles auto fetching previous abilities if already logged in user\n// ? You can update this if you store user abilities to more secure place\n// ! Anyone can update localStorage so be careful and please update this\nconst userData = JSON.parse(localStorage.getItem('userData'))\nconst colaborador = JSON.parse(localStorage.getItem('colaborador'))\n\nconst rules = getAbilities(userData, colaborador)\n\nexport default new Ability(rules)\n","// ** React Imports\nimport { useState, useEffect } from 'react'\n\n// ** Third Party Components\nimport classnames from 'classnames'\n\n// ** Reactstrap Imports\nimport { Button } from 'reactstrap'\n\n// ** Styles\nimport './ripple-button.scss'\n\nconst RippleButton = ({ className, children, onClick, ...rest }) => {\n // ** States\n const [mounted, setMounted] = useState(false)\n const [isRippling, setIsRippling] = useState(false)\n const [coords, setCoords] = useState({ x: -1, y: -1 })\n\n // ** Toggle mounted on mount & unmount\n useEffect(() => {\n setMounted(true)\n return () => setMounted(false)\n }, [])\n\n // ** Check for coords and set ripple\n useEffect(() => {\n if (mounted) {\n if (coords.x !== -1 && coords.y !== -1) {\n setIsRippling(true)\n setTimeout(() => setIsRippling(false), 500)\n } else {\n setIsRippling(false)\n }\n }\n }, [coords])\n\n // ** Reset Coords on ripple end\n useEffect(() => {\n if (mounted) {\n if (!isRippling) setCoords({ x: -1, y: -1 })\n }\n }, [isRippling])\n\n return (\n {\n const rect = e.target.getBoundingClientRect()\n setCoords({ x: e.clientX - rect.left, y: e.clientY - rect.top })\n if (onClick) {\n onClick(e)\n }\n }}\n {...rest}\n >\n {children}\n {isRippling ? (\n \n ) : null}\n \n )\n}\n\n// ** PropTypes\nRippleButton.propTypes = {\n ...Button.propTypes\n}\n\nButton.Ripple = RippleButton\n","/*eslint-disable */\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n)\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker === null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch(error => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (response.status === 404 || (contentType !== null && contentType.indexOf('javascript') === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.')\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","// ** React Imports\nimport { Suspense, lazy } from 'react'\nimport ReactDOM from 'react-dom'\n\n// ** Redux Imports\nimport { Provider } from 'react-redux'\nimport { store } from './redux/store'\n\n// ** Intl & ThemeColors Context\nimport ability from './configs/acl/ability'\nimport { AbilityContext } from './utility/context/Can'\nimport { ToastContainer } from 'react-toastify'\nimport { ThemeContext } from './utility/context/ThemeColors'\nimport { GlobalLoaderContext } from './utility/context/GlobalLoader'\nimport { TeleatendimentoContext } from './utility/context/TeleatendimentoContext'\n\n// ** Spinner (Splash Screen)\nimport Spinner from './@core/components/spinner/Background-spinner'\n\n// ** Ripple Button\nimport './@core/components/ripple-button'\n\n// ** PrismJS\nimport 'prismjs'\nimport 'prismjs/themes/prism-tomorrow.css'\nimport 'prismjs/components/prism-jsx.min'\n\n// ** React Perfect Scrollbar\nimport 'react-perfect-scrollbar/dist/css/styles.css'\n\n// ** React Toastify\nimport '@styles/react/libs/toastify/toastify.scss'\n\n// ** React yup validator\nimport * as yup from 'yup'\n\n// ** Core styles\nimport './@core/assets/fonts/feather/iconfont.css'\nimport './@core/scss/core.scss'\nimport './assets/scss/style.scss'\n\n// ** Service Worker\nimport * as serviceWorker from './serviceWorker'\n\n// ** Google Login\nimport { GoogleOAuthProvider } from '@react-oauth/google'\n\nyup.setLocale({\n mixed: {\n required: '${path} é um campo obrigatório!',\n notType: '${path} é um campo obrigatório!'\n },\n string: {\n min: '${path} deve ter mais que ${min} caracteres!',\n max: '${path} deve ter no máximo ${max} caracteres!',\n email: '${path} deve ser um e-mail válido!'\n },\n});\n\n// ** Lazy load app\nconst LazyApp = lazy(() => import('./App'))\n\nReactDOM.render(\n \n }>\n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n)\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister()\n","const ComponentSpinner = props => {\n const { fixed, blank = false, size = false } = props\n\n return (\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default ComponentSpinner\n","import { Fragment } from 'react'\n\ntype CustomToastType = {\n title: string,\n message: string\n}\n\nconst CustomToast = ({title, message}: CustomToastType) => {\n\n return (\n \n
\n
\n
{title}
\n
\n
\n {message && {message}}\n
\n )\n}\n\nexport default CustomToast;","// ** Redux Imports\nimport { createSlice } from '@reduxjs/toolkit'\n\nexport const loaderSlice = createSlice({\n name: 'loader',\n initialState: {\n loading: false\n },\n reducers: {\n handleLoading: (state, action) => {\n state.loading = action.payload;\n }\n }\n})\n\nexport const {\n handleLoading\n} = loaderSlice.actions\n\nexport default loaderSlice.reducer\n","// ** React Imports\nimport { useState, createContext } from 'react'\n\n// ** Create Context\nconst GlobalLoader = createContext()\n\n// ** Componentes\nimport SpinnerComponent from '@components/spinner/Background-spinner'\nimport FallbackSpinnerComponent from '@components/spinner/Fallback-spinner'\n\nconst GlobalLoaderContext = ({ children }) => {\n // ** State\n const [is_loading, setIsLoading] = useState(false)\n const [is_block_loader_active, setIsBlockLoaderActive] = useState(false)\n\n return (\n \n {is_loading && }\n {is_block_loader_active && }\n
\n {children}\n
\n
\n ) \n}\n\nexport { GlobalLoader, GlobalLoaderContext }\n","// ** Redux Imports\nimport { createSlice, createAsyncThunk } from '@reduxjs/toolkit'\nimport { handleLoading } from '../../../redux/loader'\nimport { \n AtendimentoAtual, \n AtualizarAtendimento, \n AtualizarRespostaProntuario, \n CriarAtendimento, \n SalvarRespostaProntuario } from '../../../services/Atendimentos'\n\n\nexport const obterPorId = createAsyncThunk('atendimento/obter', async id => {\n const response = await AtendimentoAtual(id)\n return {\n anamnese: response.data?.anamnese,\n anamneseId: response.data?.anamneseId,\n anexosAtendimento: response.data?.anexosAtendimento,\n colaborador: response.data?.colaborador,\n colaboradorId: response.data?.colaboradorId,\n condutaAdotada: response.data?.condutaAdotada,\n condutaAdotadaId: response.data?.condutaAdotadaId,\n dataAtendimento: response.data?.dataAtendimento,\n dataFimAtendimento: response.data?.dataFimAtendimento,\n empresa: response.data?.empresa,\n empresaId: response.data?.empresaId,\n exameFisico: response.data?.exameFisico,\n exameFisicoId: response.data?.exameFisicoId,\n hipoteseDiagnostica: response.data?.hipoteseDiagnostica,\n hipoteseDiagnosticaId: response.data?.hipoteseDiagnosticaId,\n prescricao: response.data?.prescricao,\n prescricaoId: response.data?.prescricaoId,\n id: response.data?.id,\n paciente: response.data?.paciente,\n pacienteId: response.data?.pacienteId,\n procedimentosRealizados: response.data?.procedimentosRealizados,\n unidade: response.data?.unidade,\n unidadeId: response.data?.unidadeId\n }\n})\n\nexport const obterAtendimentoAtual = createAsyncThunk('atendimento/atender', async id => {\n const response = await AtendimentoAtual(id)\n return {\n anamnese: response.data?.anamnese,\n anamneseId: response.data?.anamneseId,\n anexosAtendimento: response.data?.anexosAtendimento,\n colaborador: response.data?.colaborador,\n colaboradorId: response.data?.colaboradorId,\n condutaAdotada: response.data?.condutaAdotada,\n condutaAdotadaId: response.data?.condutaAdotadaId,\n dataAtendimento: response.data?.dataAtendimento,\n dataFimAtendimento: response.data?.dataFimAtendimento,\n empresa: response.data?.empresa,\n empresaId: response.data?.empresaId,\n exameFisico: response.data?.exameFisico,\n exameFisicoId: response.data?.exameFisicoId,\n hipoteseDiagnostica: response.data?.hipoteseDiagnostica,\n hipoteseDiagnosticaId: response.data?.hipoteseDiagnosticaId,\n prescricao: response.data?.prescricao,\n prescricaoId: response.data?.prescricaoId,\n id: response.data?.id,\n paciente: response.data?.paciente,\n pacienteId: response.data?.pacienteId,\n procedimentosRealizados: response.data?.procedimentosRealizados,\n unidade: response.data?.unidade,\n unidadeId: response.data?.unidadeId\n }\n})\n\nexport const atualizar = createAsyncThunk('atendimento/atualizar', async (atendimento, { dispatch, getState }) => {\n const response = await AtualizarAtendimento(atendimento)\n await dispatch(obterAtendimentoAtual(atendimento?.id))\n return response.data\n})\n\nexport const criar = createAsyncThunk('atendimento/criar', async (atendimento, { dispatch, getState }) => {\n const response = await CriarAtendimento(atendimento)\n await dispatch(obterAtendimentoAtual(response?.data?.id))\n return response.data\n})\n\nexport const personalizado = createAsyncThunk('atendimento/personalizado', async (atendimento, { dispatch, getState }) => {\n const response = await SalvarRespostaProntuario(atendimento)\n await dispatch(obterAtendimentoAtual(response?.data?.atendimentoId))\n return response.data\n})\n\nexport const personalizado_atualizar = createAsyncThunk('atendimento/personalizado_atualizar', async (atendimento, { dispatch, getState }) => {\n const response = await AtualizarRespostaProntuario(atendimento)\n await dispatch(obterAtendimentoAtual(response?.data?.atendimentoId))\n return response.data\n})\n\nconst handleAtendimento = (state, action) => {\n localStorage.setItem('atendimento', JSON.stringify(action.payload))\n state.anamnese = action.payload.anamnese\n state.anamneseId = action.payload.anamneseId\n state.anexosAtendimento = action.payload.anexosAtendimento\n state.colaborador = action.payload.colaborador\n state.colaboradorId = action.payload.colaboradorId\n state.condutaAdotada = action.payload.condutaAdotada\n state.condutaAdotadaId = action.payload.condutaAdotadaId\n state.dataAtendimento = action.payload.dataAtendimento\n state.dataFimAtendimento = action.payload.dataFimAtendimento\n state.empresa = action.payload.empresa\n state.empresaId = action.payload.empresaId\n state.exameFisico = action.payload.exameFisico\n state.exameFisicoId = action.payload.exameFisicoId\n state.hipoteseDiagnostica = action.payload.hipoteseDiagnostica\n state.hipoteseDiagnosticaId = action.payload.hipoteseDiagnosticaId\n state.prescricao = action.payload.prescricao\n state.prescricaoId = action.payload.prescricaoId\n state.id = action.payload.id\n state.paciente = action.payload.paciente\n state.pacienteId = action.payload.pacienteId\n state.procedimentosRealizados = action.payload.procedimentosRealizados\n state.unidade = action.payload.unidade\n state.unidadeId = action.payload.unidadeId\n}\n\nconst initAtendimento = () => {\n const item = window.localStorage.getItem('atendimento')\n return item ? JSON.parse(item) : {\n anamnese: {},\n anamneseId: null,\n anexosAtendimento: [],\n colaborador: {},\n colaboradorId: null,\n condutaAdotada: {},\n condutaAdotadaId: null,\n dataAtendimento: null,\n dataFimAtendimento: null,\n empresa: {},\n empresaId: null,\n exameFisico: {},\n exameFisicoId: null,\n hipoteseDiagnostica: {},\n hipoteseDiagnosticaId: null,\n prescricao: {},\n prescricaoId: null,\n id: null,\n paciente: {},\n pacienteId: null,\n procedimentosRealizados: [],\n unidade: {},\n unidadeId: null,\n personalizados: []\n }\n}\n\nexport const atendimentoSlice = createSlice({\n name: 'atendimento',\n initialState: initAtendimento(),\n reducers: {\n handleFinalizarAtendimento: (state, action) => {\n localStorage.removeItem('atendimento')\n state.id = action.payload\n }\n },\n extraReducers: builder => {\n builder\n .addCase(obterPorId.fulfilled, (state, action) => {\n handleAtendimento(state, action)\n })\n .addCase(obterAtendimentoAtual.fulfilled, (state, action) => {\n handleAtendimento(state, action)\n })\n }\n})\n\nexport const { handleFinalizarAtendimento } = atendimentoSlice.actions\n\nexport default atendimentoSlice.reducer\n","import { obterApi } from \"./Api\"\n\nconst api = () => {\n return obterApi(process.env.REACT_APP_API_URL + '/Agenda')\n}\n\nexport const listarRecursosAgenda = async (idEmpresa) => {\n return api().get(`listarRecursos?idEmpresa=${idEmpresa}`)\n}\n\nexport const GraficoHomeAgendas = async (idUnidade) => {\n return api().get(`grafico?idUnidade=${idUnidade}`)\n}\n\nexport const atualizarRecurso = async (model) => {\n return api().post(`alterarRecurso`, model)\n}\n\nexport const cadastrarRecurso = async (model) => {\n return api().post(`salvarRecurso`, model)\n}\n\nexport const obterRecursoAgenda = async (id) => {\n return api().get(`obterRecurso?id=${id}`)\n}\n\nexport const situacaoRecursoAgenda = async (id, situacao) => {\n return api().get(`situacaoRecurso?id=${id}&situacao=${situacao}`)\n}\n\nexport const AgendarPaciente = async (model) => {\n return api().post(`salvar`, model)\n}\n\nexport const AtualizarCarteiraAgenda = async (carteiraId, agendaId) => {\n return api().get(`atualizar-carteira-agenda/${carteiraId}/${agendaId}`)\n}\n\nexport const AgendarPacienteListaEspera = async (model) => {\n return api().post(`agendar-lista-espera`, model)\n}\n\nexport const ExcluirEventoBloqueioAgenda = async (id) => {\n return api().get(`excluirEventoBloqueioAgenda?id=${id}`)\n}\n\nexport const AgendaPorAtendimento = async (id) => {\n return api().get(`agenda-atendimento/${id}`)\n}\n\nexport const ExcluirEventoBloqueioAgendaAllDay = async (idAgenda, idBloqueio) => {\n return api().get(`excluirEventoBloqueioAgendaAllDay/${idAgenda}/${idBloqueio}`)\n}\n\nexport const AlterarSituacaoAgenda = async (id, situacao) => {\n return api().get(`alterarSituacaoAgenda?id=${id}&situacao=${situacao}`)\n}\n\nexport const UpdateAgendaOnDragPaciente = async (model) => {\n return api().post(`atualizarOnDrag`, model)\n}\n\nexport const EnviarAvisoPorSMS = async (model) => {\n return api().post(`aviso-sms`, model)\n}\n\nexport const UpdateAgendaPaciente = async (model) => {\n return api().post(`atualizar`, model)\n}\n\nexport const CancelarAgendamento = async (id) => {\n return api().get(`cancelar?id=${id}`)\n}\n\nexport const AgendadosDoDia = async (model) => {\n return api().post(`agendados`, model)\n}\n\nexport const ChegadaPaciente = async (id) => {\n return api().get(`chegada?id=${id}`)\n}\n\nexport const MontarHorarios = async (model) => {\n return api().post(`gerarHorarios`, model)\n}\n\nexport const DiasBloqueadosAgenda = async (idColaborador, idUnidade) => {\n return api().get(`dias-em-bloqueio?idColaborador=${idColaborador}&idUnidade=${idUnidade}`)\n}\n\nexport const ConfiguracaoAtendimentoAgenda = async (idColaborador) => {\n return api().get(`listarDiasAtendimento?idColaborador=${idColaborador}`)\n}\n\nexport const AddDiasAtendimento = async (model) => {\n return api().post(`salvarDiasAtendimento`, model)\n}\n\nexport const AlterarDiasAtendimento = async (model) => {\n return api().post(`alterarDiasAtendimento`, model)\n}\n\nexport const ObterAgendasPorData = async (model) => {\n return api().post(`calendario`, model)\n}\n\nexport const ObterAgendasPorDataPesquisaPaciente = async (model) => {\n return api().post(`calendarioPorPaciente`, model)\n}\n\nexport const ListarTarefasPorUnidade = async (idUnidade) => {\n return api().get(`listarTarefasUnidade?idUnidade=${idUnidade}`)\n}\n\nexport const SalvarTarefa = async (model) => {\n return api().post(`salvarTarefaAgenda`, model)\n}\nexport const ListarTarefasPorColaborador = async (idColaborador) => {\n return api().get(`listarTarefasColaborador?idColaborador=${idColaborador}`)\n}\n\nexport const AlterarTarefa = async (model) => {\n return api().post(`alterarTarefaAgenda`, model)\n}\n\nexport const ObterTarefa = async (id) => {\n return api().get(`obterTarefaAgenda?id=${id}`)\n}\n\nexport const ExcluirTarefaAgenda = async (id) => {\n return api().get(`excluirTarefaAgenda?id=${id}`)\n}\n\nexport const ConcluirTarefa = async (id) => {\n return api().get(`concluirTarefaAgenda?id=${id}`)\n}\n\nexport const ConcluirTarefaAgenda = async (id) => {\n return api().get(`concluirTarefaAgenda?id=${id}`)\n}\n\nexport const DesConcluirTarefaAgenda = async (id) => {\n return api().get(`desConcluirTarefaAgenda?id=${id}`)\n}\n\n// label tarefasexport const ObterTarefa = async (id) => {\nexport const ObterLabelPorId = async (id) => {\n return api().get(`obterLabel?id=${id}`)\n}\nexport const ExcluirLabel = async (id) => {\n return api().get(`excluirLabel?id=${id}`)\n}\nexport const SalvarLabel = async (model) => {\n return api().post(`salvarLabel`, model)\n}\nexport const ListarLabelAtivas = async (idEmpresa) => {\n return api().get(`listarLabel?idEmpresa=${idEmpresa}`)\n}\nexport const LabelSidebar = async (idEmpresa) => {\n return api().get(`labelSidebar?idEmpresa=${idEmpresa}`)\n}\n\nexport const AtualizarLabel = async (model) => {\n return api().post(`atualizarLabel`, model)\n}\n\n// bloqueio de agenda\nexport const ObterBloqueioAgenda = async (id) => {\n return api().get(`obterBloqueioAgenda?id=${id}`)\n}\nexport const ExcluirBloqueioAgenda = async (id) => {\n return api().get(`excluirBloqueioAgenda?id=${id}`)\n}\nexport const SalvarBloqueioAgenda = async (model) => {\n return api().post(`salvarBloqueioAgenda`, model)\n}\nexport const ListarBloqueioUnidade = async (idUnidade) => {\n return api().get(`listarBloqueioUnidade?idUnidade=${idUnidade}`)\n}\nexport const ListarBloqueioColaborador = async (idColaborador) => {\n return api().get(`listarBloqueioColaborador?idColaborador=${idColaborador}`)\n}\nexport const AlterarBloqueioAgenda = async (model) => {\n return api().post(`alterarBloqueioAgenda`, model)\n}\nexport const BloqueiosAgendaPorData = async (model) => {\n return api().post(`calendario-bloqueios`, model)\n}\n\n//Configurações da agenda\n\nexport const ListarConfiguracoesAgenda = async (idColaborador, idUnidade) => {\n return api().get(`configuracoes/${idColaborador}/${idUnidade}`)\n}\n\nexport const EditarConfiguracaoAgenda = async (idColaborador, idUnidade, model) => {\n return api().put(`configurar/${idColaborador}/${idUnidade}`, model)\n}\n\nexport const ConfigurarAgenda = async (model) => {\n return api().post('configurar', model)\n}\n\nexport const ObterAgendaColaborador = async (data, isSocial, idColaborador) => {\n return api().get( `agenda-medica?data=${data}&social=${isSocial}&idColaborador=${idColaborador}`)\n}","import {obterApi} from \"./Api\"\n\nconst api = () => {\n return obterApi(process.env.REACT_APP_API_URL + '/ListaEspera')\n}\n\nexport const ListaEsperaPorUnidade = async (idUnidade) => {\n return api().get(`listarPorUnidade?idUnidade=${idUnidade}`)\n}\n\nexport const ListaEsperaPorColaborador = async (idColaborador) => {\n return api().get(`listarPorColaborador?idUnidade=${idColaborador}`)\n}\n\nexport const ObterListaEspera = async (id) => {\n return api().get(`obter/${id}`)\n}\n\nexport const SairDaListaEspera = async (id) => {\n return api().get(`sair/${id}`)\n}\n\nexport const ExcluirListaEspera = async (id) => {\n return api().delete(`excluir?id=${id}`)\n}\n\nexport const SalvarListaEspera = async (model) => {\n return api().post(`salvar`, model)\n}\n\nexport const AtualizarListaEspera = async (model) => {\n return api().post(`atualizar`, model)\n}","// ** Redux Imports\nimport { createSlice, createAsyncThunk } from '@reduxjs/toolkit'\n\nimport {\n AgendarPaciente,\n AlterarTarefa,\n CancelarAgendamento,\n ExcluirTarefaAgenda,\n ListarTarefasPorUnidade,\n MontarHorarios,\n ObterAgendasPorData,\n SalvarTarefa,\n UpdateAgendaPaciente,\n SalvarBloqueioAgenda,\n AgendarPacienteListaEspera,\n ExcluirEventoBloqueioAgenda,\n AlterarSituacaoAgenda,\n UpdateAgendaOnDragPaciente,\n ObterAgendasPorDataPesquisaPaciente,\n ExcluirEventoBloqueioAgendaAllDay\n} from '../../../services/Agenda'\nimport { AtualizarListaEspera, ExcluirListaEspera, ListaEsperaPorUnidade, SalvarListaEspera } from '../../../services/ListaEspera';\n\nexport const obterEventosPorData = createAsyncThunk('agenda/eventosPorData', async (model, { dispatch }) => {\n const result = await ObterAgendasPorData(model)\n return result.data;\n})\n\nexport const obterEventosPorDataPesquisa = createAsyncThunk('agenda/eventosPorDataPesquisa', async (model, { dispatch }) => {\n const result = await ObterAgendasPorDataPesquisaPaciente(model)\n return result.data;\n})\n\n\nexport const gerarHorarios = createAsyncThunk('agenda/gerarHorarios', async (model, { dispatch }) => {\n const result = await MontarHorarios(model)\n return result.data;\n})\n\nexport const obterListaEsperaPorUnidade = createAsyncThunk('agenda/obterListaEsperaPorUnidade', async (idUnidade) => {\n const result = await ListaEsperaPorUnidade(idUnidade)\n return result.data;\n})\n\nexport const listarTarefas = createAsyncThunk('agenda/listarTarefas', async (idUnidade, { dispatch }) => {\n const result = await ListarTarefasPorUnidade(idUnidade)\n dispatch(salvarUnidadeId(idUnidade))\n return result.data;\n})\n\nexport const salvarEvento = createAsyncThunk('agenda/salvarEvento', async (event, { dispatch, getState }) => {\n const result = await AgendarPaciente(event)\n const { agenda } = getState();\n await dispatch(obterEventosPorData(agenda?.modelEventosDataSelecionada))\n await dispatch(gerarHorarios(agenda?.modelHorariosDataSelecionada))\n return result.data;\n})\n\nexport const salvarEventoWaitList = createAsyncThunk('agenda/salvarEventoWaitList', async (event, { dispatch, getState }) => {\n const result = await AgendarPacienteListaEspera(event)\n const { agenda } = getState();\n await dispatch(obterEventosPorData(agenda?.modelEventosDataSelecionada))\n await dispatch(gerarHorarios(agenda?.modelHorariosDataSelecionada))\n return result.data;\n})\n\nexport const excluirEventoBloqueioAgenda = createAsyncThunk('agenda/excluirEventoBloqueioAgenda', async (idEvento, { dispatch, getState }) => {\n const result = await ExcluirEventoBloqueioAgenda(idEvento)\n const { agenda } = getState();\n await dispatch(obterEventosPorData(agenda?.modelEventosDataSelecionada))\n await dispatch(gerarHorarios(agenda?.modelHorariosDataSelecionada))\n return result.data;\n})\n\nexport const excluirEventoBloqueioAgendaAllDay = createAsyncThunk('agenda/excluirEventoBloqueioAgendaAllDay', async (model, { dispatch, getState }) => {\n const { idAgenda, idBloqueio } = model;\n const result = await ExcluirEventoBloqueioAgendaAllDay(idAgenda, idBloqueio)\n const { agenda } = getState();\n await dispatch(obterEventosPorData(agenda?.modelEventosDataSelecionada))\n await dispatch(gerarHorarios(agenda?.modelHorariosDataSelecionada))\n return result.data;\n})\n\nexport const alterarSituacaoAgenda = createAsyncThunk('agenda/alterarSituacaoAgenda', async (model, { dispatch, getState }) => {\n const result = await AlterarSituacaoAgenda(model.idAgenda, model.situacao)\n const { agenda } = getState();\n await dispatch(obterEventosPorData(agenda?.modelEventosDataSelecionada))\n await dispatch(gerarHorarios(agenda?.modelHorariosDataSelecionada))\n return result.data;\n})\n\n\nexport const atualizarEvento = createAsyncThunk('agenda/atualizarEvento', async (event, { dispatch, getState }) => {\n const result = await UpdateAgendaPaciente(event)\n const { agenda } = getState();\n await dispatch(obterEventosPorData(agenda?.modelEventosDataSelecionada))\n await dispatch(gerarHorarios(agenda?.modelHorariosDataSelecionada))\n return result.data;\n})\n\nexport const atualizarEventOnDrag = createAsyncThunk('agenda/atualizarEventOnDrag', async (event, { dispatch, getState }) => {\n const result = await UpdateAgendaOnDragPaciente(event)\n const { agenda } = getState();\n await dispatch(obterEventosPorData(agenda?.modelEventosDataSelecionada))\n await dispatch(gerarHorarios(agenda?.modelHorariosDataSelecionada))\n return result.data;\n})\n\nexport const removerEvento = createAsyncThunk('agenda/removerEvento', async (idEventos, { dispatch, getState }) => {\n const result = await CancelarAgendamento(idEventos)\n const { agenda } = getState();\n await dispatch(obterEventosPorData(agenda?.modelEventosDataSelecionada))\n await dispatch(gerarHorarios(agenda?.modelHorariosDataSelecionada))\n return result.data;\n})\n\nexport const adicionarListaEspera = createAsyncThunk('agenda/adicionarListaEspera', async (model, { dispatch, getState }) => {\n const result = await SalvarListaEspera(model)\n await dispatch(obterListaEsperaPorUnidade(model?.unidadeId))\n return result.data;\n})\n\nexport const atualizarListaEspera = createAsyncThunk('agenda/atualizarListaEspera', async (model, { dispatch, getState }) => {\n const result = await AtualizarListaEspera(model)\n await dispatch(obterListaEsperaPorUnidade(model?.unidadeId))\n return result.data;\n})\n\nexport const excluirListaEspera = createAsyncThunk('agenda/excluirListaEspera', async ({ id, unidadeId }, { dispatch, getState }) => {\n const result = await ExcluirListaEspera(id)\n await dispatch(obterListaEsperaPorUnidade(unidadeId))\n return result.data;\n})\n\nexport const adicionarTarefa = createAsyncThunk('agenda/addTarefa', async (model, { dispatch }) => {\n const result = await SalvarTarefa(model)\n await dispatch(listarTarefas(model.unidadeId))\n return result.data;\n\n})\n\nexport const atualizarTarefa = createAsyncThunk('agenda/atualizarTarefa', async (model, { dispatch }) => {\n const result = await AlterarTarefa(model)\n await dispatch(listarTarefas(model.unidadeId))\n return result.data;\n})\n\nexport const removerTarefa = createAsyncThunk('agenda/removerTarefa', async (id, { dispatch, getState }) => {\n const result = await ExcluirTarefaAgenda(id)\n const { agenda } = getState();\n await dispatch(listarTarefas(agenda?.unidadeId))\n return result.data;\n})\n\n// bloqueio\nexport const salvarBloqueio = createAsyncThunk('agenda/salvarBloqueio', async (event, { dispatch, getState }) => {\n const result = await SalvarBloqueioAgenda(event)\n const { agenda } = getState();\n await dispatch(obterEventosPorData(agenda?.modelEventosDataSelecionada))\n await dispatch(gerarHorarios(agenda?.modelHorariosDataSelecionada))\n return result.data;\n})\n\nexport const agendaSlice = createSlice({\n name: 'agenda',\n initialState: {\n modelHorariosDataSelecionada: {},\n modelEventosDataSelecionada: {},\n eventos: [],\n horarios: [],\n listaEspera: [],\n tarefas: [],\n unidadeId: '',\n selectedEvent: {},\n selectedTask: null,\n selectedCalendars: ['Personal', 'Business', 'Family', 'Holiday', 'ETC']\n },\n reducers: {\n selectEvent: (state, action) => {\n state.selectedEvent = action.payload\n },\n selectTask: (state, action) => {\n state.selectedTask = action.payload\n },\n salvarModelHorariosDataSelecionada: (state, action) => {\n state.modelHorariosDataSelecionada = action.payload\n },\n salvarModelEventosDataSelecionada: (state, action) => {\n state.modelEventosDataSelecionada = action.payload\n },\n salvarUnidadeId: (state, action) => {\n state.unidadeId = action.payload\n }\n },\n extraReducers: builder => {\n builder\n .addCase(obterEventosPorData.fulfilled, (state, action) => {\n state.eventos = action.payload\n })\n .addCase(obterEventosPorDataPesquisa.fulfilled, (state, action) => {\n state.eventos = action.payload\n })\n .addCase(gerarHorarios.fulfilled, (state, action) => {\n state.horarios = action.payload\n })\n .addCase(obterListaEsperaPorUnidade.fulfilled, (state, action) => {\n state.listaEspera = action.payload\n })\n .addCase(listarTarefas.fulfilled, (state, action) => {\n state.tarefas = action.payload\n })\n }\n})\n\nexport const { selectEvent, selectTask, salvarModelHorariosDataSelecionada, salvarModelEventosDataSelecionada, salvarUnidadeId } = agendaSlice.actions\n\nexport default agendaSlice.reducer\n","import {obterApi} from \"./Api\"\n\nconst api = () => {\n return obterApi(process.env.REACT_APP_API_URL + '/TeleAtendimento')\n}\n\n\nexport const criarSala = (model) => {\n return api().post(`criar-sala`, model)\n}\n\nexport const startStopRecord = (sid, record) => {\n //record = true || false;\n return api().put(`start-stop-record/${sid}?record=${record}`)\n}\n\nexport const encerrarSala = (sid) => {\n return api().post(`encerrar/${sid}`)\n}\n\nexport const getTokenPaciente = (roomName, pacienteNome) => {\n return api().get(`obter-token-paciente?roomName=${roomName}&pacienteNome=${pacienteNome}`)\n}","// ** React Imports\nimport { useState, createContext, useRef, useEffect, useCallback } from 'react'\nimport { toast } from 'react-toastify'\nimport { connect, createLocalTracks, LocalVideoTrack } from 'twilio-video'\n\nimport CustomToast from '@customComponents/CustomToast'\nimport { startStopRecord } from '@services/TeleAtendimento'\nimport { encerrarSala } from '../../services/TeleAtendimento'\n\n// ** Create Context\nconst Teleatendimento = createContext()\n\nconst TeleatendimentoContext = ({ children }) => {\n\n const timeRef = useRef()\n\n const localMedia = useRef()\n const remoteMedia = useRef()\n\n const doctorLocalMedia = useRef()\n const doctorRemoteMedia = useRef()\n const doctorScreenMedia = useRef()\n\n const [url, setUrl] = useState('')\n const [urlPaciente, setUrlPaciente] = useState('')\n const [roomUniqueName, setRoomUniqueName] = useState('')\n\n const [is_full_screen, setIsFullScreen] = useState(false)\n \n const [urlWhereby, setUrlWhereby] = useState('')\n const [urlPacienteWhereby, setUrlPacienteWhereby] = useState('')\n const [roomUniqueNameWhereby, setRoomUniqueNameWhereby] = useState('')\n const [activeRoomWhereby, setActiveRoomWhereby] = useState(null)\n const [meetingId, setMeetingId] = useState('')\n \n const [room, setRoom] = useState(null)\n const [token, setToken] = useState(null)\n \n const [timer, setTimer] = useState(0) \n const [activeRoom, setActiveRoom] = useState(null)\n const [is_room_disconnected, setIsRoomDisconnected] = useState(false)\n \n const [roomNameErr, setRoomNameErr] = useState(false)\n const [identity, setIdentity] = useState('')\n const [is_doctor, setIsDoctor] = useState(false)\n\n const [is_connecting_room, setIsConnectingRoom] = useState(false)\n\n const [local_video_track, setLocalVideoTrack] = useState(null)\n const [is_local_video_track_enabled, setIsLocalVideoTrackEnabled] = useState(false)\n \n const [local_audio_track, setLocalAudioTrack] = useState(null)\n const [is_local_audio_track_enabled, setIsLocalAudioTrackEnabled] = useState(false)\n\n const [local_screen_track, setLocalScreenTrack] = useState(null)\n const [is_local_screen_track_enabled, setIsLocalScreenTrackEnabled] = useState(false)\n const [is_remote_screen_enabled, setIsRemoteScreenEnabled] = useState(false)\n\n const [is_recording, setIsRecording] = useState(false)\n\n const [is_remote_media_audio_enabled, setIsRemoteMediaAudioEnabled] = useState(false)\n const [is_remote_media_video_enabled, setIsRemoteMediaVideoEnabled] = useState(false)\n\n const [screenMedia, setScreenMedia] = useState(null)\n\n const screenMediaRef = useCallback(node => {\n setScreenMedia(node);\n }, []);\n \n const startTimer = () => {\n const id = setInterval(() => {\n setTimer(prevState => prevState + 1000)\n }, 1000)\n timeRef.current = id\n } \n\n const disconnect = (setRoomDisconnection = true) => {\n onDisconect();\n encerrarVideo(setRoomDisconnection);\n }\n\n const encerrarVideo = async (setRoomDisconnection = true) => {\n try {\n const response = await encerrarSala(room?.sid)\n activeRoom.disconnect();\n if (setRoomDisconnection) setIsRoomDisconnected(true)\n clearRoom();\n clearTimer()\n } catch (error) {\n console.log('erro ao encerrar video', error)\n }\n }\n\n const clearRoom = () => {\n setActiveRoom(null)\n setLocalVideoTrack(null)\n setIsLocalVideoTrackEnabled(false)\n setLocalAudioTrack(null)\n setIsLocalAudioTrackEnabled(false)\n setRoom(null)\n setToken(null)\n }\n\n const onDisconect = () => {\n activeRoom.on('disconnected', room => {\n room.localParticipant.tracks.forEach(publication => {\n const track = publication.track;\n if (track.kind == 'video' || track.kind == 'audio') {\n track.detach().forEach(element => element.remove());\n track.stop();\n }\n publication.unpublish();\n });\n });\n // local_video_track.stop()\n // setLocalVideoTrack(null)\n // setIsLocalVideoTrackEnabled(false)\n\n // local_audio_track.stop()\n // setLocalAudioTrack(null)\n // setIsLocalAudioTrackEnabled(false)\n }\n \n const clearTimer = () => {\n clearInterval(timeRef.current)\n timeRef.current = null\n setTimer(0)\n }\n\n useEffect(() => {\n (async () => await joinRoom())()\n }, [room, token]) \n\n const joinRoom = async () => {\n setIsConnectingRoom(true)\n if (room && token) {\n if (!room.uniqueName.trim()) {\n setRoomNameErr(true)\n return\n }\n \n let connectOptions = {\n name: room.uniqueName\n }\n\n if (!local_audio_track && !local_video_track) {\n const tracks = await createTracks()\n if (tracks) {\n connectOptions.tracks = tracks\n }\n }\n else {\n connectOptions.tracks = [\n local_audio_track,\n local_video_track\n ]\n }\n\n try {\n const connected_room = await connect(token, connectOptions)\n \n if (connected_room) {\n roomJoined(connected_room)\n }\n } catch (error) {\n toast.error(\n \n )\n }\n }\n setIsConnectingRoom(false)\n }\n\n const createTracks = async () => {\n const tracks = await createLocalTracks({\n audio: true,\n video: {width: 640}\n })\n const newVideoTrack = tracks.find(track => track.kind === 'video')\n const newAudioTrack = tracks.find(track => track.kind === 'audio')\n if (newVideoTrack) {\n setLocalVideoTrack(newVideoTrack)\n setIsLocalVideoTrackEnabled(true)\n if (localMedia.current) {\n localMedia.current.innerHTML = ''\n localMedia.current.appendChild(newVideoTrack.attach())\n }\n if (doctorLocalMedia.current) {\n doctorLocalMedia.current.innerHTML = ''\n doctorLocalMedia.current.appendChild(newVideoTrack.attach())\n }\n }\n\n if (newAudioTrack) {\n setLocalAudioTrack(newAudioTrack)\n setIsLocalAudioTrackEnabled(true)\n }\n\n return tracks\n }\n\n const roomJoined = room => {\n setActiveRoom(room)\n startTimer()\n\n room.participants.forEach(participantConnected)\n\n room.on('participantConnected', participantConnected)\n\n room.on('participantDisconnected', participant => {\n console.log('on participantDisconnected', participant)\n })\n \n room.localParticipant.on('trackPublished', publication => {\n console.log(`Published LocalTrack: ${publication.track}`)\n })\n \n room.localParticipant.on('trackUnpublished', publication => {\n console.log(`Published LocalTrack: ${publication.track}`)\n })\n }\n\n const participantConnected = participant => {\n setIdentity(participant.identity)\n\n participant.tracks.forEach(trackPublished)\n \n participant.on('trackPublished', trackPublished)\n \n participant.on('trackUnpublished', publication => {\n console.log('on trackUnpublished')\n }) \n }\n\n const trackPublished = publication => {\n \n if (publication.isSubscribed) {\n participantSubscribe(publication.track) \n }\n\n publication.on('subscribed', participantSubscribe)\n \n publication.on('unsubscribed', participantUnsubscribe)\n } \n\n const participantSubscribe = track => {\n addTrackEvents(track)\n if (track.name === 'screen_share') {\n screenMedia?.current.appendChild(track.attach()) \n if (doctorScreenMedia.current) {\n doctorScreenMedia?.current.appendChild(track.attach()) \n }\n setIsRemoteScreenEnabled(true)\n }\n else {\n remoteMedia?.current.appendChild(track.attach()) \n if (doctorRemoteMedia.current) {\n doctorRemoteMedia?.current.appendChild(track.attach()) \n }\n }\n\n if (track.kind === 'audio' && track.isEnabled) {\n setIsRemoteMediaAudioEnabled(true)\n } \n if (track.kind === 'video' && track.isEnabled) {\n setIsRemoteMediaVideoEnabled(true)\n } \n }\n\n const participantUnsubscribe = track => {\n if (track.name === 'screen_share') {\n setIsRemoteScreenEnabled(false)\n screenMedia.current.innerHTML = ''\n \n if (doctorScreenMedia.current) {\n doctorScreenMedia.current.innerHTML = ''\n }\n } else {\n remoteMedia.current.innerHTML = ''\n if (doctorRemoteMedia.current) {\n doctorRemoteMedia.current.innerHTML = ''\n }\n setIsRemoteMediaVideoEnabled(false)\n }\n }\n\n const addTrackEvents = track => {\n track.on('disabled', (track) => {\n if (track.kind === 'audio') {\n setIsRemoteMediaAudioEnabled(false)\n }\n if (track.kind === 'video') {\n setIsRemoteMediaVideoEnabled(false)\n }\n })\n track.on('enabled', (track) => {\n if (track.kind === 'audio') {\n setIsRemoteMediaAudioEnabled(true)\n }\n if (track.kind === 'video') {\n setIsRemoteMediaVideoEnabled(true)\n }\n }) \n }\n\n const toggleVideoTrack = () => {\n if (activeRoom) {\n activeRoom.localParticipant.videoTracks.forEach(publication => {\n if (publication.track.isEnabled) {\n publication.track.disable()\n setIsLocalVideoTrackEnabled(false)\n } else {\n publication.track.enable()\n setIsLocalVideoTrackEnabled(true)\n }\n })\n } else if (local_video_track) {\n if (local_video_track.isEnabled) {\n local_video_track.disable()\n setIsLocalVideoTrackEnabled(false)\n }\n else {\n local_video_track.enable()\n setIsLocalVideoTrackEnabled(true)\n }\n }\n }\n\n const toggleAudioTrack = () => {\n if (activeRoom) {\n activeRoom.localParticipant.audioTracks.forEach(publication => {\n if (publication.track.isEnabled) {\n publication.track.disable()\n setIsLocalAudioTrackEnabled(false)\n } else {\n publication.track.enable()\n setIsLocalAudioTrackEnabled(true)\n }\n }) \n } else if (local_audio_track) {\n if (local_audio_track.isEnabled) {\n local_audio_track.disable()\n setIsLocalAudioTrackEnabled(false)\n } else {\n local_audio_track.enable()\n setIsLocalAudioTrackEnabled(true)\n }\n }\n } \n\n const addVideoTracksFromActiveRoom = activeRoom => {\n activeRoom.participants.forEach(participant => {\n participant.tracks.forEach(track => {\n if (track.kind === 'video') {\n if (track.trackName === 'screen_share') {\n screenMedia.current.innerHTML = ''\n screenMedia.current.appendChild(track.track.attach())\n \n if (doctorScreenMedia.current) {\n doctorScreenMedia.current.innerHTML = ''\n doctorScreenMedia.current.appendChild(track.track.attach())\n }\n } else {\n remoteMedia.current.innerHTML = ''\n remoteMedia.current.appendChild(track.track.attach())\n \n if (doctorRemoteMedia.current) {\n doctorRemoteMedia.current.innerHTML = ''\n doctorRemoteMedia.current.appendChild(track.track.attach())\n }\n }\n }\n })\n })\n \n activeRoom.localParticipant.tracks.forEach(track => {\n if (track.kind === 'video') {\n if (track.trackName === 'screen_share') {\n screenMedia.current.innerHTML = ''\n screenMedia.current.appendChild(track.track.attach())\n \n if (doctorScreenMedia.current) {\n doctorScreenMedia.current.innerHTML = ''\n doctorScreenMedia.current.appendChild(track.track.attach())\n }\n } else {\n localMedia.current.innerHTML = ''\n localMedia.current.appendChild(track.track.attach())\n\n if (doctorLocalMedia.current) {\n doctorLocalMedia.current.innerHTML = ''\n doctorLocalMedia.current.appendChild(track.track.attach())\n }\n }\n }\n })\n }\n\n const changeDoctorVideoRefs = is_full_screen => {\n if (activeRoom && is_doctor) {\n if (is_full_screen) {\n doctorLocalMedia.current.innerHTML = ''\n doctorRemoteMedia.current.innerHTML = ''\n activeRoom.localParticipant.videoTracks.forEach(publication => {\n localMedia.current.innerHTML = ''\n localMedia.current.appendChild(publication.track.attach())\n })\n activeRoom.localParticipant.audioTracks.forEach(publication => {\n localMedia.current.appendChild(publication.track.attach())\n }) \n activeRoom.participants.videoTracks?.forEach(publication => {\n remoteMedia.current.innerHTML = ''\n remoteMedia.current.appendChild(publication.track.attach())\n })\n activeRoom.participants.audioTracks?.forEach(publication => {\n remoteMedia.current.appendChild(publication.track.attach())\n }) \n }\n else {\n localMedia.current.innerHTML = ''\n remoteMedia.current.innerHTML = ''\n activeRoom.localParticipant.videoTracks.forEach(publication => {\n doctorLocalMedia.current.innerHTML = ''\n doctorLocalMedia.current.appendChild(publication.track.attach())\n })\n activeRoom.localParticipant.audioTracks.forEach(publication => {\n doctorLocalMedia.current.appendChild(publication.track.attach())\n }) \n activeRoom.participants.videoTracks?.forEach(publication => {\n doctorRemoteMedia.current.innerHTML = ''\n doctorRemoteMedia.current.appendChild(publication.track.attach())\n })\n activeRoom.participants.audioTracks?.forEach(publication => {\n doctorRemoteMedia.current.appendChild(publication.track.attach())\n }) \n }\n }\n }\n\n const shareScreen = async () => {\n try {\n const stream = await navigator.mediaDevices.getDisplayMedia()\n\n const screen_track = new LocalVideoTrack(stream.getTracks()[0], {name:'screen_share'})\n activeRoom.localParticipant.publishTrack(screen_track)\n screenMedia.current.appendChild(screen_track.attach())\n\n if (doctorScreenMedia.current) {\n doctorScreenMedia.current.appendChild(screen_track.attach())\n }\n setLocalScreenTrack(screen_track)\n setIsLocalScreenTrackEnabled(true)\n screen_track.mediaStreamTrack.onended = () => disableScreenShare(screen_track)\n\n } catch (error) {\n if (error.message === 'Permission denied') {\n console.log(error)\n } else {\n toast.error(\n \n )\n }\n }\n }\n\n const disableScreenShare = screen_track => {\n if (screen_track) {\n activeRoom.localParticipant.unpublishTrack(screen_track)\n screen_track.stop()\n } else {\n activeRoom.localParticipant.unpublishTrack(local_screen_track)\n local_screen_track.stop()\n }\n setLocalScreenTrack(null)\n setIsLocalScreenTrackEnabled(false)\n \n screenMedia.current.innerHTML = ''\n if (doctorScreenMedia.current) {\n doctorScreenMedia.current.innerHTML = ''\n }\n }\n\n const record = () => {\n //setIsRecording(true)\n startStop(true);\n }\n\n const stopRecord = () => {\n //setIsRecording(false)\n startStop(false)\n }\n\n const startStop = async (record) => {\n try {\n const response = await startStopRecord(room?.sid, record)\n if (response.status === 200) {\n setIsRecording(record)\n }\n } catch (error) {\n setIsRecording(false)\n }\n }\n\n return (\n \n {children}\n \n ) \n}\n\nexport { Teleatendimento, TeleatendimentoContext }\n","// ** Imports createContext function\nimport { createContext } from 'react'\n\n// ** Imports createContextualCan function\nimport { createContextualCan } from '@casl/react'\n\n// ** Create Context\nexport const AbilityContext = createContext()\n\n// ** Init Can Context\nexport const Can = createContextualCan(AbilityContext.Consumer)\n","// ** Redux Imports\nimport { createSlice } from '@reduxjs/toolkit'\n\nexport const registroPlataformaSlice = createSlice({\n name: 'registroPlataforma',\n initialState: {\n \n dadosMedico: {\n nome: '',\n email: '',\n codigoPais: '',\n telefone: '',\n sexo: '',\n crm: '',\n estado: '',\n especialidade: '',\n nomeClinica: '',\n password: '',\n confirmPassword: '',\n cienteRegistroInvalido: false\n },\n\n dadosOutro: {\n nome: '',\n email: '',\n codigoPais: '',\n telefone: '',\n nomeClinica: '',\n funcao: '',\n password: '',\n confirmPassword: '' \n },\n tipoUsuario: '',\n tokenValidado: false\n },\n reducers: {\n gravarDadosMedico: (state, action) => {\n state.dadosMedico = action.payload;\n },\n gravarDadosOutro: (state, action) => {\n state.dadosOutro = action.payload;\n },\n selecionarTipoUsuario: (state, action) => {\n state.tipoUsuario = action.payload;\n },\n gravarTokenValidado: (state, action) => {\n state.tokenValidado = action.payload?? false;\n }\n }\n})\n\nexport const {\n gravarDadosMedico,\n gravarDadosOutro,\n selecionarTipoUsuario,\n gravarTokenValidado\n} = registroPlataformaSlice.actions\n\nexport default registroPlataformaSlice.reducer\n"],"sourceRoot":""}