{"version":3,"sources":["webpack:///./scripts/Actions/Overlay.action.js","webpack:///./scripts/Components/LoadingDots.js","webpack:///./scripts/Components/StyledSelect.js","webpack:///./scripts/Components/LoginModal/LoginModal.ChangePasswordForm.js","webpack:///./scripts/Services/utils.js","webpack:///./scripts/Components/LoginModal/LoginModal.LoginForm.js","webpack:///./scripts/Components/Notification.js","webpack:///./scripts/Components/LoginModal/LoginModal.ForgotPasswordForm.js","webpack:///./scripts/Components/LoginModal/LoginModal.js","webpack:///./scripts/Components/SideMenu.js"],"names":["addOverlay","componentName","onOverlayClick","type","OVERLAY_ADD_OVERLAY","payload","updateOverlay","OVERLAY_UPDATE_OVERLAY","removeOverlay","OVERLAY_REMOVE_OVERLAY","closeOverlay","OVERLAY_CLOSE_OVERLAY","activeOverlays","size","color","React","className","StyledSelectComponents","DownChevron","Icon","iconCode","IndicatorSeparator","StyledSelectStyles","control","provided","height","props","ReactSelect","_extends","placeholder","translate","styles","components","LoginModalChangePasswordForm","email","oldPassword","onError","onPasswordChanged","password","setPassword","useState","passwordConfirmation","setPasswordConfirmation","isLoading","setIsLoading","FormControl","htmlFor","TextField","variant","id","value","onChange","e","target","disabled","onClick","sendChangePassword","post","newPassword","then","res","json","data","error","success","catch","err","response","LoadingDots","getUrlQueryParameter","key","URLSearchParams","location","search","get","LoginModalLoginForm","onForgotPasswordClick","registerUserLink","loginOverlayText","onEmailChanged","setDisableClosing","selectedOrganizationId","setSelectedOrganizationId","organizations","setOrganizations","showChangePassword","setShowChangePassword","performLogin","redirectUrl","handleLoginResponse","handleSuccessfulLogin","href","reload","requestToken","localStorage","setItem","mustChangePassword","onKeyDown","autoFocus","StyledSelect","options","Object","keys","map","systemId","label","isDisabled","selectOrganization","Notification","text","icon","duration","children","style","fontSize","animationName","animationDuration","animationTimingFunction","animationFillMode","animationPlayState","LoginModalForgotPasswordForm","prefilledEmail","lostPasswordOverlayText","onBackClick","setEmail","showSuccess","setShowSuccess","display","alignItems","cursor","sendForgotPassword","finally","LOGIN_FORM","FORGOT_PASSWORD_FORM","LoginModal","dispatch","useDispatch","open","useSelector","state","login","setError","currentForm","setCurrentForm","disableClosing","useEffect","setTimeout","showLogin","SideMenu","onClosed","forwardRef","from","showCloseButton","title","headerRef","footer","closeButton","languageSwitcher","messageBar","ref","slideIn","setSlideIn","timeoutId","setTimeoutId","Error","close","useCallback","clearTimeout","newTimeoutId","undefined","substr","length","ReactDOM","transitionDuration","cloneElement","iconClass","currentChannel","document","body"],"mappings":"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","file":"3367.952cbe0ca4dcc0d47239.js","sourcesContent":["import {\n OVERLAY_ADD_OVERLAY,\n OVERLAY_CLOSE_OVERLAY,\n OVERLAY_REMOVE_OVERLAY,\n OVERLAY_UPDATE_OVERLAY,\n} from '../constants';\n\nexport const addOverlay = (componentName, onOverlayClick) => ({\n type: OVERLAY_ADD_OVERLAY,\n payload: {\n componentName,\n onOverlayClick,\n },\n});\n\nexport const updateOverlay = (componentName, onOverlayClick) => ({\n type: OVERLAY_UPDATE_OVERLAY,\n payload: {\n componentName,\n onOverlayClick,\n },\n});\n\nexport const removeOverlay = (componentName) => ({\n type: OVERLAY_REMOVE_OVERLAY,\n payload: {\n componentName,\n },\n});\n\nexport const closeOverlay = () => ({\n type: OVERLAY_CLOSE_OVERLAY,\n payload: {\n activeOverlays: [],\n },\n});\n","import React from 'react';\n\nexport default ({ size, color }) => {\n return (\n \n
\n
\n
\n \n );\n};\n","import React from 'react';\nimport ReactSelect from 'react-select';\nimport { translate } from '../Services/translation';\nimport Icon from './IconBase/Icon';\n\nexport const StyledSelectComponents = {\n DownChevron: ,\n IndicatorSeparator: null,\n};\n\nexport const StyledSelectStyles = {\n control: (provided) => ({\n ...provided,\n height: 48,\n }),\n};\n\nconst StyledSelect = (props) => {\n return (\n \n );\n};\n\nexport default StyledSelect;\n","import React, { useState } from 'react';\nimport { translate } from '../../Services/translation';\nimport { FormControl, TextField } from '@material-ui/core';\nimport { post } from '../../Services/http';\nimport LoadingDots from '../LoadingDots';\n\nconst LoginModalChangePasswordForm = ({\n email,\n oldPassword,\n onError,\n onPasswordChanged,\n}) => {\n const [password, setPassword] = useState('');\n const [passwordConfirmation, setPasswordConfirmation] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n\n const sendChangePassword = () => {\n if (password !== passwordConfirmation) {\n onError(translate('login.password-mismatch'));\n return;\n }\n\n setIsLoading(true);\n post('/api/login/changepassword', {\n email,\n oldPassword,\n newPassword: password,\n })\n .then((res) => res.json())\n .then((data) => {\n onError(data.error);\n\n if (data.success) {\n onPasswordChanged(data);\n } else {\n onError(data.error);\n setIsLoading(false);\n }\n })\n .catch((err) => {\n err.response.json().then((data) => onError(data.error));\n setIsLoading(false);\n });\n };\n\n return (\n <>\n

{translate('login.change-password')}

\n \n \n setPassword(e.target.value)}\n placeholder={translate('general.password')}\n type=\"password\"\n disabled={isLoading}\n />\n \n \n \n setPasswordConfirmation(e.target.value)}\n placeholder={translate('login.confirm-password')}\n type=\"password\"\n disabled={isLoading}\n />\n \n \n {!isLoading && translate('general.send')}\n {isLoading && }\n \n \n );\n};\n\nexport default LoginModalChangePasswordForm;\n","export function copyToClipboard(text) {\n try {\n if (!navigator.clipboard && window.clipboardData) {\n window.clipboardData.setData('Text', text);\n return true;\n } else if (navigator.clipboard) {\n navigator.clipboard.writeText(text);\n return true;\n } else {\n return false;\n }\n } catch (err) {\n console.error(err);\n return false;\n }\n}\n\nexport function getUrlQueryParameter(key) {\n const urlParams = new URLSearchParams(location.search);\n return urlParams.get(key);\n}\n","import React, { useState } from 'react';\nimport { translate } from '../../Services/translation';\nimport { FormControl, TextField } from '@material-ui/core';\nimport { post } from '../../Services/http';\nimport StyledSelect from '../StyledSelect';\nimport LoadingDots from '../LoadingDots';\nimport LoginModalChangePasswordForm from './LoginModal.ChangePasswordForm';\nimport { getUrlQueryParameter } from '../../Services/utils';\n\nconst LoginModalLoginForm = ({\n onError,\n onForgotPasswordClick,\n email,\n registerUserLink,\n loginOverlayText,\n onEmailChanged,\n setDisableClosing,\n}) => {\n const [password, setPassword] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const [selectedOrganizationId, setSelectedOrganizationId] = useState();\n const [organizations, setOrganizations] = useState();\n const [showChangePassword, setShowChangePassword] = useState(false);\n\n const performLogin = () => {\n setIsLoading(true);\n post('/api/login', {\n email,\n password,\n redirectUrl: getUrlQueryParameter('loginRedirectUrl'),\n })\n .then((res) => res.json())\n .then(handleLoginResponse)\n .catch((err) => {\n err.response.json().then((data) => onError(data.error));\n setIsLoading(false);\n });\n };\n\n const handleSuccessfulLogin = (data) => {\n const redirectUrl = getUrlQueryParameter('loginRedirectUrl');\n if (redirectUrl) {\n location.href = redirectUrl;\n } else {\n location.reload();\n }\n };\n\n const selectOrganization = () => {\n setIsLoading(true);\n post(`/api/login/organizations/${selectedOrganizationId}`, {})\n .then((res) => res.json())\n .then((data) => {\n onError(data.error);\n\n if (data.success) {\n handleSuccessfulLogin(data);\n } else {\n setIsLoading(false);\n }\n })\n .catch((err) => {\n err.response.json().then((data) => onError(data.error));\n setIsLoading(false);\n });\n };\n\n const handleLoginResponse = (data) => {\n onError(data.error);\n\n if (data.success) {\n if (data.requestToken) {\n localStorage.setItem('requestVerificationToken', data.requestToken);\n }\n\n setShowChangePassword(data.mustChangePassword);\n\n if (!data.organizations && !data.mustChangePassword) {\n handleSuccessfulLogin(data);\n } else {\n setOrganizations(data.organizations);\n setDisableClosing(true);\n setIsLoading(false);\n }\n } else {\n setIsLoading(false);\n }\n };\n\n return (\n <>\n {!showChangePassword && (\n <>\n {!organizations && (\n <>\n

{translate('general.login')}

\n {loginOverlayText && (\n

{loginOverlayText}

\n )}\n \n \n onEmailChanged(e.target.value)}\n onKeyDown={(e) => e.key == 'Enter' && performLogin()}\n placeholder={translate('general.enter-email')}\n disabled={isLoading}\n autoFocus={true}\n />\n \n \n \n setPassword(e.target.value)}\n onKeyDown={(e) => e.key == 'Enter' && performLogin()}\n placeholder={translate('general.enter-password')}\n type=\"password\"\n disabled={isLoading}\n />\n \n \n )}\n {organizations && (\n <>\n

{translate('login.choose-organization')}

\n setSelectedOrganizationId(value)}\n options={Object.keys(organizations).map((systemId) => ({\n value: systemId,\n label: organizations[systemId],\n }))}\n isDisabled={isLoading}\n />\n \n {!isLoading && translate('general.select')}\n {isLoading && }\n \n \n )}\n {!organizations && (\n <>\n \n {!isLoading && translate('general.login')}\n {isLoading && }\n \n
\n !isLoading && onForgotPasswordClick()}\n className=\"login-modal__forgot-password-link\"\n >\n {translate('login.forgot-password')}\n \n \n )}\n \n )}\n {showChangePassword && (\n \n )}\n \n );\n};\n\nexport default LoginModalLoginForm;\n","import React, { useEffect, useState } from 'react';\nimport Icon from './IconBase/Icon';\n\nconst Notification = ({ type, text, icon, duration, className, children }) => {\n if (!icon) {\n switch (type) {\n case 'warning':\n case 'error':\n icon = ;\n break;\n\n case 'info':\n icon = ;\n break;\n\n case 'success':\n icon = 👍;\n break;\n\n default:\n break;\n }\n }\n\n return (\n \n
\n {icon &&
{icon}
}\n {text}\n {children}\n
\n {duration > 0 && (\n
\n
\n \n )}\n \n );\n};\n\nexport default Notification;\n","import React, { useState } from 'react';\nimport { translate } from '../../Services/translation';\nimport { FormControl, TextField } from '@material-ui/core';\nimport { post } from '../../Services/http';\nimport LoadingDots from '../LoadingDots';\nimport Icon from '../IconBase/Icon';\n\nconst LoginModalForgotPasswordForm = ({\n prefilledEmail,\n lostPasswordOverlayText,\n onError,\n onBackClick,\n}) => {\n const [email, setEmail] = useState(prefilledEmail ?? '');\n const [showSuccess, setShowSuccess] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const sendForgotPassword = () => {\n setIsLoading(true);\n post('/api/login/forgotpassword', { email })\n .then((res) => res.json())\n .then((data) => {\n onError(data.error);\n\n if (data.success) {\n setShowSuccess(true);\n }\n })\n .catch((err) => err.response.json().then((data) => onError(data.error)))\n .finally(() => setIsLoading(false));\n };\n\n return (\n <>\n

\n {translate('login.forgot-password')}\n

\n {lostPasswordOverlayText && (\n

\n {lostPasswordOverlayText}\n

\n )}\n {!showSuccess && (\n <>\n \n \n setEmail(e.target.value)}\n placeholder={translate('general.enter-email')}\n />\n \n
\n \n {!isLoading && translate('general.send')}\n {isLoading && }\n \n
\n !isLoading && onBackClick()}\n className=\"login-modal__back-to-login-link\"\n >\n {translate('general.back-to-login')}\n \n \n )}\n {showSuccess && (\n <>\n

{translate('login.forgot-password.success')}

\n \n \n )}\n \n );\n};\n\nexport default LoginModalForgotPasswordForm;\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SideMenu from '../SideMenu';\nimport LoginModalLoginForm from './LoginModal.LoginForm';\nimport { showLogin } from '../../Actions/Login.action';\nimport Notification from '../Notification';\nimport LoginModalForgotPasswordForm from './LoginModal.ForgotPasswordForm';\nimport { getUrlQueryParameter } from '../../Services/utils';\n\nconst LOGIN_FORM = 'LOGIN_FORM';\nconst REGISTER_FORM = 'REGISTER_FORM';\nconst FORGOT_PASSWORD_FORM = 'FORGOT_PASSWORD_FORM';\n\nconst LoginModal = () => {\n const dispatch = useDispatch();\n const {\n open,\n registerUserLink,\n loginOverlayText,\n lostPasswordOverlayText,\n } = useSelector((state) => state.login);\n const [email, setEmail] = useState('');\n const [error, setError] = useState();\n const [currentForm, setCurrentForm] = useState(LOGIN_FORM);\n const [disableClosing, setDisableClosing] = useState(false);\n\n const onClosed = () => {\n dispatch(showLogin(false));\n setCurrentForm(LOGIN_FORM);\n };\n\n useEffect(() => {\n var loginRedirectUrl = getUrlQueryParameter('loginRedirectUrl');\n if (loginRedirectUrl) {\n setTimeout(() => dispatch(showLogin(true)), 300);\n }\n }, []);\n\n return (\n \n
\n {error && }\n {currentForm == LOGIN_FORM && (\n setCurrentForm(FORGOT_PASSWORD_FORM)}\n email={email}\n registerUserLink={registerUserLink}\n loginOverlayText={loginOverlayText}\n onEmailChanged={setEmail}\n setDisableClosing={setDisableClosing}\n />\n )}\n {currentForm == FORGOT_PASSWORD_FORM && (\n setCurrentForm(LOGIN_FORM)}\n lostPasswordOverlayText={lostPasswordOverlayText}\n prefilledEmail={email}\n onError={setError}\n />\n )}\n
\n \n );\n};\n\nexport default LoginModal;\n","import React, {\n cloneElement,\n createElement,\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport ReactDOM, { render } from 'react-dom';\nimport { useDispatch } from 'react-redux';\nimport {\n addOverlay,\n removeOverlay,\n updateOverlay,\n} from '../Actions/Overlay.action';\nimport Icon from './IconBase/Icon';\n// import colors from 'Exports/colors.scss';\n\nexport default forwardRef(\n (\n {\n id,\n duration = '0.2s',\n from = 'right',\n className,\n open,\n onClosed,\n showCloseButton = true,\n children,\n title,\n headerRef,\n footer,\n disableClosing = false,\n closeButton = null,\n languageSwitcher = null,\n messageBar = null,\n },\n ref\n ) => {\n const [slideIn, setSlideIn] = useState();\n const [timeoutId, setTimeoutId] = useState();\n const dispatch = useDispatch();\n\n if (!id || id == '') {\n throw new Error(\n 'A unique side-menu \"id\" must be passed to side menu component'\n );\n }\n\n const close = useCallback(() => {\n if (!disableClosing) {\n // Just sets \"slideIn\" to false, which triggers the animation to close it\n setSlideIn(false);\n return true;\n }\n\n // False disables overlay click\n return false;\n }, [disableClosing]);\n\n useEffect(() => {\n dispatch(updateOverlay(id, close));\n }, [dispatch, close, id]);\n\n useEffect(() => {\n if (!slideIn) {\n // If not slide in, slide out :^)\n if (timeoutId) {\n // Clear previous timeout to avoid animation delay bug\n clearTimeout(timeoutId);\n }\n\n var newTimeoutId = setTimeout(() => {\n setTimeoutId(undefined);\n onClosed && onClosed();\n }, duration.substr(0, duration.length - 1) * 1000);\n\n setTimeoutId(newTimeoutId);\n dispatch(removeOverlay(id));\n }\n }, [slideIn]);\n\n useEffect(() => {\n // Triggered every time \"open\" is changed, initially as well\n // Timeout to not trigger on the same frame as the render, to enable the slide-in\n\n setTimeout(() => setSlideIn(open), 1);\n\n if (open) {\n dispatch(addOverlay(id, close));\n }\n }, [open]);\n\n return open\n ? ReactDOM.createPortal(\n \n {headerRef && (\n
\n {showCloseButton &&\n !disableClosing &&\n (!closeButton ? (\n \n ) : (\n cloneElement(closeButton, {\n onClick: close,\n })\n ))}\n {languageSwitcher?.props.currentChannel\n ? languageSwitcher\n : null}\n {headerRef}\n
\n )}\n {!headerRef &&\n showCloseButton &&\n !disableClosing &&\n (!closeButton ? (\n \n ) : (\n cloneElement(closeButton, {\n onClick: close,\n })\n ))}\n {title &&

{title}

}\n {messageBar && (\n
{messageBar}
\n )}\n
{children}
\n {footer &&
{footer}
}\n ,\n document.body\n )\n : null;\n }\n);\n"],"sourceRoot":""}