{"version":3,"sources":["imgs/termometro/termometro-20-30.png","usuarios/usuario.component.js","usuarios/usuarioedit.component.js","parametros/parametro.component.js","parametros/parametroedit.component.js","utils/masks.js","imgs/logo branco png.png","_components/appbarvisualization.js","visualization/visualization.component.js","visualization/GoogleMap.js","visualization/markerInfoWindow.component.js","imgs/rosa.png","imgs/android-app.png","imgs/seta.png","App.js","imgs/imagem1.png","imgs/estacoes.PNG","home/home.component.js","pagamentos/pagamento.component.js","recebimentos/recebimento.component.js","orientacoes/orientacao.component.js","_components/responsiveDrawer.js","imgs/index.js","imgs/Davis Vantage Pro 2.jpg","imgs/Davis Vantage Vue.jpg","imgs/Weatherlink Live.jpg","imgs/Wifilogger.jpg","imgs/WS-2902.jpg","imgs/Wrong1.png","imgs/Wrong2.png","imgs/maxresdefault.jpg","imgs/6250-6357_1400x500_VV_BradHickman.jpg","imgs/Cenario ideal DAVIS VANTAGE PRO 2.jpg","imgs/Cenario area urbana DAVIS VANTAGE PRO 2.jpg","imgs/021-640x385-640x385.jpg","imgs/WhatsApp Image 2020-05-28 at 17.15.11.jpeg","imgs/94138758_3604637852885376_3822128711386267648_o.jpg","_reducers/auth.reducer.js","_reducers/cidade.reducer.js","_reducers/estacao.reducer.js","_reducers/estado.reducer.js","_reducers/fonte.reducer.js","_reducers/pagamento.reducer.js","_reducers/pais.reducer.js","_reducers/parametro.reducer.js","_reducers/usuario.reducer.js","_reducers/visualization.reducer.js","_reducers/index.js","index.js","_components/PrivateRoute.jsx","_components/appbar.js","_helpers/history.js","_components/nav.js","login/cadastro.component.js","login/login.component.js","login/passwordReset.component.js","login/requestPasswordReset.component.js","_services/auth.service.js","_services/crud.service.js","_actions/auth.actions.js","_actions/checkout.actions.js","_actions/cidade.actions.js","_actions/estacao.actions.js","_actions/estado.actions.js","_actions/fonte.actions.js","_actions/pagamento.actions.js","_actions/parametro.actions.js","_actions/usuario.actions.js","_actions/visualization.actions.js","config/config.js","imgs/termometro/termometro-0-10.png","estacoes/estacao.component.js","estacoes/estacaoedit.component.js","estacoes/minhaEstacao.component.js","imgs/termometro/termometro-10-20.png"],"names":["module","exports","Usuario","state","isMobile","window","innerWidth","throttledHandleWindowResize","throttle","setState","forceUpdate","handleClick","event","id","dispatch","props","usuarioAction","deleteUsuarioById","this","getUsuario","addEventListener","classes","usuario","className","root","appFrame","style","display","content","toolbar","Grid","container","spacing","item","xs","justify","Typography","variant","Button","color","newButton","component","onClick","history","push","TableContainer","Paper","Table","table","TableHead","TableRow","TableCell","TableBody","map","n","key","scope","nome","email","phoneMask","telefone","IconButton","button","aria-label","Component","connectedUsuarioPage","withRouter","connect","pure","withStyles","theme","flexGrow","zIndex","overflow","position","width","appBar","marginLeft","marginRight","drawerPaper","mixins","backgroundColor","palette","background","default","padding","unit","paper","boxShadow","shadows","UsuarioEdit","handleChange","prop","onChangeProps","params","match","getUsuarioById","clear","Swal","fire","icon","title","text","senha","payload","split","join","replace","papel","log","editUsuarioInfo","createUsuario","InsertText","EditText","SegHeader","sm","contentRoot","elevation","gridItem","TextField","label","textField","value","onChange","margin","fullWidth","inputProps","maxLength","type","submitButton","connectedUsuarioEditPage","gutters","paddingTop","paddingBottom","alignSelf","Parametro","parametroAction","deleteParametroById","getParametro","parametro","chave","valor","descricao","connectedParametroPage","ParametroEdit","getParametroById","editParametroInfo","createParametro","multiline","connectedParametroEditPage","undefined","ReactGA","initialize","pageview","PermanentDrawer","alignContent","href","src","require","height","alt","logo","loginButton","open","React","connectedVisualizationPage","marginBottom","paperContainer","backgroundImage","Image","paperOpacity","fontWeight","borderRadius","mapFrame","clearButton","useDispatch","useState","selectedEstado","setSelectedEstado","selectedCidade","setSelectedCidade","selectedFonte","setSelectedFonte","selectedSituacao","setSelectedSituacao","selectedColumn","setSelectedColumn","selectedOrder","setSelectedOrder","view","setView","setIsMobile","isTabActive","setIsTabActive","onfocus","onblur","useEffect","refreshVisualization","setInterval","a","e","console","estadoAction","getEstadoSelect","cidadeAction","getCidadeSelect","fonteAction","getFonteSelect","authentication","user","usuarioId","pagamentoAction","getPagamentoAtivoUsuarioById","visualizationAction","getVisualization","pagamento","visualization","estacoes","estacoesFavoritas","showAlertPagamento","html","then","result","dismiss","handleClickFav","estacaoAction","favEstacao","handleClickUnfav","unfavEstacao","isFav","ret","length","forEach","fav","renderOptionsCidade","cidade","p","i","includes","estadoId","MenuItem","name","getNested","obj","reduce","myCompare","b","col","colAtiva","noValue","isNaN","localeCompare","sort","disabled","md","lg","FormControl","InputLabel","htmlFor","Select","target","filter","input","Input","multiple","estado","paisId","fonte","ButtonGroup","Tooltip","align","cidadeId","fonteId","ativa","toString","tempScale","tempValue","parseFloat","temperatura","temperaturaMinima","temperaturaMaxima","scaleNumber","Math","round","bgcolor","seconds","Date","dataAtualizacao","getTime","img","imgTermometro_0_10","imgTermometro_10_20","imgTermometro_20_30","toFixed","po","ventoVelocidade","rajadaVentoMaxima","totalChuvaDia","styles","transform","ventoGrau","transformOrigin","location","uf","cidadeNome","apelido","substring","link","codigo","rel","ura","chuva","pressao","format","val","floor","slice","hours","minutes","displayTime","estacaoFavorita","Skeleton","marginTop","Wrapper","styled","main","GoogleMap","children","bootstrapURLKeys","process","defaultProps","mapStyles","InfoWindow","place","bottom","left","fontSize","atualizacao","Marker","show","border","cursor","verticalAlign","connectedMarkerInfoWindowPage","places","setPlaces","defaultZoom","defaultCenter","onChildClick","latLon","precision","multiplier","pow","objPlace","lat","x","lng","y","config","path","__dirname","createMuiTheme","primary","contrastText","secondary","typography","fontFamily","App","exact","Home","Login","Cadastro","PasswordReset","RequestPasswordReset","MinhaEstacao","Estacao","EstacaoEdit","Pagamento","Recebimento","Orientacao","Visualization","connectedHomePage","submitted","setTimeout","checkoutActions","createPreference","getPagamentoUsuarioById","dataInicioValidade","dataFimValidade","toLocaleString","navigator","language","minimumFractionDigits","dataPagamento","status","payButton","connectedPagamentoPage","getPagamento","connectedRecebimentoPage","imageContent","Link","connectedOrientacaoPage","maxWidth","ResponsiveDrawer","logout","authActions","mobileOpen","handleDrawerToggle","drawer","edge","smUp","implementation","anchor","onClose","ModalProps","keepMounted","closeMenuButton","xsDown","common","black","breakpoints","up","flexShrink","token","localStorage","getItem","auth","JSON","parse","initialState","loggedIn","ibge","estacao","aprovada","latitude","longitude","ddd","pais","url","formaPagamento","transacao","nomePt","iso2","iso3","bacen","rootReducer","combineReducers","action","loggingIn","store","createStore","reducer","applyMiddleware","thunk","ReactDOM","render","document","getElementById","PrivateRoute","rest","Route","Redirect","to","pathname","from","classNames","createBrowserHistory","Navigation","repeatPassword","handleChangeRepeatPassword","handleSubmit","ValidatorForm","addValidationRule","Container","CssBaseline","backButton","goBack","form","ref","onSubmit","autoComplete","validators","errorMessages","submit","connectedCadastroPage","flexDirection","alignItems","avatar","handleChangeBox","checked","username","password","login","showPassword","formData","image","square","Avatar","FormControlLabel","control","Checkbox","connectedLoginPage","Background","backgroundRepeat","backgroundSize","backgroundPosition","handleChangePassword","passwordReset","query","URLSearchParams","search","substr","indexOf","decodeURIComponent","connectedPasswordResetPage","requestPasswordReset","connectedRequestPasswordResetPage","authService","post","apiEndpoint","axios","baseUrl","response","catch","err","postWithToken","options","headers","crudService","get","getOptions","removeItem","put","deleteDetail","delete","data","setItem","stringify","lotes","statusText","preference","initPoint","getCidade","changeCidadesList","getEstacao","changeEstacoesList","getEstacaoById","_id","getEstacaoUsuarioById","handleOnChangeProps","editEstacaoInfo","request","responseText","createEstacao","testEstacao","deleteEstacaoById","buttons","showCancelButton","confirmButtonText","cancelButtonText","dangerMode","heightAuto","willDelete","getEstado","changeEstadosList","getFonte","changeFontesList","getFonteById","editFonteInfo","createFonte","deleteFonteById","changePagamentosList","changeUsuariosList","getUsuarioSelect","accept","situacao","lassName","connectedEstacaoPage","handleChangeChecked","renderOptionsEstado","dataValidadeToken","handleChangeSelectedFonte","renderOptionsFonte","handleChangeSelectedUsuario","renderOptionsUsuario","autocomplete","FormHelperText","handleChangeSelectedEstado","handleChangeSelectedCidade","Switch","connectedEstacaoEditPage","connectedMinhaEstacaoPage"],"mappings":"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","file":"static/js/main.60cb53a3.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAZCAYAAAAIcL+IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEESURBVDiN3ZMhS0NhGIWfOxYsS/oDFuwia7bN5A0GwbS6fzDz2N9YstkmIls3mIbRNtcGhrXhEIbwGHwvXN2H1+yBE95zDu/7vXzfBwE1U3vqU7CnZvyEmqtL9TK4VPNUcKL2S3VfnRR1rZQ9BBalehHaTvBX/DlYT5z1DGgA26qOo2Dl6PeUngoarAwm8f+CcRtNYFXyVkAzPFBb6lrtqsfqs/oSeje8VqaOgA/gDrgH9qLjFrgAcqCOOlfP1Wt3cRPevMbXS1kD+4kdDsJr1IAZcArcJoLj8GaoHXWjHsU/eVAf1atYbqN2is2H6ps6UE+Cg9CG32aobXWqvganarvwPwHu0/Vi+vxR5QAAAABJRU5ErkJggg==\"","import { connect } from 'react-redux';\r\nimport { usuarioAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Nav from '../_components/nav';\r\nimport { Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { history } from '../_helpers';\r\nimport { phoneMask } from '../utils';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Usuario extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.getUsuario());\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (event, id) => {\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.deleteUsuarioById(id));\r\n };\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { usuario } = this.props.usuario;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Usuários'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n E-mail\r\n Telefone\r\n Ações\r\n \r\n \r\n \r\n {\r\n usuario.map(n => {\r\n return (\r\n \r\n \r\n {n.nome}\r\n \r\n {n.email}\r\n {phoneMask(n.telefone)}\r\n \r\n history.push(`/usuario/${n.id}`)}>\r\n \r\n \r\n this.handleClick(event, n.id)}>\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nUsuario.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n usuario: state.usuario\r\n };\r\n}\r\nconst connectedUsuarioPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Usuario)));\r\nexport { connectedUsuarioPage as Usuario };","import React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Nav from '../_components/nav';\r\nimport { Paper, Grid, Button, TextField, Typography } from '@material-ui/core';\r\nimport { connect } from 'react-redux';\r\nimport { usuarioAction } from '../_actions';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n contentRoot: {\r\n ...theme.mixins.gutters(),\r\n paddingTop: theme.spacing.unit * 2,\r\n paddingBottom: theme.spacing.unit * 2,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n submitButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass UsuarioEdit extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n handleChange = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.onChangeProps(prop, event));\r\n };\r\n\r\n componentDidMount() {\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n if (params.id) {\r\n dispatch(usuarioAction.getUsuarioById(params.id));\r\n } else {\r\n dispatch(usuarioAction.clear());\r\n }\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n handleClick(event) {\r\n\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n\r\n if (this.props.usuario.email == null || this.props.usuario.email == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um E-mail válido!'\r\n })\r\n } else if (this.props.usuario.nome == null || this.props.usuario.nome == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Nome válido!'\r\n })\r\n } else if (this.props.usuario.senha == null || this.props.usuario.senha == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Senha válida!'\r\n })\r\n } else {\r\n\r\n let payload = {\r\n id: params.id,\r\n email: this.props.usuario.email,\r\n nome: this.props.usuario.nome,\r\n senha: this.props.usuario.senha,\r\n telefone: this.props.usuario.telefone.split(' ').join('').replace(/[()-]/g, ''),\r\n papel: 'usuario',\r\n log: this.props.usuario.log\r\n }\r\n\r\n if (params.id) {\r\n dispatch(usuarioAction.editUsuarioInfo(params.id, payload));\r\n } else {\r\n dispatch(usuarioAction.createUsuario(payload));\r\n }\r\n\r\n }\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { match: { params } } = this.props;\r\n function InsertText(props) {\r\n return {'Novo Usuário'};\r\n }\r\n\r\n function EditText(props) {\r\n return {'Editar Usuário'};\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return ;\r\n }\r\n return ;\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nUsuarioEdit.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\n\r\nconst connectedUsuarioEditPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(UsuarioEdit)));\r\nexport { connectedUsuarioEditPage as UsuarioEdit };","import { connect } from 'react-redux';\r\nimport { parametroAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Nav from '../_components/nav';\r\nimport { Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { history } from '../_helpers';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Parametro extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n dispatch(parametroAction.getParametro());\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (event, id) => {\r\n const { dispatch } = this.props;\r\n dispatch(parametroAction.deleteParametroById(id));\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { parametro } = this.props.parametro;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Parâmetros'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n \r\n \r\n \r\n Chave\r\n Valor\r\n Descrição\r\n Ações\r\n \r\n \r\n \r\n {\r\n parametro.map(n => {\r\n return (\r\n \r\n \r\n {n.chave}\r\n \r\n {n.valor}\r\n {n.descricao}\r\n \r\n history.push(`/parametro/${n.id}`)}>\r\n \r\n \r\n this.handleClick(event, n.id)}>\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nParametro.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n parametro: state.parametro\r\n };\r\n}\r\nconst connectedParametroPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Parametro)));\r\nexport { connectedParametroPage as Parametro };","import React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Nav from '../_components/nav';\r\nimport { Paper, Grid, Button, TextField, Typography } from '@material-ui/core';\r\nimport { connect } from 'react-redux';\r\nimport { parametroAction } from '../_actions';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n contentRoot: {\r\n ...theme.mixins.gutters(),\r\n paddingTop: theme.spacing.unit * 2,\r\n paddingBottom: theme.spacing.unit * 2,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n submitButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass ParametroEdit extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n\r\n handleChange = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(parametroAction.onChangeProps(prop, event));\r\n };\r\n\r\n\r\n componentDidMount() {\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n if (params.id) {\r\n dispatch(parametroAction.getParametroById(params.id));\r\n } else {\r\n dispatch(parametroAction.clear());\r\n }\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n handleClick(event) {\r\n\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n\r\n if (this.props.parametro.chave == null || this.props.parametro.chave == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Chave válida!'\r\n })\r\n } else if (this.props.parametro.valor == null || this.props.parametro.valor == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Valor válido!'\r\n })\r\n } else if (this.props.parametro.descricao == null || this.props.parametro.descricao == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Descrição válida'\r\n })\r\n } else {\r\n\r\n let payload = {\r\n id: params.id,\r\n chave: this.props.parametro.chave,\r\n valor: this.props.parametro.valor,\r\n descricao: this.props.parametro.descricao\r\n }\r\n\r\n if (params.id) {\r\n dispatch(parametroAction.editParametroInfo(params.id, payload));\r\n } else {\r\n dispatch(parametroAction.createParametro(payload));\r\n }\r\n\r\n }\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { match: { params } } = this.props;\r\n function InsertText(props) {\r\n return {'Novo Parâmetro'};\r\n }\r\n\r\n function EditText(props) {\r\n return {'Editar Parâmetro'};\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return ;\r\n }\r\n return ;\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nParametroEdit.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\n\r\nconst connectedParametroEditPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(ParametroEdit)));\r\nexport { connectedParametroEditPage as ParametroEdit };","export const slugMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .normalize('NFD')\r\n .replace(/(^-+|-+$)/, '') // Remove hífens extras do final ou do inicio da string\r\n .replace(/[\\u0300-\\u036f]/g, '') // Remove acentos\r\n .replace(/([^\\w]+|\\s+)/g, '-') // Substitui espaço e outros caracteres por hífen\r\n .replace(/\\-\\-+/g, '-') // Substitui multiplos hífens por um único hífen\r\n .toLowerCase() //tudo em letra minuscula\r\n }\r\n}\r\n\r\nexport const cpfCnpjMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n if (value.length === 14 && value.includes('-')) {\r\n return cpfMask(value)\r\n }\r\n if (value.length >= 14) {\r\n return cnpjMask(value)\r\n } else {\r\n return cpfMask(value)\r\n }\r\n }\r\n}\r\n\r\nexport const cpfMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '') // substitui qualquer caracter que nao seja numero por nada\r\n .replace(/(\\d{3})(\\d)/, '$1.$2') // captura 2 grupos de numero o primeiro de 3 e o segundo de 1, apos capturar o primeiro grupo ele adiciona um ponto antes do segundo grupo de numero\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d{1,2})/, '$1-$2')\r\n .replace(/(-\\d{2})\\d+?$/, '$1') // captura 2 numeros seguidos de um traço e não deixa ser digitado mais nada\r\n }\r\n}\r\nexport const cnpjMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1/$2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2')\r\n .replace(/(-\\d{2})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const phoneMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '($1) $2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2')\r\n .replace(/(\\d{4})-(\\d)(\\d{4})/, '$1$2-$3')\r\n .replace(/(-\\d{4})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const cepMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{5})(\\d)/, '$1-$2')\r\n .replace(/(-\\d{3})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const pisMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{5})(\\d)/, '$1.$2')\r\n .replace(/(\\d{5}\\.)(\\d{2})(\\d)/, '$1$2-$3')\r\n .replace(/(-\\d{1})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const dataMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '$1/$2')\r\n .replace(/(\\d{2})(\\d)/, '$1/$2')\r\n .replace(/(\\d{2})(\\d{2})$/, '$1$2')\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/logo branco png.4bc68a73.png\";","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { AppBar, Tooltip, Toolbar, Grid, Button, Link } from '@material-ui/core';\r\nimport { history } from '../_helpers';\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport WhatsAppIcon from '@material-ui/icons/WhatsApp';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ReactGA from 'react-ga';\r\nimport classNames from 'classnames';\r\n\r\nconst trackingId = \"UA-147655872-1\"; // Replace with your Google Analytics tracking ID\r\nReactGA.initialize(trackingId);\r\nReactGA.pageview('/visualization');\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar, \r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n loginButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass PermanentDrawer extends React.Component {\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"logo\"\r\n \r\n \r\n \r\n \r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n window.open('https://wa.me/555199986571', '_blank')}>\r\n \r\n \r\n \r\n \r\n window.open(\"mailto:contato@estacoesdobrasil.com.br\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/**/} \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nPermanentDrawer.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nexport default withStyles(styles)(PermanentDrawer);","import { connect, useDispatch } from \"react-redux\";\r\nimport { visualizationAction, estadoAction, cidadeAction, fonteAction, pagamentoAction, estacaoAction } from '../_actions';\r\nimport React, { useState, useEffect } from 'react';\r\nimport AppBar from '../_components/appbarvisualization';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { withRouter } from 'react-router-dom';\r\nimport './visualization.component.css'\r\nimport '../imgs'\r\nimport imgTermometro_0_10 from '../imgs/termometro/termometro-0-10.png';\r\nimport imgTermometro_10_20 from '../imgs/termometro/termometro-10-20.png';\r\nimport imgTermometro_20_30 from '../imgs/termometro/termometro-20-30.png';\r\nimport { Select, InputLabel, MenuItem, Input, FormControl, Button, Grid, Paper, ButtonGroup, IconButton, Table, TableBody, TableCell, TableHead, TableRow, Typography, Tooltip, TableContainer } from '@material-ui/core';\r\nimport Swal from 'sweetalert2';\r\nimport { history } from '../_helpers';\r\nimport ViewHeadlineIcon from '@material-ui/icons/ViewHeadline';\r\nimport ViewModuleIcon from '@material-ui/icons/ViewModule';\r\nimport StarIcon from '@material-ui/icons/Star';\r\nimport StarBorderIcon from '@material-ui/icons/StarBorder';\r\nimport MapIcon from '@material-ui/icons/Map';\r\nimport { MarkerInfoWindow } from './';\r\nimport { Skeleton } from '@material-ui/lab';\r\nimport Image from '../imgs/estacoes.PNG'; // Import using relative path\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n padding: theme.spacing.unit * 2,\r\n marginBottom: theme.spacing.unit * 1.2\r\n },\r\n paperContainer: {\r\n backgroundImage: `url(${Image})`,\r\n height: '100vh',\r\n width: '100%'\r\n },\r\n paperOpacity: {\r\n height: '95vh',\r\n width: '100%',\r\n backgroundColor: 'rgba(0, 0, 0, 0.75)',\r\n fontWeight: 'bold',\r\n color: '#ffffff',\r\n borderRadius: 5\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n mapFrame: {\r\n width: '100%',\r\n height: '100vh',\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex'\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n clearButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\n\r\n\r\nconst Visualization = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [selectedEstado, setSelectedEstado] = useState([0]);\r\n const [selectedCidade, setSelectedCidade] = useState([0]);\r\n const [selectedFonte, setSelectedFonte] = useState(0);\r\n const [selectedSituacao, setSelectedSituacao] = useState(0);\r\n const [selectedColumn, setSelectedColumn] = useState('');\r\n const [selectedOrder, setSelectedOrder] = useState('');\r\n const [, forceUpdate] = React.useState(0);\r\n const [view, setView] = useState(1);\r\n const [isMobile, setIsMobile] = useState(false);\r\n const [isTabActive, setIsTabActive] = useState(true);\r\n\r\n window.onfocus = function () {\r\n setIsTabActive(true);\r\n };\r\n\r\n window.onblur = function () {\r\n setIsTabActive(false);\r\n };\r\n\r\n useEffect(() => {\r\n\r\n //showAlertSorteio();\r\n\r\n //dispatch(visualizationAction.getVisualization());\r\n refreshVisualization();\r\n\r\n try {\r\n setInterval(async () => {\r\n //dispatch(visualizationAction.getVisualization());\r\n refreshVisualization();\r\n }, 60000);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n setIsMobile(window.innerWidth < 468);\r\n\r\n dispatch(estadoAction.getEstadoSelect());\r\n dispatch(cidadeAction.getCidadeSelect());\r\n dispatch(fonteAction.getFonteSelect());\r\n forceUpdate(n => !n);\r\n\r\n if (props.state && props.state.authentication && props.state.authentication.user && props.state.authentication.user.id > 0) {\r\n var usuarioId = props.state.authentication.user.id;\r\n dispatch(pagamentoAction.getPagamentoAtivoUsuarioById(usuarioId));\r\n } else {\r\n dispatch(pagamentoAction.clear());\r\n }\r\n\r\n }, [])\r\n\r\n const refreshVisualization = () => {\r\n\r\n if (isTabActive) {\r\n dispatch(visualizationAction.getVisualization());\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (props.state && props.state.authentication && props.state.authentication.user && props.state.authentication.user.id > 0) {\r\n var usuarioId = props.state.authentication.user.id;\r\n dispatch(pagamentoAction.getPagamentoAtivoUsuarioById(usuarioId));\r\n } else {\r\n dispatch(pagamentoAction.clear());\r\n }\r\n\r\n }, [props.state.authentication])\r\n\r\n //useEffect(() => {\r\n\r\n // //if (props.state && props.state.pagamento && props.state.pagamento.id > 0) {\r\n\r\n // for (var i = 1; i < 99999; i++)\r\n // window.clearInterval(i);\r\n\r\n // dispatch(visualizationAction.getVisualization());\r\n\r\n // try {\r\n // setInterval(async () => {\r\n // dispatch(visualizationAction.getVisualization());\r\n // }, 40000);\r\n // } catch (e) {\r\n // console.log(e);\r\n // }\r\n\r\n // //}\r\n\r\n //}, [props.state.pagamento])\r\n\r\n useEffect(() => {\r\n\r\n }, [props.state.pagamento, props.state.visualization.visualization.estacoes, props.state.visualization.visualization.estacoesFavoritas])\r\n\r\n //useEffect(() => {\r\n // console.log('selectedColumnm', selectedColumn)\r\n // console.log('selectedOrder', selectedOrder)\r\n //}, [selectedColumn, selectedOrder])\r\n\r\n const handleChangeSelectedEstado = value => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedEstado(value.filter(item => item !== 0));\r\n renderOptionsCidade();\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n }\r\n\r\n const handleChangeSelectedCidade = value => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedCidade(value.filter(item => item !== 0));\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n }\r\n\r\n const handleChangeSelectedFonte = value => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedFonte(value);\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n }\r\n\r\n const handleChangeSelectedSituacao = value => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedSituacao(value);\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n }\r\n\r\n const handleChangeSelectedColumn = value => {\r\n if (value != null && value != '') {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedColumn(value);\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n } else {\r\n setSelectedColumn('');\r\n }\r\n }\r\n\r\n const handleChangeSelectedOrder = value => {\r\n if (value != null && value != '') {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedOrder(value);\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n } else {\r\n setSelectedOrder('');\r\n }\r\n }\r\n\r\n const showAlertPagamento = () => {\r\n\r\n Swal.fire({\r\n title: 'Recurso disponível apenas para assinantes.',\r\n html: \"

Faça seu login ou então cadastre-se e efetue a assinatura para prosseguir com os filtros.

Para novos assinante há a possibilidade testar por 7 dias grátis.

\",\r\n html: \"

Efetue a assinatura para prosseguir com a visualização. Por apenas R$ 8,25 por mês (R$ 99,00/ano), você tem acesso a filtros e estações de todo o Brasil.

Para novos visitantes há a possibilidade testar por 7 dias gratuitamente.

\",\r\n showCloseButton: true,\r\n showCancelButton: true,\r\n confirmButtonColor: '#3c5186',\r\n cancelButtonColor: '#3c5186',\r\n cancelButtonText: 'Assinar'\r\n //imageUrl: 'https://i.imgur.com/lkt1TLh.jpg'\r\n }).then((result) => {\r\n if (result.value) {\r\n history.push('/login');\r\n }\r\n else if (result.dismiss == 'cancel') {\r\n history.push('/pagamentos');\r\n }\r\n })\r\n\r\n }\r\n\r\n const showAlertSorteio = () => {\r\n\r\n Swal.fire({\r\n title: 'ASSINE E CONCORRA',\r\n html: \"

Faça seu login ou cadastre-se, efetue a assinatura, além de adquirir acesso completo à plataforma, você ainda concorre a uma Estação Meteorológica Davis Vantage Vue com Weatherlink Live. Sorteio dia 31/05/2021.

\",\r\n showCloseButton: true,\r\n confirmButtonColor: '#3c5186',\r\n confirmButtonText: 'ASSINAR AGORA',\r\n imageUrl: 'https://i.imgur.com/lkt1TLh.jpg'\r\n }).then((result) => {\r\n if (result.value) {\r\n history.push('/pagamentos');\r\n }\r\n })\r\n\r\n } \r\n\r\n const handleClickLimpar = event => {\r\n\r\n setSelectedEstado([0]);\r\n setSelectedCidade([0]);\r\n setSelectedFonte(0);\r\n setSelectedSituacao(0);\r\n\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedColumn('temperatura');\r\n setSelectedOrder('asc');\r\n } else {\r\n setSelectedColumn('');\r\n setSelectedOrder('');\r\n }\r\n\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n\r\n }\r\n\r\n const handleClickFav = event => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n dispatch(estacaoAction.favEstacao(event));\r\n } else {\r\n showAlertPagamento();\r\n }\r\n }\r\n\r\n const handleClickUnfav = event => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n dispatch(estacaoAction.unfavEstacao(event));\r\n } else {\r\n showAlertPagamento();\r\n }\r\n }\r\n\r\n function isFav(id) {\r\n var ret = false;\r\n if (estacoesFavoritas != null && estacoesFavoritas.length > 0) {\r\n estacoesFavoritas.forEach(function (fav) {\r\n if (fav.id == id) {\r\n ret = true;\r\n }\r\n });\r\n }\r\n return ret;\r\n }\r\n\r\n const renderOptionsEstado = () => {\r\n return props.state.estado.estado.map((p, i) => {\r\n if (p.paisId === 1) {\r\n return (\r\n {p.nome}\r\n \r\n );\r\n }\r\n });\r\n };\r\n\r\n const renderOptionsCidade = () => {\r\n return props.state.cidade.cidade.map((p, i) => {\r\n if (selectedEstado.includes(p.estadoId) || p.id === 0) {\r\n return (\r\n {p.nome}\r\n \r\n );\r\n }\r\n });\r\n };\r\n\r\n const renderOptionsFonte = () => {\r\n return props.state.fonte.fonte.map((p, i) => {\r\n return (\r\n {p.descricao}\r\n \r\n );\r\n });\r\n };\r\n\r\n const renderOptionsSituacao = () => {\r\n var columnData = [\r\n { value: 1, name: 'Ativas' },\r\n { value: 2, name: 'Inativas' }\r\n ];\r\n return columnData.map((p, i) => {\r\n return (\r\n {p.name}\r\n \r\n );\r\n });\r\n };\r\n\r\n const renderOptionsColumn = () => {\r\n var columnData = [\r\n { value: null, name: 'Selecione ...' },\r\n { value: 'temperatura', name: 'Temperatura' },\r\n { value: 'temperaturaMaxima', name: 'Temperatura Máx.' },\r\n { value: 'temperaturaMinima', name: 'Temperatura Mín.' },\r\n { value: 'amplitudeTermica', name: 'Amplitude Térmica' },\r\n { value: 'ura', name: 'U.R.A.' },\r\n { value: 'po', name: 'P.O.' },\r\n { value: 'chuva', name: 'Chuva' },\r\n { value: 'totalChuvaDia', name: 'Total Chuva Dia' },\r\n { value: 'ventoVelocidade', name: 'Veloc. do Vento' },\r\n { value: 'rajadaVentoMaxima', name: 'Rajada Máx.' }\r\n ];\r\n return columnData.map((p, i) => {\r\n return (\r\n {p.name}\r\n \r\n );\r\n });\r\n };\r\n\r\n const renderOptionsOrder = () => {\r\n var orderData = [\r\n { value: null, name: 'Selecione ...' },\r\n { value: 'asc', name: 'Ascendente' },\r\n { value: 'desc', name: 'Descendente' },\r\n ];\r\n return orderData.map((p, i) => {\r\n return (\r\n {p.name}\r\n \r\n );\r\n });\r\n };\r\n\r\n const { classes } = props;\r\n const { estacoesFavoritas } = props.state.visualization.visualization;\r\n const { estacoes } = props.state.visualization.visualization;\r\n\r\n const getNested = (obj, selectedColumn) => selectedColumn.split('.').reduce((a, prop) => a[prop], obj);\r\n const myCompare = (a, b) => {\r\n const col = getNested(a, selectedColumn);\r\n const colAtiva = !getNested(a, 'ativa');\r\n var noValue = false;\r\n\r\n if (selectedColumn !== 'nome' && (isNaN(col) || col == null)) {\r\n noValue = true;\r\n }\r\n\r\n return typeof selectedColumn === 'nome'\r\n ? col.localeCompare(getNested(b, selectedColumn))\r\n : noValue || colAtiva - !getNested(b, 'ativa') || (selectedOrder === 'asc' ? col - getNested(b, selectedColumn) : getNested(b, selectedColumn) - col);\r\n };\r\n\r\n if (estacoesFavoritas != null) {\r\n if (selectedColumn != null && selectedColumn != '') {\r\n estacoesFavoritas.sort(myCompare);\r\n } else {\r\n //shuffle(estacoesFavoritas);\r\n }\r\n }\r\n if (estacoes != null) {\r\n if (selectedColumn != null && selectedColumn != '') {\r\n estacoes.sort(myCompare);\r\n } else {\r\n //shuffle(estacoes);\r\n }\r\n \r\n }\r\n\r\n //function shuffle(array) {\r\n // let currentIndex = array.length, randomIndex;\r\n //\r\n // // While there remain elements to shuffle.\r\n // while (currentIndex != 0) {\r\n //\r\n // // Pick a remaining element.\r\n // randomIndex = Math.floor(Math.random() * currentIndex);\r\n // currentIndex--;\r\n //\r\n // // And swap it with the current element.\r\n // [array[currentIndex], array[randomIndex]] = [\r\n // array[randomIndex], array[currentIndex]];\r\n // }\r\n //\r\n // return array;\r\n //}\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Estado\r\n handleChangeSelectedEstado(event.target.value)}\r\n input={}\r\n multiple\r\n >\r\n \r\n Selecione ...\r\n \r\n {renderOptionsEstado()}\r\n \r\n \r\n \r\n \r\n \r\n Cidade\r\n handleChangeSelectedCidade(event.target.value)}\r\n input={}\r\n multiple\r\n >\r\n \r\n Selecione ...\r\n \r\n {renderOptionsCidade()}\r\n \r\n \r\n \r\n \r\n \r\n Fonte\r\n handleChangeSelectedFonte(event.target.value)}\r\n input={}\r\n >\r\n \r\n Selecione ...\r\n \r\n {renderOptionsFonte()}\r\n \r\n \r\n \r\n \r\n \r\n Situação\r\n handleChangeSelectedSituacao(event.target.value)}\r\n input={}\r\n >\r\n \r\n Selecione ...\r\n \r\n {renderOptionsSituacao()}\r\n \r\n \r\n \r\n \r\n \r\n Ordenar por\r\n handleChangeSelectedColumn(event.target.value)}\r\n input={}\r\n >\r\n {renderOptionsColumn()}\r\n \r\n \r\n \r\n \r\n \r\n Asc./Desc.\r\n handleChangeSelectedOrder(event.target.value)}\r\n input={}\r\n >\r\n {renderOptionsOrder()}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n setView(1)} >\r\n \r\n \r\n \r\n \r\n setView(2)} >\r\n \r\n \r\n \r\n \r\n setView(3)} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n {(view == 1 ?\r\n\r\n (estacoesFavoritas != null && estacoesFavoritas.length > 0 ?\r\n\r\n \r\n \r\n Estações Favoritas\r\n
    \r\n {\r\n\r\n estacoesFavoritas.map(n => {\r\n\r\n if (!selectedCidade.includes(0)) {\r\n if (selectedCidade.length > 0 && !(selectedCidade.includes(n.cidadeId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (!selectedEstado.includes(0)) {\r\n if (selectedEstado.length > 0 && !(selectedEstado.includes(n.estadoId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (selectedFonte !== '' && selectedFonte !== 0 && n.fonteId !== selectedFonte) {\r\n return;\r\n }\r\n\r\n if (selectedSituacao !== '' && selectedSituacao !== 0 && n.ativa.toString() !== (selectedSituacao == 1 ? 'true' : 'false')) {\r\n return;\r\n }\r\n\r\n var tempScale = ['#170D1E', '#2D1B34', '#43284D', '#543261', '#3E3061',\r\n '#31326F', '#394586', '#4543A0', '#3E6391', '#487FA6', '#488CA7',\r\n '#4593A0', '#4899A7', '#48A6A7', '#48A79A', '#49A781', '#49A774',\r\n '#49A767', '#49A75A', '#49A744', '#51A749', '#7AA947', '#92A849',\r\n '#9FA849', '#A8A449', '#A8974A', '#B38240', '#C56841', '#D05835',\r\n '#DF1E1E', '#CB1C12', '#C10000', '#AA0000', '#8C0000', '#800000',\r\n '#640000', '#420000', '#170000'];\r\n\r\n const tempValue = (selectedColumn == 'temperatura' ? (parseFloat(n.temperatura) + 12) : (selectedColumn == 'temperaturaMinima' ? (parseFloat(n.temperaturaMinima) + 12) : (selectedColumn == 'temperaturaMaxima' ? (parseFloat(n.temperaturaMaxima) + 12) : (parseFloat(n.temperatura) + 12))));\r\n var scaleNumber = Math.round(tempValue / 1.5);\r\n var bgcolor = \"#999\";\r\n var seconds = (new Date() - new Date(n.dataAtualizacao).getTime()) / 1000;\r\n\r\n if (n.ativa) {\r\n if (scaleNumber > (tempScale.length - 1)) {\r\n scaleNumber = (tempScale.length - 1);\r\n }\r\n if (scaleNumber < 0) {\r\n scaleNumber = 0;\r\n }\r\n bgcolor = tempScale[scaleNumber];\r\n }\r\n\r\n var img = imgTermometro_0_10;\r\n if (n.temperatura <= 10) {\r\n img = imgTermometro_0_10;\r\n } else if (n.temperatura > 10 && n.temperatura <= 20) {\r\n img = imgTermometro_10_20;\r\n } else if (n.temperatura > 20) {\r\n img = imgTermometro_20_30;\r\n }\r\n\r\n n.temperatura = parseFloat(n.temperatura).toFixed(1);\r\n n.temperaturaMinima = parseFloat(n.temperaturaMinima).toFixed(1);\r\n n.temperaturaMaxima = parseFloat(n.temperaturaMaxima).toFixed(1);\r\n n.po = parseFloat(n.po).toFixed(1);\r\n n.ventoVelocidade = parseFloat(n.ventoVelocidade).toFixed(1);\r\n\r\n if (n.rajadaVentoMaxima) {\r\n n.rajadaVentoMaxima = parseFloat(n.rajadaVentoMaxima).toFixed(1);\r\n } else {\r\n n.rajadaVentoMaxima = parseFloat(0).toFixed(1);\r\n }\r\n\r\n if (n.totalChuvaDia) {\r\n n.totalChuvaDia = parseFloat(n.totalChuvaDia).toFixed(2);\r\n } else {\r\n n.totalChuvaDia = parseFloat(0).toFixed(2);\r\n }\r\n\r\n var styles = { transform: `rotate(${90 + n.ventoGrau}deg)`, transformOrigin: '50% 50%' };\r\n\r\n var location = '';\r\n if (n.uf != null && n.cidadeNome != null) {\r\n location = n.cidadeNome + ', ' + n.uf;\r\n } else if (n.uf != null) {\r\n location = n.uf;\r\n } else if (n.cidadeNome != null) {\r\n location = n.cidadeNome;\r\n }\r\n\r\n var nome = (n.apelido ? n.apelido : n.nome);\r\n if (nome.length > 25) {\r\n nome = nome.substring(0, 25);\r\n }\r\n\r\n function displayTime(seconds) {\r\n const format = val => `${Math.floor(val)}`.slice(-2)\r\n const hours = seconds / 3600\r\n const minutes = (seconds % 3600) / 60\r\n\r\n if (format(hours) != '0' && format(minutes) != '0' && format(seconds) != '0') {\r\n return format(hours) + 'h ' + format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(minutes) != '0' && format(seconds) != '0') {\r\n return format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(seconds) != '0') {\r\n return format(seconds % 60) + 's';\r\n } else {\r\n return '-';\r\n }\r\n\r\n }\r\n\r\n var link = '';\r\n if (n.fonteId === 3) {\r\n link = 'https://tempo.inmet.gov.br/GraficosDiarios/' + n.codigo;\r\n } else if (n.fonteId === 2) {\r\n link = 'https://www.wunderground.com/dashboard/pws/' + n.codigo;\r\n } else if (n.link != null) {\r\n link = n.link;\r\n }\r\n\r\n return (\r\n
  • \r\n
    \r\n
    \r\n {link !== ''\r\n ?\r\n \r\n :\r\n
    {nome}
    \r\n }\r\n
    {location}
    \r\n
    \r\n
    \r\n \r\n {n.temperatura}ºC \r\n
    \r\n
    \r\n
    \r\n

    Temp. Máx.

    {(isNaN(n.temperaturaMaxima) ? '' : n.temperaturaMaxima + 'ºC')}

    \r\n

    Temp. Mín.

    {(isNaN(n.temperaturaMinima) ? '' : n.temperaturaMinima + 'ºC')}

    \r\n

    U.R.A.

    {((isNaN(n.ura) || n.ura == null) ? '' : n.ura + '%')}

    \r\n

    P.O.

    {(isNaN(n.po) ? '' : n.po + 'ºC')}

    \r\n

    Chuva

    {((isNaN(n.chuva) || n.chuva == null) ? '' : n.chuva + 'mm/h')}

    \r\n

    Tot. Chuva Dia

    {n.totalChuvaDia}mm

    \r\n

    Pressão

    {((isNaN(n.pressao) || n.pressao == null) ? '' : n.pressao + 'hPa')}

    \r\n

    Rajada Máx.

    {((isNaN(n.rajadaVentoMaxima) || n.rajadaVentoMaxima == null) ? '' : n.rajadaVentoMaxima + 'Km/h')}

    \r\n

    Atualizado há

    {displayTime(seconds)}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {(isNaN(n.ventoVelocidade) || n.ventoVelocidade == null ? '' : n.ventoVelocidade + ' Km/h')}
    \r\n
    \r\n
    \r\n
    \r\n {(n.estacaoFavorita != null && n.estacaoFavorita.length > 0 && isFav(n.id) ?\r\n \r\n handleClickUnfav(n.id)} />\r\n \r\n :\r\n \r\n handleClickFav(n.id)} />\r\n \r\n )}\r\n
    \r\n
  • \r\n );\r\n\r\n })\r\n\r\n }\r\n\r\n
\r\n
\r\n
\r\n\r\n :\r\n\r\n null\r\n )\r\n\r\n :\r\n\r\n null\r\n )}\r\n\r\n {(view == 1 ?\r\n\r\n (estacoes != null && estacoes.length > 0 ?\r\n\r\n \r\n \r\n Todas Estações\r\n
    \r\n {\r\n\r\n estacoes.map(n => {\r\n\r\n if (!selectedCidade.includes(0)) {\r\n if (selectedCidade.length > 0 && !(selectedCidade.includes(n.cidadeId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (!selectedEstado.includes(0)) {\r\n if (selectedEstado.length > 0 && !(selectedEstado.includes(n.estadoId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (selectedFonte !== '' && selectedFonte !== 0 && n.fonteId !== selectedFonte) {\r\n return;\r\n }\r\n\r\n if (selectedSituacao !== '' && selectedSituacao !== 0 && n.ativa.toString() !== (selectedSituacao == 1 ? 'true' : 'false')) {\r\n return;\r\n }\r\n\r\n var tempScale = ['#170D1E', '#2D1B34', '#43284D', '#543261', '#3E3061',\r\n '#31326F', '#394586', '#4543A0', '#3E6391', '#487FA6', '#488CA7',\r\n '#4593A0', '#4899A7', '#48A6A7', '#48A79A', '#49A781', '#49A774',\r\n '#49A767', '#49A75A', '#49A744', '#51A749', '#7AA947', '#92A849',\r\n '#9FA849', '#A8A449', '#A8974A', '#B38240', '#C56841', '#D05835',\r\n '#DF1E1E', '#CB1C12', '#C10000', '#AA0000', '#8C0000', '#800000',\r\n '#640000', '#420000', '#170000'];\r\n\r\n const tempValue = (selectedColumn == 'temperatura' ? (parseFloat(n.temperatura) + 12) : (selectedColumn == 'temperaturaMinima' ? (parseFloat(n.temperaturaMinima) + 12) : (selectedColumn == 'temperaturaMaxima' ? (parseFloat(n.temperaturaMaxima) + 12) : (parseFloat(n.temperatura) + 12))));\r\n var scaleNumber = Math.round(tempValue / 1.5);\r\n var bgcolor = \"#999\";\r\n var seconds = (new Date() - new Date(n.dataAtualizacao).getTime()) / 1000;\r\n\r\n if (n.ativa) {\r\n if (scaleNumber > (tempScale.length - 1)) {\r\n scaleNumber = (tempScale.length - 1);\r\n }\r\n if (scaleNumber < 0) {\r\n scaleNumber = 0;\r\n }\r\n bgcolor = tempScale[scaleNumber];\r\n }\r\n\r\n var img = imgTermometro_0_10;\r\n if (n.temperatura <= 10) {\r\n img = imgTermometro_0_10;\r\n } else if (n.temperatura > 10 && n.temperatura <= 20) {\r\n img = imgTermometro_10_20;\r\n } else if (n.temperatura > 20) {\r\n img = imgTermometro_20_30;\r\n }\r\n\r\n n.temperatura = parseFloat(n.temperatura).toFixed(1);\r\n n.temperaturaMinima = parseFloat(n.temperaturaMinima).toFixed(1);\r\n n.temperaturaMaxima = parseFloat(n.temperaturaMaxima).toFixed(1);\r\n n.po = parseFloat(n.po).toFixed(1);\r\n n.ventoVelocidade = parseFloat(n.ventoVelocidade).toFixed(1);\r\n\r\n if (n.rajadaVentoMaxima) {\r\n n.rajadaVentoMaxima = parseFloat(n.rajadaVentoMaxima).toFixed(1);\r\n } else {\r\n n.rajadaVentoMaxima = parseFloat(0).toFixed(1);\r\n }\r\n\r\n if (n.totalChuvaDia) {\r\n n.totalChuvaDia = parseFloat(n.totalChuvaDia).toFixed(2);\r\n } else {\r\n n.totalChuvaDia = parseFloat(0).toFixed(2);\r\n }\r\n\r\n var styles = { transform: `rotate(${90 + n.ventoGrau}deg)`, transformOrigin: '50% 50%' };\r\n\r\n var location = '';\r\n if (n.uf != null && n.cidadeNome != null) {\r\n location = n.cidadeNome + ', ' + n.uf;\r\n } else if (n.uf != null) {\r\n location = n.uf;\r\n } else if (n.cidadeNome != null) {\r\n location = n.cidadeNome;\r\n }\r\n\r\n var nome = (n.apelido ? n.apelido : n.nome);\r\n if (nome.length > 25) {\r\n nome = nome.substring(0, 25);\r\n }\r\n\r\n function displayTime(seconds) {\r\n const format = val => `${Math.floor(val)}`.slice(-2)\r\n const hours = seconds / 3600\r\n const minutes = (seconds % 3600) / 60\r\n\r\n if (format(hours) != '0' && format(minutes) != '0' && format(seconds) != '0') {\r\n return format(hours) + 'h ' + format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(minutes) != '0' && format(seconds) != '0') {\r\n return format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(seconds) != '0') {\r\n return format(seconds % 60) + 's';\r\n } else {\r\n return '-';\r\n }\r\n\r\n }\r\n\r\n var link = '';\r\n if (n.fonteId === 3) {\r\n link = 'https://tempo.inmet.gov.br/GraficosDiarios/' + n.codigo;\r\n } else if (n.fonteId === 2) {\r\n link = 'https://www.wunderground.com/dashboard/pws/' + n.codigo;\r\n } else if (n.link != null) {\r\n link = n.link;\r\n }\r\n\r\n return (\r\n
  • \r\n
    \r\n
    \r\n {link !== ''\r\n ?\r\n \r\n :\r\n
    {nome}
    \r\n }\r\n
    {location}
    \r\n
    \r\n
    \r\n \r\n {n.temperatura}ºC \r\n
    \r\n
    \r\n
    \r\n

    Temp. Máx.

    {(isNaN(n.temperaturaMaxima) ? '' : n.temperaturaMaxima + 'ºC')}

    \r\n

    Temp. Mín.

    {(isNaN(n.temperaturaMinima) ? '' : n.temperaturaMinima + 'ºC')}

    \r\n

    U.R.A.

    {((isNaN(n.ura) || n.ura == null) ? '' : n.ura + '%')}

    \r\n

    P.O.

    {(isNaN(n.po) ? '' : n.po + 'ºC')}

    \r\n

    Chuva

    {((isNaN(n.chuva) || n.chuva == null) ? '' : n.chuva + 'mm/h')}

    \r\n

    Tot. Chuva Dia

    {n.totalChuvaDia}mm

    \r\n

    Pressão

    {((isNaN(n.pressao) || n.pressao == null) ? '' : n.pressao + 'hPa')}

    \r\n

    Rajada Máx.

    {((isNaN(n.rajadaVentoMaxima) || n.rajadaVentoMaxima == null) ? '' : n.rajadaVentoMaxima + 'Km/h')}

    \r\n

    Atualizado há

    {displayTime(seconds)}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {(isNaN(n.ventoVelocidade) || n.ventoVelocidade == null ? '' : n.ventoVelocidade + ' Km/h')}
    \r\n
    \r\n
    \r\n
    \r\n {(n.estacaoFavorita != null && n.estacaoFavorita.length > 0 && isFav(n.id) ?\r\n \r\n handleClickUnfav(n.id)} />\r\n \r\n :\r\n \r\n handleClickFav(n.id)} />\r\n \r\n )}\r\n
    \r\n
  • \r\n );\r\n\r\n })\r\n\r\n }\r\n
\r\n
\r\n
\r\n\r\n :\r\n\r\n \r\n \r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n )\r\n\r\n : (view == 2 ?\r\n\r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n Localização\r\n Temp. (Cº)\r\n Temp. Mín. (Cº)\r\n Temp. Máx. (Cº)\r\n U.R.A\r\n P.O (Cº)\r\n Chuva (mm/h)\r\n Tot. Chuva Dia (mm)\r\n Pressão (hPa)\r\n Veloc. Vento (km/h)\r\n Rajada Máxima (km/h)\r\n \r\n \r\n \r\n {\r\n estacoes.map(n => {\r\n\r\n if (!selectedCidade.includes(0)) {\r\n if (selectedCidade.length > 0 && !(selectedCidade.includes(n.cidadeId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (!selectedEstado.includes(0)) {\r\n if (selectedEstado.length > 0 && !(selectedEstado.includes(n.estadoId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (selectedFonte !== '' && selectedFonte !== 0 && n.fonteId !== selectedFonte) {\r\n return;\r\n }\r\n\r\n if (selectedSituacao !== '' && selectedSituacao !== 0 && n.ativa.toString() !== (selectedSituacao == 1 ? 'true' : 'false')) {\r\n return;\r\n }\r\n\r\n //var tempScale = ['#170D1E', '#2D1B34', '#43284D', '#543261', '#3E3061',\r\n // '#31326F', '#394586', '#4543A0', '#3E6391', '#487FA6', '#488CA7',\r\n // '#4593A0', '#4899A7', '#48A6A7', '#48A79A', '#49A781', '#49A774',\r\n // '#49A767', '#49A75A', '#49A744', '#51A749', '#7AA947', '#92A849',\r\n // '#9FA849', '#A8A449', '#A8974A', '#B38240', '#C56841', '#D05835',\r\n // '#DF1E1E', '#CB1C12', '#C10000', '#AA0000', '#8C0000', '#800000',\r\n // '#640000', '#420000', '#170000'];\r\n\r\n //const tempValue = (selectedColumn == 'temperatura' ? (parseFloat(n.temperatura) + 12) : (selectedColumn == 'temperaturaMinima' ? (parseFloat(n.temperaturaMinima) + 12) : (selectedColumn == 'temperaturaMaxima' ? (parseFloat(n.temperaturaMaxima) + 12) : (parseFloat(n.parseFloat) + 12))));\r\n //var scaleNumber = Math.round(tempValue / 1.5);\r\n //var bgcolor = \"#999\";\r\n //var seconds = (new Date() - new Date(n.dataAtualizacao).getTime()) / 1000;\r\n\r\n //if (n.ativa) {\r\n // if (scaleNumber > (tempScale.length - 1)) {\r\n // scaleNumber = (tempScale.length - 1);\r\n // }\r\n // if (scaleNumber < 0) {\r\n // scaleNumber = 0;\r\n // }\r\n // bgcolor = tempScale[scaleNumber];\r\n //}\r\n\r\n //var img = imgTermometro_0_10;\r\n //if (n.temperatura <= 10) {\r\n // img = imgTermometro_0_10;\r\n //} else if (n.temperatura > 10 && n.temperatura <= 20) {\r\n // img = imgTermometro_10_20;\r\n //} else if (n.temperatura > 20) {\r\n // img = imgTermometro_20_30;\r\n //}\r\n\r\n n.temperatura = parseFloat(n.temperatura).toFixed(1);\r\n n.temperaturaMinima = parseFloat(n.temperaturaMinima).toFixed(1);\r\n n.temperaturaMaxima = parseFloat(n.temperaturaMaxima).toFixed(1);\r\n n.po = parseFloat(n.po).toFixed(1);\r\n n.ventoVelocidade = parseFloat(n.ventoVelocidade).toFixed(1);\r\n\r\n if (n.rajadaVentoMaxima) {\r\n n.rajadaVentoMaxima = parseFloat(n.rajadaVentoMaxima).toFixed(1);\r\n } else {\r\n n.rajadaVentoMaxima = parseFloat(0).toFixed(1);\r\n }\r\n\r\n if (n.totalChuvaDia) {\r\n n.totalChuvaDia = parseFloat(n.totalChuvaDia).toFixed(2);\r\n } else {\r\n n.totalChuvaDia = parseFloat(0).toFixed(2);\r\n }\r\n\r\n var location = '';\r\n if (n.uf != null && n.cidadeNome != null) {\r\n location = n.cidadeNome + ', ' + n.uf;\r\n } else if (n.uf != null) {\r\n location = n.uf;\r\n } else if (n.cidadeNome != null) {\r\n location = n.cidadeNome;\r\n }\r\n\r\n var nome = (n.apelido ? n.apelido : n.nome);\r\n if (nome.length > 25) {\r\n nome = nome.substring(0, 25);\r\n }\r\n\r\n //function displayTime(seconds) {\r\n // const format = val => `${Math.floor(val)}`.slice(-2)\r\n // const hours = seconds / 3600\r\n // const minutes = (seconds % 3600) / 60\r\n\r\n // if (format(hours) != '0' && format(minutes) != '0' && format(seconds) != '0') {\r\n // return format(hours) + 'h ' + format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n // } else if (format(minutes) != '0' && format(seconds) != '0') {\r\n // return format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n // } else if (format(seconds) != '0') {\r\n // return format(seconds % 60) + 's';\r\n // } else {\r\n // return '-';\r\n // }\r\n\r\n //}\r\n\r\n //var link = '';\r\n //if (n.fonteId === 3) {\r\n // link = 'https://tempo.inmet.gov.br/GraficosDiarios/' + n.codigo;\r\n //} else if (n.fonteId === 2) {\r\n // link = 'https://www.wunderground.com/dashboard/pws/' + n.codigo;\r\n //} else if (n.link != null) {\r\n // link = n.link;\r\n //}\r\n\r\n return (\r\n \r\n \r\n {nome}\r\n \r\n \r\n {location}\r\n \r\n \r\n {isNaN(n.temperatura) ? '' : n.temperatura}\r\n \r\n \r\n {isNaN(n.temperaturaMinima) ? '' : n.temperaturaMinima}\r\n \r\n \r\n {isNaN(n.temperaturaMaxima) ? '' : n.temperaturaMaxima}\r\n \r\n \r\n {isNaN(n.ura) ? '' : n.ura}\r\n \r\n \r\n {isNaN(n.po) ? '' : n.po}\r\n \r\n \r\n {isNaN(n.chuva) ? '' : n.chuva}\r\n \r\n \r\n {isNaN(n.totalChuvaDia) ? '' : n.totalChuvaDia}\r\n \r\n \r\n {isNaN(n.pressao) ? '' : n.pressao}\r\n \r\n \r\n {isNaN(n.ventoVelocidade) ? '' : n.ventoVelocidade}\r\n \r\n \r\n {isNaN(n.rajadaVentoMaxima) ? '' : n.rajadaVentoMaxima}\r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n : (view == 3 ?\r\n\r\n
\r\n \r\n
\r\n\r\n :\r\n \r\n \r\n
\r\n
\r\n Recurso disponível apenas para assinantes. Dados fictícios. \r\n
\r\n
\r\n

Efetue a assinatura para prosseguir com a visualização. Por apenas R$ 8,25 por mês (R$ 99,00/ano), você tem acesso a filtros e estações de todo o Brasil. Para novos visitantes há a possibilidade testar por 7 dias gratuitamente.

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n\r\n ))}\r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nVisualization.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedVisualizationPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Visualization)));\r\nexport { connectedVisualizationPage as Visualization };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport styled from 'styled-components';\r\nimport GoogleMapReact from 'google-map-react';\r\n\r\nconst Wrapper = styled.main`\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nconst GoogleMap = ({ children, ...props }) => (\r\n \r\n \r\n {children}\r\n \r\n \r\n);\r\n\r\nGoogleMap.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]),\r\n};\r\n\r\nGoogleMap.defaultProps = {\r\n children: null,\r\n};\r\n\r\nexport default GoogleMap;","import React, { useState, useEffect } from 'react';\r\nimport { connect, useDispatch } from \"react-redux\";\r\nimport { visualizationAction } from '../_actions';\r\nimport PropTypes from 'prop-types';\r\nimport GoogleMap from './GoogleMap';\r\nimport { Grid, Button } from '@material-ui/core';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nconst mapStyles = {\r\n width: '100%',\r\n height: '100vh'\r\n};\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n padding: theme.spacing.unit * 2,\r\n marginBottom: theme.spacing.unit * 1.2,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n mapFrame: {\r\n width: '100%',\r\n height: '100vh',\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex'\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n clearButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\n\r\n// InfoWindow component\r\nconst InfoWindow = (props) => {\r\n\r\n const { place } = props;\r\n const infoWindowStyle = {\r\n position: 'relative',\r\n bottom: 150,\r\n left: '-45px',\r\n width: 220,\r\n backgroundColor: 'white',\r\n boxShadow: '0 2px 7px 1px rgba(0, 0, 0, 0.3)',\r\n padding: 10,\r\n fontSize: 14,\r\n zIndex: 100,\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {place.nome}\r\n \r\n \r\n \r\n \r\n {place.location}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Temperatura\r\n \r\n \r\n {place.temperatura}ºC\r\n \r\n \r\n \r\n \r\n Temperatura Máx.\r\n \r\n \r\n {place.temperaturaMaxima}ºC\r\n \r\n \r\n \r\n \r\n Temperatura Mín.\r\n \r\n \r\n {place.temperaturaMinima}ºC\r\n \r\n \r\n \r\n \r\n U.R.A.\r\n \r\n \r\n {place.ura}%\r\n \r\n \r\n \r\n \r\n P.O.\r\n \r\n \r\n {place.po}ºC\r\n \r\n \r\n \r\n \r\n Chuva\r\n \r\n \r\n {place.chuva}mm/h\r\n \r\n \r\n \r\n \r\n Tot. Chuva Dia\r\n \r\n \r\n {place.totalChuvaDia}mm\r\n \r\n \r\n \r\n \r\n Pressão\r\n \r\n \r\n {place.pressao}hPa\r\n \r\n \r\n \r\n \r\n Rajada Máx.\r\n \r\n \r\n {place.rajadaVentoMaxima}Km/h\r\n \r\n \r\n \r\n \r\n Atualizado há\r\n \r\n \r\n {place.atualizacao}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\n// Marker component\r\nconst Marker = ({ key, show, place, color, selectedColumn }) => {\r\n\r\n const spanStyle = {\r\n display: 'table-cell',\r\n verticalAlign: 'middle',\r\n fontSize: 10,\r\n color: 'black'\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {\r\n (selectedColumn == 'temperatura' ? place.temperatura : (selectedColumn == 'temperaturaMinima' ? place.temperaturaMinima : (selectedColumn == 'temperaturaMaxima' ? place.temperaturaMaxima : null)))\r\n }\r\n \r\n
\r\n {show && }\r\n \r\n );\r\n};\r\n\r\nconst MarkerInfoWindow = (props) => {\r\n\r\n const [places, setPlaces] = useState([]);\r\n const [, forceUpdate] = React.useState(0);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n\r\n dispatch(visualizationAction.getVisualization());\r\n setPlaces(props.state.visualization.visualization.estacoes);\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n setPlaces(props.state.visualization.visualization.estacoes);\r\n\r\n }, [props.state.visualization.visualization.estacoes])\r\n\r\n const onChildClickCallback = (key) => {\r\n\r\n //setPlaces(\r\n // props.state.visualization.visualization.map(item =>\r\n // item.id == key\r\n // ? { ...item, show: true }\r\n // : { ...item, show: false }\r\n // ));\r\n\r\n //forceUpdate(n => !n);\r\n\r\n };\r\n\r\n const handleClose = () => {\r\n\r\n //setPlaces(\r\n // props.state.visualization.visualization.map(item =>\r\n // item.id == 0\r\n // ? { ...item, show: true }\r\n // : { ...item, show: false }\r\n // ));\r\n\r\n //forceUpdate(n => !n);\r\n\r\n }\r\n\r\n function round(value, precision) {\r\n var multiplier = Math.pow(10, precision || 0);\r\n return Math.round(value * multiplier) / multiplier;\r\n }\r\n\r\n //const { places } = this.state;\r\n\r\n return (\r\n <>\r\n {((places != null && places.length > 0) ? (\r\n
\r\n \r\n {places.map((n) => {\r\n\r\n if (n.latLon == null || n.latLon === '') {\r\n return;\r\n }\r\n\r\n if (!props.selectedCidade.includes(0)) {\r\n if (props.selectedCidade.length > 0 && !(props.selectedCidade.includes(n.cidadeId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (!props.selectedEstado.includes(0)) {\r\n if (props.selectedEstado.length > 0 && !(props.selectedEstado.includes(n.estadoId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (props.selectedFonte !== '' && props.selectedFonte !== 0 && n.fonteId !== props.selectedFonte) {\r\n return;\r\n }\r\n\r\n if (props.selectedSituacao !== '' && props.selectedSituacao !== 0 && n.ativa.toString() !== (props.selectedSituacao == 1 ? 'true' : 'false')) {\r\n return;\r\n }\r\n\r\n var tempScale = ['#170D1E', '#2D1B34', '#43284D', '#543261', '#3E3061',\r\n '#31326F', '#394586', '#4543A0', '#3E6391', '#487FA6', '#488CA7',\r\n '#4593A0', '#4899A7', '#48A6A7', '#48A79A', '#49A781', '#49A774',\r\n '#49A767', '#49A75A', '#49A744', '#51A749', '#7AA947', '#92A849',\r\n '#9FA849', '#A8A449', '#A8974A', '#B38240', '#C56841', '#D05835',\r\n '#DF1E1E', '#CB1C12', '#C10000', '#AA0000', '#8C0000', '#800000',\r\n '#640000', '#420000', '#170000'];\r\n\r\n var tempValue = n.temperatura;\r\n if (props.selectedColumn == 'temperaturaMinima') {\r\n tempValue = n.temperaturaMinima;\r\n }\r\n else if (props.selectedColumn == 'temperaturaMaxima') {\r\n tempValue = n.temperaturaMaxima;\r\n }\r\n\r\n var scaleNumber = round((tempValue + 12) / 1.5);\r\n //console.log('scaleNumberMap', scaleNumber);\r\n //console.log('tempValueMap', tempValue);\r\n var bgcolor = \"#999\";\r\n var seconds = (new Date() - new Date(n.dataAtualizacao).getTime()) / 1000;\r\n\r\n if (n.ativa) {\r\n if (scaleNumber > (tempScale.length - 1)) {\r\n scaleNumber = (tempScale.length - 1);\r\n }\r\n if (scaleNumber < 0) {\r\n scaleNumber = 0;\r\n }\r\n bgcolor = tempScale[scaleNumber];\r\n }\r\n\r\n n.temperatura = parseFloat(n.temperatura).toFixed(1);\r\n n.temperaturaMinima = parseFloat(n.temperaturaMinima).toFixed(1);\r\n n.temperaturaMaxima = parseFloat(n.temperaturaMaxima).toFixed(1);\r\n n.po = parseFloat(n.po).toFixed(1);\r\n n.ventoVelocidade = parseFloat(n.ventoVelocidade).toFixed(1);\r\n\r\n if (n.rajadaVentoMaxima) {\r\n n.rajadaVentoMaxima = parseFloat(n.rajadaVentoMaxima).toFixed(1);\r\n } else {\r\n n.rajadaVentoMaxima = parseFloat(0).toFixed(1);\r\n }\r\n\r\n if (n.totalChuvaDia) {\r\n n.totalChuvaDia = parseFloat(n.totalChuvaDia).toFixed(2);\r\n } else {\r\n n.totalChuvaDia = parseFloat(0).toFixed(2);\r\n }\r\n\r\n var location = '';\r\n if (n.uf != null && n.cidadeNome != null) {\r\n location = n.cidadeNome + ', ' + n.uf;\r\n } else if (n.uf != null) {\r\n location = n.uf;\r\n } else if (n.cidadeNome != null) {\r\n location = n.cidadeNome;\r\n }\r\n\r\n var nome = (n.apelido ? n.apelido : n.nome);\r\n if (nome.length > 25) {\r\n nome = nome.substring(0, 25);\r\n }\r\n\r\n function displayTime(seconds) {\r\n const format = val => `${Math.floor(val)}`.slice(-2)\r\n const hours = seconds / 3600\r\n const minutes = (seconds % 3600) / 60\r\n\r\n if (format(hours) != '0' && format(minutes) != '0' && format(seconds) != '0') {\r\n return format(hours) + 'h ' + format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(minutes) != '0' && format(seconds) != '0') {\r\n return format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(seconds) != '0') {\r\n return format(seconds % 60) + 's';\r\n } else {\r\n return '-';\r\n }\r\n\r\n }\r\n\r\n let objPlace = {\r\n nome: nome,\r\n location: location,\r\n temperatura: parseFloat(n.temperatura),\r\n temperaturaMinima: n.temperaturaMinima,\r\n temperaturaMaxima: n.temperaturaMaxima,\r\n ura: n.ura,\r\n po: n.po,\r\n chuva: n.chuva,\r\n totalChuvaDia: n.totalChuvaDia,\r\n pressao: n.pressao,\r\n rajadaVentoMaxima: n.rajadaVentoMaxima,\r\n atualizacao: displayTime(seconds)\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n })}\r\n \r\n
\r\n )\r\n :\r\n null)}\r\n \r\n );\r\n\r\n}\r\n\r\nInfoWindow.propTypes = {\r\n place: PropTypes.shape({\r\n nome: PropTypes.string,\r\n location: PropTypes.string,\r\n temperatura: PropTypes.number,\r\n temperaturaMinima: PropTypes.string,\r\n temperaturaMaxima: PropTypes.string,\r\n ura: PropTypes.number,\r\n po: PropTypes.number,\r\n chuva: PropTypes.string,\r\n totalChuvaDia: PropTypes.string,\r\n pressao: PropTypes.number,\r\n rajadaVentoMaxima: PropTypes.string,\r\n atualizacao: PropTypes.string\r\n }).isRequired,\r\n};\r\n\r\nMarker.propTypes = {\r\n show: PropTypes.bool.isRequired,\r\n place: PropTypes.shape({\r\n nome: PropTypes.string,\r\n location: PropTypes.string,\r\n temperatura: PropTypes.number,\r\n temperaturaMinima: PropTypes.string,\r\n temperaturaMaxima: PropTypes.string,\r\n ura: PropTypes.number,\r\n po: PropTypes.string,\r\n chuva: PropTypes.number,\r\n totalChuvaDia: PropTypes.string,\r\n pressao: PropTypes.number,\r\n rajadaVentoMaxima: PropTypes.string,\r\n atualizacao: PropTypes.string\r\n }).isRequired,\r\n};\r\n\r\nMarkerInfoWindow.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedMarkerInfoWindowPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(MarkerInfoWindow)));\r\nexport { connectedMarkerInfoWindowPage as MarkerInfoWindow };","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHkAAAB8CAYAAABNNx/6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEJDOTg0RkQxMzVEMTFFM0JFQTJENjMxMkMzRkY3QTEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEJDOTg0RkUxMzVEMTFFM0JFQTJENjMxMkMzRkY3QTEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4QkM5ODRGQjEzNUQxMUUzQkVBMkQ2MzEyQzNGRjdBMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4QkM5ODRGQzEzNUQxMUUzQkVBMkQ2MzEyQzNGRjdBMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlJp1+kAAAyWSURBVHja7F0LcBXV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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHkAAAAQCAYAAAAyAdDbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTE3QkIyODExMzVEMTFFM0I3RTlBNDU5OTY1OUM5M0QiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTE3QkIyODIxMzVEMTFFM0I3RTlBNDU5OTY1OUM5M0QiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBMTdCQjI3RjEzNUQxMUUzQjdFOUE0NTk5NjU5QzkzRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBMTdCQjI4MDEzNUQxMUUzQjdFOUE0NTk5NjU5QzkzRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po5boj4AAAFTSURBVHjaYvz//z8DSaCesRZIHmZo/H+AYRQMCcBEhh4fIF4NjOyg0eAbvpG8HIhFgHgtMKInALH4aDAOv0heBsQboex8IN4HjOj80aAcvICR5DoZUi8bAklQncyHJHoeiOeDceP/L6NBO9QjGRLR9SASZAaazD0gXgUt1u8CI/zraDAP3UjmheZmIxwq/oGLcgaGNUB8BohvjubwoRfJrEByKRCHEqnjMhCfAtfpjf/3jQb94G54wQAodXwjQf1nIP4xGuT0BywU6OUBYn088qDieg+4Tw0prq8Cc/Dv0SAfWpFcCsQGWMSfQBtei4H49mjDa+h2oUA5+DAQ8yKJ3oS2qCcDI/bdaNAO5ZxczygEJGuQIvgpEM8D4q7R1vPwKa79gNgbygaNfrUAI/f6aFAOr0iOAOKfQFwAjNxZo0E4PCP5ABD3ACN4z2jwDQ0AEGAAPA1hO8ScCH0AAAAASUVORK5CYII=\"","import React, { Component } from 'react';\r\nimport './App.css';\r\nimport { Router, Switch, Route } from 'react-router-dom';\r\nimport { Login } from './login/';\r\nimport { Cadastro } from './login/';\r\nimport { PasswordReset } from './login/';\r\nimport { RequestPasswordReset } from './login/';\r\nimport { Home } from './home/';\r\nimport { Usuario } from './usuarios/';\r\nimport { UsuarioEdit } from './usuarios/';\r\nimport { Estacao } from './estacoes/';\r\nimport { MinhaEstacao } from './estacoes/';\r\nimport { EstacaoEdit } from './estacoes/';\r\nimport { Pagamento } from './pagamentos/';\r\nimport { Parametro } from './parametros/';\r\nimport { ParametroEdit } from './parametros/';\r\nimport { Recebimento } from './recebimentos/';\r\nimport { Visualization } from './visualization/';\r\nimport { Orientacao } from './orientacoes/';\r\nimport { history } from './_helpers';\r\nimport { PrivateRoute } from './_components';\r\n\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';\r\n\r\nrequire('dotenv').config({ path: __dirname + '/.env' })\r\n\r\nconst theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: '#3c5186',\r\n contrastText: '#000000'\r\n },\r\n secondary: {\r\n main: '#939393',\r\n contrastText: '#000000'\r\n }\r\n },\r\n typography: {\r\n fontFamily: [\r\n 'Nunito',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif'\r\n ].join(',')\r\n }\r\n});\r\n\r\nclass App extends Component {\r\n render() {\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default App;","module.exports = __webpack_public_path__ + \"static/media/imagem1.57140f76.png\";","module.exports = __webpack_public_path__ + \"static/media/estacoes.54c07281.PNG\";","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport AppBar from '../_components/appbar';\r\nimport Nav from '../_components/nav';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n});\r\nclass Home extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Home'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nHome.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return state;\r\n}\r\nconst connectedHomePage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Home)));\r\nexport { connectedHomePage as Home };","import { connect } from 'react-redux';\r\nimport { pagamentoAction, checkoutActions } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography, Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Moment from 'react-moment';\r\nimport 'moment-timezone';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n payButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Pagamento extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n submitted: false,\r\n isMobile: window.innerWidth < 468\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n\r\n var usuarioId = this.props.state.authentication.user.id;\r\n dispatch(pagamentoAction.getPagamentoUsuarioById(usuarioId));\r\n\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n };\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (pagamento) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 8000);\r\n });\r\n const { dispatch } = this.props;\r\n dispatch(checkoutActions.createPreference(pagamento));\r\n\r\n };\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { pagamento } = this.props.state.pagamento;\r\n const { submitted } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Pagamentos'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Periodo\r\n Valor\r\n Pagamento\r\n Ação\r\n \r\n \r\n \r\n {\r\n pagamento.map(n => {\r\n\r\n return (\r\n \r\n \r\n {{n.dataInicioValidade}} a {{n.dataFimValidade}}\r\n \r\n {(n.valor > 0 ? 'R$ ' + n.valor.toLocaleString(navigator.language, { minimumFractionDigits: 2 }) : null)}\r\n \r\n {n.dataPagamento ? (n.valor > 0 ?
Pago em {n.dataPagamento}
:
Teste iniciado em {n.dataPagamento}
) : (n.status == 'A' ?
Em processamento
: null)}\r\n
\r\n \r\n {n.dataPagamento ? null : (n.status == 'A' ?
: )}\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nPagamento.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedPagamentoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Pagamento)));\r\nexport { connectedPagamentoPage as Pagamento };","import { connect } from 'react-redux';\r\nimport { pagamentoAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Nav from '../_components/nav';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableContainer from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Moment from 'react-moment';\r\nimport 'moment-timezone';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n },\r\n payButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Recebimento extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n dispatch(pagamentoAction.getPagamento());\r\n window.addEventListener('resize', this.throttledHandleWindowResize); \r\n };\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { pagamento } = this.props.state.pagamento;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Recebimentos'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Usuário\r\n Periodo\r\n Valor\r\n Recebimento\r\n \r\n \r\n \r\n {\r\n pagamento.map(n => {\r\n \r\n return (\r\n \r\n \r\n {n.usuario ? n.usuario.nome : null}\r\n \r\n \r\n {{n.dataInicioValidade}} a {{n.dataFimValidade}} \r\n \r\n R$ {n.valor.toLocaleString(navigator.language, { minimumFractionDigits: 2 })}\r\n \r\n {n.dataPagamento ?
Recebido em {n.dataPagamento}
: (n.status == 'A' ?
Em processamento
:
) }\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nRecebimento.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedRecebimentoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Recebimento)));\r\nexport { connectedRecebimentoPage as Recebimento };","import { connect } from 'react-redux';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbarvisualization';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Paper, Grid, Link } from '@material-ui/core';\r\nimport { withRouter } from 'react-router-dom';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n },\r\n drawerPaper: {\r\n flexGrow: 1,\r\n padding: theme.spacing.unit * 3,\r\n background: '#ffffff'\r\n },\r\n imageContent: {\r\n maxWidth: '100%'\r\n }\r\n});\r\nclass Orientacao extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {'COMO INSTALAR UMA ESTAÇÃO METEOROLÓGICA PARTICULAR'}\r\n
\r\n {'O QUE É UMA ESTAÇÃO METEOROLÓGICA PARTICULAR?'}\r\n
\r\n Uma estação meteorológica particular é um conjunto de instrumentos de medição das variáveis meteorológicas que você pode instalar na sua casa ou empresa. O número de instrumentos de medição (Sensores) pode variar, mas o mais comum são os sensores de temperatura, umidade relativa do ar, pressão atmosférica, precipitação (chuva) e velocidade e direção do vento.\r\n
\r\n {'MODELOS RECOMENDADOS'}\r\n
\r\n \r\n Existem diversos modelos de estações meteorológicas particulares no mercado, porém os mais indicados são os da Marca Davis Instruments, sendo os Modelos Vantage Vue e Vantage Pro 2 e suas variações. Outro modelo indicado é da marca Ambient Weather, especificamente o modelo WS-2902 e semelhantes.\r\n Estes são os modelos mais indicados, principalmente da marca Davis, em virtude da confiabilidade e qualidade dos dados fornecidos, além da robustez do equipamento, que é sem dúvidas, a melhor opção disponível no mercado.\r\n O modelo de entrada da Davis é a Vantage Vue, que possui sensor de temperatura e umidade relativa do ar, pressão atmosférica, pluviômetro e de velocidade e direção do vento.\r\n Já a Davis Vantage Pro 2 6152, possui estes mesmos sensores da Vantage Vue, mas também existem outros modelos que possuem sensore de radiação solar e UV, além de ser possível adicionar mais sensores, como de umidade do solo, temperatura do solo, umidade das folhas, sensores extra de temperatura, além de diversas outras opções, além de abrigo aspirado para o sensor de temperatura e umidade.\r\n \r\n
\r\n \r\n \r\n \"Davis\r\n {'Davis Vantage Pro 2'}\r\n \r\n \r\n \"Davis\r\n {'Davis Vantage Vue'}\r\n \r\n \r\n
\r\n \r\n Tanto a Davis Vantage Vue quanto a Pro 2, necessitam de um datalogger para armazenar e transmitir os dados para a internet. Dentre as opções, existe o Weatherlink Live, da própria Davis Instruments, que inclusive dispensa o uso da tela (Console) e pode ser ligado diretamente ao roteador via cabo ou wifi. Outra alternativa é o Wifilogger, que é de outro fabricante, mas foi desenvolvido especificamente para as estações da Davis. Ele necessita de tela e a conexão com o roteador é via Wifi. Também existe outras maneiras de transmitir os dados para a internet, como através de um computador, Meteohub ou Meteobridge, mas o mais prático e comum é a utilização do Weatherlink Live ou Wifilogger.\r\n \r\n
\r\n \r\n \r\n \"Weatherlink\r\n {'Weatherlink Live'}\r\n \r\n \r\n \"Wifilogger\"\r\n {'Wifilogger'}\r\n \r\n \r\n
\r\n \r\n Já as estações meteorológicas da Ambient Weather, especificamente o modelo WS-2902, também apresenta dados de qualidade, porém é um equipamento menos robusto e está um patamar abaixo das estações Davis, não deixando de ser uma boa alternativa para quem deseja ter uma estação meteorológica particular. É um modelo que já acompanha datalogger e está pronto para transmitir os dados para a internet.\r\n \r\n
\r\n \r\n \r\n \"WS-2902\"\r\n {'WS-2902'}\r\n \r\n \r\n
\r\n \r\n Outros modelos de estações meteorológicas também podem ser utilizados, porém deve-se observar se os sensores são de qualidade e o abrigo do sensor de temperatura, se não causa superaquecimento. Outro detalhe e o mais importante, é o que trataremos em seguida, que é o local de instalação da estação meteorológica. Um local inadequado, pode fazer o melhor equipamento reportar dados incorretos.\r\n \r\n
\r\n \r\n Alguma dúvida sobre qual modelo escolher? Entre em contato e tire suas dúvidas:\r\n \r\n \r\n contato@estacoesdobrasil.com.br ou (51) 9-99986571\r\n \r\n
\r\n {'INSTALAÇÃO DA ESTAÇÃO METEOROLÓGICA'}\r\n
\r\n
\r\n \r\n O local de instalação da estação meteorológica é a parte mais importante da instalação. Se você instalar a estação muito próximo de uma árvore, o pluviômetro pode não registrar corretamente a chuva, ou se instalar muito próximo de uma construção, os dados de temperatura podem ser afetados. Locais pouco arejados, com muitas árvores ou prédios ao redor, por exemplo, influenciam tanto nos dados de vento, quanto de temperatura. Portanto, achar um local adequado em uma área urbana ou suburbana, pode ser um desafio, mas existem alternativas para ter dados de qualidade nestas situações. O local em que a estação meteorológica é instalada influencia mais na qualidade dos dados do que o próprio equipamento.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Existe o cenário ideal para a instalação de uma estação meteorológica, que basicamente pode ser descrito da seguinte forma:\r\n \r\n
\r\n {'TEMPERATURA E UMIDADE'}\r\n
\r\n \r\n
    \r\n
  • - Local nivelado e que representa boa parte da área, preferencialmente sobre gramado.
  • \r\n
  • - Altura do sensor entre 1,25 m e 2,0 m.
  • \r\n
  • - Sensores devem ficar a 2 vezes a distância da altura do objeto mais próximo (Árvores, construções).
  • \r\n
  • - Manter distância de fontes de calor, construções, muros, chaminés, ar condicionado, etc.
  • \r\n
\r\n
\r\n
\r\n {'ANEMÔMETRO'}\r\n
\r\n \r\n
    \r\n
  • - Preferencialmente a 10 m de altura do solo.
  • \r\n
  • - Manter distância de 10 vezes a altura do objeto mais próximo (Árvore ou construção).
  • \r\n
\r\n
\r\n
\r\n {'PLUVIÔMETRO'}\r\n
\r\n \r\n
    \r\n
  • - Altura do sensor entre 1,25 e 2,0 m.
  • \r\n
  • - Manter distância horizontal de 4 vezes a altura do objeto mais próximo (Árvores, construções).
  • \r\n
\r\n
\r\n
\r\n \r\n Este é o cenário ideal para estações meteorológicas que possuem sensores separados, porém para áreas urbanas é um tanto quanto difícil e os modelos indicados aqui, possuem todos os sensores integrados em um único equipamento (Exceto a Davis Vantage Pro 2, que pode ter o anemômetro instalado separadamente dos demais sensores). Sendo assim, segue abaixo alguns exemplos de instalações recomendadas para os equipamentos que foram relacionados anteriormente:\r\n \r\n
\r\n {'DAVIS VANTAGE VUE'}\r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Cenário ideal, quando se tem espaço e sem árvores ou construções próximas. Os sensores podem ficar a uma altura de 1,25 a 2,0 m, o que facilita muito a manutenção, principalmente do pluviômetro, que pode entupir com sujeira de folhas ou fezes de pássaros. O anemômetro não está na altura ideal, mas é uma alternativa aceitável.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Aqui temos um exemplo de instalação da Davis Vantage Vue em uma área urbana, com casas, muros e árvores próximas. Ela foi instalada o mais alto possível, para receber vento de todas as direções e também a uma altura de pelo menos 3 m do telhado, para não sofrer com o calor proveniente do telhado.\r\n \r\n
\r\n {'DAVIS VANTAGE PRO 2'}\r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Cenário ideal, como da Davis Vantage Vue acima, quando se tem espaço e sem árvores ou construções próximas. Os sensores podem ficar a uma altura de 1,25 a 2,0 m, o que facilita muito a manutenção, principalmente do pluviômetro, que pode entupir com sujeira de folhas ou fezes de pássaros. O anemômetro não está na altura ideal, mas é uma alternativa aceitável.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Cenário urbano, com construções e casas, da mesma forma que com a Davis Vantage Pro 2, a estação foi instalada em um mastro a pelo menos 3 metros de altura do telhado, recebendo assim, vento de todos os quadrantes e evitando superaquecimento proveniente do telhado.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Com a Davis Vantage Pro 2, quando existirem condições de instalar o sensor de temperatura/umidade e pluviômetro na altura padrão, existe a possibilidade de instalar o anemômetro também na altura padrão, que é de 10 m. Isto é possível pois ele conta com um cabo de 12 m, então pode-se ter todos os sensores nas suas alturas ideias.\r\n \r\n
\r\n {'AMBIENT WEATHER WS-2902'}\r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Em áreas abertas, sem construções e árvores próximas, o conjunto de sensores está na altura ideal, entre 1,25 e 2,0 m. Fácil manutenção, mas com o anemômetro fora da altura padrão de 10m, o que não é um problema neste caso.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n WS-2902 instalada em área urbana, com construções ou árvores próximas. Foi colocado no topo de um mastro, recebendo assim vento de todas as direções e longe de telhados e construções que podem gerar aquecimento.\r\n \r\n
\r\n \r\n Quer ajuda ou alguma dica na instalação da sua estação meteorológica? Entre em contato:\r\n \r\n
\r\n \r\n contato@estacoesdobrasil.com.br ou (51) 9-99986571.\r\n \r\n
\r\n
\r\n \r\n Fontes:\r\n
    \r\n
  • https://www.wunderground.com/pws/installation-guide
  • \r\n
  • https://www.weather.gov/media/epz/mesonet/CWOP-Siting.pdf
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nOrientacao.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedOrientacaoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Orientacao)));\r\nexport { connectedOrientacaoPage as Orientacao };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Typography from '@material-ui/core/Typography';\r\n//import VisibleItemList from '../containers/VisibleItemList'\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport LogoutIcon from '@material-ui/icons/HighlightOff';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\nimport FolderSharedIcon from '@material-ui/icons/FolderShared';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport PaymentIcon from '@material-ui/icons/Payment';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { authActions } from '../_actions';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { AppBar, Tooltip, Toolbar, Grid, Button, Link } from '@material-ui/core';\r\nimport { history } from '../_helpers';\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport WhatsAppIcon from '@material-ui/icons/WhatsApp';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n icon: {\r\n color: theme.palette.common.black\r\n },\r\n\r\n root: {\r\n display: 'flex',\r\n },\r\n drawer: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n },\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'none',\r\n },\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n drawerPaper: {\r\n width: drawerWidth\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3),\r\n },\r\n closeMenuButton: {\r\n marginRight: 'auto',\r\n marginLeft: 0,\r\n },\r\n loginButton: {\r\n color: '#ffffff'\r\n }\r\n\r\n});\r\n\r\nclass ResponsiveDrawer extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n mobileOpen: false\r\n }\r\n }\r\n\r\n logout = event => {\r\n const { dispatch } = this.props;\r\n dispatch(authActions.logout());\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const handleDrawerToggle = event => {\r\n this.setState({ mobileOpen: !this.state.mobileOpen });\r\n };\r\n\r\n var papel = this.props.state.authentication.user.papel;\r\n\r\n const drawer = (\r\n
\r\n \r\n history.push(\"/\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* history.push(\"/home\")}>\r\n \r\n \r\n \r\n \r\n */}\r\n history.push(\"/minhasestacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n {papel === 'admin' ?\r\n history.push(\"/estacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/usuarios\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/parametros\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/recebimentos\")}>\r\n \r\n \r\n \r\n \r\n \r\n :\r\n history.push(\"/pagamentos\")}>\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.logout() }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n handleDrawerToggle()}\r\n className={classes.loginButton}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"logo\"\r\n \r\n \r\n \r\n \r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n window.open('https://wa.me/555199986571', '_blank')}>\r\n \r\n \r\n \r\n \r\n window.open(\"mailto:contato@estacoesdobrasil.com.br\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n {/**/}\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nResponsiveDrawer.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n container: PropTypes.object\r\n};\r\nconst mapStateToProps = (state) => {\r\n //const { loggingIn } = state.authentication;\r\n return {\r\n state\r\n };\r\n}\r\nexport default connect(mapStateToProps)(withStyles(styles)(ResponsiveDrawer));","export * from './rosa.png';\r\nexport * from './android-app.png';\r\nexport * from './seta.png';\r\nexport * from './termometro/termometro-0-10.png';\r\nexport * from './termometro/termometro-10-20.png';\r\nexport * from './termometro/termometro-20-30.png';","module.exports = __webpack_public_path__ + \"static/media/Davis Vantage Pro 2.47c801c0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Davis Vantage Vue.47f5eb1c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Weatherlink Live.977cb786.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Wifilogger.e6389fb4.jpg\";","module.exports = __webpack_public_path__ + \"static/media/WS-2902.ec3a1b00.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARwAAAEqCAMAAADwCR9iAAAC+lBMVEUAAAD////VICr////////////////VICrVICrVICrVICrVICr////VICrVICrVICrVICr////VICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICr////VICr////VICrVICr////////////////////////54OHkbnT///////+O0elbn0jVICqCVy0zMzP///8hcwr98vLfUlp9s8ec1+wUqtzr9/tmjJn98/P2zM8+R0reUFhPZGvXLDZZnkYldQ6Ix96Mz+WRyuFKkja3bHxDT1RslqRfmUYxgBw7hyaDvtNWnENSmD+CWjJFjjBAiyuLzd+MwdHeT1c4PD42gyEpeRKOzuXfVFvGRlMtfReVwdiMu8aNydyDXjiNxdfIQU7q9/ubsMVgpFc0Nje8OjB3qbuKq66HjH9coExtsIJnkkSTxdylmKtzuJi7Y3Jnq26fWDfSKTSHy9OLs7uin7SJn5xxtY2Gg3G9XGpOljqWvdN/w7uKpKPMN0O0coKFdVyIlIuHiHiGfmi/VmWEbU+DZUODYj6CxcOgpLiwfY5jp2JdolFriUGDdT6xNyqZtsynlKd3u6GIkIVrr3qFclbKPEh5gEDXKzV+Xi+Ex8mLtsCeqb+Lr7WqjaCInJWIl5FSanPhXmWFeWLDTFrTJS89REevRzLOJiuGw9lwna1hhJFdfIhKV1tNTU1qgz3EMi7//Pyv3+/a2tqXutB0o7SDakm9Myzl8/hvejp3azSf2O15rcB7v7F6vakvpqNPoGGlUjaLUS3FKyvG6PSr3e9BueGyeIlXcnx0cTfY8Pgtst9/uMxubm6SZjuoTzV7YzL9uC6hQytyyeithZcejWbHrzaYSCzg6Ot9tMczrMOkm686pI3Z2dkaqc9Trq56m6fqkZYZlYxFo3Z7pEJhayVgw+S6uskiqMEik32bsnhvnmulq0GGRRyDRhtNXhIfpCVOAAAAOXRSTlMA0YX8Hh9J1PQ2BejQCRO2Ix3w4SlrQux+SZlUDq32YNr6jc29ph9ywlo+ynpPQCnBD7eme+LRuKc1fznTAAAZgElEQVR42uSdWagSURjHxRfNuBU3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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARwAAAEqCAMAAADwCR9iAAAC+lBMVEUAAAD////9/v3////VICrVICrVICr////VICrVICrVICrVICrVICrVICrVICr9/f3////VICrVICrVICrVICrVICrVICrVICrm1tfVICrVICrVICrVICrVICrVICrVICrVICr////VICrVICrVICrVICrVICrVICrVICr////////////////////////kbnT///+O0enx8fHVICpxu1zm5ubMzMwzMzNTU1P/////3Zlbn0j98/Mhcwr525/PzcnfU1rY4+f07eD26dDz2abr7/HM5e9mjJl4wH/n1bLf0rneUVnWz8ODvdLXLDZslqT36MpPZGv17Ns4PD4+Rkl+tMhWf0pGXUCZmZkqexPz9PSNzOT93ZxVb3j99PTl8uHq7emBw29JWmByoLCysrL2zc9vtlmJyN/ddXvu7u7mzM3b0b7gfYPdT1bz8OqGw9lceoQwfxthg4/ZSVE6QELe3t7u2KreYmlQlzxFki/l4ODjr7FpsVS5KzP32qLbXWRuql5gpUzg7d3j1Lb+4KRcYGFYWls2NzjSzsb55r/75Lb84q3ipqrca3Hl3Nz20dP20NJxmqllq1FcT1DZQUrhv8B5qryhoJ/ilpvUJjDKkcCayI1wcXLXOkOUw9r27Nd3pbWpqalNYWdxm2B6rVfOJSzU1dbgiI23anphcHa/V2ZGVVq/PzPAKDF9rsC7u7vktbdukZ5cZ2qXu9JpgYpVVlZDUFQ8Q0aqYj+cNjw8hibExMSAm3F4uGaApVVqSku3Tjn46MfswcOcrcPPkrihoba71bSmlqmsk6NsiZNleYG1cIC6YnLHRFGVg0rKPEiu3u/w5OXu29zVl6ffoqSYl4xqZ2eOjU2wWDzGMy+3kq2QkJCwfY6GhoaIsn18fX1lnlSImFB3REekbEL/uC/X59PaU1tHijVMejPL4cWqzKWri57el5KMn4WfdEWBQUR+eD36tDub1uzrqWZhnk5il02mpHbDTlubWTbZ8PiqvqXvtHTNbmlagl6CWb1XAAAAMXRSTlMAH/7RhQfWSSFuNhPfQin70O+/tlRJDV/+zX7mmffz+o0d7Omm9ayv6rx7PycQptGpDhjf2QAAGVVJREFUeNrk2L+P0mAYB/B3KIQCbdLyK4Urd0Hl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\"","module.exports = __webpack_public_path__ + \"static/media/maxresdefault.b9d44410.jpg\";","module.exports = __webpack_public_path__ + \"static/media/6250-6357_1400x500_VV_BradHickman.f4077ea6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Cenario ideal DAVIS VANTAGE PRO 2.ce72d6a9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Cenario area urbana DAVIS VANTAGE PRO 2.eb889035.jpg\";","module.exports = __webpack_public_path__ + \"static/media/021-640x385-640x385.83409b63.jpg\";","module.exports = __webpack_public_path__ + \"static/media/WhatsApp Image 2020-05-28 at 17.15.11.3794a876.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/94138758_3604637852885376_3822128711386267648_o.44f34786.jpg\";","let token = localStorage.getItem('token');\r\nlet auth = localStorage.getItem('auth');\r\nlet user = JSON.parse(localStorage.getItem('user'));\r\n\r\nconst initialState = auth ? { loggedIn: true, auth, token, user } : {};\r\nexport function authentication(state = initialState, action) {\r\n switch (action.type) {\r\n case 'LOGIN_SUCCESS':\r\n return {\r\n loggingIn: true,\r\n auth: action.auth,\r\n token: action.token,\r\n user: action.user\r\n };\r\n\r\n case 'LOGOUT_SUCCESS':\r\n return {\r\n auth: false,\r\n token: '',\r\n user: null\r\n };\r\n default:\r\n return state\r\n }\r\n}","const initialState = {\r\n cidade: [],\r\n id: '',\r\n nome: '',\r\n estadoId: '',\r\n ibge: '',\r\n latLon: '',\r\n estado: []\r\n};\r\n\r\nexport function cidade(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_CIDADE':\r\n return {\r\n ...state,\r\n cidade: action.cidade\r\n };\r\n case 'CIDADE_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n estadoId: action.estadoId,\r\n ibge: action.ibge,\r\n latLon: action.latLon,\r\n estado: action.estado\r\n };\r\n case \"CIDADE_CLEAR\":\r\n return initialState;\r\n case \"CIDADE_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_CIDADE\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n estacao: [],\r\n id: '',\r\n usuarioId: 0,\r\n fonteId: 0,\r\n nome: '',\r\n codigo: '',\r\n senha: '',\r\n aprovada: '',\r\n token: '',\r\n cidadeId: 0,\r\n apelido: '',\r\n link: '',\r\n latitude: '',\r\n longitude: '',\r\n cidade: [],\r\n fonte: []\r\n};\r\n\r\nexport function estacao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_ESTACAO':\r\n return {\r\n ...state,\r\n estacao: action.estacao\r\n };\r\n case 'ESTACAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n usuarioId: action.usuarioId,\r\n fonteId: action.fonteId,\r\n nome: action.nome,\r\n codigo: action.codigo,\r\n senha: action.senha,\r\n aprovada: action.aprovada,\r\n token: action.token,\r\n cidadeId: action.cidadeId,\r\n cidade: action.cidade,\r\n fonte: action.fonte,\r\n apelido: action.apelido,\r\n link: action.link,\r\n latitude: action.latitude,\r\n longitude: action.longitude\r\n };\r\n case \"ESTACAO_CLEAR\":\r\n return initialState;\r\n case \"ESTACAO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_ESTACAO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","const initialState = {\r\n estado: [],\r\n id: '',\r\n nome: '',\r\n uf: '',\r\n ibge: '',\r\n paisId: '',\r\n ddd: '',\r\n pais: []\r\n};\r\n\r\nexport function estado(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_ESTADO':\r\n return {\r\n ...state,\r\n estado: action.estado\r\n };\r\n case 'ESTADO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n uf: action.uf,\r\n ibge: action.ibge,\r\n paisId: action.paisId,\r\n ddd: action.ddd,\r\n pais: action.pais\r\n };\r\n case \"ESTADO_CLEAR\":\r\n return initialState;\r\n case \"ESTADO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_ESTADO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n fonte: [],\r\n id: '',\r\n descricao: '',\r\n url: ''\r\n};\r\n\r\nexport function fonte(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_FONTE':\r\n return {\r\n ...state,\r\n fonte: action.fonte\r\n };\r\n case 'FONTE_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n descricao: action.descricao,\r\n url: action.url\r\n };\r\n case \"FONTE_CLEAR\":\r\n return initialState;\r\n case \"FONTE_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_FONTE\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n pagamento: [],\r\n id: '',\r\n usuarioId: '',\r\n dataPagamento: '',\r\n dataInicioValidade: '',\r\n dataFimValidade: '',\r\n valor: 0,\r\n formaPagamento: '',\r\n status: '',\r\n transacao: '',\r\n usuario: null\r\n};\r\n\r\nexport function pagamento(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_PAGAMENTO':\r\n return {\r\n ...state,\r\n pagamento: action.pagamento\r\n };\r\n case 'PAGAMENTO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n usuarioId: action.usuarioId,\r\n dataPagamento: action.dataPagamento,\r\n dataInicioValidade: action.dataInicioValidade,\r\n dataFimValidade: action.dataFimValidade,\r\n valor: action.valor,\r\n formaPagamento: action.formaPagamento,\r\n status: action.status,\r\n transacao: action.transacao,\r\n usuario: action.usuario\r\n };\r\n case \"PAGAMENTO_CLEAR\":\r\n return initialState;\r\n case \"PAGAMENTO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_PAGAMENTO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","const initialState = {\r\n pais: [],\r\n id: '',\r\n nome: '',\r\n nomePt: '',\r\n iso2: '',\r\n iso3: '',\r\n bacen: ''\r\n};\r\n\r\nexport function pais(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_PAIS':\r\n return {\r\n ...state,\r\n pais: action.pais\r\n };\r\n case 'PAIS_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n nomePt: action.nomePt,\r\n iso2: action.iso2,\r\n iso3: action.iso3,\r\n bacen: action.bacen\r\n };\r\n case \"PAIS_CLEAR\":\r\n return initialState;\r\n case \"PAIS_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_PAIS\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n parametro: [],\r\n id: '',\r\n chave: '',\r\n valor: '',\r\n descricao: ''\r\n};\r\n\r\nexport function parametro(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_PARAMETRO':\r\n return {\r\n ...state,\r\n parametro: action.parametro\r\n };\r\n case 'PARAMETRO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n chave: action.chave,\r\n valor: action.valor,\r\n descricao: action.descricao\r\n };\r\n case \"PARAMETRO_CLEAR\":\r\n return initialState;\r\n case \"PARAMETRO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_PARAMETRO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n usuario: [],\r\n id: '',\r\n email: '',\r\n nome: '',\r\n senha: '',\r\n papel: '',\r\n telefone: '',\r\n log: []\r\n};\r\n\r\nexport function usuario(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_USUARIO':\r\n return {\r\n ...state,\r\n usuario: action.usuario\r\n };\r\n case 'USUARIO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n email: action.email,\r\n nome: action.nome,\r\n senha: action.senha,\r\n papel: action.papel,\r\n telefone: action.telefone,\r\n log: action.log\r\n };\r\n case \"USUARIO_CLEAR\":\r\n return initialState;\r\n case \"USUARIO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_USUARIO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n visualization: []\r\n};\r\n\r\nexport function visualization(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_VISUALIZATION':\r\n return {\r\n ...state,\r\n visualization: action.visualization\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","import { combineReducers } from 'redux';\r\n\r\nimport { authentication } from './auth.reducer';\r\nimport { cidade } from './cidade.reducer';\r\nimport { estacao } from './estacao.reducer';\r\nimport { estado } from './estado.reducer';\r\nimport { fonte } from './fonte.reducer';\r\nimport { pagamento } from './pagamento.reducer';\r\nimport { pais } from './pais.reducer';\r\nimport { parametro } from './parametro.reducer';\r\nimport { usuario } from './usuario.reducer';\r\nimport { visualization } from './visualization.reducer';\r\n\r\nconst rootReducer = combineReducers({\r\n authentication,\r\n cidade,\r\n estacao,\r\n estado,\r\n fonte,\r\n pagamento,\r\n pais,\r\n parametro,\r\n usuario,\r\n visualization\r\n});\r\n\r\nexport default rootReducer;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css?v=4';\r\nimport App from './App';\r\nimport { createStore, applyMiddleware } from 'redux';\r\nimport { Provider } from 'react-redux';\r\nimport thunk from 'redux-thunk';\r\nimport reducer from './_reducers';\r\n//import registerServiceWorker from './registerServiceWorker';\r\n//import { unregister } from './registerServiceWorker';\r\n\r\nconst store = createStore(reducer, applyMiddleware(thunk))\r\nReactDOM.render(\r\n \r\n \r\n \r\n , document.getElementById('root'));\r\n\r\n//registerServiceWorker();\r\n//unregister();","import React from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nexport const PrivateRoute = ({ component: Component, ...rest }) => (\r\n (\r\n localStorage.getItem('auth')\r\n ? \r\n : \r\n )} />\r\n)","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { AppBar, Tooltip, Toolbar, Grid, Button, Link } from '@material-ui/core';\r\nimport { history } from '../_helpers';\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport WhatsAppIcon from '@material-ui/icons/WhatsApp';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ReactGA from 'react-ga';\r\nimport classNames from 'classnames';\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n \r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n loginButton: {\r\n color: '#ffffff'\r\n }\r\n\r\n});\r\nclass PermanentDrawer extends React.Component {\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"logo\"\r\n \r\n \r\n \r\n \r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n window.open('https://wa.me/555199986571', '_blank')}>\r\n \r\n \r\n \r\n \r\n window.open(\"mailto:contato@estacoesdobrasil.com.br\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nPermanentDrawer.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nexport default withStyles(styles)(PermanentDrawer);","import { createBrowserHistory } from 'history';\r\nexport const history = createBrowserHistory();","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport List from '@material-ui/core/List';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { authActions } from '../_actions';\r\nimport { connect } from 'react-redux';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport LogoutIcon from '@material-ui/icons/HighlightOff';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\nimport FolderSharedIcon from '@material-ui/icons/FolderShared';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport PaymentIcon from '@material-ui/icons/Payment';\r\nimport { history } from '../_helpers';\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n icon: {\r\n color: theme.palette.common.black\r\n }\r\n});\r\nclass Navigation extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n logout = event => {\r\n const { dispatch } = this.props;\r\n dispatch(authActions.logout());\r\n }\r\n render() {\r\n const { classes } = this.props;\r\n\r\n var papel = this.props.state.authentication.user.papel;\r\n\r\n return (\r\n \r\n \r\n history.push(\"/\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* history.push(\"/home\")}>\r\n \r\n \r\n \r\n \r\n */}\r\n history.push(\"/minhasestacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n {papel === 'admin' ? \r\n history.push(\"/estacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null} \r\n {papel === 'admin' ?\r\n history.push(\"/usuarios\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/parametros\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/recebimentos\")}>\r\n \r\n \r\n \r\n \r\n \r\n :\r\n history.push(\"/pagamentos\")}>\r\n \r\n \r\n \r\n \r\n \r\n } \r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.logout() }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nNavigation.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n //const { loggingIn } = state.authentication;\r\n return {\r\n state\r\n };\r\n}\r\nexport default connect(mapStateToProps)(withStyles(styles)(Navigation));","import React, { Component } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from \"react-redux\";\r\nimport { Paper, Grid, Container, Typography, IconButton } from '@material-ui/core';\r\nimport { history } from '../_helpers';\r\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { usuarioAction } from '../_actions';\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator';\r\nimport { phoneMask } from '../utils';\r\n\r\nconst styles = theme => ({\r\n paper: {\r\n marginTop: theme.spacing(5),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n width: theme.spacing(9),\r\n height: theme.spacing(9),\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(3),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n color: '#ffffff'\r\n },\r\n backButton: {\r\n marginTop: theme.spacing(1),\r\n }\r\n});\r\n\r\nclass Cadastro extends Component {\r\n\r\n componentDidMount() {\r\n\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.clear());\r\n\r\n ValidatorForm.addValidationRule('isPasswordMatch', (value) => {\r\n if (value !== this.props.usuario.senha) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n ValidatorForm.addValidationRule('isValidPhone', (value) => {\r\n if (value != null) {\r\n if (value.length > 0 && value.length < 14) {\r\n return false\r\n }\r\n return true\r\n }\r\n return true\r\n })\r\n\r\n }\r\n\r\n state = {\r\n submitted: false,\r\n repeatPassword: '',\r\n }\r\n\r\n handleChange = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.onChangeProps(prop, event));\r\n };\r\n\r\n handleChangeRepeatPassword = prop => event => {\r\n this.setState({ [prop]: event.target.value });\r\n };\r\n\r\n handleSubmit = (event) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 2500);\r\n });\r\n const { dispatch } = this.props;\r\n let payload = {\r\n id: 0,\r\n email: this.props.usuario.email,\r\n nome: this.props.usuario.nome,\r\n senha: this.props.usuario.senha,\r\n telefone: this.props.usuario.telefone.split(' ').join('').replace(/[()-]/g, ''),\r\n papel: 'usuario'\r\n }\r\n console.log('payload', payload);\r\n dispatch(usuarioAction.createUsuario(payload));\r\n }\r\n\r\n render() {\r\n const { submitted } = this.state;\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n history.goBack()} aria-label=\"Voltar\" color=\"primary\">\r\n \r\n \r\n \r\n \r\n Venha fazer parte do Estações do Brasil! Informe seus dados abaixo para se cadastrar.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (submitted && 'Enviando informações...')\r\n || (!submitted && 'Cadastrar')\r\n }\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nCadastro.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return state;\r\n}\r\nconst connectedCadastroPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Cadastro)));\r\nexport { connectedCadastroPage as Cadastro };","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper, FormControlLabel, Avatar, Grid, Button, TextField, Box, Typography, Link, CssBaseline,\r\n Checkbox, IconButton\r\n} from '@material-ui/core';\r\nimport { connect } from 'react-redux';\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport { authActions } from '../_actions';\r\nimport { history } from '../_helpers';\r\nimport { withRouter } from 'react-router-dom';\r\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace';\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator';\r\nimport Background from '../imgs/imagem1.png';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100vh',\r\n },\r\n image: {\r\n backgroundImage: `url(${Background})`,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundColor: '#3c5186',\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n },\r\n paper: {\r\n margin: theme.spacing(8, 4),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n color: '#ffffff'\r\n }\r\n});\r\n\r\nclass Login extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n username: '',\r\n password: '',\r\n showPassword: false,\r\n submitted: false,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (localStorage.getItem('auth')) {\r\n history.push('/minhasestacoes');\r\n }\r\n }\r\n handleChange = prop => event => {\r\n this.setState({ [prop]: event.target.value });\r\n };\r\n\r\n handleChangeBox = name => event => {\r\n this.setState({ ...this.state, [name]: event.target.checked });\r\n };\r\n\r\n handleSubmit = (event) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 2500);\r\n });\r\n const { username, password } = this.state;\r\n const { dispatch } = this.props;\r\n if (username && password) {\r\n dispatch(authActions.login(username, password));\r\n }\r\n\r\n }\r\n\r\n render() {\r\n const { formData, submitted } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n history.push(\"/\")} aria-label=\"Voltar\" color=\"primary\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Login\r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Mostrar senha\"\r\n />\r\n \r\n\r\n {\r\n (submitted && 'Validando informações...')\r\n || (!submitted && 'Entrar')\r\n }\r\n {/*\r\n \r\n \r\n {\"Esqueceu a senha?\"} \r\n \r\n */}\r\n \r\n history.push(\"/cadastro\")} variant=\"body2\">\r\n {\"Não possui um login? Cadastre-se já!\"}\r\n \r\n \r\n \r\n history.push(\"/request-password-reset\")} variant=\"body2\">\r\n {\"Esqueceu a senha?\"}\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nLogin.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { loggingIn } = state.authentication;\r\n return {\r\n loggingIn\r\n };\r\n}\r\nconst connectedLoginPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Login)));\r\nexport { connectedLoginPage as Login };","import React, { Component } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from \"react-redux\";\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Container from '@material-ui/core/Container';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { history } from '../_helpers';\r\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { usuarioAction } from '../_actions';\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator';\r\n\r\nconst styles = theme => ({\r\n paper: {\r\n marginTop: theme.spacing(5),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n width: theme.spacing(9),\r\n height: theme.spacing(9),\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(3),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n color: '#ffffff'\r\n },\r\n backButton: {\r\n marginTop: theme.spacing(1),\r\n }\r\n});\r\n\r\nclass PasswordReset extends Component {\r\n\r\n state = {\r\n submitted: false,\r\n email: '',\r\n token: '',\r\n password: '',\r\n repeatPassword: '',\r\n }\r\n\r\n componentDidMount() {\r\n\r\n const query = new URLSearchParams(this.props.location.search);\r\n var email = query.toString().substr(6, (query.toString().indexOf(\"&\", 0)) - 6);\r\n this.setState({ email: decodeURIComponent(email)});\r\n console.log('email', decodeURIComponent(email));\r\n\r\n var token = query.toString().substr(query.toString().indexOf(\"token=\", 0) + 6, (query.toString().length - query.toString().indexOf(\"token=\", 0) - 6));\r\n this.setState({ token: token });\r\n\r\n ValidatorForm.addValidationRule('isPasswordMatch', (value) => {\r\n if (value !== this.state.password) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n }\r\n\r\n handleChangePassword = prop => event => {\r\n this.setState({ [prop]: event.target.value });\r\n };\r\n\r\n handleChangeRepeatPassword = prop => event => {\r\n this.setState({ [prop]: event.target.value });\r\n };\r\n\r\n handleSubmit = (event) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 2500);\r\n });\r\n const { dispatch } = this.props;\r\n let payload = {\r\n username: this.state.email,\r\n password: this.state.password\r\n }\r\n console.log('payload', payload);\r\n dispatch(usuarioAction.passwordReset(payload, this.state.token));\r\n }\r\n\r\n render() {\r\n const { submitted } = this.state;\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n history.goBack()} aria-label=\"Voltar\" color=\"primary\">\r\n \r\n \r\n \r\n \r\n Informe e confirme a nova senha.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (submitted && 'Enviando informações...')\r\n || (!submitted && 'Alterar')\r\n }\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nPasswordReset.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return state;\r\n}\r\nconst connectedPasswordResetPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(PasswordReset)));\r\nexport { connectedPasswordResetPage as PasswordReset };","import React, { Component } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from \"react-redux\";\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Container from '@material-ui/core/Container';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { history } from '../_helpers';\r\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { usuarioAction } from '../_actions';\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator';\r\n\r\nconst styles = theme => ({\r\n paper: {\r\n marginTop: theme.spacing(5),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n width: theme.spacing(9),\r\n height: theme.spacing(9),\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(3),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n color: '#ffffff'\r\n },\r\n backButton: {\r\n marginTop: theme.spacing(1),\r\n }\r\n});\r\n\r\nclass RequestPasswordReset extends Component {\r\n\r\n state = {\r\n email: '',\r\n submitted: false\r\n }\r\n\r\n handleChange = prop => event => {\r\n this.setState({ email: event.target.value });\r\n };\r\n\r\n handleSubmit = (event) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 5000);\r\n });\r\n const { dispatch } = this.props;\r\n let payload = {\r\n email: this.state.email\r\n }\r\n dispatch(usuarioAction.requestPasswordReset(payload));\r\n }\r\n\r\n render() {\r\n const { submitted, email } = this.state;\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n history.goBack()} aria-label=\"Voltar\" color=\"primary\">\r\n \r\n \r\n \r\n \r\n Informe o endereço de e-mail utilizado no cadastro, para recuperar a senha.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (submitted && 'Enviando informações...')\r\n || (!submitted && 'ENVIAR E-MAIL DE RECUPERAÇÃO DE SENHA')\r\n }\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nRequestPasswordReset.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return state;\r\n}\r\nconst connectedRequestPasswordResetPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(RequestPasswordReset)));\r\nexport { connectedRequestPasswordResetPage as RequestPasswordReset };","import axios from 'axios';\r\nimport config from '../config/config';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const authService = {\r\n post,\r\n postWithToken\r\n};\r\nfunction post(apiEndpoint, payload) {\r\n return axios.post(config.baseUrl + apiEndpoint, payload)\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Oops...',\r\n text: 'Login inválido!'\r\n })\r\n return err;\r\n })\r\n}\r\nfunction postWithToken(apiEndpoint, payload, token) {\r\n\r\n let options = {};\r\n if (token) {\r\n options.headers = { 'Authorization': 'Bearer ' + token };\r\n }\r\n\r\n return axios.post(config.baseUrl + apiEndpoint, payload, options)\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Oops...',\r\n text: 'Login inválido!'\r\n })\r\n return err;\r\n })\r\n}","import axios from 'axios';\r\nimport config from '../config/config';\r\nimport { history } from '../_helpers';\r\n\r\nexport const crudService = {\r\n get,\r\n post,\r\n put,\r\n deleteDetail\r\n};\r\nfunction get(apiEndpoint) {\r\n return axios.get(config.baseUrl + apiEndpoint, getOptions())\r\n .then((response) => { \r\n return response;\r\n }).catch((err) => {\r\n console.log(err);\r\n if (err.response.status == 401) {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n history.push('/');\r\n } \r\n return err;\r\n })\r\n}\r\nfunction post(apiEndpoint, payload) {\r\n return axios.post(config.baseUrl + apiEndpoint, payload, getOptions())\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n console.log(err);\r\n if (err.response.status == 401) {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n history.push('/');\r\n }\r\n return err;\r\n })\r\n}\r\nfunction put(apiEndpoint, payload) {\r\n return axios.put(config.baseUrl + apiEndpoint, payload, getOptions())\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n console.log(err);\r\n if (err.response.status == 401) {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n history.push('/');\r\n } \r\n return err;\r\n })\r\n}\r\nfunction deleteDetail(apiEndpoint) {\r\n return axios.delete(config.baseUrl + apiEndpoint, getOptions())\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n console.log(err);\r\n if (err.response.status == 401) {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n history.push('/');\r\n } \r\n return err;\r\n })\r\n}\r\nfunction getOptions() {\r\n let options = {};\r\n if (localStorage.getItem('token')) {\r\n options.headers = { 'Authorization': 'Bearer ' + localStorage.getItem('token') };\r\n }\r\n return options;\r\n}","import { authService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nexport const authActions = {\r\n login,\r\n logout\r\n};\r\nfunction login(username, password) {\r\n return dispatch => {\r\n let apiEndpoint = 'authentication/request';\r\n let payload = {\r\n username: username,\r\n password: password\r\n }\r\n authService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.data && response.data.token) {\r\n localStorage.setItem('token', response.data.token);\r\n localStorage.setItem('auth', response.data.auth);\r\n localStorage.setItem('user', JSON.stringify(response.data.user));\r\n dispatch(setUserDetails(response.data));\r\n //history.push('/home');\r\n history.push('/minhasestacoes');\r\n }\r\n })\r\n };\r\n}\r\nfunction logout() {\r\n return dispatch => {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n dispatch(logoutUser());\r\n history.push('/login');\r\n }\r\n}\r\nexport function setUserDetails(user) {\r\n return {\r\n type: \"LOGIN_SUCCESS\",\r\n auth: user.auth,\r\n token: user.token,\r\n user: user.user\r\n }\r\n}\r\nexport function logoutUser() {\r\n return {\r\n type: \"LOGOUT_SUCCESS\",\r\n auth: false,\r\n token: '',\r\n user: null\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const checkoutActions = {\r\n createPreference\r\n};\r\nfunction createPreference(lotes) {\r\n return dispatch => {\r\n let apiEndpoint = 'checkout';\r\n\r\n crudService.post(apiEndpoint, lotes)\r\n .then(response => {\r\n console.log('response', response);\r\n if (response.status == 202 || response.statusText == 'Accepted') {\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Teste iniciado com sucesso!'\r\n }).then(function () {\r\n window.location = \"/minhasestacoes\";\r\n });\r\n } else {\r\n window.location.replace(response.data.preference.initPoint);\r\n //window.location.replace(response.data.preference.sandboxInitPoint);\r\n }\r\n }).catch(err => {\r\n //toast.error('Opss! Problema ao autenticar usuário! 😥')\r\n // err.response.data.errors.forEach(error => toast.error('Opss! ' + error))\r\n })\r\n };\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\n\r\nexport const cidadeAction = {\r\n getCidade,\r\n getCidadeSelect,\r\n clear\r\n};\r\nfunction getCidade() {\r\n return dispatch => {\r\n let apiEndpoint = 'cidades';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeCidadesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getCidadeSelect() {\r\n return dispatch => {\r\n let apiEndpoint = 'cidades/select';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n //response.data.unshift({ id: 0, nome: 'Selecione ...', estadoId: 0, ibge: 0, latLon: null, estado: null });\r\n dispatch(changeCidadesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nexport function changeCidadesList(cidade) {\r\n return {\r\n type: \"FETECHED_ALL_CIDADE\",\r\n cidade: cidade\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"CIDADE_CLEAR\",\r\n }\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_CIDADE\",\r\n props: props,\r\n value: value\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\nimport { visualizationAction } from '../_actions';\r\n\r\nexport const estacaoAction = {\r\n getEstacao,\r\n getEstacaoById,\r\n getEstacaoUsuarioById,\r\n onChangeProps,\r\n editEstacaoInfo,\r\n createEstacao,\r\n favEstacao,\r\n unfavEstacao,\r\n testEstacao,\r\n deleteEstacaoById,\r\n clear\r\n};\r\nfunction getEstacao() {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEstacoesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction createEstacao(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 201) {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Estação cadastrada com sucesso!'\r\n })\r\n history.goBack();\r\n }\r\n else if (response && response.request.status == 400) {\r\n if (response.request.responseText != null && response.request.responseText != '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: response.request.responseText\r\n })\r\n }\r\n else {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Já existe uma estação com este código!'\r\n })\r\n }\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar estação!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar estação!'\r\n })\r\n })\r\n }\r\n}\r\nfunction favEstacao(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/favoritar/' + id;\r\n crudService.post(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status == 201) {\r\n dispatch(createUserInfo());\r\n dispatch(visualizationAction.getVisualization());\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao favoritar estação!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao favoritar estação!'\r\n })\r\n })\r\n }\r\n}\r\nfunction unfavEstacao(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/desfavoritar/' + id;\r\n crudService.post(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status == 201) {\r\n dispatch(createUserInfo());\r\n dispatch(visualizationAction.getVisualization());\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao favoritar estação!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao favoritar estação!'\r\n })\r\n })\r\n }\r\n}\r\nfunction testEstacao(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/testar';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.status == 200) {\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Teste realizado com sucesso. Cadastro está OK!'\r\n })\r\n }\r\n else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao realizar teste. Cadastro não está OK!'\r\n })\r\n }\r\n })\r\n }\r\n}\r\nfunction getEstacaoById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editEstacoesDetails(response.data));\r\n })\r\n };\r\n}\r\nfunction getEstacaoUsuarioById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/usuario/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEstacoesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction onChangeProps(props, value) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, value));\r\n }\r\n}\r\nfunction editEstacaoInfo(id, payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/' + id;\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 204) {\r\n dispatch(updatedUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Estação alterada com sucesso!'\r\n })\r\n history.goBack();\r\n }\r\n else if (response && response.request.status == 400) {\r\n if (response.request.responseText != null && response.request.responseText != '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: response.request.responseText\r\n })\r\n }\r\n else {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Já existe uma estação com este código!'\r\n })\r\n }\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao alterar estação!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao alterar estação!'\r\n })\r\n })\r\n }\r\n}\r\nfunction deleteEstacaoById(id) {\r\n return dispatch => {\r\n\r\n Swal.fire({\r\n title: 'Confirmação',\r\n text: 'Tem certeza de que deseja excluir o registro?',\r\n icon: 'warning',\r\n buttons: true,\r\n showCancelButton: true,\r\n confirmButtonText: 'Sim',\r\n cancelButtonText: \"Não, cancelar!\",\r\n dangerMode: true,\r\n heightAuto: false\r\n })\r\n .then((willDelete) => {\r\n if (willDelete.value) {\r\n\r\n let apiEndpoint = 'estacoes/' + id;\r\n crudService.deleteDetail(apiEndpoint)\r\n .then((response) => {\r\n dispatch(deleteEstacoesDetails());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Estação excluída com sucesso!'\r\n })\r\n dispatch(estacaoAction.getEstacao());\r\n })\r\n\r\n }\r\n });\r\n\r\n };\r\n}\r\nexport function changeEstacoesList(estacao) {\r\n return {\r\n type: \"FETECHED_ALL_ESTACAO\",\r\n estacao: estacao\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"ESTACAO_CLEAR\",\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_ESTACAO\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editEstacoesDetails(estacao) {\r\n return {\r\n type: \"ESTACAO_DETAIL\",\r\n id: estacao._id,\r\n codigo: estacao.codigo,\r\n nome: estacao.nome,\r\n senha: estacao.senha,\r\n token: estacao.token,\r\n fonteId: estacao.fonteId,\r\n usuarioId: estacao.usuarioId,\r\n fonte: estacao.fonte,\r\n cidadeId: estacao.cidadeId,\r\n cidade: estacao.cidade,\r\n aprovada: estacao.aprovada,\r\n apelido: estacao.apelido,\r\n link: estacao.link,\r\n latLon: estacao.latLon,\r\n latitude: (estacao.latLon ? estacao.latLon.x : ''),\r\n longitude: (estacao.latLon ? estacao.latLon.y : '')\r\n }\r\n}\r\nexport function updatedUserInfo() {\r\n return {\r\n type: \"ESTACAO_UPDATED\"\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: \"ESTACAO_CREATED_SUCCESSFULLY\"\r\n }\r\n}\r\nexport function deleteEstacoesDetails() {\r\n return {\r\n type: \"DELETED_ESTACAO_DETAILS\"\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\n\r\nexport const estadoAction = {\r\n getEstado,\r\n getEstadoSelect,\r\n clear\r\n};\r\nfunction getEstado() {\r\n return dispatch => {\r\n let apiEndpoint = 'estados';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEstadosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getEstadoSelect() {\r\n return dispatch => {\r\n let apiEndpoint = 'estados/select';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n //response.data.unshift({ id: 0, nome: 'Selecione ...', uf: '', ibge: 0, paisId: 1, ddd: '', pais: null });\r\n dispatch(changeEstadosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nexport function changeEstadosList(estado) {\r\n return {\r\n type: \"FETECHED_ALL_ESTADO\",\r\n estado: estado\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"ESTADO_CLEAR\",\r\n }\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_ESTADO\",\r\n props: props,\r\n value: value\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const fonteAction = {\r\n getFonte,\r\n getFonteSelect,\r\n getFonteById,\r\n onChangeProps,\r\n editFonteInfo,\r\n createFonte,\r\n deleteFonteById,\r\n clear\r\n};\r\nfunction getFonte() {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeFontesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getFonteSelect() {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n //response.data.unshift({ id: 0, descricao: 'Selecione ...', url: '' });\r\n dispatch(changeFontesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction createFonte(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes/';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(createUserInfo());\r\n history.push('/fontes');\r\n })\r\n }\r\n}\r\nfunction getFonteById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editFontesDetails(response.data));\r\n })\r\n };\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nfunction editFonteInfo(id, payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes/' + id;\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(updatedUserInfo());\r\n history.push('/fontes');\r\n })\r\n }\r\n}\r\nfunction deleteFonteById(id) {\r\n return dispatch => {\r\n\r\n Swal.fire({\r\n title: 'Confirmação',\r\n text: 'Tem certeza de que deseja excluir o registro?',\r\n icon: 'warning',\r\n buttons: true,\r\n showCancelButton: true,\r\n confirmButtonText: 'Sim',\r\n cancelButtonText: \"Não, cancelar!\",\r\n dangerMode: true,\r\n heightAuto: false\r\n })\r\n .then((willDelete) => {\r\n if (willDelete.value) {\r\n\r\n let apiEndpoint = 'fontes/' + id;\r\n crudService.deleteDetail(apiEndpoint)\r\n .then((response) => {\r\n dispatch(deleteFontesDetails());\r\n dispatch(fonteAction.getFonte());\r\n })\r\n\r\n }\r\n });\r\n\r\n };\r\n}\r\nexport function changeFontesList(fonte) {\r\n return {\r\n type: \"FETECHED_ALL_FONTE\",\r\n fonte: fonte\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"FONTE_CLEAR\",\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_FONTE\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editFontesDetails(fonte) {\r\n return {\r\n type: \"FONTE_DETAIL\",\r\n id: fonte._id,\r\n codigo: fonte.codigo,\r\n nome: fonte.nome,\r\n senha: fonte.senha,\r\n token: fonte.token\r\n }\r\n}\r\nexport function updatedUserInfo() {\r\n return {\r\n type: \"FONTE_UPDATED\"\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: \"FONTE_CREATED_SUCCESSFULLY\"\r\n }\r\n}\r\nexport function deleteFontesDetails() {\r\n return {\r\n type: \"DELETED_FONTE_DETAILS\"\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\n\r\nexport const pagamentoAction = {\r\n getPagamento,\r\n getPagamentoUsuarioById,\r\n getPagamentoAtivoUsuarioById,\r\n clear\r\n};\r\nfunction getPagamento() {\r\n return dispatch => {\r\n let apiEndpoint = 'pagamentos';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changePagamentosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getPagamentoUsuarioById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'pagamentos/usuario/' + id;;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changePagamentosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getPagamentoAtivoUsuarioById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'pagamentos/usuario/ativo/' + id;;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editPagamentosDetails(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nexport function changePagamentosList(pagamento) {\r\n return {\r\n type: \"FETECHED_ALL_PAGAMENTO\",\r\n pagamento: pagamento\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"PAGAMENTO_CLEAR\",\r\n }\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_PAGAMENTO\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editPagamentosDetails(pagamento) {\r\n return {\r\n type: \"PAGAMENTO_DETAIL\",\r\n id: pagamento.id,\r\n usuarioId: pagamento.usuarioId,\r\n dataPagamento: pagamento.dataPagamento,\r\n dataInicioValidade: pagamento.dataInicioValidade,\r\n dataFimValidade: pagamento.dataFimValidade,\r\n valor: pagamento.valor,\r\n formaPagamento: pagamento.formaPagamento,\r\n status: pagamento.status,\r\n transacao: pagamento.transacao,\r\n usuario: pagamento.usuario\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const parametroAction = {\r\n getParametro,\r\n getParametroById,\r\n onChangeProps,\r\n editParametroInfo,\r\n createParametro,\r\n deleteParametroById,\r\n clear\r\n};\r\nfunction getParametro() {\r\n return dispatch => {\r\n let apiEndpoint = 'parametros';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeParametrosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction createParametro(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'parametros/';\r\n console.log(payload);\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Parâmetro cadastrado com sucesso!'\r\n })\r\n history.push('/parametros');\r\n })\r\n }\r\n}\r\nfunction getParametroById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'parametros/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editParametrosDetails(response.data));\r\n })\r\n };\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nfunction editParametroInfo(id, payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'parametros/' + id;\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(updatedUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Parâmetro alterado com sucesso!'\r\n })\r\n history.push('/parametros');\r\n })\r\n }\r\n}\r\nfunction deleteParametroById(id) {\r\n return dispatch => {\r\n\r\n Swal.fire({\r\n title: 'Confirmação',\r\n text: 'Tem certeza de que deseja excluir o registro?',\r\n icon: 'warning',\r\n buttons: true,\r\n showCancelButton: true,\r\n confirmButtonText: 'Sim',\r\n cancelButtonText: \"Não, cancelar!\",\r\n dangerMode: true,\r\n heightAuto: false\r\n })\r\n .then((willDelete) => {\r\n if (willDelete.value) {\r\n\r\n let apiEndpoint = 'parametros/' + id;\r\n crudService.deleteDetail(apiEndpoint)\r\n .then((response) => {\r\n dispatch(deleteParametrosDetails());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Parâmetro excluído com sucesso!'\r\n })\r\n dispatch(parametroAction.getParametro());\r\n })\r\n\r\n }\r\n });\r\n\r\n };\r\n}\r\nexport function changeParametrosList(parametro) {\r\n return {\r\n type: \"FETECHED_ALL_PARAMETRO\",\r\n parametro: parametro\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"PARAMETRO_CLEAR\",\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_PARAMETRO\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editParametrosDetails(parametro) {\r\n return {\r\n type: \"PARAMETRO_DETAIL\",\r\n id: parametro._id,\r\n chave: parametro.chave,\r\n valor: parametro.valor,\r\n descricao: parametro.descricao\r\n }\r\n}\r\nexport function updatedUserInfo() {\r\n return {\r\n type: \"PARAMETRO_UPDATED\"\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: \"PARAMETRO_CREATED_SUCCESSFULLY\"\r\n }\r\n}\r\nexport function deleteParametrosDetails() {\r\n return {\r\n type: \"DELETED_PARAMETRO_DETAILS\"\r\n }\r\n}","import { crudService, authService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const usuarioAction = {\r\n getUsuario,\r\n getUsuarioSelect,\r\n getUsuarioById,\r\n onChangeProps,\r\n editUsuarioInfo,\r\n createUsuario,\r\n deleteUsuarioById,\r\n clear,\r\n requestPasswordReset,\r\n passwordReset\r\n};\r\nfunction getUsuario() {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeUsuariosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getUsuarioSelect() {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n //response.data.unshift({ id: 0, descricao: 'Selecione ...', url: '' });\r\n dispatch(changeUsuariosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction createUsuario(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios/';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 201) {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Usuário cadastrado com sucesso!'\r\n })\r\n history.push('/usuarios');\r\n }\r\n else if (response && response.request.status == 400) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Já existe um usuário com este e-mail!'\r\n })\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar usuário!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar usuário!'\r\n })\r\n })\r\n }\r\n}\r\nfunction getUsuarioById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editUsuariosDetails(response.data));\r\n })\r\n };\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nfunction editUsuarioInfo(id, payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios/' + id;\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 204) {\r\n dispatch(updatedUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Usuário alterado com sucesso!'\r\n })\r\n history.push('/usuarios');\r\n }\r\n else if (response && response.request.status == 400) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Já existe um usuário com este e-mail!'\r\n })\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao alterar usuário!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao alterar usuário!'\r\n })\r\n })\r\n }\r\n}\r\nfunction deleteUsuarioById(id) {\r\n return dispatch => {\r\n\r\n Swal.fire({\r\n title: 'Confirmação',\r\n text: 'Tem certeza de que deseja excluir o registro?',\r\n icon: 'warning',\r\n buttons: true,\r\n showCancelButton: true,\r\n confirmButtonText: 'Sim',\r\n cancelButtonText: \"Não, cancelar!\",\r\n dangerMode: true,\r\n heightAuto: false\r\n })\r\n .then((willDelete) => {\r\n if (willDelete.value) {\r\n\r\n let apiEndpoint = 'usuarios/' + id;\r\n crudService.deleteDetail(apiEndpoint)\r\n .then((response) => {\r\n dispatch(deleteUsuariosDetails());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Usuário excluído com sucesso!'\r\n })\r\n dispatch(usuarioAction.getUsuario());\r\n })\r\n\r\n }\r\n });\r\n\r\n };\r\n}\r\nexport function changeUsuariosList(usuario) {\r\n return {\r\n type: \"FETECHED_ALL_USUARIO\",\r\n usuario: usuario\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"USUARIO_CLEAR\",\r\n }\r\n}\r\nfunction requestPasswordReset(payload) {\r\n return dispatch => {\r\n console.log('payload', payload);\r\n let apiEndpoint = 'usuarios/request-reset-password/';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 200) {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'E-mail de recuperação enviado!'\r\n })\r\n history.push('/usuarios');\r\n }\r\n else if (response && response.request.status == 404) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Não existe nehumum usuário com este e-mail!'\r\n })\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao recuperar senha do usuário!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar usuário!'\r\n })\r\n })\r\n }\r\n}\r\nfunction passwordReset(payload, token) {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios/reset-password/';\r\n authService.postWithToken(apiEndpoint, payload, token)\r\n .then((response) => {\r\n if (response && response.request.status == 200) {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Senha redefinida com sucesso!'\r\n })\r\n history.push('/usuarios');\r\n }\r\n else if (response && response.request.status == 404) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Não existe nehumum usuário com o e-mail informado!'\r\n })\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao recuperar senha do usuário!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar usuário!'\r\n })\r\n })\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_USUARIO\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editUsuariosDetails(usuario) {\r\n return {\r\n type: \"USUARIO_DETAIL\",\r\n id: usuario._id,\r\n email: usuario.email,\r\n nome: usuario.nome,\r\n senha: usuario.senha,\r\n papel: usuario.papel,\r\n telefone: usuario.telefone,\r\n log: usuario.log\r\n }\r\n}\r\nexport function updatedUserInfo() {\r\n return {\r\n type: \"USUARIO_UPDATED\"\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: \"USUARIO_CREATED_SUCCESSFULLY\"\r\n }\r\n}\r\nexport function deleteUsuariosDetails() {\r\n return {\r\n type: \"DELETED_USUARIO_DETAILS\"\r\n }\r\n}","import { crudService, visualizationService } from '../_services/';\r\n\r\nexport const visualizationAction = {\r\n getVisualization\r\n};\r\nfunction getVisualization() {\r\n return dispatch => {\r\n let apiEndpoint = 'visualization';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeVisualizationsList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\n\r\nexport function changeVisualizationsList(visualization) {\r\n return {\r\n type: \"FETECHED_ALL_VISUALIZATION\",\r\n visualization: visualization\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_VISUALIZATION\",\r\n props: props,\r\n value: value\r\n }\r\n}","module.exports = {\r\n headers: {\r\n accept: 'application/json'\r\n },\r\n //baseUrl: 'http://localhost:56531/api/'\r\n //baseUrl: 'http://estacoes.forcontrol.com.br/api/'\r\n baseUrl: 'https://estacoesdobrasil.com.br/api/'\r\n}\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAZCAYAAAAIcL+IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAECSURBVDiN7ZOhTgNRFETPLhUIaoAPqMATUodrUaxAkKBqK/BFNzV8BAqHgxDSChwC1SBxpa4JAtdQQ0gO5m6ybTcbgmaSEXdmct8d8SCgJmpXfQl21YRVqJk6U8+CMzUrCw7VXmHuqcN8TgvZPWBamKehrQUr8R+sRG1VUC+BbeCxMgicA1u/CX4AG3++MY27joFGbCtuboQHalOdqx31QH1V30LvhNdM1CvgG7gHHoDN2PgFnAIZUEOdqCfqteu4CW+SAnVgDuyUdNgNr54CY+AIuCsJ3oY3Rm2rC3U//smT+qxeRLmF2s6bD9RPta8eBvuhDZbeUFvqSH0PjtRW7v8Ar+PzWLoBXg8AAAAASUVORK5CYII=\"","import { connect } from 'react-redux';\r\nimport { estacaoAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { history } from '../_helpers';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%'\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Estacao extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.clear());\r\n dispatch(estacaoAction.getEstacao()); \r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (event, id) => {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.deleteEstacaoById(id));\r\n };\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { estacao } = this.props.state.estacao;\r\n\r\n return (\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Estações'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {'Total'}\r\n {estacao.length}\r\n \r\n \r\n \r\n \r\n {'Apro.'}\r\n {estacao.filter(item => (item.aprovada != null && item.aprovada == true)).length}\r\n \r\n \r\n \r\n \r\n {'Aguard.'}\r\n {estacao.filter(item => (item.aprovada == null)).length}\r\n \r\n \r\n \r\n \r\n {'Repro.'}\r\n {estacao.filter(item => (item.aprovada != null && item.aprovada == false)).length}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Código\r\n Usuário\r\n Nome\r\n Localização\r\n Situação\r\n Ações\r\n \r\n \r\n \r\n {\r\n estacao.map(n => {\r\n\r\n var location = '';\r\n if (n.cidade != null && n.cidade.estado != null && n.cidade.nome != null) {\r\n location = n.cidade.nome + ', ' + n.cidade.estado.uf;\r\n } else if (n.cidade != null && n.cidade.estado != null && n.cidade.estado.uf != null) {\r\n location = n.cidade.estado.uf;\r\n } else if (n.cidade != null) {\r\n location = n.cidade.cidade.nome;\r\n }\r\n\r\n var situacao = '';\r\n if (n.aprovada != null && n.aprovada == true) {\r\n situacao = 'Aprovada';\r\n } else if (n.aprovada != null && n.aprovada == false) {\r\n situacao = 'Reprovada';\r\n } else {\r\n situacao = 'Aguardando aprovação'\r\n }\r\n \r\n return (\r\n \r\n \r\n {n.codigo}\r\n \r\n \r\n {n.usuario ? n.usuario.nome : ''}\r\n \r\n \r\n {n.apelido ? n.apelido : n.nome}\r\n \r\n {location}\r\n {situacao}\r\n \r\n history.push(`/estacao/${n.id}`)}>\r\n \r\n \r\n this.handleClick(event, n.id)}>\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nEstacao.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedEstacaoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Estacao)));\r\nexport { connectedEstacaoPage as Estacao };","import React, { Component, PureComponent } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Nav from '../_components/nav';\r\nimport { Paper, Grid, Button, TextField, Select, Typography, Input, InputLabel, MenuItem, FormHelperText, FormControl, FormControlLabel, Switch } from '@material-ui/core';\r\nimport { connect } from 'react-redux';\r\nimport { estacaoAction, estadoAction, cidadeAction, fonteAction, usuarioAction } from '../_actions';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n contentRoot: {\r\n ...theme.mixins.gutters(),\r\n paddingTop: theme.spacing.unit * 2,\r\n paddingBottom: theme.spacing.unit * 2,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n submitButton: {\r\n color: '#ffffff',\r\n marginLeft: 5\r\n }\r\n});\r\nclass EstacaoEdit extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n handleChangeSelectedEstado(value) {\r\n this.props.estacao.cidade.estadoId = value;\r\n this.renderOptionsCidade();\r\n this.forceUpdate();\r\n }\r\n\r\n handleChangeSelectedCidade(value) {\r\n this.props.estacao.cidadeId = value;\r\n this.forceUpdate();\r\n }\r\n\r\n handleChangeSelectedFonte(value) {\r\n this.props.estacao.fonteId = value;\r\n this.forceUpdate();\r\n }\r\n\r\n handleChangeSelectedUsuario(value) {\r\n this.props.estacao.usuarioId = value;\r\n this.forceUpdate();\r\n }\r\n\r\n handleChange = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.onChangeProps(prop, event.target.value));\r\n }\r\n\r\n handleChangeChecked = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.onChangeProps(prop, event.target.checked));\r\n }\r\n\r\n componentDidMount() {\r\n const { match: { params } } = this.props;\r\n this.renderOptionsEstado();\r\n\r\n const { dispatch } = this.props;\r\n if (params.id) {\r\n dispatch(estacaoAction.getEstacaoById(params.id));\r\n } else {\r\n dispatch(estacaoAction.clear());\r\n }\r\n\r\n dispatch(estadoAction.getEstado());\r\n dispatch(cidadeAction.getCidade());\r\n dispatch(fonteAction.getFonteSelect());\r\n dispatch(usuarioAction.getUsuarioSelect());\r\n\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n handleClick(event, type) {\r\n\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n\r\n if (this.props.estacao.fonteId == null || this.props.estacao.fonteId == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Fonte válida!'\r\n })\r\n } else if (this.props.estacao.fonteId !== 7 && (this.props.estacao.codigo == null || this.props.estacao.codigo == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Código/Station ID válido!'\r\n })\r\n } else if (this.props.estacao.fonteId == 1 && this.props.estacao.codigo.length !== 12) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Para o WeatherLink, informe um Código/Station com 12 caracteres!'\r\n })\r\n } else if (this.props.estacao.fonteId == 1 && (this.props.estacao.senha == null || this.props.estacao.senha == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Senha válida!'\r\n })\r\n } else if (this.props.estacao.fonteId == 2 && (this.props.estacao.dataValidadeToken == null || this.props.estacao.dataValidadeToken == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Data de Validade da API Key!'\r\n })\r\n } else if ((this.props.estacao.fonteId !== 3 && this.props.estacao.fonteId !== 5 && this.props.estacao.fonteId !== 9) && (this.props.estacao.token == null || this.props.estacao.token == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Token/API Key válida!'\r\n })\r\n } else if (this.props.estacao.cidade.estadoId == null || this.props.estacao.cidade.estadoId == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Estado válido!'\r\n })\r\n } else if (this.props.estacao.cidadeId == null || this.props.estacao.cidadeId == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Cidade válida!'\r\n })\r\n } else if (this.props.estacao.fonteId == 7 && (this.props.estacao.latitude == null || this.props.estacao.latitude == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Latitude!'\r\n })\r\n } else if (this.props.estacao.fonteId == 7 && (this.props.estacao.longitude == null || this.props.estacao.longitude == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Longitude!'\r\n })\r\n } else {\r\n\r\n let payload = {\r\n id: params.id,\r\n usuarioId: (this.props.estacao.usuarioId ? this.props.estacao.usuarioId : this.props.authentication.user.id),\r\n fonteId: this.props.estacao.fonteId,\r\n nome: this.props.estacao.nome,\r\n codigo: this.props.estacao.codigo,\r\n senha: this.props.estacao.senha,\r\n aprovada: this.props.estacao.aprovada,\r\n dataValidadeToken: this.props.estacao.dataValidadeToken,\r\n token: this.props.estacao.token,\r\n cidadeId: this.props.estacao.cidadeId,\r\n apelido: this.props.estacao.apelido,\r\n link: this.props.estacao.link,\r\n latLon: (this.props.estacao.fonteId == 7 ? {\r\n x: this.props.estacao.latitude,\r\n y: this.props.estacao.longitude\r\n } : null)\r\n }\r\n\r\n if (type == 'test') {\r\n dispatch(estacaoAction.testEstacao(payload));\r\n } else {\r\n if (params.id) {\r\n dispatch(estacaoAction.editEstacaoInfo(params.id, payload));\r\n } else {\r\n payload.id = 0;\r\n dispatch(estacaoAction.createEstacao(payload));\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n renderOptionsEstado() {\r\n return this.props.estado.estado.map((p, i) => {\r\n if (p.paisId === 1) {\r\n return (\r\n {p.nome}\r\n \r\n );\r\n }\r\n });\r\n }\r\n\r\n renderOptionsCidade() {\r\n const { estadoId } = this.props.estacao.cidade;\r\n return this.props.cidade.cidade.map((p, i) => {\r\n if (p.estadoId == estadoId) {\r\n return (\r\n {p.nome}\r\n \r\n );\r\n }\r\n });\r\n }\r\n\r\n renderOptionsFonte() {\r\n return this.props.fonte.fonte.map((p, i) => {\r\n return (\r\n {p.descricao}\r\n \r\n\r\n );\r\n });\r\n }\r\n\r\n renderOptionsUsuario() {\r\n return this.props.usuario.usuario.map((p, i) => {\r\n return (\r\n {p.nome}\r\n \r\n\r\n );\r\n });\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { match: { params } } = this.props;\r\n var papel = this.props.authentication.user.papel;\r\n\r\n function InsertText(props) {\r\n return {'Nova Estação'};\r\n }\r\n\r\n function EditText(props) {\r\n return {'Editar Estação'};\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return ;\r\n }\r\n return ;\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Fonte\r\n this.handleChangeSelectedFonte(event.target.value)}\r\n input={}\r\n >\r\n {this.renderOptionsFonte()}\r\n \r\n \r\n \r\n {papel === 'admin' ?\r\n \r\n \r\n Usuário\r\n this.handleChangeSelectedUsuario(event.target.value)}\r\n input={}\r\n >\r\n {this.renderOptionsUsuario()}\r\n \r\n \r\n \r\n : null}\r\n \r\n \r\n {\r\n ((this.props.estacao.fonteId !== 7) ?\r\n \r\n \r\n \r\n \r\n \r\n : null\r\n )\r\n }\r\n {\r\n ((this.props.estacao.fonteId == 1 || this.props.estacao.fonteId === 4 || this.props.estacao.fonteId === 6) ?\r\n \r\n \r\n \r\n \r\n \r\n : null\r\n )\r\n }\r\n {\r\n ((this.props.estacao.fonteId == 2) ?\r\n \r\n \r\n \r\n \r\n \r\n : null\r\n )\r\n }\r\n \r\n {\r\n ((this.props.estacao.fonteId !== 3 && this.props.estacao.fonteId !== 5) ?\r\n \r\n \r\n \r\n \r\n \r\n {((this.props.estacao.fonteId == 2) ? \"Saiba como obter a API Key no Wundergound acessando https://www.wunderground.com/member/api-keys\" : ((this.props.estacao.fonteId == 6) ? \"Saiba como obter a API Key e Secret no WeatherLink v2 acessando https://www.weatherlink.com/account\" : ((this.props.estacao.fonteId == 7) ? \"Fazer login no WeatherLink e localizar o Hash da Estação. No link de exemplo https://www.weatherlink.com/bulletin/4f3efea1-d22f-4c33-aa82-55c3b0bc4308, o Hash é 4f3efea1-d22f-4c33-aa82-55c3b0bc4308.\" : \"\")))}\r\n \r\n \r\n : null\r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n Opcional. Nome a ser exibido no lugar do nome oficial da estação.\r\n \r\n \r\n \r\n \r\n \r\n Link externo para acesso à estação. Necessário apenas para o Weatherlink.\r\n \r\n \r\n\r\n \r\n \r\n \r\n Estado\r\n this.handleChangeSelectedEstado(event.target.value)}\r\n input={}\r\n >\r\n {this.renderOptionsEstado()}\r\n \r\n {/*Label + placeholder*/}\r\n \r\n \r\n \r\n \r\n Cidade\r\n this.handleChangeSelectedCidade(event.target.value)}\r\n input={}\r\n >\r\n {this.renderOptionsCidade()}\r\n \r\n {/*Label + placeholder*/}\r\n \r\n \r\n \r\n {\r\n ((this.props.estacao.fonteId == 7) ?\r\n \r\n \r\n \r\n \r\n \r\n Formato:-50.4903\r\n \r\n \r\n \r\n \r\n \r\n Formato:-26.2933\r\n \r\n \r\n : null\r\n )\r\n }\r\n {papel === 'admin' ?\r\n \r\n \r\n \r\n }\r\n label=\"Aprovada\"\r\n />\r\n \r\n \r\n : null}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nEstacaoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\n\r\nconst connectedEstacaoEditPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(EstacaoEdit)));\r\nexport { connectedEstacaoEditPage as EstacaoEdit };","import { connect } from 'react-redux';\r\nimport { estacaoAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Nav from '../_components/nav';\r\nimport { Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { history } from '../_helpers';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass MinhaEstacao extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n var usuarioId = this.props.state.authentication.user.id;\r\n dispatch(estacaoAction.clear());\r\n dispatch(estacaoAction.getEstacaoUsuarioById(usuarioId)); \r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (event, id) => {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.deleteEstacaoById(id));\r\n };\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { estacao } = this.props.state.estacao;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Estações'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {'Total'}\r\n {estacao.length}\r\n \r\n \r\n \r\n \r\n {'Apro.'}\r\n {estacao.filter(item => (item.aprovada != null && item.aprovada == true)).length}\r\n \r\n \r\n \r\n \r\n {'Aguard.'}\r\n {estacao.filter(item => (item.aprovada == null)).length}\r\n \r\n \r\n \r\n \r\n {'Repro.'}\r\n {estacao.filter(item => (item.aprovada != null && item.aprovada == false)).length}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Código\r\n Usuário\r\n Nome\r\n Localização\r\n Situação\r\n Ações\r\n \r\n \r\n \r\n {\r\n estacao.map(n => {\r\n\r\n var location = '';\r\n if (n.cidade != null && n.cidade.estado != null & n.cidade.estado.pais != null) {\r\n location = n.cidade.nome + ', ' + n.cidade.estado.uf + ', ' + n.cidade.estado.pais.nomePt;\r\n } else if (n.cidade.estado != null & n.cidade.estado.pais != null) {\r\n location = n.cidade.estado.uf + ', ' + n.cidade.estado.pais.nomePt;\r\n } else if (n.cidade.estado.pais != null) {\r\n location = n.cidade.estado.pais.nomePt;\r\n }\r\n\r\n var situacao = '';\r\n if (n.aprovada != null && n.aprovada == true) {\r\n situacao = 'Aprovada';\r\n } else if (n.aprovada != null && n.aprovada == false) {\r\n situacao = 'Reprovada';\r\n } else {\r\n situacao = 'Aguardando aprovação'\r\n }\r\n \r\n return (\r\n \r\n \r\n {n.codigo}\r\n \r\n \r\n {n.usuario ? n.usuario.nome : ''}\r\n \r\n \r\n {n.apelido ? n.apelido : n.nome}\r\n \r\n {location}\r\n {situacao}\r\n \r\n history.push(`/estacao/${n.id}`)}>\r\n \r\n \r\n this.handleClick(event, n.id)}>\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nMinhaEstacao.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedMinhaEstacaoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(MinhaEstacao)));\r\nexport { connectedMinhaEstacaoPage as MinhaEstacao };","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAZCAYAAAAIcL+IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEESURBVDiN1ZMvS0NhGMV/97JgmUU/wIJdZM22mbxhQTCt7hvMPPYZNJlsNkVk6wbTMNrm2sCwNjYQEX6WZ3DdXtQmHjjhOefw/HnhhYCaqR31KdhRM9ahFupUPQ1O1SIVHKjdUt1VB6s6L2X3gEmpnoS2EfwW/yFYWRfUFrANLH7qeAGc/2b0W0pPBU3t+NfvqB4DNWBW8mZALTxQ6+pcbasH6rP6Eno7vHqmXgIfwB1wD2xFx3fgBCiACupYbalXbuI6vHEOVIE5sJO4YTe8ag6MgCPgNhG8CW+E2lSX6n78kwf1UT2L45Zqc3V5X12oPfUw2Aut/2WG2lCH6mtwqDZW/ifGCfRXdNIPpAAAAABJRU5ErkJggg==\""],"sourceRoot":""}