{"version":3,"sources":["pages/LoginPage/LoginPage.module.scss","pages/LoginPage/LoginPage.js","pages/LoginPage/index.js","components/Layouts/PublicBasePage/index.tsx","components/Layouts/PublicBasePage/PublicBasePage.module.scss","core/apollo-client-v2/helpers/parseToken.ts","../node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js"],"names":["module","exports","box","contentWrapper","title","formControl","actionsWrapper","passwordResetLink","infoText","submitButton","LoginPage","downloadUrl","URL","window","location","href","searchParams","get","redirectAPI","callbackUrl","formatMessage","useFormatMessage","_useMutation","useMutation","SIGN_IN_AND_CREATE_TOKEN","onCompleted","_ref","signIn","createToken","token","tokenApi","parseToken","concat","toast","onError","setIsLoading","_slicedToArray","_useState","useState","_useState2","login","setLogin","_useState3","_useState4","password","setPassword","_useState5","_useState6","isLoading","useEffect","_useState7","url_string","url","callbackURL","updateLinkURL","_useState8","link_sign_up","React","createElement","PublicBasePage","simple","Paper","className","styles","FormattedMessage","id","onSubmit","e","preventDefault","variables","email","FormControl","TextField","label","variant","type","filterFormInput","value","onChange","event","target","required","Link","to","Button","color","CircularProgress","size","__webpack_require__","d","__webpack_exports__","HEADER_HEIGHT","HEADER_SIMPLE_HEIGHT","FOOTER_HEIGHT","children","_ref$simple","_ref$match","match","_useLazyQuery","useLazyQuery","GET_CURRENT_USER_ID","_useLazyQuery2","checkUserTokenStatus","userIdData","data","locale","localStorage","getItem","DEFAULT_LANGUAGE","headerHeight","innerHeight","windowHeight","setWindowHeight","contentHeight","setContentHeight","pathname","routes_paths","find","x","path","document","indexOf","params","alertId","_","carId","addEventListener","debouncedUpdateHeight","removeEventListener","currentUserId","debounce","classnames","pageWrapper","locale-en","style","height","Header","minHeight","Footer","parseJwt","base64","split","replace","jsonPayload","decodeURIComponent","atob","map","c","charCodeAt","toString","slice","join","JSON","parse","apiToken","parsedToken","setItem","name","profile","institution","notify_user_new_term_of_use_version","unseen_alerts","_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__","_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2__","clsx__WEBPACK_IMPORTED_MODULE_3__","_styles_withStyles__WEBPACK_IMPORTED_MODULE_4__","_utils_capitalize__WEBPACK_IMPORTED_MODULE_5__","props","ref","classes","_props$color","_props$disableShrink","disableShrink","_props$size","_props$thickness","thickness","_props$value","_props$variant","other","Object","circleStyle","rootStyle","rootProps","circumference","Math","PI","strokeDasharray","toFixed","round","strokeDashoffset","transform","root","determinate","indeterminate","static","width","role","svg","viewBox","SIZE","circle","circleDisableShrink","circleDeterminate","circleIndeterminate","circleStatic","cx","cy","r","fill","strokeWidth","theme","display","transition","transitions","create","animation","colorPrimary","palette","primary","main","colorSecondary","secondary","stroke","@keyframes circular-rotate","0%","transformOrigin","100%","@keyframes circular-dash","50%","flip"],"mappings":"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","file":"static/js/621.6f6516d5.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"box\":\"LoginPage_box__336yu\",\"contentWrapper\":\"LoginPage_contentWrapper__1A9EO\",\"title\":\"LoginPage_title__uvwxR\",\"formControl\":\"LoginPage_formControl__J1yl_\",\"actionsWrapper\":\"LoginPage_actionsWrapper__1W4Ot\",\"passwordResetLink\":\"LoginPage_passwordResetLink__3igWL\",\"infoText\":\"LoginPage_infoText__3uOsN\",\"submitButton\":\"LoginPage_submitButton__3pXqO\"};","import React, { useEffect, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { useMutation } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport FormControl from '@material-ui/core/FormControl';\nimport Paper from '@material-ui/core/Paper';\nimport TextField from '@material-ui/core/TextField';\n\nimport { PublicBasePage } from '../../components/Layouts/PublicBasePage';\nimport parseToken from '../../core/apollo-client-v2/helpers/parseToken';\nimport toast from '../../helpers/toast';\nimport useFormatMessage from '../../hooks/useFormatMessage';\nimport { SIGN_IN_AND_CREATE_TOKEN } from '../../models/User/operations';\nimport styles from './LoginPage.module.scss';\n\nexport default function LoginPage() {\n  const downloadUrl = new URL(window.location.href).searchParams.get('download_url');\n  const redirectAPI = new URL(window.location.href).searchParams.get('redirect_api');\n  const callbackUrl = new URL(window.location.href).searchParams.get('callback_url');\n\n  const formatMessage = useFormatMessage();\n  const [signIn] = useMutation(SIGN_IN_AND_CREATE_TOKEN, {\n    onCompleted: ({ signIn, createToken }) => {\n      const { token } = signIn;\n      const tokenApi = createToken.token;\n\n      parseToken(token, tokenApi);\n\n      if (downloadUrl) {\n        window.location.href = `/mapa?download_url=${downloadUrl}`;\n      } else if (redirectAPI) {\n        window.location.href = '/api';\n      } else if (callbackUrl) {\n        window.location.href = callbackUrl;\n      } else {\n        window.location.href = '/';\n      }\n      toast(formatMessage('login_page.success'), 'success');\n    },\n    onError: () => {\n      setIsLoading(false);\n      toast(formatMessage('login_page.form.error'), 'error');\n    },\n  });\n  const [login, setLogin] = useState('');\n  const [password, setPassword] = useState('');\n  const [isLoading, setIsLoading] = useState(false);\n\n  useEffect(() => {\n    if (redirectAPI) {\n      toast(formatMessage('login_page.api_login'), 'info');\n    }\n  }, []);\n\n  const updateLinkURL = () => {\n    var url_string = window.location.href;\n    var url = new URL(url_string);\n    var callbackURL = url.searchParams.get('callback_url');\n\n    if (callbackURL != null && callbackURL !== '') {\n      url = '/sign-up?callback_url' + callbackURL;\n    } else {\n      url = '/sign-up';\n    }\n\n    return url;\n  };\n\n  const [link_sign_up, setLinkSignUP] = useState(updateLinkURL());\n\n  const handleLoginChange = (event) => {\n    setLogin(event.target.value);\n  };\n  const handlePasswordChange = (event) => {\n    setPassword(event.target.value);\n  };\n  const handleSubmit = (e) => {\n    e.preventDefault();\n\n    if (login === '' || password === '') {\n      toast(formatMessage('login_page.form.empty_fields_error'), 'error');\n      return;\n    }\n\n    setIsLoading(true);\n    signIn({\n      variables: {\n        email: login,\n        password,\n      },\n    });\n  };\n\n  return (\n    <PublicBasePage simple>\n      <Paper className={styles.box}>\n        <div className={styles.contentWrapper}>\n          <h1 className={styles.title}>\n            <FormattedMessage id='login_page.title' />\n          </h1>\n          <form onSubmit={handleSubmit}>\n            <FormControl className={styles.formControl}>\n              <TextField\n                id='email-field'\n                label={formatMessage('login_page.form.fields.email')}\n                variant='outlined'\n                type='email'\n                className={styles.filterFormInput}\n                value={login}\n                onChange={handleLoginChange}\n                required\n              />\n            </FormControl>\n            <FormControl className={styles.formControl}>\n              <TextField\n                id='password-field'\n                label={formatMessage('login_page.form.fields.password')}\n                variant='outlined'\n                type='password'\n                className={styles.filterFormInput}\n                value={password}\n                onChange={handlePasswordChange}\n                required\n              />\n            </FormControl>\n            <div className={styles.actionsWrapper}>\n              <Link to='/recuperar-senha' className={styles.passwordResetLink}>\n                <FormattedMessage id='login_page.forgot_password' />\n              </Link>\n              <Button variant='contained' color='primary' type='submit' className={styles.submitButton}>\n                {isLoading && <CircularProgress color='secondary' size={18} />}\n                {!isLoading && <FormattedMessage id='login_page.form.buttons.login' />}\n              </Button>\n            </div>\n            <p className={styles.infoText}>\n              <FormattedMessage id='login_page.dont_have_account' />\n              <Link to={link_sign_up}>\n                <FormattedMessage id='login_page.sign_up_action' />\n              </Link>\n            </p>\n          </form>\n        </div>\n      </Paper>\n    </PublicBasePage>\n  );\n}\n","export { default } from './LoginPage'","import React, { useEffect, useState } from 'react';\nimport { RouteComponentProps } from 'react-router-dom';\n\nimport { useLazyQuery } from '@apollo/react-hooks';\nimport classnames from 'classnames';\nimport _ from 'lodash';\n\nimport { routes_paths } from '@core/routes/Routes';\nimport useFormatMessage from '@hooks/useFormatMessage';\n\nimport { DEFAULT_LANGUAGE } from '@helpers/locale';\nimport toast from '@helpers/toast';\nimport { GET_CURRENT_USER_ID } from '@models/InMemoryCache/localFields';\n\nimport { Footer } from '../Footer';\nimport Header from '../Header';\nimport styles from './PublicBasePage.module.scss';\n\nconst HEADER_HEIGHT = 100;\nconst HEADER_SIMPLE_HEIGHT = 50;\nconst FOOTER_HEIGHT = 30;\n\nexport interface IPublicBasePageProps {\n  children: React.ReactNode;\n  simple?: boolean;\n  match?: any;\n}\n\nexport function PublicBasePage({ children, simple = false, match = null }: IPublicBasePageProps) {\n  const [checkUserTokenStatus, { data: userIdData }] = useLazyQuery(GET_CURRENT_USER_ID);\n\n  const locale = localStorage.getItem('locale') || DEFAULT_LANGUAGE;\n  const formatMessage = useFormatMessage();\n\n  const headerHeight = simple ? HEADER_SIMPLE_HEIGHT : HEADER_HEIGHT;\n  const [windowHeight, setWindowHeight] = useState(window.innerHeight);\n  const [contentHeight, setContentHeight] = useState(window.innerHeight - (headerHeight + FOOTER_HEIGHT));\n\n  useEffect(() => {\n    // TODO\n    //  improve way to change title\n    const pathname = routes_paths.find((x) => x.path === window.location.pathname);\n    if (pathname) {\n      document.title = 'Mapbiomas Alerta | ' + formatMessage(pathname ? pathname.title : '');\n    } else if (window.location.pathname.indexOf('/alerta/') > -1) {\n      if (match) {\n        const { params } = match;\n        const alertId = _.get(params, 'alertId');\n        const carId = _.get(params, 'carId');\n        if (carId) {\n          document.title = 'Mapbiomas Alerta | ' + formatMessage('pages.report') + ` ${alertId} / ${carId}`;\n        } else {\n          document.title = 'Mapbiomas Alerta | ' + formatMessage('pages.report') + ` ${alertId}`;\n        }\n      } else {\n        document.title = 'Mapbiomas Alerta | ' + formatMessage('pages.reports');\n      }\n    }\n\n    if (localStorage.getItem('token') !== null) {\n      checkUserTokenStatus();\n    }\n  }, []);\n\n  useEffect(() => {\n    window.addEventListener('resize', debouncedUpdateHeight);\n\n    return () => {\n      window.removeEventListener('resize', debouncedUpdateHeight);\n    };\n  }, []);\n\n  useEffect(() => {\n    if (userIdData) {\n      const { currentUserId } = userIdData;\n      if (!currentUserId) {\n        toast(formatMessage('auth.session.expirated_token'));\n        //window.location.href = '/sign-in?callback_url='+ window.location.pathname\n      }\n    }\n  }, [userIdData]);\n\n  function updateHeight() {\n    setWindowHeight(window.innerHeight);\n    setContentHeight(window.innerHeight - (headerHeight + FOOTER_HEIGHT));\n  }\n\n  const debouncedUpdateHeight = _.debounce(updateHeight, 500);\n\n  return (\n    <div\n      className={classnames(styles.pageWrapper, {\n        'locale-en': locale === 'en',\n      })}\n      style={{ height: windowHeight }}\n    >\n      <Header simple={simple} />\n      <div className={styles.contentWrapper} style={{ minHeight: contentHeight }}>\n        {children}\n      </div>\n      <Footer />\n    </div>\n  );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"PublicBasePage_pageWrapper__OxzMp\",\"contentWrapper\":\"PublicBasePage_contentWrapper__14Xqk\"};","export function parseJwt(token: string) {\n\tvar base64Url = token.split('.')[1];\n\tvar base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n\tvar jsonPayload = decodeURIComponent(\n\t\tatob(base64)\n\t\t\t.split('')\n\t\t\t.map(function (c) {\n\t\t\t\treturn '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n\t\t\t})\n\t\t\t.join('')\n\t);\n\n\treturn JSON.parse(jsonPayload);\n}\n\nexport default function parseToken(token: string, apiToken?: string) {\n\tconst parsedToken = parseJwt(token);\n\n\tlocalStorage.setItem('token', token);\n\tlocalStorage.setItem('name', parsedToken.name);\n\tlocalStorage.setItem('email', parsedToken.email);\n\tlocalStorage.setItem('profile', parsedToken.profile);\n\tlocalStorage.setItem('institutionId', parsedToken.institution.id);\n\tlocalStorage.setItem('institutionName', parsedToken.institution.name);\n\tlocalStorage.setItem('notify_user_new_term_of_use_version', parsedToken.notify_user_new_term_of_use_version);\n\tlocalStorage.setItem('unseen_alerts', parsedToken.unseen_alerts);\n\n\tif (apiToken) {\n\t\tlocalStorage.setItem('tokenAPI', apiToken);\n\t}\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nvar SIZE = 44;\nexport var styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'inline-block'\n    },\n    /* Styles applied to the root element if `variant=\"static\"`. */\n    static: {\n      transition: theme.transitions.create('transform')\n    },\n    /* Styles applied to the root element if `variant=\"indeterminate\"`. */\n    indeterminate: {\n      animation: '$circular-rotate 1.4s linear infinite'\n    },\n    /* Styles applied to the root element if `variant=\"determinate\"`. */\n    determinate: {\n      transition: theme.transitions.create('transform')\n    },\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n    /* Styles applied to the `svg` element. */\n    svg: {\n      display: 'block' // Keeps the progress centered\n    },\n    /* Styles applied to the `circle` svg path. */\n    circle: {\n      stroke: 'currentColor' // Use butt to follow the specification, by chance, it's already the default CSS value.\n      // strokeLinecap: 'butt',\n    },\n    /* Styles applied to the `circle` svg path if `variant=\"static\"`. */\n    circleStatic: {\n      transition: theme.transitions.create('stroke-dashoffset')\n    },\n    /* Styles applied to the `circle` svg path if `variant=\"indeterminate\"`. */\n    circleIndeterminate: {\n      animation: '$circular-dash 1.4s ease-in-out infinite',\n      // Some default value that looks fine waiting for the animation to kicks in.\n      strokeDasharray: '80px, 200px',\n      strokeDashoffset: '0px' // Add the unit to fix a Edge 16 and below bug.\n    },\n    /* Styles applied to the `circle` svg path if `variant=\"determinate\"`. */\n    circleDeterminate: {\n      transition: theme.transitions.create('stroke-dashoffset')\n    },\n    '@keyframes circular-rotate': {\n      '0%': {\n        // Fix IE 11 wobbly\n        transformOrigin: '50% 50%'\n      },\n      '100%': {\n        transform: 'rotate(360deg)'\n      }\n    },\n    '@keyframes circular-dash': {\n      '0%': {\n        strokeDasharray: '1px, 200px',\n        strokeDashoffset: '0px'\n      },\n      '50%': {\n        strokeDasharray: '100px, 200px',\n        strokeDashoffset: '-15px'\n      },\n      '100%': {\n        strokeDasharray: '100px, 200px',\n        strokeDashoffset: '-125px'\n      }\n    },\n    /* Styles applied to the `circle` svg path if `disableShrink={true}`. */\n    circleDisableShrink: {\n      animation: 'none'\n    }\n  };\n};\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\nvar CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(props, ref) {\n  var classes = props.classes,\n    className = props.className,\n    _props$color = props.color,\n    color = _props$color === void 0 ? 'primary' : _props$color,\n    _props$disableShrink = props.disableShrink,\n    disableShrink = _props$disableShrink === void 0 ? false : _props$disableShrink,\n    _props$size = props.size,\n    size = _props$size === void 0 ? 40 : _props$size,\n    style = props.style,\n    _props$thickness = props.thickness,\n    thickness = _props$thickness === void 0 ? 3.6 : _props$thickness,\n    _props$value = props.value,\n    value = _props$value === void 0 ? 0 : _props$value,\n    _props$variant = props.variant,\n    variant = _props$variant === void 0 ? 'indeterminate' : _props$variant,\n    other = _objectWithoutProperties(props, [\"classes\", \"className\", \"color\", \"disableShrink\", \"size\", \"style\", \"thickness\", \"value\", \"variant\"]);\n  var circleStyle = {};\n  var rootStyle = {};\n  var rootProps = {};\n  if (variant === 'determinate' || variant === 'static') {\n    var circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n    circleStyle.strokeDasharray = circumference.toFixed(3);\n    rootProps['aria-valuenow'] = Math.round(value);\n    circleStyle.strokeDashoffset = \"\".concat(((100 - value) / 100 * circumference).toFixed(3), \"px\");\n    rootStyle.transform = 'rotate(-90deg)';\n  }\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    className: clsx(classes.root, className, color !== 'inherit' && classes[\"color\".concat(capitalize(color))], {\n      'determinate': classes.determinate,\n      'indeterminate': classes.indeterminate,\n      'static': classes.static\n    }[variant]),\n    style: _extends({\n      width: size,\n      height: size\n    }, rootStyle, style),\n    ref: ref,\n    role: \"progressbar\"\n  }, rootProps, other), /*#__PURE__*/React.createElement(\"svg\", {\n    className: classes.svg,\n    viewBox: \"\".concat(SIZE / 2, \" \").concat(SIZE / 2, \" \").concat(SIZE, \" \").concat(SIZE)\n  }, /*#__PURE__*/React.createElement(\"circle\", {\n    className: clsx(classes.circle, disableShrink && classes.circleDisableShrink, {\n      'determinate': classes.circleDeterminate,\n      'indeterminate': classes.circleIndeterminate,\n      'static': classes.circleStatic\n    }[variant]),\n    style: circleStyle,\n    cx: SIZE,\n    cy: SIZE,\n    r: (SIZE - thickness) / 2,\n    fill: \"none\",\n    strokeWidth: thickness\n  })));\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: PropTypes.oneOf(['inherit', 'primary', 'secondary']),\n  /**\n   * If `true`, the shrink animation is disabled.\n   * This only works if variant is `indeterminate`.\n   */\n  disableShrink: chainPropTypes(PropTypes.bool, function (props) {\n    if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n      return new Error('Material-UI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n    }\n    return null;\n  }),\n  /**\n   * The size of the circle.\n   * If using a number, the pixel unit is assumed.\n   * If using a string, you need to provide the CSS unit, e.g '3rem'.\n   */\n  size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  /**\n   * @ignore\n   */\n  style: PropTypes.object,\n  /**\n   * The thickness of the circle.\n   */\n  thickness: PropTypes.number,\n  /**\n   * The value of the progress indicator for the determinate variant.\n   * Value between 0 and 100.\n   */\n  value: PropTypes.number,\n  /**\n   * The variant to use.\n   * Use indeterminate when there is no progress value.\n   */\n  variant: chainPropTypes(PropTypes.oneOf(['determinate', 'indeterminate', 'static']), function (props) {\n    var variant = props.variant;\n    if (variant === 'static') {\n      throw new Error('Material-UI: `variant=\"static\"` was deprecated. Use `variant=\"determinate\"` instead.');\n    }\n    return null;\n  })\n} : void 0;\nexport default withStyles(styles, {\n  name: 'MuiCircularProgress',\n  flip: false\n})(CircularProgress);"],"sourceRoot":""}