{"version":3,"sources":["logo.svg","assets/EcrionStudioIcon.svg","assets/EcrionDevelopIcon.svg","assets/EcrionEngageIcon.svg","assets/Eds64x64.png","components/PageNotFound/NotFound.svg","components/ErrorPage/light.svg","utils/auth.js","utils/apiClient.js","context/SettingsContext.js","utils/settingsClient.js","context/AuthContext.js","utils/tokenClient.js","context/UserContext.js","context/index.js","components/Navbar/User.js","components/Navbar/Navbar.js","components/Footer/Footer.js","theme.js","utils/appsClient.js","components/Home/EnvironmentTile.js","components/FadeInProgress/FadeInProgress.js","components/Home/CloudGroup.js","utils/productsClient.js","components/Home/ProductTile.js","components/Home/productsDef.js","components/Home/DownloadDialog.js","components/Home/DownloadsGroup.js","utils/useForm.js","components/Support/Support.js","utils/supportClient.js","utils/productKeysClient.js","components/ProductKeys/ActivationDialog.js","components/ProductKeys/InstallProductDialog.js","components/ProductKeys/InstallLicenseDialog.js","components/ProductKeys/UninstallDialog.js","components/ProductKeys/ProductKeyDialog.js","components/ProductKeys/LicensesTable.js","components/ProductKeys/RestoreDialog.js","components/ProductKeys/ProductKeys.js","utils/cloudInstancesClient.js","utils/activateAccountClient.js","components/Home/Home.js","components/UserProfile/ChangePasswordDialog.js","utils/accountsClient.js","components/UserProfile/LicensePassword.js","components/UserProfile/UserProfile.js","utils/changePasswordClient.js","components/AuthCallback/index.js","utils/urlUtils.js","components/RouteWithTitle/index.js","components/AuthRoute/index.js","components/RedirectCounter/index.js","components/Signup/Success.js","components/Signup/Signup.js","components/PasswordRecovery/Success.js","components/PasswordRecovery/RequestReset.js","utils/resetPasswordClient.js","components/PasswordRecovery/ChoosePassword.js","utils/validateField.js","components/SignIn/LoginMigrated.js","components/SignIn/MigrateLogin.js","utils/signIn.js","components/PageProgress/PageProgress.js","components/PasswordRecovery/index.js","utils/environmentsClient.js","components/GetStarted/CloudInstanceSelect.js","utils/fileUtils.js","components/GetStarted/CreateOrganization.js","components/GetStarted/GetStarted.js","components/PageNotFound/PageNotFound.js","components/VerifyEmail/VerifyResult.js","components/VerifyEmail/EmailPendingVerification.js","components/VerifyEmail/CheckEmailVerified.js","components/VerifyEmail/VerifyEmail.js","components/Banner/Banner.js","components/SignIn/SignIn.js","components/ErrorPage/ErrorPage.js","ErrorBoundary.js","App.js","serviceWorker.js","index.js","assets/IconEcrion.png"],"names":["module","exports","__webpack_require__","p","parseUrl","parsed","queryString","parse","window","location","search","Object","objectSpread","expiresAt","Number","MAX_VALUE","Auth","options","authorize","_ref","arguments","length","undefined","ssoParams","redirectParams","ssoSearch","RelayState","redirectUri","stringify","loginUrl","parseJSON","response","Promise","resolve","text","then","JSON","json","status","ok","client","endpoint","body","customConfig","objectWithoutProperties","token","localStorage","getItem","headers","Authorization","concat","FormData","url","config","method","process","reject","fetch","message","catch","error","SettingsContext","React","createContext","retrieveSettings","SettingsProvider","props","_useAsync$data","useAsync","promiseFn","data","settings","react_default","a","createElement","Provider","assign","value","useSettings","context","useContext","Error","AuthContext","getRedirectUrl","urlRoot","protocol","hostname","port","AuthProvider","_React$useState","useState","_React$useState2","slicedToArray","profile","setProfile","_React$useState3","_React$useState4","setToken","_useState","_useState2","isInitialState","setIsInitialState","_useState3","_useState4","isPending","setIsPending","_useState5","_useState6","isSettled","setIsSettled","_useState7","_useState8","auth","setAuth","useEffect","idPLoginUrl","setSession","authResult","setItem","accessToken","account","isAuthenticated","Date","getTime","checkSession","payload","handleAuthentication","settleForAnonym","signIn","email","redirectUrl","signOut","removeItem","useAuth","UserContext","UserProvider","useUser","AppProviders","children","useStyles","makeStyles","theme","userButton","padding","spacing","buttonActive","backgroundColor","grey","profileAnchor","textDecoration","color","menuList","width","withRouter","history","classes","_useUser","firstName","lastName","anchorEl","setAnchorEl","handleClose","Box","maxWidth","xs","md","Button","onClick","event","currentTarget","className","join","Menu","MenuListProps","open","Boolean","onClose","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","MenuItem","push","logo","height","verticalAlign","Navbar","user","AppBar","position","elevation","Container","clone","Grid","container","alignItems","item","href","target","rel","src","alt","align","Typography","component","RouterLink","to","variant","style","justify","whiteSpace","Navbar_User","separator","Footer","Fragment","bottom","mt","mb","display","justifyContent","textColorDark","createMuiTheme","palette","primary","main","contrastText","secondary","success","warning","typography","fontFamily","h4","fontSize","fontWeight","h5","lineHeight","h6","subtitle1","fontStyle","subtitle2","body1","body2","caption","overline","letterSpacing","button","textTransform","MuiButtonBase","disableRipple","MuiTextField","overrides","MuiOutlinedInput","input","multiline","MuiInputLabel","outlined","transform","MuiTab","root","MuiButton","MuiDialogActions","MuiDialog","paperWidthMd","MuiTable","tableLayout","cache","LOCAL_STORAGE_KEY","initialValue","localStorageValue","installApp","environmentName","appName","Url","Environment","App","&:hover","avatar","margin","customLogo","label","textOverflow","overflow","ProductTile","microservices","direction","Tooltip","title","Link","underline","wrap","Avatar","Business_default","noWrap","FadeInProgress","_ref$size","size","Fade","in","transitionDelay","visibility","CircularProgress","getStartedLink","paddingLeft","getEnvironments","result","apps","appsClient","CloudEnvironments","instances","_useAsync","environments","isRejected","hasInstances","hasEnvironments","components_FadeInProgress_FadeInProgress","m","map","environment","index","key","EnvironmentTile","name","flexWrap","minHeight","react_router_dom","icon","ButtonBase","productsDef","downloads","studioIcon","description","win32ConfigId","win64ConfigId","availableInTrial","developIcon","engageIcon","phasedOutProducts","ecrionIcon","edsIcon","dialogActions","DownloadDialog","version","releaseDate","win32Url","win64Url","handleDownload","Dialog","fullWidth","aria-labelledby","DialogTitle","id","right","top","IconButton","aria-label","Clear_default","DialogContent","DialogContentText","Array","isArray","DialogActions","SaveAlt_default","getProducts","productsClient","DownloadProducts","products","productOpen","setProductOpen","handleProductClick","productDef","win32","find","Id","win64","Version","ReleaseDate","Mirror","DownloadFolder","DownloadName","product","isTrial","Home_ProductTile","Home_DownloadDialog","useForm","callback","validate","initialValues","values","setValues","errors","setErrors","isSubmitting","setIsSubmitting","keys","every","trimValues","trimmedValues","trim","handleChange","persist","defineProperty","type","files","handleSubmit","preventDefault","fillValues","createTicket","ticket","Support","_useForm","formData","append","subject","priority","attachment0","attachment1","attachment2","run","_ref3","test","attachmentSize","deferFn","isLoading","isFulfilled","counter","attachmentsCount","filter","val","onSubmit","sm","TextField","onChange","required","autoFocus","helperText","Select","OutlinedInput","rows","file","InputProps","readOnly","htmlFor","marginLeft","marginTop","currentIndex","deleteAttachment","Close_default","disabled","Add_default","productKeys","installLicense","_ref2","_ref2$type","activationKey","ActivationDialog","_ref$activationKey","disableRestoreFocus","disableBackdropClick","installLicenseKey","productKeysClient","InstallProductDialog","handleProductChange","showActivationDialog","toggleActivationDialog","responseKey","setKeys","_ref4","ProductKeys_ActivationDialog","getLicenseKey","_ref$version","licenseData","downloadLicense","registerLicense","computerName","InstallLicenseDialog","setVersion","setComputerName","watch","licenseKey","_ref5","select","_ref6","fileDownload","placeholder","_ref7","uninstallProduct","uninstallKey","UninstallDialog","setUninstallKey","ProductKeyDialog","resultKey","dialogType","setDialogType","handleDialogClose","mr","ml","Table","TableBody","TableRow","TableCell","feature","dist_default","format","dateIssued","isTemporary","maintenanceExpirationDate","updatesExpirationDate","border","usedOn","registrationDate","ProductKeys_InstallProductDialog","ProductKeys_InstallLicenseDialog","ProductKeys_UninstallDialog","keyId","productName","wordWrap","expirationDate","date","minWidth","@media (min-width: 960px)","warningSign","table","updateProduct","LicensesTable","setProducts","openKey","setOpenKey","openDialog","firstChild","nodeValue","TableHead","Warning_default","ProductKeys_ProductKeyDialog","updatedProducts","restoreProductKeysGUID","restoreKey","RestoreDialog","ProductKeys","openRestoreDialog","setRestoreDialog","licenses","useMemo","temporaryLicenses","accountsLicense","licensingServer","i","aria-controls","aria-haspopup","MoreVert_default","keepMounted","console","log","Paper","ProductKeys_LicensesTable","ProductKeys_RestoreDialog","cloudInstances","instance","sendActivation","tabRoot","getCloudInstances","cloudInstancesClient","resendActivationEmail","activateAccountClient","_props$tab","tab","toUTCString","Tabs","newValue","centered","Tab","CloudGroup","DownloadsGroup","components_ProductKeys_ProductKeys","components_Support_Support","validateSignupForm","newPassword","confirmPassword","ChangePasswordDialog","oldPassword","getAccount","noCache","getProductKeys","LicenseDialog","showLicensePasswordChange","x","successMessage","verifyText","verifyButton","cursor","marginRight","accountsClient","updateAccount","handlePasswordChange","changePasswordClient","handleLicensePasswordChange","validateUserProfileForm","companyName","_ref8","password","licensePassword","modal","setModalState","onResolve","reload","checkTitle","phone","LicensePassword","UserProfile_ChangePasswordDialog","AuthCallback","query","path","urlObject","URL","pathname","removeHost","react_router","RouteWithTitle","restProps","react_document_title_default","AuthRoute","Component","anonym","anonymWithCheckSession","render","computedMatch","rest","_useAuth","components_RouteWithTitle","RedirectCounter","handleSignIn","seconds","setSeconds","timer","intervalID","setInterval","clearInterval","components_RedirectCounter","signInOptions","createAccount","Signup","Signup_Success","e","passwordChanged","mailSent","recaptchaErrorMessage","requestReset","recaptchaResponse","resetPasswordClient","validateForm","_ref3$recaptcha","recaptcha","RequestReset","recaptchaInstance","useRef","onReject","current","reset","PasswordRecovery_Success","reaptcha_dist_default","ref","sitekey","recaptchaSiteKey","onVerify","requestChange","resetKey","Key","Password","ChoosePassword","emailNotification","migrateAccount","_ref2$","_ref$passwordResetKey","passwordResetKey","encodeURIComponent","signInClient","validateMigrateForm","MigrateLogin","SignIn_LoginMigrated","fullHeight","left","PageProgress","validateKey","PasswordRecovery","PasswordRecovery_RequestReset","components_PageProgress_PageProgress","isMigratedToSSO","PasswordRecovery_ChoosePassword","SignIn_MigrateLogin","CloudInstanceSelect","_callee","promise","regenerator_default","_context","prev","next","reader","FileReader","readAsDataURL","onload","onerror","abrupt","stop","fileUtils","getBase64","logoSize","logoMargins","createEnvironment","environmentsClient","CreateOrganization","_handleCreateOrganization","apply","this","logoFile","logoSizeError","setLogoSizeError","installingApp","setInstallingApp","asyncToGenerator","mark","logoBase64","sent","instanceId","setError","GetStarted_CloudInstanceSelect","FormControl","accept","logoMaxSize","createObjectURL","FormHelperText","GetStarted_CreateOrganization","PageNotFound","NotFound","VerifyResult","EmailPendingVerification","autoResend","CheckEmailVerified","state","accountInfo","VerifyEmail_VerifyResult","VerifyEmail_EmailPendingVerification","VerifyEmail","banner","dismissed","setDismissed","handleLaterClick","dissmissedUntil","Collapse","Unsubscribe_default","Divider","signIntoAccount","username","SignIn","setAccount","ErrorPage","_ref$title","_ref$message","details","isDetailsVisible","toggleDetailsVisibility","components_Navbar_Navbar","v","KeyboardArrowDown_default","KeyboardArrowUp_default","ErrorBoundary","_this","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","hasError","errorInfo","setState","prevProps","components_ErrorPage_ErrorPage","MuiThemeProvider","CssBaseline","src_ErrorBoundary","components_Banner_Banner","components_AuthRoute","exact","Home","UserProfile","components_Home_Home","GetStarted","components_Footer_Footer","match","ReactDOM","src_context","src_App","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.1a7fbe4b.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo.f3df1db4.svg\";","module.exports = __webpack_public_path__ + \"static/media/EcrionStudioIcon.5869a204.svg\";","module.exports = __webpack_public_path__ + \"static/media/EcrionDevelopIcon.66aabfe1.svg\";","module.exports = __webpack_public_path__ + \"static/media/EcrionEngageIcon.ded42719.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAoCAYAAACmTknCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABA5JREFUeNrMWktu2zAQlQUvC9hddxF10y6t7gtEuUCjnCDqDXSDyieIc4LKJ6jdC0Q5QeVldzbQrmvvsmo64zwBBE3qQ5GuBiAEyAbJN5/HmaFGz8/P3hDl78PrMT1eCa+e/Ks/T7bmH/ed4P3331N6hMKr8uenN3sLe/tI40FSBj82NLY0ChorUsbWZPJRV4sTUAaZAOxlzV8fq82RIkoDi0cycI3saCxo5KSEvVXgsCqDTWlcGCiYN5eRAnIHwEVZ8jptvKAROIGOodELC+7LCkhIAYUj4JXMCXxmBBxWZgtdO+CuewKfOgRecUGss74SOECzVWY1llvhP0xmW4kDePDG2VsmNRwQ64jQAnCWA++DwJeNwBtAd4pVzJViTDRWiVTgLQHXgvc7gJ7TBoMuBMWAaHCsBSAeWWYIJ5fCCi9IkaEWOEhsptDYFQAYCRTAp8Jnxc/XpPD0DOBzAj89AQ72vlW5SRsWbqmAXAP+jtYPpHfMG3N4ys7C8mzQ7CTGaeGt4si6oc2ubKsfFr6TyY7WihpYPmtImtrIW2Z6HxtJFKDvXYCG5Tmk1tLrS5wIFdCARgrAHm22oBHBYw49ls/EXD1VuHjmOO54zan0joFV7BtUXkHgD+CfBYHnWC1BwhODdWOO9dG79S/W8g8Fg7sGbpK5bXA07el39tKvhtPf+NCyp2D3IcoMlmbXz5EEmUg0RnYlylpOKCj2Io2Cusoe8d0LPFk7Qy6eGSY54RixJEqpKFK+WWT0oClPbyEJqrAC8d811i99BZvLZ3Zo2V0TC3NcCJlYaTKB3+I/W8vAC0vzTPvM19h64myL3NMDF0wtgB4EcbbquSHVzL1hybZPKKpcPfCGLzuhwWAMfOOYzFxILiQ5Ji2xR19BXtHAQW+EfpppdnksUmRWnInFwtBAV4Yha8c9KrWCga80BcSQ5IDavMrTw55kuzrW42ThQqG9DyYXARaLlABHaMkZmvA+BuiJ4dRLmi+pgCsrIQI+GJeHIjJFl8ioESF2YFRWX6JX9r+AJkiaIk/f6u4i9wQ6lROYVFGX33LWZhM8zZcrcgWu2mJFPvHF5tkvngJjITsraVNzxWK3SFnTPregDa3rmzOQYyxeKvpSasoaUfW/Oa5KcIEJ6AT5gq5fv3IMPJUvFHRXSHkNiXDXY9G0WVg4hnvpsisth1i8QkoI9Mle6y4N8xYM+qhIgKoPBZqSi9q+nqVLw0R1b1YLHOBTWGxiOd6SJo/pe03svXRk90aNCPTH2HprS6CZPwKHMb3EOZ01fR3R+lMQ5O+pV3/1q7NwDl5o3c3p+CnIsV/Q5XuYkclXT2hAhkIlF0IZDJJjao9nYXrvVgN8V819LDY0MewE+JkyN6efe/0TYAD51vYgU1o7jwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/NotFound.ac8d8da7.svg\";","module.exports = __webpack_public_path__ + \"static/media/light.66ffd960.svg\";","import queryString from 'query-string';\r\n\r\nexport const parseUrl = () => {\r\n const parsed = queryString.parse(window.location.search);\r\n\r\n return {\r\n ...parsed,\r\n expiresAt: parsed.expiresAt ? Number(parsed.expiresAt) : Number.MAX_VALUE,\r\n };\r\n};\r\n\r\nconst Auth = function(options) {\r\n return {\r\n authorize: ({ ssoParams, redirectParams } = {}) => {\r\n const ssoSearch = {\r\n RelayState:\r\n options.redirectUri + '?' + queryString.stringify(redirectParams),\r\n ...ssoParams,\r\n };\r\n\r\n window.location =\r\n options.loginUrl + '&' + queryString.stringify(ssoSearch);\r\n },\r\n };\r\n};\r\n\r\nexport default Auth;\r\n","function client(endpoint, { body, ...customConfig } = {}) {\r\n const token = window.localStorage.getItem('_token_');\r\n const headers = {};\r\n if (token) {\r\n headers.Authorization = `Bearer ${token}`;\r\n }\r\n\r\n // fetch can auto-fill the FormData content type\r\n if (!(body instanceof FormData)) {\r\n headers['content-type'] = 'application/json';\r\n }\r\n\r\n const config = {\r\n method: body ? 'POST' : 'GET',\r\n ...customConfig,\r\n headers: {\r\n ...headers,\r\n ...customConfig.headers,\r\n },\r\n };\r\n\r\n if (body) {\r\n config.body = body instanceof FormData ? body : JSON.stringify(body);\r\n }\r\n\r\n return request(`${process.env.REACT_APP_API_URL}/${endpoint}`, config);\r\n}\r\n\r\n/**\r\n * Parses the JSON returned by a network request\r\n * @param {object} response A response from a network request\r\n * @return {object} The parsed JSON, status from the response\r\n */\r\nfunction parseJSON(response) {\r\n return new Promise(resolve =>\r\n response\r\n .text()\r\n .then(text => {\r\n return text ? JSON.parse(text) : {};\r\n })\r\n .then(json => {\r\n resolve({\r\n status: response.status,\r\n ok: response.ok,\r\n json,\r\n });\r\n })\r\n );\r\n}\r\n\r\n/**\r\n * Requests a URL, returning a promise\r\n * @param {string} url The URL we want to request\r\n * @param {object} [options] The options we want to pass to \"fetch\"\r\n * @return {Promise} The request promise\r\n */\r\nfunction request(url, options) {\r\n return new Promise((resolve, reject) => {\r\n fetch(url, options)\r\n .then(parseJSON)\r\n .then(response => {\r\n if (response.ok) {\r\n return resolve(response.json);\r\n }\r\n // extract the error from the server's json\r\n return reject({ message: response.json.message });\r\n })\r\n .catch(error =>\r\n reject({\r\n message:\r\n 'The server could not be reached. Please contact customer support.',\r\n })\r\n );\r\n });\r\n}\r\n\r\nexport default client;\r\n","import React from 'react';\r\nimport { useAsync } from 'react-async';\r\nimport * as settingsClient from 'utils/settingsClient';\r\n\r\nconst SettingsContext = React.createContext();\r\n\r\nfunction retrieveSettings() {\r\n return settingsClient.settings();\r\n}\r\n\r\nfunction SettingsProvider(props) {\r\n const { data: settings = null } = useAsync({\r\n promiseFn: retrieveSettings,\r\n });\r\n\r\n return ;\r\n}\r\n\r\nfunction useSettings() {\r\n const context = React.useContext(SettingsContext);\r\n if (context === undefined) {\r\n throw new Error(`useSettings must be used within a SettingsProvider`);\r\n }\r\n return context;\r\n}\r\n\r\nexport { SettingsProvider, useSettings };\r\n","import client from './apiClient';\r\n\r\nfunction settings() {\r\n return client('AccountsSettings');\r\n}\r\n\r\nexport { settings };\r\n","import React, { useState, useEffect } from 'react';\r\nimport Auth, { parseUrl } from 'utils/auth';\r\nimport * as tokenClient from 'utils/tokenClient';\r\nimport { useSettings } from './SettingsContext';\r\n\r\nconst AuthContext = React.createContext();\r\nlet expiresAt = 0;\r\n\r\nconst getRedirectUrl = () => {\r\n var urlRoot =\r\n window.location.protocol +\r\n '//' +\r\n window.location.hostname +\r\n (window.location.port ? ':' + window.location.port : '');\r\n\r\n return `${urlRoot}/auth-callback`;\r\n};\r\n\r\nfunction AuthProvider(props) {\r\n const [profile, setProfile] = React.useState(null);\r\n const [token, setToken] = React.useState('');\r\n const [isInitialState, setIsInitialState] = useState(true);\r\n const [isPending, setIsPending] = useState(false);\r\n const [isSettled, setIsSettled] = useState(false);\r\n\r\n const [auth, setAuth] = useState(null);\r\n const settings = useSettings();\r\n\r\n useEffect(() => {\r\n if (settings) {\r\n setAuth(\r\n new Auth({\r\n loginUrl: settings.idPLoginUrl,\r\n redirectUri: getRedirectUrl(),\r\n })\r\n );\r\n }\r\n }, [settings]);\r\n\r\n const setSession = authResult => {\r\n window.localStorage.setItem('_token_', authResult.accessToken);\r\n\r\n setToken(authResult.accessToken);\r\n setProfile({ ...authResult.account });\r\n // javascript timestamp is in milliseconds\r\n expiresAt = authResult.expiresAt * 1000;\r\n };\r\n\r\n const isAuthenticated = () => {\r\n return new Date().getTime() < expiresAt;\r\n };\r\n\r\n const checkSession = () => {\r\n setIsPending(true);\r\n setIsInitialState(false);\r\n\r\n tokenClient\r\n .checkToken()\r\n .then(payload => {\r\n setSession(payload);\r\n setIsPending(false);\r\n setIsSettled(true);\r\n })\r\n .catch(() => setIsPending(false));\r\n };\r\n\r\n const handleAuthentication = () => {\r\n setSession(parseUrl());\r\n };\r\n\r\n const signIn = ({ email, redirectUrl } = {}) => {\r\n if (!auth) return;\r\n\r\n auth.authorize({\r\n ssoParams: { email },\r\n redirectParams: { redirectUrl },\r\n });\r\n };\r\n\r\n const signOut = () => {\r\n tokenClient.deleteToken().then(payload => {\r\n window.localStorage.removeItem('_token_');\r\n window.location = payload.redirectUrl;\r\n });\r\n };\r\n\r\n const settleForAnonym = () => {\r\n setIsSettled(true);\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction useAuth() {\r\n const context = React.useContext(AuthContext);\r\n if (context === undefined)\r\n throw new Error('useAuth must be used within a AuthProvider');\r\n\r\n return context;\r\n}\r\n\r\nexport { AuthProvider, useAuth };\r\n","import client from './apiClient';\r\n\r\nfunction checkToken() {\r\n return client('token');\r\n}\r\n\r\nfunction deleteToken() {\r\n return client('token', { method: 'DELETE' });\r\n}\r\n\r\nexport { deleteToken, checkToken };\r\n","import React from 'react';\r\nimport { useAuth } from './AuthContext';\r\n\r\nconst UserContext = React.createContext();\r\n\r\nfunction UserProvider(props) {\r\n const {\r\n data: { profile },\r\n } = useAuth();\r\n return ;\r\n}\r\n\r\nfunction useUser() {\r\n const context = React.useContext(UserContext);\r\n if (context === undefined) {\r\n throw new Error(`useUser must be used within a UserProvider`);\r\n }\r\n return context;\r\n}\r\n\r\nexport { UserProvider, useUser };\r\n","import React from 'react';\r\nimport { AuthProvider } from './AuthContext';\r\nimport { UserProvider } from './UserContext';\r\nimport { SettingsProvider } from './SettingsContext';\r\n\r\nfunction AppProviders({ children }) {\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default AppProviders;\r\n","import React from 'react';\r\nimport { Box, Button, Menu, MenuItem } from '@material-ui/core';\r\nimport grey from '@material-ui/core/colors/grey';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { useUser } from 'context/UserContext';\r\nimport { useAuth } from 'context/AuthContext';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n userButton: {\r\n padding: theme.spacing(1),\r\n },\r\n buttonActive: {\r\n backgroundColor: grey[600],\r\n },\r\n profileAnchor: {\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n },\r\n menuList: {\r\n width: 150,\r\n },\r\n}));\r\n\r\nconst User = ({ history }) => {\r\n const classes = useStyles();\r\n const { signOut } = useAuth();\r\n const { firstName, lastName } = useUser();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n function handleClick(event) {\r\n setAnchorEl(event.currentTarget);\r\n }\r\n\r\n function handleClose() {\r\n setAnchorEl(null);\r\n }\r\n\r\n function handleProfileClick() {\r\n history.push('/profile');\r\n handleClose();\r\n }\r\n\r\n return (\r\n \r\n \r\n {`${firstName} ${lastName}`}\r\n \r\n {anchorEl && (\r\n \r\n Profile\r\n Logout\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(User);\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport logo from 'logo.svg';\r\nimport { AppBar, Box, Container, Grid, Typography } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { useUser } from 'context/UserContext';\r\nimport User from './User';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n logo: {\r\n height: 34,\r\n verticalAlign: 'middle',\r\n },\r\n}));\r\n\r\nconst Navbar = () => {\r\n const classes = useStyles();\r\n const user = useUser();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"MHC\r\n \r\n \r\n \r\n \r\n EngageCX Account\r\n \r\n \r\n \r\n {user && (\r\n \r\n \r\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 Navbar;\r\n","import React from 'react';\r\nimport { Box, Typography } from '@material-ui/core';\r\n\r\nconst separator = {\r\n height: '60px',\r\n};\r\n\r\nconst Footer = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n Copyright 2023 © MHC Automation / All Rights Reserved\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import { createMuiTheme } from '@material-ui/core/styles';\r\n\r\nconst textColorDark = 'rgba(0,0,0,0.87)';\r\n// const textColorNeutral = '#6E8CA0';\r\nconst textColorLight = '#FFFFFF';\r\nconst textColorGray = '#798186';\r\n\r\n// const primaryLight = \"#87BCBF\";\r\nconst primary = '#FF6633';\r\nconst secondary = '#383333';\r\n\r\n// override default material ui theme\r\nconst theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: primary,\r\n contrastText: textColorLight,\r\n },\r\n secondary: {\r\n main: secondary,\r\n contrastText: textColorLight,\r\n },\r\n text: {\r\n primary: textColorDark,\r\n },\r\n success: '#3C763D',\r\n warning: '#D57704',\r\n },\r\n typography: {\r\n fontFamily: '\"Lato\", sans-serif',\r\n h4: {\r\n color: textColorDark,\r\n fontSize: '24px',\r\n fontWeight: 'bold',\r\n },\r\n h5: {\r\n color: textColorDark,\r\n fontSize: '20px',\r\n fontWeight: 'bold',\r\n lineHeight: 1.45,\r\n },\r\n h6: {\r\n color: textColorDark,\r\n fontSize: '16px',\r\n fontWeight: 'bold',\r\n },\r\n subtitle1: {\r\n color: textColorDark,\r\n fontSize: '16px',\r\n fontStyle: 'normal',\r\n fontWeight: 400,\r\n lineHeight: 1.38,\r\n },\r\n subtitle2: {\r\n color: textColorDark,\r\n fontSize: '14px',\r\n fontWeight: 700,\r\n },\r\n body1: {\r\n color: textColorDark,\r\n fontSize: '14px',\r\n },\r\n body2: {\r\n color: textColorDark,\r\n fontSize: '12px',\r\n },\r\n caption: {\r\n color: textColorGray,\r\n fontSize: '12px',\r\n },\r\n overline: {\r\n color: textColorGray,\r\n fontStyle: 'normal',\r\n fontWeight: 700,\r\n fontSize: '10px',\r\n lineHeight: 1,\r\n letterSpacing: '0.15em',\r\n },\r\n button: {\r\n color: textColorDark,\r\n fontWeight: 'normal',\r\n fontStyle: 'normal',\r\n fontSize: '14px',\r\n letterSpacing: '0px',\r\n textTransform: 'none',\r\n },\r\n },\r\n props: {\r\n MuiButtonBase: {\r\n disableRipple: true,\r\n },\r\n MuiTextField: {\r\n variant: 'outlined',\r\n },\r\n },\r\n overrides: {\r\n MuiOutlinedInput: {\r\n input: {\r\n padding: 8,\r\n fontSize: 14,\r\n },\r\n multiline: {\r\n padding: 8,\r\n },\r\n },\r\n MuiInputLabel: {\r\n outlined: {\r\n transform: 'translate(14px, 10px) scale(1)',\r\n },\r\n },\r\n MuiTab: {\r\n root: {\r\n letterSpacing: '0px',\r\n fontWeight: 700,\r\n },\r\n },\r\n MuiButton: {\r\n root: {\r\n padding: '4px 16px',\r\n whiteSpace: 'nowrap',\r\n },\r\n outlined: {\r\n padding: '4px 16px',\r\n },\r\n },\r\n MuiDialogActions: {\r\n root: {\r\n padding: 16,\r\n },\r\n },\r\n MuiDialog: {\r\n paperWidthMd: {\r\n maxWidth: '800px',\r\n },\r\n },\r\n MuiTable: {\r\n root: {\r\n tableLayout: 'fixed',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default theme;\r\n","import client from './apiClient';\r\nlet cache = null;\r\nconst LOCAL_STORAGE_KEY = '_apps_cache_';\r\n\r\nfunction apps() {\r\n if (cache) return Promise.resolve(cache);\r\n\r\n const result = client('accountsapps');\r\n\r\n result.then(apps => {\r\n cache = apps;\r\n localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(apps));\r\n });\r\n\r\n return result;\r\n}\r\n\r\n// environments request takes some time to complete\r\n// use local storage to cache the retrieved items\r\nconst initialValue = (function() {\r\n const localStorageValue = localStorage.getItem(LOCAL_STORAGE_KEY);\r\n return localStorageValue ? JSON.parse(localStorageValue) : null;\r\n})();\r\n\r\nfunction installApp(url, environmentName, appName) {\r\n const installValues = {\r\n Url: url,\r\n Environment: environmentName,\r\n App: appName,\r\n };\r\n const result = client('accountsapps', { body: installValues });\r\n return result;\r\n}\r\n\r\nexport { apps, installApp, initialValue };\r\n","import React from 'react';\r\nimport {\r\n Grid,\r\n Typography,\r\n Avatar,\r\n Link,\r\n Box,\r\n Tooltip,\r\n} from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\n// import MicroserviceTile from './MicroserviceTile';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n height: 72,\r\n padding: theme.spacing(1),\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[200],\r\n },\r\n },\r\n avatar: {\r\n width: 40,\r\n height: 40,\r\n margin: '0px 4px',\r\n },\r\n customLogo: {\r\n width: 52,\r\n },\r\n label: {\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n width: 140,\r\n },\r\n}));\r\n\r\nconst ProductTile = ({ label, href, logo, microservices }) => {\r\n const classes = useStyles();\r\n\r\n return (\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 {logo && (\r\n \r\n )}\r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n {microservices &&\r\n microservices.map((microservice, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n */}\r\n \r\n );\r\n};\r\n\r\nexport default ProductTile;\r\n","import React from 'react';\r\nimport { Box, CircularProgress, Fade } from '@material-ui/core';\r\n\r\nconst FadeInProgress = ({ isPending, size = 40 }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FadeInProgress;\r\n","import React from 'react';\r\nimport { Grid, Typography, Button, Box } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { useAsync } from 'react-async';\r\nimport * as appsClient from 'utils/appsClient';\r\nimport EnvironmentTile from './EnvironmentTile';\r\nimport FadeInProgress from 'components/FadeInProgress';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n getStartedLink: {\r\n textDecoration: 'none',\r\n paddingLeft: 16,\r\n },\r\n}));\r\n\r\nfunction getEnvironments() {\r\n return appsClient.apps();\r\n}\r\n\r\nconst CloudEnvironments = instances => {\r\n const classes = useStyles();\r\n const {\r\n data: environments = appsClient.initialValue,\r\n isPending,\r\n isRejected,\r\n error,\r\n } = useAsync({\r\n promiseFn: getEnvironments,\r\n });\r\n\r\n const hasInstances = instances.instances && instances.instances.length > 0;\r\n const hasEnvironments = environments && environments.length > 0;\r\n\r\n if (!hasInstances && !hasEnvironments) return null;\r\n\r\n if (isRejected) {\r\n return (\r\n
\r\n

There was an error.

\r\n
{error.message}
\r\n
\r\n );\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 Cloud\r\n \r\n \r\n \r\n \r\n {environments && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isPending && environments === null && (\r\n \r\n \r\n \r\n )}\r\n {environments &&\r\n environments.length !== 0 &&\r\n environments.map((environment, index) => (\r\n \r\n \r\n \r\n ))}\r\n {environments && environments.length === 0 && (\r\n \r\n \r\n No cloud services used.\r\n \r\n \r\n \r\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 CloudEnvironments;\r\n","import client from './apiClient';\r\nlet cache = null;\r\n\r\nfunction products(account) {\r\n if (cache) return Promise.resolve(cache);\r\n\r\n const result = client('products');\r\n result.then(environment => (cache = environment));\r\n\r\n return result;\r\n}\r\n\r\nexport { products };\r\n","import React from 'react';\r\nimport { Box, Grid, Typography, ButtonBase } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: 200,\r\n padding: theme.spacing(1),\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[200],\r\n },\r\n },\r\n}));\r\n\r\nconst ProductTile = ({ icon, label, onClick }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {`${label}\r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProductTile;\r\n","import React from 'react';\r\nimport studioIcon from 'assets/EcrionStudioIcon.svg';\r\nimport developIcon from 'assets/EcrionDevelopIcon.svg';\r\nimport engageIcon from 'assets/EcrionEngageIcon.svg';\r\nimport ecrionIcon from 'assets/IconEcrion.png';\r\nimport edsIcon from 'assets/Eds64x64.png';\r\n\r\nconst productsDef = {\r\n downloads: [\r\n {\r\n name: 'Ecrion Studio',\r\n icon: studioIcon,\r\n description: [\r\n 'Create document templates for high-volume document production.',\r\n 'Visual and intuitive for business users and developers alike.',\r\n 'Design Studio Online extends your desktop experience to the web browser.',\r\n ],\r\n win32ConfigId: '41',\r\n win64ConfigId: '42',\r\n availableInTrial: true,\r\n },\r\n {\r\n name: 'Ecrion Develop',\r\n icon: developIcon,\r\n description: (\r\n <>\r\n Ecrion Develop provides software developers with complex\r\n document production features ready to be leveraged in custom built\r\n solutions.\r\n \r\n ),\r\n win32ConfigId: '35',\r\n win64ConfigId: '36',\r\n },\r\n {\r\n name: 'Ecrion Engage',\r\n icon: engageIcon,\r\n description: (\r\n <>\r\n Ecrion Engage provides decision makers with insight into\r\n customer journeys and tools for developing profitable relationships.\r\n \r\n ),\r\n // win32ConfigId: '39',\r\n win64ConfigId: '40',\r\n },\r\n ],\r\n phasedOutProducts: [\r\n {\r\n name: 'EOS-P',\r\n icon: ecrionIcon,\r\n description: [\r\n 'High volume document production from XML and JSON',\r\n '100% dynamic documents with complex layout, features and typesetting support.',\r\n 'Documents can be delivered on web and mobile devices with superb drill-down and interactive features.',\r\n ],\r\n win32ConfigId: '33',\r\n win64ConfigId: '34',\r\n },\r\n {\r\n name: 'Floating Licenses Manager',\r\n icon: ecrionIcon,\r\n description: [\r\n 'Allow multiple employees and contractors to share Ecrion Designer Studio floating licenses.',\r\n 'Deploy licenses on a single server in your organization.',\r\n ],\r\n win32ConfigId: '31',\r\n win64ConfigId: '32',\r\n },\r\n {\r\n name: 'Ecrion Design Studio',\r\n icon: edsIcon,\r\n description: [\r\n 'Create document templates for high-volume document production.',\r\n 'Visual and intuitive for business users and developers alike.',\r\n 'Design Studio Online extends your desktop experience to the web browser.',\r\n ],\r\n win32ConfigId: '19',\r\n win64ConfigId: '20',\r\n },\r\n ],\r\n};\r\n\r\nexport default productsDef;\r\n","import React from 'react';\r\nimport {\r\n DialogTitle,\r\n DialogContent,\r\n DialogContentText,\r\n Dialog,\r\n DialogActions,\r\n Box,\r\n IconButton,\r\n Button,\r\n Typography,\r\n} from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport CloseIcon from '@material-ui/icons/Clear';\r\nimport SaveAltIcon from '@material-ui/icons/SaveAlt';\r\n\r\nconst useStyles = makeStyles({\r\n dialogActions: {\r\n justifyContent: 'center',\r\n },\r\n});\r\n\r\nconst DownloadDialog = ({\r\n name,\r\n description,\r\n version,\r\n releaseDate,\r\n win32Url,\r\n win64Url,\r\n onClose,\r\n}) => {\r\n const handleDownload = url => {\r\n window.location = url;\r\n };\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n Download\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Array.isArray(description) && (\r\n <>\r\n {name}\r\n
    \r\n {description.map((item, index) => (\r\n
  • {item}
  • \r\n ))}\r\n
\r\n \r\n )}\r\n {!Array.isArray(description) && description}\r\n
\r\n \r\n {`Latest version: ${version} released ${releaseDate}.`}\r\n \r\n \r\n Please select your download below.\r\n \r\n
\r\n \r\n {win32Url && (\r\n handleDownload(win32Url)}\r\n color=\"primary\"\r\n variant=\"contained\"\r\n >\r\n \r\n Win 32\r\n \r\n )}\r\n {win64Url && (\r\n handleDownload(win64Url)}\r\n color=\"primary\"\r\n variant=\"contained\"\r\n >\r\n \r\n Win 64\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DownloadDialog;\r\n","import React, { useState } from 'react';\r\nimport * as productsClient from 'utils/productsClient';\r\nimport { useAsync } from 'react-async';\r\nimport ProductTile from './ProductTile';\r\n\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport productsDef from './productsDef';\r\nimport DownloadDialog from './DownloadDialog';\r\nimport { useUser } from 'context/UserContext';\r\n\r\nconst getProducts = () => {\r\n return productsClient.products();\r\n};\r\n\r\nconst DownloadProducts = () => {\r\n const { data: products = [] } = useAsync({\r\n promiseFn: getProducts,\r\n });\r\n\r\n const [productOpen, setProductOpen] = useState();\r\n\r\n const user = useUser();\r\n\r\n const handleProductClick = productDef => {\r\n const win32 =\r\n productDef.win32ConfigId &&\r\n products.find(p => p.Id === productDef.win32ConfigId);\r\n const win64 =\r\n productDef.win64ConfigId &&\r\n products.find(p => p.Id === productDef.win64ConfigId);\r\n\r\n if (!win32 && !win64) return;\r\n\r\n setProductOpen({\r\n ...productDef,\r\n version: win64.Version,\r\n releaseDate: win64.ReleaseDate,\r\n win32Url:\r\n win32 &&\r\n win32.Mirror + win32.DownloadFolder + win32.DownloadName + '.exe',\r\n win64Url:\r\n win64 &&\r\n win64.Mirror + win64.DownloadFolder + win64.DownloadName + '.exe',\r\n });\r\n };\r\n\r\n const handleClose = () => {\r\n setProductOpen(null);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n Downloads\r\n \r\n \r\n \r\n \r\n {productsDef.downloads.map(product => {\r\n if (user.isTrial && !product.availableInTrial) return null;\r\n return (\r\n \r\n handleProductClick(product)}\r\n />\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n {!user.isTrial && (\r\n \r\n \r\n \r\n \r\n Phased-out Products\r\n \r\n \r\n \r\n \r\n {productsDef.phasedOutProducts.map(product => (\r\n \r\n handleProductClick(product)}\r\n />\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {productOpen && }\r\n \r\n );\r\n};\r\n\r\nexport default DownloadProducts;\r\n","import { useState, useEffect } from 'react';\r\n\r\nconst useForm = (callback, validate = () => ({}), initialValues = {}) => {\r\n const [values, setValues] = useState(initialValues);\r\n const [errors, setErrors] = useState({});\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n useEffect(() => {\r\n if (Object.keys(errors).every(key => !errors[key]) && isSubmitting) {\r\n callback();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [errors]);\r\n\r\n const handleSubmit = event => {\r\n if (event) event.preventDefault();\r\n setErrors(validate(values));\r\n setIsSubmitting(true);\r\n trimValues();\r\n };\r\n\r\n const trimValues = () => {\r\n var trimmedValues = {};\r\n for (var key in values) {\r\n trimmedValues[key] =\r\n typeof values[key] === 'string' ? values[key].trim() : values[key];\r\n }\r\n\r\n setValues(trimmedValues);\r\n };\r\n\r\n const handleChange = event => {\r\n event.persist && event.persist();\r\n\r\n setValues(values => ({\r\n ...values,\r\n [event.target.name]:\r\n event.target.type === 'file'\r\n ? event.target.files[0]\r\n : event.target.value,\r\n }));\r\n };\r\n\r\n const fillValues = data => {\r\n setValues(values => ({\r\n ...values,\r\n ...data,\r\n }));\r\n };\r\n\r\n return {\r\n handleChange,\r\n handleSubmit,\r\n values,\r\n errors,\r\n fillValues,\r\n };\r\n};\r\n\r\nexport default useForm;\r\n","import React from 'react';\r\nimport {\r\n Box,\r\n Typography,\r\n Container,\r\n Grid,\r\n TextField,\r\n Button,\r\n Select,\r\n OutlinedInput,\r\n MenuItem,\r\n IconButton,\r\n} from '@material-ui/core';\r\nimport * as supportClient from 'utils/supportClient';\r\nimport { useAsync } from 'react-async';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport { useUser } from 'context/UserContext';\r\nimport useForm from 'utils/useForm';\r\nimport Close from '@material-ui/icons/Close';\r\n\r\nfunction createTicket([ticket]) {\r\n return supportClient.createTicket(ticket);\r\n}\r\n\r\nconst Support = () => {\r\n const { values, handleChange, handleSubmit, errors } = useForm(\r\n submit,\r\n validateSupportForm\r\n );\r\n\r\n function submit() {\r\n var formData = new FormData();\r\n\r\n formData.append('subject', values.subject);\r\n formData.append('email', values.email);\r\n formData.append('description', values.description);\r\n if (values.priority) formData.append('priority', values.priority);\r\n else formData.append('priority', 'normal');\r\n\r\n if (values.attachment0) formData.append('attachment0', values.attachment0);\r\n if (values.attachment1) formData.append('attachment1', values.attachment1);\r\n if (values.attachment2) formData.append('attachment2', values.attachment2);\r\n run(formData);\r\n }\r\n\r\n function deleteAttachment(index) {\r\n for (let currentIndex = index; currentIndex < 3; currentIndex++) {\r\n handleChange({\r\n target: {\r\n name: 'attachment' + currentIndex,\r\n value: values['attachment' + (currentIndex + 1)],\r\n },\r\n });\r\n }\r\n }\r\n\r\n function validateSupportForm({ email }) {\r\n const errors = {};\r\n\r\n const emailRegexp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i;\r\n if (!emailRegexp.test(email))\r\n errors.email = 'Please enter a valid email address!';\r\n\r\n var attachmentSize = !values.attachment0 ? 0 : values.attachment0.size;\r\n attachmentSize += !values.attachment1 ? 0 : values.attachment1.size;\r\n attachmentSize += !values.attachment2 ? 0 : values.attachment2.size;\r\n\r\n if (attachmentSize > 4000000)\r\n errors.files = 'The total attachments size should be less than 4Mb';\r\n\r\n return errors;\r\n }\r\n\r\n const { email } = useUser();\r\n\r\n const { isLoading, run, isFulfilled, error, isSettled, counter } = useAsync({\r\n deferFn: createTicket,\r\n });\r\n\r\n const attachmentsCount = [\r\n values.attachment0,\r\n values.attachment1,\r\n values.attachment2,\r\n ].filter(val => Boolean(val)).length;\r\n\r\n if (!values.email) values.email = email;\r\n\r\n if (isFulfilled && counter > 1)\r\n return (\r\n \r\n \r\n \r\n Your request has been successfully created. Our technical support\r\n team will contact you shortly.\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n Request technical support or general product support\r\n \r\n \r\n\r\n
\r\n \r\n \r\n Subject\r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n Priority\r\n \r\n \r\n }\r\n fullWidth\r\n required\r\n name=\"priority\"\r\n value={values.priority || 'normal'}\r\n onChange={handleChange}\r\n >\r\n Normal\r\n Low\r\n High\r\n Highest\r\n \r\n \r\n \r\n \r\n Enter your comments in the box below. If your comment is related\r\n to an error you encountered, include the following information:\r\n \r\n
    \r\n \r\n The steps needed to reproduce the problem (the more detail, the\r\n better).\r\n \r\n \r\n The exact text of any error messages you received.\r\n \r\n \r\n Attach the input files you used in testing, including all\r\n external images. All information you provide is kept in strict\r\n confidentiality and deleted when is no longer needed.\r\n \r\n
\r\n
\r\n \r\n Description\r\n \r\n \r\n \r\n \r\n {[values.attachment0, values.attachment1, values.attachment2].map(\r\n (file, index) =>\r\n file && (\r\n \r\n \r\n Attachment {index + 1}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n deleteAttachment(index);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {isLoading && counter > 1 ? 'Submitting...' : 'Submit'}\r\n \r\n \r\n {Boolean(errors.files) && (\r\n \r\n \r\n {errors.files}\r\n \r\n \r\n )}\r\n {isSettled && error && (\r\n \r\n \r\n {error.message}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Support;\r\n","import client from './apiClient';\r\n\r\nfunction createTicket(support) {\r\n return client('support', { body: support });\r\n}\r\n\r\nexport { createTicket };\r\n","import client from './apiClient';\r\nlet cache = null;\r\n\r\nfunction productKeys() {\r\n if (cache) return Promise.resolve(cache);\r\n\r\n const result = client('backendproductkeys');\r\n result.then(environment => (cache = environment));\r\n\r\n return result;\r\n}\r\n\r\nfunction updateProductKey(id) {\r\n return client(`backendproductkeys/update/${id}`);\r\n}\r\n\r\nfunction getLicenseKey({ id, version = '' }) {\r\n return client(`backendproductkeys/${id}?version=${version}`);\r\n}\r\n\r\nfunction installLicense({ id, type = 'AccountsLicense', activationKey }) {\r\n return client(`backendproductkeys/install/${id}?type=${type}`, {\r\n body: activationKey,\r\n });\r\n}\r\n\r\nfunction restoreProductKeys({ restoreKey }) {\r\n return client(`backendproductkeys/updateGuids`, {\r\n body: restoreKey,\r\n });\r\n}\r\n\r\nfunction uninstallLicense({ id, type, uninstallKey }) {\r\n return client(`backendproductkeys/uninstall/${id}?type=${type}`, {\r\n body: uninstallKey,\r\n });\r\n}\r\n\r\nfunction getActivationKey(id) {\r\n return client(`backendproductkeys/activationkey/${id}`);\r\n}\r\n\r\nfunction downloadProductKey(id) {\r\n return client(`backendproductkeys/download/${id}`);\r\n}\r\n\r\nfunction registerProductKey(id, computerName) {\r\n return client(`backendproductkeys/register/${id}`, {\r\n body: computerName,\r\n });\r\n}\r\n\r\nexport {\r\n productKeys,\r\n updateProductKey,\r\n getLicenseKey,\r\n installLicense,\r\n uninstallLicense,\r\n getActivationKey,\r\n downloadProductKey,\r\n registerProductKey,\r\n restoreProductKeys,\r\n};\r\n","import React from 'react';\r\nimport {\r\n IconButton,\r\n Button,\r\n Grid,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Typography,\r\n TextField,\r\n Box,\r\n} from '@material-ui/core';\r\nimport Close from '@material-ui/icons/Close';\r\n\r\nconst ActivationDialog = ({ onClose, open, activationKey = '' }) => {\r\n return (\r\n \r\n \r\n \r\n {activationKey && Activate Product Key}\r\n {!activationKey && Uninstall Product Key}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!activationKey && (\r\n \r\n \r\n {'The license has been succesfully uninstalled.'}\r\n \r\n \r\n )}\r\n {activationKey && (\r\n \r\n \r\n \r\n {\r\n 'The product key has been activated. Go to the environment where the product key is to be installed and use the activation key below to finalize the installation.'\r\n }\r\n \r\n \r\n \r\n {'Activation key'}\r\n \r\n \r\n \r\n \r\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 ActivationDialog;\r\n","import React, { useState } from 'react';\r\nimport {\r\n IconButton,\r\n Button,\r\n Grid,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Typography,\r\n TextField,\r\n Box,\r\n} from '@material-ui/core';\r\nimport Close from '@material-ui/icons/Close';\r\nimport { useAsync } from 'react-async';\r\nimport * as productKeysClient from 'utils/productKeysClient';\r\nimport ActivationDialog from './ActivationDialog';\r\n\r\nconst installLicenseKey = ([licenseKey]) => {\r\n return productKeysClient.installLicense(licenseKey);\r\n};\r\n\r\nconst InstallProductDialog = ({\r\n onClose,\r\n open,\r\n id,\r\n type,\r\n handleProductChange,\r\n}) => {\r\n const [showActivationDialog, toggleActivationDialog] = useState(false);\r\n const [keys, setKeys] = useState({\r\n activationKey: '',\r\n responseKey: '',\r\n });\r\n\r\n const { run, error, isPending, counter } = useAsync({\r\n deferFn: installLicenseKey,\r\n });\r\n\r\n const handleActivationKey = ({ target: { value } }) => {\r\n setKeys({ ...keys, activationKey: value });\r\n };\r\n\r\n const installLicense = event => {\r\n event.preventDefault();\r\n run({ id, activationKey: keys.activationKey, type }).then(response => {\r\n if (!isPending)\r\n if (typeof response === 'string') {\r\n toggleActivationDialog(true);\r\n setKeys({ ...keys, responseKey: response });\r\n handleProductChange();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n Install Product Key\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n 'You should paste the activation key received from the environment where you want to install selected product key.'\r\n }\r\n \r\n \r\n \r\n {'Activation key'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {keys.responseKey && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default InstallProductDialog;\r\n","import React, { useState } from 'react';\r\nimport {\r\n IconButton,\r\n Button,\r\n Grid,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Typography,\r\n TextField,\r\n Box,\r\n MenuItem,\r\n} from '@material-ui/core';\r\nimport Close from '@material-ui/icons/Close';\r\nimport { useAsync } from 'react-async';\r\nimport * as productKeysClient from 'utils/productKeysClient';\r\nimport ActivationDialog from './ActivationDialog';\r\nimport fileDownload from 'js-file-download';\r\n\r\nconst getLicenseKey = ({ licenseData }) => {\r\n return productKeysClient.getLicenseKey(licenseData);\r\n};\r\n\r\nconst installLicenseKey = ([licenseKey]) => {\r\n return productKeysClient.installLicense(licenseKey);\r\n};\r\n\r\nconst downloadLicense = id => {\r\n return productKeysClient.downloadProductKey(id);\r\n};\r\n\r\nconst registerLicense = (id, computerName) => {\r\n return productKeysClient.registerProductKey(id, computerName);\r\n};\r\n\r\nconst InstallLicenseDialog = ({ onClose, open, id, handleProductChange }) => {\r\n const [version, setVersion] = useState(4);\r\n const [computerName, setComputerName] = useState('');\r\n const [showActivationDialog, toggleActivationDialog] = useState(false);\r\n const [keys, setKeys] = useState({\r\n activationKey: '',\r\n responseKey: '',\r\n });\r\n\r\n let licenseData = {\r\n id: id,\r\n version,\r\n };\r\n const { data: licenseKey, run, error, isPending, counter } = useAsync({\r\n promiseFn: getLicenseKey,\r\n licenseData,\r\n watch: version,\r\n deferFn: installLicenseKey,\r\n });\r\n\r\n const handleChange = ({ target: { value } }) => {\r\n setVersion(value);\r\n };\r\n\r\n const handleActivationKey = ({ target: { value } }) => {\r\n setKeys({ ...keys, activationKey: value });\r\n };\r\n\r\n const installLicense = event => {\r\n event.preventDefault();\r\n run({ id, activationKey: keys.activationKey }).then(response => {\r\n if (!isPending)\r\n if (typeof response === 'string') {\r\n toggleActivationDialog(true);\r\n setKeys({ ...keys, responseKey: response });\r\n handleProductChange();\r\n }\r\n });\r\n };\r\n\r\n const startDownload = () => {\r\n downloadLicense(id).then(response => {\r\n fileDownload(response, 'license.xml');\r\n });\r\n };\r\n\r\n const handleComputerId = ({ target: { value } }) => {\r\n setComputerName(value);\r\n };\r\n\r\n const handleRegister = event => {\r\n event.preventDefault();\r\n registerLicense(id, computerName).then(response => {\r\n fileDownload(response, `licenseFor${computerName}.xml`);\r\n handleProductChange();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n Install License\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {'License Administrator 4.0'}\r\n {'License Administrator 3.0'}\r\n {'License Administrator 2.0'}\r\n \r\n \r\n\r\n {version !== 2 && (\r\n \r\n \r\n \r\n {\r\n 'Go to the computer where the license must be installed, open License Administrator and use the key below.'\r\n }\r\n \r\n \r\n \r\n {'License key'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n 'When prompted, select Offline Activation. You will receive an activation key. Paste it in the box below.'\r\n }\r\n \r\n \r\n \r\n \r\n {'Activation key'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {version === 2 && (\r\n \r\n \r\n \r\n {'Download License'}\r\n \r\n \r\n \r\n \r\n {\r\n 'Download the license and use it in the License Administrator to install it'\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {'Register Offline'}\r\n \r\n \r\n \r\n \r\n {\r\n 'When your server does not have an Internet connection or is located behind a firewall you will not be able to use a regular license. In this case, you must generate an \"offline registration ticket\" that does not require an Internet connection. Enter the server\\'s name as displayed by the License Administrator in the top left corner in the edit box below and press \"Download\".'\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {'Computer Name'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n {version !== 2 && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {keys.responseKey && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default InstallLicenseDialog;\r\n","import React, { useState } from 'react';\r\nimport {\r\n IconButton,\r\n Button,\r\n Grid,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Typography,\r\n TextField,\r\n Box,\r\n} from '@material-ui/core';\r\nimport Close from '@material-ui/icons/Close';\r\nimport * as productKeysClient from 'utils/productKeysClient';\r\nimport { useAsync } from 'react-async';\r\nimport ActivationDialog from './ActivationDialog';\r\n\r\nconst uninstallProduct = ([uninstallData]) => {\r\n return productKeysClient.uninstallLicense(uninstallData);\r\n};\r\n\r\nconst UninstallDialog = ({ onClose, open, id, type, handleProductChange }) => {\r\n const [uninstallKey, setUninstallKey] = useState('');\r\n const [showActivationDialog, toggleActivationDialog] = useState(false);\r\n\r\n const { run, error, isPending } = useAsync({\r\n deferFn: uninstallProduct,\r\n });\r\n\r\n const handleUninstallKey = ({ target: { value } }) => {\r\n setUninstallKey(value);\r\n };\r\n\r\n const uninstallProductKey = event => {\r\n event.preventDefault();\r\n run({ id, type, uninstallKey }).then(response => {\r\n if (!isPending)\r\n if (!response.message) {\r\n toggleActivationDialog(true);\r\n handleProductChange();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n Uninstall Product Key\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {type === 'LicensingServer' && (\r\n \r\n {\r\n 'You should paste the uninstall key received from the environment where you want to uninstall selected product key.'\r\n }\r\n \r\n )}\r\n {type === 'AccountsLicense' && (\r\n \r\n {\r\n 'Go to the computer where the license is installed, open License Administrator, select the license and click Uninstall. When prompted, choose Uninstall License Offline.You will receive an uninstall key. Paste it in the box below.'\r\n }\r\n \r\n )}\r\n \r\n \r\n {'Uninstall key'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {showActivationDialog && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default UninstallDialog;\r\n","import React, { useState } from 'react';\r\nimport {\r\n Grid,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Button,\r\n IconButton,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableRow,\r\n Typography,\r\n Box,\r\n} from '@material-ui/core';\r\nimport Close from '@material-ui/icons/Close';\r\nimport Moment from 'react-moment';\r\nimport { useAsync } from 'react-async';\r\nimport InstallProductDialog from './InstallProductDialog';\r\nimport InstallLicenseDialog from './InstallLicenseDialog';\r\nimport UninstallDialog from './UninstallDialog';\r\nimport ActivationDialog from './ActivationDialog';\r\nimport * as productKeysClient from 'utils/productKeysClient';\r\n\r\nconst getLicenseKey = ({ product: { id } }) => {\r\n return productKeysClient.getActivationKey(id);\r\n};\r\n\r\nconst ProductKeyDialog = ({ onClose, product, handleProductChange }) => {\r\n const { data: resultKey, isPending, counter } = useAsync({\r\n promiseFn: getLicenseKey,\r\n product,\r\n });\r\n\r\n const [dialogType, setDialogType] = useState(null);\r\n\r\n const showInstallDialog = () => {\r\n if (product.type === 'LicensingServer') setDialogType('InstallProduct');\r\n else setDialogType('InstallLicense');\r\n };\r\n\r\n const showUninstallDialog = () => {\r\n setDialogType('Uninstall');\r\n };\r\n\r\n const showActivationDialog = () => {\r\n setDialogType('Activation');\r\n };\r\n\r\n const handleDialogClose = () => setDialogType(null);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Product Key {product.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 Product\r\n \r\n \r\n \r\n {product.feature}\r\n \r\n \r\n \r\n \r\n \r\n Date Issued\r\n \r\n \r\n \r\n {product.dateIssued}\r\n \r\n \r\n \r\n {!product.isTemporary && (\r\n \r\n \r\n \r\n Maintainance/Updates Expiration Date\r\n \r\n \r\n \r\n \r\n \r\n {product.maintenanceExpirationDate}\r\n \r\n \r\n \r\n \r\n )}\r\n {product.isTemporary && (\r\n \r\n \r\n \r\n Expiration Date\r\n \r\n \r\n \r\n \r\n {product.updatesExpirationDate && (\r\n \r\n {product.updatesExpirationDate}\r\n \r\n )}\r\n {!product.updatesExpirationDate && '-'}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n Registration\r\n \r\n \r\n {product.usedOn && product.registrationDate && (\r\n \r\n {product.usedOn + ' on '}\r\n {product.registrationDate}\r\n \r\n )}\r\n {!product.usedOn && '-'}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {!product.usedOn && (\r\n \r\n \r\n {isPending && counter > 1 ? 'Installing...' : 'Install'}\r\n \r\n \r\n )}\r\n {product.usedOn && (\r\n \r\n \r\n {isPending && counter > 1 ? 'Uninstalling...' : 'Uninstall'}\r\n \r\n \r\n )}\r\n {product.type === 'LicensingServer' && product.usedOn && (\r\n \r\n \r\n Activation Key\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {dialogType === 'InstallProduct' && (\r\n \r\n )}\r\n {dialogType === 'InstallLicense' && (\r\n \r\n )}\r\n {dialogType === 'Uninstall' && (\r\n \r\n )}\r\n {dialogType === 'Activation' && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ProductKeyDialog;\r\n","import React, { useState } from 'react';\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n Link,\r\n} from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport Moment from 'react-moment';\r\nimport ProductKeyDialog from './ProductKeyDialog';\r\nimport * as productKeysClient from 'utils/productKeysClient';\r\nimport Warning from '@material-ui/icons/Warning';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n keyId: {\r\n width: '10%',\r\n },\r\n productName: {\r\n width: '35%',\r\n wordWrap: 'break-word',\r\n },\r\n expirationDate: {\r\n width: '14%',\r\n },\r\n usedOn: {\r\n width: '41%',\r\n wordWrap: 'break-word',\r\n },\r\n date: {\r\n minWidth: 64,\r\n '@media (min-width: 960px)': { minWidth: 250 },\r\n },\r\n warningSign: {\r\n position: 'absolute',\r\n paddingLeft: 10,\r\n margin: -5,\r\n },\r\n table: {\r\n width: '100%',\r\n }\r\n}));\r\n\r\nconst updateProduct = id => {\r\n return productKeysClient.updateProductKey(id);\r\n};\r\n\r\nconst LicensesTable = props => {\r\n const classes = useStyles();\r\n\r\n const [products, setProducts] = useState(props.products);\r\n const [openKey, setOpenKey] = useState(null);\r\n\r\n const openDialog = event => {\r\n event.preventDefault();\r\n const id = Number(event.target.firstChild.nodeValue);\r\n const product = products.find(a => {\r\n return a.id === id;\r\n });\r\n setOpenKey(product);\r\n };\r\n const closeDialog = () => setOpenKey(null);\r\n\r\n const handleProductChange = () => {\r\n updateProduct(openKey.id).then(response => {\r\n const updatedProducts = products.map(product => {\r\n return product.id === response.id ? response : product;\r\n });\r\n setOpenKey(response);\r\n setProducts(updatedProducts);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {'Key Id'}\r\n \r\n \r\n {'Product/Feature'}\r\n \r\n \r\n \r\n {!products[0].isTemporary ? 'Updates Expire' : 'Valid Until'}\r\n \r\n \r\n \r\n {'Used On'}\r\n \r\n \r\n \r\n \r\n {products.map(product => (\r\n \r\n \r\n \r\n {product.id}\r\n \r\n \r\n \r\n {product.feature}\r\n \r\n \r\n \r\n \r\n {!!product.updatesExpirationDate\r\n ? product.updatesExpirationDate\r\n : product.maintenanceExpirationDate}\r\n \r\n \r\n {new Date() >\r\n new Date(\r\n product.updatesExpirationDate\r\n ? product.updatesExpirationDate\r\n : product.maintenanceExpirationDate\r\n ) &&\r\n (!product.isTemporary ? (\r\n \r\n \r\n Free Software Updates Expired\r\n \r\n You can no longer update to the latest version of\r\n the software. The free software updates program\r\n will become unavailable one year after the issue\r\n date, or one year after the last renewal date. To\r\n continue to have access to the latest version,\r\n please renew your Premium Technical Support.\r\n \r\n }\r\n >\r\n \r\n \r\n ) : (\r\n \r\n \r\n License Expired\r\n \r\n Cannot use the software anymore. Contact Ecrion\r\n support to get a license.\r\n \r\n }\r\n >\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {product.usedOn}\r\n \r\n \r\n ))}\r\n \r\n
\r\n {openKey && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LicensesTable;\r\n","import React, { useState } from 'react';\r\nimport {\r\n IconButton,\r\n Button,\r\n Grid,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Typography,\r\n TextField,\r\n Box,\r\n} from '@material-ui/core';\r\nimport Close from '@material-ui/icons/Close';\r\nimport { useAsync } from 'react-async';\r\nimport * as productKeysClient from 'utils/productKeysClient';\r\n\r\nconst restoreProductKeysGUID = ([restoreKey]) => {\r\n return productKeysClient.restoreProductKeys(restoreKey);\r\n};\r\n\r\nconst RestoreDialog = ({ onClose }) => {\r\n const [keys, setKeys] = useState({\r\n restoreKey: '',\r\n responseKey: '',\r\n });\r\n\r\n const { run, error, isPending, counter } = useAsync({\r\n deferFn: restoreProductKeysGUID,\r\n });\r\n\r\n const handleRestoreKey = ({ target: { value } }) => {\r\n setKeys({ ...keys, restoreKey: value });\r\n };\r\n\r\n const restoreProductKeys = event => {\r\n event.preventDefault();\r\n run({ restoreKey: keys.restoreKey }).then(response => {\r\n if (!isPending)\r\n if (typeof response === 'string') {\r\n setKeys({ ...keys, responseKey: response });\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n {!keys.responseKey && (\r\n
\r\n \r\n \r\n Restore HA Product Keys\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {'Paste below the key generated by the Licensing Server tool in order to restore the product keys in your HA deployment.'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n {keys.responseKey && (\r\n <>\r\n \r\n \r\n Restore Product Key\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {'Paste the restore key in the text field below'}\r\n \r\n \r\n \r\n \r\n \r\n \r\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 RestoreDialog;\r\n","import React, { useMemo, useState } from 'react';\r\nimport {\r\n Paper,\r\n Container,\r\n Box,\r\n Typography,\r\n Grid,\r\n IconButton,\r\n Menu,\r\n MenuItem,\r\n} from '@material-ui/core';\r\nimport { useAsync } from 'react-async';\r\nimport * as productKeysClient from 'utils/productKeysClient';\r\nimport LicensesTable from './LicensesTable';\r\nimport FadeInProgress from 'components/FadeInProgress';\r\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\r\nimport RestoreDialog from './RestoreDialog';\r\n\r\nconst getProducts = () => {\r\n return productKeysClient.productKeys();\r\n};\r\n\r\nconst ProductKeys = () => {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [openRestoreDialog, setRestoreDialog] = useState(false);\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleRestoreSelect = () => {\r\n console.log('selected');\r\n setRestoreDialog(true);\r\n handleClose();\r\n };\r\n\r\n const closeDialog = () => setRestoreDialog(null);\r\n\r\n const { data: productKeys, isPending, error } = useAsync({\r\n promiseFn: getProducts,\r\n });\r\n\r\n const groupLicenses = () => {\r\n const licenses = {\r\n temporaryLicenses: [],\r\n accountsLicense: [],\r\n licensingServer: [],\r\n };\r\n\r\n if (productKeys) {\r\n for (let i = 0; i < productKeys.length; i++) {\r\n if (productKeys[i].type === 'LicensingServer') {\r\n licenses.licensingServer.push(productKeys[i]);\r\n } else if (\r\n productKeys[i].type === 'AccountsLicense' &&\r\n productKeys[i].isTemporary\r\n ) {\r\n licenses.temporaryLicenses.push(productKeys[i]);\r\n } else {\r\n licenses.accountsLicense.push(productKeys[i]);\r\n }\r\n }\r\n }\r\n return licenses;\r\n };\r\n\r\n const licenses = useMemo(groupLicenses, [productKeys]);\r\n\r\n if (isPending) return ;\r\n\r\n if (error)\r\n return (\r\n \r\n \r\n {error.message}\r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n {productKeys.length === 0 && (\r\n \r\n \r\n No product keys found\r\n \r\n \r\n )}\r\n {licenses.licensingServer.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n Product Keys\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Restore HA Product Keys\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {licenses.accountsLicense.length > 0 && (\r\n \r\n \r\n \r\n Purchased License Keys\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {licenses.temporaryLicenses.length > 0 && (\r\n \r\n \r\n \r\n Evaluation Keys\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {openRestoreDialog && }\r\n \r\n );\r\n};\r\n\r\nexport default ProductKeys;\r\n","import client from './apiClient';\r\nlet cache = null;\r\n\r\nfunction cloudInstances() {\r\n if (cache) return Promise.resolve(cache);\r\n\r\n const result = client('cloudinstances');\r\n result.then(instance => (cache = instance));\r\n\r\n return result;\r\n}\r\n\r\nexport { cloudInstances };\r\n","import client from './apiClient';\r\n\r\nfunction sendActivation(email) {\r\n return client('ActivateAccount', {\r\n body: email,\r\n });\r\n}\r\n\r\nexport { sendActivation };\r\n","import React from 'react';\r\nimport { Tabs, Tab, Box, Grid, Container } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { withRouter } from 'react-router-dom';\r\nimport CloudGroup from './CloudGroup';\r\nimport DownloadsGroup from './DownloadsGroup';\r\nimport Support from 'components/Support';\r\nimport ProductKeys from 'components/ProductKeys';\r\nimport * as cloudInstancesClient from 'utils/cloudInstancesClient';\r\nimport * as activateAccountClient from 'utils/activateAccountClient';\r\nimport { useAsync } from 'react-async';\r\nimport { useAuth } from 'context/AuthContext';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n tabRoot: {\r\n margin: '0px 24px',\r\n '@media (min-width: 960px)': {\r\n fontSize: 14,\r\n },\r\n },\r\n}));\r\n\r\nfunction getCloudInstances() {\r\n return cloudInstancesClient.cloudInstances();\r\n}\r\n\r\nconst resendActivationEmail = ([email]) => {\r\n return activateAccountClient.sendActivation(email);\r\n};\r\n\r\nconst Home = props => {\r\n const { tab = 'benefits', history } = props;\r\n const {\r\n data: { profile },\r\n } = useAuth();\r\n\r\n const { data: instances, isSettled } = useAsync({\r\n promiseFn: getCloudInstances,\r\n deferFn: resendActivationEmail,\r\n });\r\n\r\n const classes = useStyles();\r\n\r\n function handleChange(event, newValue) {\r\n history.push('/home/' + newValue);\r\n }\r\n\r\n if (\r\n Date.parse(new Date(`${profile.expirationDate}`)) <\r\n Date.parse(new Date().toUTCString())\r\n ) {\r\n history.push('/verify-email');\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 {tab === 'benefits' && (\r\n \r\n {isSettled && }\r\n \r\n \r\n \r\n \r\n )}\r\n {tab === 'product-keys' && }\r\n {tab === 'support' && }\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(Home);\r\n","import React from 'react';\r\nimport {\r\n Dialog,\r\n IconButton,\r\n Grid,\r\n Typography,\r\n Box,\r\n TextField,\r\n Button,\r\n DialogContent,\r\n DialogTitle,\r\n DialogActions,\r\n} from '@material-ui/core';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport useForm from 'utils/useForm';\r\nimport { useAsync } from 'react-async';\r\n\r\nfunction validateSignupForm({ newPassword, confirmPassword }) {\r\n const errors = {};\r\n\r\n const passwordRegexp = /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\\d)(?=.*[a-zA-Z])(?=.*[\\\\~!@#$%^&*_\\-+=`|(){}[\\]:;\"'<>,.?/)])|(?=.*[a-z])(?=.*[A-Z])(?=.*[\\\\~!@#$%^&*_\\-+=`|(){}[\\]:;\"'<>,.?/)])/;\r\n\r\n if (newPassword.length < 6) {\r\n errors.newPassword = 'Minimum length is 6 characters.';\r\n } else if (!passwordRegexp.test(newPassword)) {\r\n errors.newPassword =\r\n 'The password must be a combination of at least 3 of the following: an uppercase letter, a lowercase letter, a digit and a special character!';\r\n }\r\n\r\n if (newPassword !== confirmPassword)\r\n errors.confirmPassword = 'Passwords do not match!';\r\n\r\n return errors;\r\n}\r\n\r\nconst ChangePasswordDialog = ({ onClose, onSubmit, title }) => {\r\n const { error, isLoading, isSettled, isFulfilled, run, counter } = useAsync({\r\n deferFn: onSubmit,\r\n });\r\n\r\n const { values, handleChange, handleSubmit, errors } = useForm(\r\n updatePassword,\r\n validateSignupForm\r\n );\r\n\r\n function updatePassword() {\r\n run({\r\n oldPassword: values.oldPassword,\r\n newPassword: values.newPassword,\r\n });\r\n }\r\n\r\n if (isFulfilled) onClose();\r\n\r\n return (\r\n \r\n {title || 'Change Password'}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Old Password\r\n \r\n \r\n \r\n \r\n \r\n New Password\r\n \r\n \r\n \r\n \r\n \r\n Confirm Password\r\n \r\n \r\n \r\n \r\n {isSettled && error && (\r\n \r\n \r\n {error.message}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {isLoading && counter > 1 ? 'Saving...' : 'Save'}\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ChangePasswordDialog;\r\n","import client from './apiClient';\r\nlet cache = null;\r\n\r\nfunction getAccount(noCache) {\r\n if (!noCache && cache) return Promise.resolve(cache);\r\n\r\n const result = client('accounts');\r\n result.then(account => (cache = account));\r\n\r\n return result;\r\n}\r\n\r\nfunction createAccount(account) {\r\n return client('accounts', {\r\n body: account,\r\n });\r\n}\r\n\r\nfunction updateAccount(account) {\r\n return client('accounts', { method: 'PUT', body: account }).then(() => {\r\n cache = account;\r\n });\r\n}\r\n\r\nexport { getAccount, createAccount, updateAccount };\r\n","import React from 'react';\r\nimport { Link } from '@material-ui/core';\r\nimport { useAsync } from 'react-async';\r\nimport * as productKeysClient from 'utils/productKeysClient';\r\n\r\nfunction getProductKeys() {\r\n return productKeysClient.productKeys();\r\n}\r\n\r\nconst LicenseDialog = ({ onClick }) => {\r\n const { data: productKeys, isLoading } = useAsync({\r\n promiseFn: getProductKeys,\r\n });\r\n\r\n let showLicensePasswordChange = false;\r\n if (!isLoading) {\r\n showLicensePasswordChange = Boolean(\r\n productKeys.find(x => x.type === 'AccountsLicense')\r\n );\r\n }\r\n\r\n if (!showLicensePasswordChange) {\r\n return
;\r\n }\r\n\r\n return (\r\n \r\n Change license password\r\n \r\n );\r\n};\r\n\r\nexport default LicenseDialog;\r\n","import React, { useState } from 'react';\r\nimport {\r\n Box,\r\n Typography,\r\n Container,\r\n Grid,\r\n TextField,\r\n Select,\r\n MenuItem,\r\n Button,\r\n OutlinedInput,\r\n} from '@material-ui/core';\r\nimport ChangePasswordDialog from './ChangePasswordDialog';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useAsync } from 'react-async';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport * as accountsClient from 'utils/accountsClient';\r\nimport * as changePasswordClient from 'utils/changePasswordClient';\r\nimport useForm from 'utils/useForm';\r\nimport LicensePassword from './LicensePassword';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n successMessage: {\r\n color: theme.palette.success,\r\n },\r\n verifyText: {\r\n color: theme.palette.text.primary,\r\n },\r\n verifyButton: {\r\n color: theme.palette.warning,\r\n cursor: 'pointer',\r\n marginRight: theme.spacing(1),\r\n },\r\n}));\r\n\r\nfunction getAccount() {\r\n return accountsClient.getAccount();\r\n}\r\n\r\nfunction updateAccount([account]) {\r\n return accountsClient.updateAccount(account);\r\n}\r\n\r\nfunction handlePasswordChange([password]) {\r\n return changePasswordClient.changePassword(password);\r\n}\r\n\r\nfunction handleLicensePasswordChange([password]) {\r\n return changePasswordClient.changeLicensePassword(password);\r\n}\r\n\r\nfunction validateUserProfileForm({ companyName }) {\r\n const errors = {};\r\n\r\n if (companyName) {\r\n if (companyName.length < 3)\r\n errors.companyName =\r\n 'The Company Name must be of minimum 3 characters length.';\r\n }\r\n\r\n return errors;\r\n}\r\n\r\nconst UserProfile = ({ history }) => {\r\n const classes = useStyles();\r\n\r\n const { values, handleChange, handleSubmit, errors, fillValues } = useForm(\r\n handleSubmitProfile,\r\n validateUserProfileForm\r\n );\r\n\r\n const [modal, setModalState] = useState({\r\n password: false,\r\n licensePassword: false,\r\n });\r\n\r\n const {\r\n error,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n counter,\r\n run,\r\n reload,\r\n } = useAsync({\r\n promiseFn: getAccount,\r\n deferFn: updateAccount,\r\n onResolve: data => fillValues(data),\r\n });\r\n\r\n const checkTitle = () => {\r\n const titles = [\r\n 'Manager',\r\n 'Business Analyst',\r\n 'Software Developer',\r\n 'Software Architect',\r\n ];\r\n return titles.find(title => title === values.title);\r\n };\r\n\r\n const otherTitle = () => {\r\n if (values.title === 'Other' || !values.title) return '';\r\n else return values.title;\r\n };\r\n\r\n function handleSubmitProfile() {\r\n run(values);\r\n }\r\n\r\n const handlePasswordDialogOpen = event => {\r\n event.preventDefault();\r\n setModalState({ password: true });\r\n };\r\n const handleLicensePasswordDialogOpen = event => {\r\n event.preventDefault();\r\n setModalState({ licensePassword: true });\r\n };\r\n const handleDialogClose = () =>\r\n setModalState({ password: false, licensePassword: false });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Edit Profile\r\n \r\n \r\n\r\n
\r\n \r\n \r\n First Name\r\n \r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n \r\n \r\n Phone(Optional)\r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n {values.expirationDate !== null && (!isPending || counter > 1) && (\r\n \r\n \r\n \r\n Email not verified.{' '}\r\n \r\n Verify Now\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n Company(Optional)\r\n \r\n \r\n \r\n \r\n\r\n \r\n Title(Optional)\r\n \r\n \r\n }\r\n >\r\n Manager\r\n Business Analyst\r\n \r\n Software Developer\r\n \r\n \r\n Software Architect\r\n \r\n Other\r\n \r\n \r\n \r\n {!checkTitle() && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Change Password\r\n \r\n \r\n \r\n \r\n {isPending && counter > 1 ? 'Updating...' : 'Update'}\r\n \r\n \r\n \r\n {\r\n reload();\r\n history.push('/');\r\n }}\r\n >\r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isRejected && error && (\r\n \r\n {error.message}\r\n \r\n )}\r\n \r\n \r\n {isFulfilled && counter > 1 && (\r\n \r\n Profile has been updated. Your information will be refreshed\r\n at your next login.\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {modal.password && (\r\n \r\n )}\r\n {modal.licensePassword && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(UserProfile);\r\n","import client from './apiClient';\r\n\r\nfunction changePassword({ oldPassword, newPassword }) {\r\n const updatePassword = {\r\n oldPassword,\r\n newPassword,\r\n };\r\n\r\n return client(`password`, { body: updatePassword, method: 'PUT' });\r\n}\r\n\r\nfunction changeLicensePassword({ oldPassword, newPassword }) {\r\n const updatePassword = {\r\n oldPassword,\r\n newPassword,\r\n };\r\n\r\n return client(`password/license`, {\r\n body: updatePassword,\r\n method: 'PUT',\r\n });\r\n}\r\n\r\nexport { changePassword, changeLicensePassword };\r\n","import React from 'react';\r\nimport { useAuth } from 'context/AuthContext';\r\nimport { Redirect } from 'react-router-dom';\r\nimport queryString from 'query-string';\r\nimport { removeHost } from 'utils/urlUtils';\r\n\r\nconst AuthCallback = props => {\r\n const { handleAuthentication } = useAuth();\r\n\r\n handleAuthentication();\r\n\r\n const query = queryString.parse(props.location.search);\r\n var path = query.redirectUrl ? removeHost(query.redirectUrl) : '/';\r\n return ;\r\n};\r\n\r\nexport default AuthCallback;\r\n","export const removeHost = url => {\r\n if (!url) return url;\r\n const urlObject = new URL(url);\r\n return urlObject.pathname + urlObject.search;\r\n};\r\n","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\nimport DocumentTitle from 'react-document-title';\r\n\r\nconst RouteWithTitle = ({ title, ...restProps }) => {\r\n if (title === undefined) throw new Error('RouteWithTitle needs a title prop');\r\n\r\n return (\r\n <>\r\n {title && }\r\n \r\n \r\n );\r\n};\r\n\r\nexport default RouteWithTitle;\r\n","import React from 'react';\r\nimport { useAuth } from 'context/AuthContext';\r\nimport RouteWithTitle from 'components/RouteWithTitle';\r\n\r\nfunction AuthRoute(props) {\r\n const {\r\n component: Component,\r\n anonym,\r\n anonymWithCheckSession,\r\n render,\r\n computedMatch,\r\n ...rest\r\n } = props;\r\n\r\n const {\r\n isInitialState,\r\n isPending,\r\n isAuthenticated,\r\n settleForAnonym,\r\n checkSession,\r\n signIn,\r\n } = useAuth();\r\n\r\n return (\r\n {\r\n if (anonym) {\r\n settleForAnonym();\r\n } else {\r\n if (isInitialState) {\r\n checkSession();\r\n return
;\r\n }\r\n if (isPending) return
;\r\n\r\n if (anonymWithCheckSession) {\r\n settleForAnonym();\r\n } else if (!isAuthenticated()) {\r\n signIn({ redirectUrl: window.location.href });\r\n return
;\r\n }\r\n }\r\n\r\n return render ? (\r\n render()\r\n ) : (\r\n \r\n );\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport default AuthRoute;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Typography, Link } from '@material-ui/core';\r\n\r\nconst RedirectCounter = ({ handleSignIn }) => {\r\n const [seconds, setSeconds] = useState(5);\r\n\r\n useEffect(() => {\r\n let timer = 5;\r\n let intervalID = null;\r\n intervalID = setInterval(() => {\r\n setSeconds(timer--);\r\n if (timer < 0) {\r\n clearInterval(intervalID);\r\n handleSignIn();\r\n }\r\n }, 1000);\r\n //eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n \r\n {`You will be redirected to your account in ${seconds} seconds. If you're not redirected, please click `}\r\n \r\n {'here.'}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default RedirectCounter;\r\n","import React from 'react';\r\nimport { Container, Box, Typography, Grid } from '@material-ui/core';\r\nimport { useAuth } from 'context/AuthContext';\r\nimport queryString from 'query-string';\r\nimport { withRouter } from 'react-router-dom';\r\nimport RedirectCounter from 'components/RedirectCounter';\r\n\r\nconst SignupSuccess = ({ email, location }) => {\r\n const { signIn } = useAuth();\r\n\r\n const handleSignIn = () => {\r\n const query = queryString.parse(location.search);\r\n const signInOptions = { email: email };\r\n if (query['redirectUrl']) window.location = query['redirectUrl'];\r\n else signIn(signInOptions);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Account Created!\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Your account has been successfully created!\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 withRouter(SignupSuccess);\r\n","import React, { useEffect } from 'react';\r\nimport {\r\n Box,\r\n Typography,\r\n Container,\r\n Grid,\r\n TextField,\r\n Button,\r\n Link,\r\n} from '@material-ui/core';\r\nimport { useAuth } from 'context/AuthContext';\r\nimport * as accountsClient from 'utils/accountsClient';\r\nimport { useAsync } from 'react-async';\r\nimport { Redirect } from 'react-router-dom';\r\nimport useForm from 'utils/useForm';\r\nimport queryString from 'query-string';\r\nimport SignupSuccess from './Success';\r\n\r\nfunction createAccount([account]) {\r\n return accountsClient.createAccount(account);\r\n}\r\n\r\nfunction validateSignupForm({ email, password, confirmPassword }) {\r\n const errors = {};\r\n\r\n const emailRegexp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i;\r\n if (!emailRegexp.test(email))\r\n errors.email = 'Please enter a valid email address!';\r\n\r\n const passwordRegexp = /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\\d)(?=.*[a-zA-Z])(?=.*[\\\\~!@#$%^&*_\\-+=`|(){}[\\]:;\"'<>,.?/)])|(?=.*[a-z])(?=.*[A-Z])(?=.*[\\\\~!@#$%^&*_\\-+=`|(){}[\\]:;\"'<>,.?/)])/;\r\n\r\n if (password.length < 6) {\r\n errors.password = 'Minimum length is 6 characters.';\r\n } else if (!passwordRegexp.test(password)) {\r\n errors.password =\r\n 'The password must be a combination of at least 3 of the following: an uppercase letter, a lowercase letter, a digit and a special character!';\r\n }\r\n\r\n if (password !== confirmPassword)\r\n errors.confirmPassword = 'Passwords does not match!';\r\n\r\n return errors;\r\n}\r\n\r\nconst Signup = props => {\r\n const { signIn, isAuthenticated } = useAuth();\r\n\r\n const { values, handleChange, handleSubmit, errors, fillValues } = useForm(\r\n handleSignup,\r\n validateSignupForm\r\n );\r\n\r\n const { error, isLoading, isFulfilled, run, isPending } = useAsync({\r\n deferFn: createAccount,\r\n });\r\n\r\n const query = queryString.parse(props.location.search);\r\n\r\n useEffect(() => {\r\n if (query['email']) fillValues({ email: query['email'] });\r\n //eslint-disable-next-line\r\n }, []);\r\n\r\n function handleSignIn(e) {\r\n e.preventDefault();\r\n\r\n if (query['redirectUrl']) window.location = query['redirectUrl'];\r\n else signIn();\r\n }\r\n\r\n function handleSignup() {\r\n run(values);\r\n }\r\n\r\n if (isAuthenticated()) {\r\n if (query['redirectUrl']) window.location = query['redirectUrl'];\r\n\r\n return query['redirectUrl'] ? null : ;\r\n }\r\n\r\n if (isFulfilled) return ;\r\n\r\n return (\r\n \r\n \r\n \r\n Sign-Up\r\n \r\n \r\n\r\n \r\n \r\n Create your free EngageCX Account\r\n \r\n \r\n\r\n
\r\n \r\n \r\n First Name\r\n \r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n \r\n \r\n Confirm Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n By creating an Ecrion account I confirm that I have read and\r\n agree to the Ecrion Customer Terms of Service.\r\n \r\n \r\n \r\n \r\n {isLoading ? 'Signing-Up...' : 'Sign-Up'}\r\n \r\n \r\n {!isPending && error && (\r\n \r\n {error.message}\r\n \r\n )}\r\n \r\n -or-\r\n \r\n \r\n \r\n Sign-In with your existing account\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 Signup;\r\n","import React from 'react';\r\nimport { Container, Box, Typography, Grid } from '@material-ui/core';\r\nimport { useAuth } from 'context/AuthContext';\r\nimport queryString from 'query-string';\r\nimport { withRouter } from 'react-router-dom';\r\nimport RedirectCounter from 'components/RedirectCounter';\r\n\r\nconst Success = ({ email, location, passwordChanged }) => {\r\n const { signIn } = useAuth();\r\n const mailSent = Boolean(email);\r\n\r\n const handleSignIn = () => {\r\n const query = queryString.parse(location.search);\r\n signIn({ email: email, redirectUrl: query['redirectUrl'] });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {mailSent && (\r\n <>\r\n \r\n \r\n Password reset email sent!\r\n \r\n \r\n \r\n \r\n An email has been sent to '{email}' with your\r\n password reset link.\r\n \r\n \r\n \r\n )}\r\n {passwordChanged && (\r\n <>\r\n \r\n \r\n Password Changed!\r\n \r\n \r\n \r\n \r\n \r\n \r\n Your password has been succesfully changed!\r\n \r\n \r\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 withRouter(Success);\r\n","import React, { useRef } from 'react';\r\nimport { useAsync } from 'react-async';\r\nimport * as resetPasswordClient from 'utils/resetPasswordClient';\r\nimport {\r\n Box,\r\n Typography,\r\n Container,\r\n Grid,\r\n TextField,\r\n Button,\r\n} from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport Reaptcha from 'reaptcha';\r\nimport Success from './Success';\r\nimport { useSettings } from 'context/SettingsContext';\r\nimport useForm from 'utils/useForm';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n recaptchaErrorMessage: {\r\n margin: '-12px 12px 0px',\r\n },\r\n}));\r\n\r\nfunction requestReset([data]) {\r\n return resetPasswordClient.requestReset(data);\r\n}\r\n\r\nfunction validateForm({ recaptcha = {}, email }) {\r\n const errors = {};\r\n\r\n if (!recaptcha.response)\r\n errors.recaptcha = 'Please confirm that you are not a robot!';\r\n\r\n const regexp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i;\r\n\r\n if (!regexp.test(email)) errors.email = 'Please enter a valid email!';\r\n\r\n return errors;\r\n}\r\n\r\nconst RequestReset = props => {\r\n const classes = useStyles();\r\n const recaptchaInstance = useRef(null);\r\n\r\n const settings = useSettings();\r\n\r\n const { error, run, isFulfilled, isLoading, isSettled, counter } = useAsync({\r\n deferFn: requestReset,\r\n onReject: () => recaptchaInstance.current.reset(),\r\n });\r\n\r\n const { values, handleChange, handleSubmit, errors } = useForm(\r\n handleFormSubmit,\r\n validateForm\r\n );\r\n\r\n function handleFormSubmit(e) {\r\n run({ email: values.email, recaptchaResponse: values.recaptcha.response });\r\n }\r\n\r\n return (\r\n <>\r\n {isFulfilled && }\r\n {!isFulfilled && (\r\n \r\n \r\n \r\n Forgot your password?\r\n \r\n \r\n \r\n \r\n To reset your password enter your email address. An email will be\r\n sent with password reset instructions.\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n {settings && (\r\n {\r\n handleChange({\r\n target: { name: 'recaptcha', value: { response } },\r\n });\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {errors.recaptcha}\r\n \r\n \r\n \r\n \r\n {isLoading && counter > 1 ? 'Submitting...' : 'Submit'}\r\n \r\n \r\n {isSettled && error && (\r\n \r\n \r\n {error.message}\r\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 RequestReset;\r\n","import client from './apiClient';\r\n\r\nfunction requestReset({ email, recaptchaResponse }) {\r\n return client(\r\n `resetpassword?email=${email}&recaptchaResponse=${recaptchaResponse}`,\r\n { method: 'PUT' }\r\n );\r\n}\r\n\r\nfunction requestChange({ password, resetKey }) {\r\n const resetPassword = { Key: resetKey, Password: password };\r\n return client(`resetpassword`, { body: resetPassword });\r\n}\r\n\r\nfunction validateKey(resetKey) {\r\n return client(`resetpassword/validate`, { body: resetKey });\r\n}\r\n\r\nexport { requestReset, requestChange, validateKey };\r\n","import React from 'react';\r\nimport { useAsync } from 'react-async';\r\nimport * as resetPasswordClient from 'utils/resetPasswordClient';\r\nimport {\r\n Box,\r\n Typography,\r\n Container,\r\n Grid,\r\n TextField,\r\n Button,\r\n} from '@material-ui/core';\r\nimport Success from './Success';\r\nimport useForm from 'utils/useForm';\r\n\r\nfunction requestChange([resetPassword]) {\r\n return resetPasswordClient.requestChange(resetPassword);\r\n}\r\n\r\nfunction validateForm(values) {\r\n const errors = {};\r\n\r\n const passwordRegexp = /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\\d)(?=.*[a-zA-Z])(?=.*[\\\\~!@#$%^&*_\\-+=`|(){}[\\]:;\"'<>,.?/)])|(?=.*[a-z])(?=.*[A-Z])(?=.*[\\\\~!@#$%^&*_\\-+=`|(){}[\\]:;\"'<>,.?/)])/;\r\n\r\n if (values.password.length < 6) {\r\n errors.password = 'Minimum length is 6 characters.';\r\n } else if (!passwordRegexp.test(values.password)) {\r\n errors.password =\r\n 'The password must be a combination of at least 3 of the following: an uppercase letter, a lowercase letter, a digit and a special character!';\r\n }\r\n\r\n if (values.password !== values.confirmPassword) {\r\n errors.confirmPassword = 'Passwords do not match!';\r\n }\r\n return errors;\r\n}\r\n\r\nconst ChoosePassword = props => {\r\n const { resetKey } = props;\r\n const { values, handleChange, handleSubmit, errors } = useForm(\r\n handleFormSubmit,\r\n validateForm\r\n );\r\n\r\n const { error, run, isFulfilled, isLoading, isSettled, counter } = useAsync({\r\n deferFn: requestChange,\r\n });\r\n\r\n function handleFormSubmit() {\r\n run({ password: values.password, resetKey });\r\n }\r\n\r\n return (\r\n <>\r\n {isFulfilled && }\r\n {!isFulfilled && (\r\n \r\n \r\n \r\n Change your password\r\n \r\n \r\n
\r\n \r\n \r\n Password\r\n \r\n \r\n \r\n \r\n \r\n Confirm Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading && counter > 1 ? 'Saving...' : 'Save'}\r\n \r\n \r\n {isSettled && error && (\r\n \r\n \r\n {error.message}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\nexport default ChoosePassword;\r\n","export const email = value => {\r\n const emailRegexp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i;\r\n if (!emailRegexp.test(value)) return 'Please enter a valid email address!';\r\n};\r\n\r\nexport const password = value => {\r\n const passwordRegexp = /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\\d)(?=.*[a-zA-Z])(?=.*[\\\\~!@#$%^&*_\\-+=`|(){}[\\]:;\"'<>,.?/)])|(?=.*[a-z])(?=.*[A-Z])(?=.*[\\\\~!@#$%^&*_\\-+=`|(){}[\\]:;\"'<>,.?/)])/;\r\n\r\n if (value.length < 6) {\r\n return 'Minimum length is 6 characters.';\r\n } else if (!passwordRegexp.test(value)) {\r\n return 'The password must be a combination of at least 3 of the following: an uppercase letter, a lowercase letter, a digit and a special character!';\r\n }\r\n};\r\n","import React from 'react';\r\nimport { Container, Box, Typography, Grid } from '@material-ui/core';\r\nimport { useAuth } from 'context/AuthContext';\r\nimport queryString from 'query-string';\r\nimport { withRouter } from 'react-router-dom';\r\nimport RedirectCounter from 'components/RedirectCounter';\r\n\r\nconst LoginMigrated = ({ email, location }) => {\r\n const { signIn } = useAuth();\r\n\r\n function handleSignIn() {\r\n const query = queryString.parse(location.search);\r\n\r\n signIn({ email: email, redirectUrl: query['redirectUrl'] });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Account Updated!\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Account details updated successfully!\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 withRouter(LoginMigrated);\r\n","import React from 'react';\r\nimport {\r\n Typography,\r\n Container,\r\n TextField,\r\n Grid,\r\n Box,\r\n Button,\r\n} from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport useForm from 'utils/useForm';\r\nimport * as signInClient from 'utils/signIn';\r\nimport { useAsync } from 'react-async';\r\nimport * as validate from 'utils/validateField';\r\nimport LoginMigrated from './LoginMigrated';\r\nimport DocumentTitle from 'react-document-title';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n emailNotification: {\r\n color: theme.palette.warning,\r\n fontSize: '12px',\r\n lineHeight: 1,\r\n },\r\n}));\r\n\r\nfunction migrateAccount([{ account, passwordResetKey }]) {\r\n return signInClient.migrate({ account, passwordResetKey });\r\n}\r\nfunction validateMigrateForm({ email, password, confirmPassword }) {\r\n const errors = {\r\n email: validate.email(email),\r\n password: validate.password(password),\r\n };\r\n\r\n if (password !== confirmPassword)\r\n errors.confirmPassword = 'Password does not match!';\r\n\r\n return errors;\r\n}\r\n\r\nconst MigrateLogin = ({ passwordResetKey, account }) => {\r\n const classes = useStyles();\r\n const { values, handleChange, handleSubmit, errors } = useForm(\r\n handleSignIn,\r\n validateMigrateForm,\r\n { ...account, confirmPassword: account.password }\r\n );\r\n\r\n const { error, isLoading, run, isPending, isFulfilled } = useAsync({\r\n deferFn: migrateAccount,\r\n });\r\n\r\n function handleSignIn() {\r\n run({\r\n account: { ...values, oldPassword: account.password },\r\n passwordResetKey,\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {isFulfilled && }\r\n {!isFulfilled && (\r\n \r\n \r\n \r\n Review Account Details\r\n \r\n \r\n \r\n \r\n Let's take a moment to update your account details\r\n \r\n \r\n
\r\n \r\n \r\n First Name\r\n \r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n IMPORTANT: You will login using this email address\r\n moving forward. This email address cannot be changed and\r\n must be verified within 48 hours.\r\n \r\n )\r\n }\r\n error={Boolean(errors.email)}\r\n fullWidth\r\n required\r\n />\r\n \r\n \r\n Password\r\n \r\n \r\n \r\n \r\n \r\n Confirm Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading ? 'Updating...' : 'Update'}\r\n \r\n \r\n {!isPending && error && (\r\n \r\n {error.message}\r\n \r\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 MigrateLogin;\r\n","import client from './apiClient';\r\n\r\nfunction signIn(username, password) {\r\n const result = client('signin', {\r\n body: { username, password },\r\n });\r\n\r\n return result;\r\n}\r\n\r\nfunction migrate({ account, passwordResetKey = '' }) {\r\n const result = client(\r\n 'signin/migrate?passwordResetKey=' + encodeURIComponent(passwordResetKey),\r\n {\r\n body: { ...account },\r\n }\r\n );\r\n\r\n return result;\r\n}\r\n\r\nexport { signIn, migrate };\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FadeInProgress from '../FadeInProgress';\r\nconst useStyles = makeStyles(theme => ({\r\n fullHeight: {\r\n position: 'absolute',\r\n top: '45%',\r\n left: 0,\r\n right: 0,\r\n },\r\n}));\r\n\r\nconst PageProgress = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PageProgress;\r\n","import React, { useEffect } from 'react';\r\nimport RequestReset from './RequestReset';\r\nimport ChoosePassword from './ChoosePassword';\r\nimport queryString from 'query-string';\r\nimport { useAsync } from 'react-async';\r\nimport * as resetPasswordClient from 'utils/resetPasswordClient';\r\nimport MigrateLogin from 'components/SignIn/MigrateLogin';\r\nimport PageProgress from 'components/PageProgress';\r\nimport { Typography, Box } from '@material-ui/core';\r\n\r\nfunction validateKey([key]) {\r\n return resetPasswordClient.validateKey(key);\r\n}\r\n\r\nconst PasswordRecovery = props => {\r\n const { key } = queryString.parse(props.location.search);\r\n const { error, run, data: account, isLoading } = useAsync({\r\n deferFn: validateKey,\r\n });\r\n\r\n useEffect(() => {\r\n if (key) run(key);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n <>\r\n {!key && }\r\n {isLoading && }\r\n {error && (\r\n <>\r\n \r\n \r\n {'Password recovery error'}\r\n \r\n \r\n \r\n \r\n {error.message}\r\n \r\n \r\n \r\n )}\r\n {account && account.isMigratedToSSO && }\r\n {account && !account.isMigratedToSSO && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PasswordRecovery;\r\n","import client from './apiClient';\r\nlet cache = null;\r\nconst LOCAL_STORAGE_KEY = '_environments_cache_';\r\n\r\nfunction environments() {\r\n if (cache) return Promise.resolve(cache);\r\n\r\n const result = client('environments');\r\n\r\n result.then(environments => {\r\n cache = environments;\r\n localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(environments));\r\n });\r\n\r\n return result;\r\n}\r\n\r\n// environments request takes some time to complete\r\n// use local storage to cache the retrieved items\r\nconst initialValue = (function() {\r\n const localStorageValue = localStorage.getItem(LOCAL_STORAGE_KEY);\r\n return localStorageValue ? JSON.parse(localStorageValue) : null;\r\n})();\r\n\r\nfunction createEnvironment(environment) {\r\n const result = client('environments', { body: environment });\r\n return result;\r\n}\r\n\r\nexport { environments, initialValue, createEnvironment };\r\n","import React from 'react';\r\nimport { TextField, MenuItem, Grid, Typography } from '@material-ui/core';\r\nimport { useAsync } from 'react-async';\r\nimport * as cloudInstancesClient from 'utils/cloudInstancesClient';\r\n\r\nfunction getCloudInstances() {\r\n return cloudInstancesClient.cloudInstances();\r\n}\r\n\r\nconst CloudInstanceSelect = ({ value, onChange, name }) => {\r\n const { data: instances, error, isPending } = useAsync({\r\n promiseFn: getCloudInstances,\r\n onResolve: data => onChange({ target: { name, value: data[0].id } }),\r\n });\r\n\r\n if (!instances || instances.length <= 1) return null;\r\n\r\n return (\r\n \r\n \r\n Region\r\n \r\n \r\n \r\n {instances &&\r\n instances.map(instance => (\r\n \r\n {instance.name}\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CloudInstanceSelect;\r\n","async function getBase64(file) {\r\n var promise = new Promise(function(resolve, reject) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = function() {\r\n resolve(reader.result);\r\n };\r\n reader.onerror = function(error) {\r\n reject(error);\r\n };\r\n });\r\n\r\n return promise;\r\n}\r\n\r\nexport default { getBase64 };\r\n","import React, { useState } from 'react';\r\nimport {\r\n Box,\r\n Typography,\r\n Container,\r\n Grid,\r\n TextField,\r\n Button,\r\n Avatar,\r\n FormControl,\r\n FormHelperText,\r\n ButtonBase,\r\n} from '@material-ui/core';\r\nimport { useAsync } from 'react-async';\r\nimport * as environmentsClient from 'utils/environmentsClient';\r\nimport CloudInstanceSelect from './CloudInstanceSelect';\r\nimport fileUtils from 'utils/fileUtils';\r\nimport queryString from 'query-string';\r\nimport useForm from 'utils/useForm';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport * as appsClient from 'utils/appsClient';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n logoSize: {\r\n width: '64px',\r\n height: '64px',\r\n },\r\n logoMargins: {\r\n marginTop: '20px',\r\n },\r\n}));\r\n\r\nfunction createEnvironment([environment]) {\r\n return environmentsClient.createEnvironment(environment);\r\n}\r\n\r\nfunction startAppInstall(url, environmentName, appName) {\r\n return appsClient.installApp(url, environmentName, appName);\r\n}\r\n\r\nconst CreateOrganization = props => {\r\n const { values, handleChange, handleSubmit, errors } = useForm(\r\n handleCreateOrganization,\r\n validateOrganizationForm\r\n );\r\n\r\n const [logoSizeError, setLogoSizeError] = useState(false);\r\n const [installingApp, setInstallingApp] = useState(false);\r\n\r\n function validateLogoSize(logoFile) {\r\n if (logoFile && logoFile.size > 100000) return false;\r\n\r\n return true;\r\n }\r\n\r\n function validateOrganizationForm({ name, logoFile }) {\r\n const errors = {};\r\n\r\n if (name.length < 3)\r\n errors.name =\r\n 'The environment name must be of minimum 3 characters length';\r\n\r\n const organizationRegexp = /^[^*#%/|\\\\<>+?:\"]+$/;\r\n if (!organizationRegexp.test(name))\r\n errors.name =\r\n 'The environment name can\\'t contain any of the following characters: \\\\ # % / : + ? \" < > |';\r\n\r\n return errors;\r\n }\r\n\r\n function handleLogoChange(e) {\r\n handleChange(e);\r\n setLogoSizeError(!validateLogoSize(e.target.files[0]));\r\n }\r\n\r\n async function handleCreateOrganization() {\r\n if (logoSizeError) return;\r\n\r\n let logoBase64 = '';\r\n if (values.logoFile)\r\n logoBase64 = await fileUtils.getBase64(values.logoFile);\r\n\r\n run({ name: values.name, instanceId: values.instanceId, logo: logoBase64 });\r\n }\r\n\r\n const { isPending, run, error, counter, setError } = useAsync({\r\n deferFn: createEnvironment,\r\n onResolve: environment => {\r\n const query = queryString.parse(props.location.search);\r\n if (query['install-app']) {\r\n startAppInstall(\r\n environment.url,\r\n environment.name,\r\n query['install-app']\r\n ).then(() => (window.location.href = '/'));\r\n setInstallingApp(true);\r\n } else window.location.href = '/';\r\n },\r\n });\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n Get Started with Ecrion Cloud\r\n \r\n \r\n \r\n \r\n Setup your organization in the Ecrion Cloud\r\n \r\n \r\n {\r\n setError(null);\r\n handleSubmit(e);\r\n }}\r\n >\r\n \r\n \r\n Organization Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!values.logoFile && (\r\n \r\n \r\n \r\n )}\r\n {values.logoFile && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {logoSizeError\r\n ? 'File size should be less than 100KB'\r\n : 'Max 100KB (64 x 64 pixels recommended)'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(isPending && counter > 1) || installingApp\r\n ? 'Creating Organization...'\r\n : 'Create Organization'}\r\n \r\n \r\n {!isPending && error && (\r\n \r\n \r\n {error.message}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateOrganization;\r\n","import React from 'react';\r\nimport CreateOrganization from './CreateOrganization';\r\nimport * as environmentsClient from 'utils/environmentsClient';\r\nimport * as appsClient from 'utils/appsClient';\r\nimport { useAsync } from 'react-async';\r\nimport queryString from 'query-string';\r\nimport PageProgress from 'components/PageProgress';\r\nimport { Typography, Box, Container, Button, Grid } from '@material-ui/core';\r\nimport { withRouter } from 'react-router';\r\n\r\nfunction getEnvironments() {\r\n return environmentsClient.environments();\r\n}\r\n\r\nfunction startAppInstall(url, environmentName, appName) {\r\n return appsClient.installApp(url, environmentName, appName);\r\n}\r\n\r\nconst GetStarted = props => {\r\n const { location, history } = props;\r\n const { data, isPending, error, setError } = useAsync({\r\n promiseFn: getEnvironments,\r\n onResolve: environments => {\r\n if (environments && environments.length > 0) {\r\n const query = queryString.parse(location.search);\r\n startAppInstall(\r\n environments[0].url,\r\n environments[0].name,\r\n query['install-app']\r\n )\r\n .then(() => (window.location.href = '/'))\r\n .catch(error => setError(error));\r\n }\r\n },\r\n });\r\n\r\n if (isPending) return ;\r\n\r\n if (error)\r\n return (\r\n \r\n \r\n \r\n {'App install error'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {error.message}\r\n \r\n \r\n \r\n history.push('/')}\r\n >\r\n {'Go to home page'}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n if (!data || data.length === 0) return ;\r\n\r\n return null;\r\n};\r\n\r\nexport default withRouter(GetStarted);\r\n","import React from 'react';\r\nimport { Container, Grid, Typography, Button, Box } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport NotFound from './NotFound.svg';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n minHeight: '80vh',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n}));\r\n\r\nconst PageNotFound = () => {\r\n const classes = useStyles();\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 {'404 - Page Not Found'}\r\n \r\n \r\n \r\n {\"We're sorry, we couldn't find the page you requested.\"}\r\n \r\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 PageNotFound;\r\n","import React from 'react';\r\nimport { Container, Box, Typography, Grid } from '@material-ui/core';\r\nimport RedirectCounter from 'components/RedirectCounter';\r\n\r\nconst VerifyResult = ({ error, history }) => {\r\n const handleSignIn = () => {\r\n history.push('/');\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {error ? 'Email Verification Error' : 'Email Verified'}\r\n \r\n \r\n \r\n {error && (\r\n \r\n {error}\r\n \r\n )}\r\n {!error && (\r\n \r\n \r\n \r\n Your email has been successfully verified!\r\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 VerifyResult;\r\n","import React, { useEffect } from 'react';\r\nimport { Container, Box, Typography, Button, Grid } from '@material-ui/core';\r\nimport { useAsync } from 'react-async';\r\nimport * as activateAccountClient from 'utils/activateAccountClient';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useAuth } from 'context/AuthContext';\r\n\r\nconst resendActivationEmail = ([email]) => {\r\n return activateAccountClient.sendActivation(email);\r\n};\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n successMessage: {\r\n color: theme.palette.success,\r\n },\r\n}));\r\n\r\nconst EmailPendingVerification = ({ history, autoResend }) => {\r\n const {\r\n data: {\r\n profile: { email },\r\n },\r\n } = useAuth();\r\n\r\n const { run, isLoading, isFulfilled, error } = useAsync({\r\n deferFn: resendActivationEmail,\r\n });\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n if (autoResend) run(email);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n function handleResend() {\r\n run(email);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {'Verify Email'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please check '{email}' email for the verification\r\n message.\r\n \r\n \r\n \r\n \r\n {`Didn't get the mail?`}\r\n \r\n \r\n \r\n \r\n {isLoading ? 'Sending Email...' : 'Resend Email'}\r\n \r\n \r\n {!isLoading && error && (\r\n \r\n \r\n {error.message}\r\n \r\n \r\n )}\r\n \r\n \r\n {isFulfilled && (\r\n \r\n The email has been sent successfully!\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmailPendingVerification;\r\n","import React from 'react';\r\nimport * as accountsClient from 'utils/accountsClient';\r\nimport { useAsync } from 'react-async';\r\nimport PageProgress from 'components/PageProgress';\r\nimport EmailPendingVerification from './EmailPendingVerification';\r\nimport { useUser } from 'context/UserContext';\r\nimport queryString from 'query-string';\r\nimport VerifyResult from './VerifyResult';\r\n\r\nfunction getAccount() {\r\n return accountsClient.getAccount(true);\r\n}\r\n\r\nconst CheckEmailVerified = props => {\r\n const { isPending, data: accountInfo } = useAsync({\r\n promiseFn: getAccount,\r\n watch: props.location.state,\r\n });\r\n\r\n const query = queryString.parse(props.location.search);\r\n\r\n const user = useUser();\r\n\r\n if (isPending) return ;\r\n\r\n if (!user || !accountInfo || accountInfo.expirationDate) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default CheckEmailVerified;\r\n","import React from 'react';\r\nimport queryString from 'query-string';\r\nimport VerifyResult from './VerifyResult';\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport CheckEmailVerified from './CheckEmailVerified';\r\nimport EmailPendingVerification from './EmailPendingVerification';\r\n\r\nconst VerifyEmail = props => {\r\n return (\r\n \r\n {\r\n return ;\r\n }}\r\n />\r\n {\r\n const query = queryString.parse(props.location.search);\r\n return (\r\n \r\n );\r\n }}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default VerifyEmail;\r\n","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Container,\r\n Typography,\r\n Button,\r\n Grid,\r\n Divider,\r\n Box,\r\n Collapse,\r\n} from '@material-ui/core';\r\nimport UnsubscribeIcon from '@material-ui/icons/Unsubscribe';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { withRouter } from 'react-router-dom';\r\nimport * as accountsClient from 'utils/accountsClient';\r\nimport { useAsync } from 'react-async';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n banner: {\r\n backgroundColor: '#fdec90',\r\n },\r\n icon: {\r\n verticalAlign: 'middle',\r\n marginTop: 4,\r\n },\r\n}));\r\n\r\nfunction getAccount() {\r\n return accountsClient.getAccount(true);\r\n}\r\n\r\nconst Banner = ({ history }) => {\r\n const classes = useStyles();\r\n const [dismissed, setDismissed] = useState(\r\n new Date(localStorage.getItem('_verify_mail_dissmissed_until_') || null)\r\n );\r\n const { data: accountInfo, reload } = useAsync({\r\n promiseFn: getAccount,\r\n });\r\n\r\n const handleLaterClick = () => {\r\n const dissmissedUntil = new Date(new Date().getTime() + 1 * 60 * 60 * 1000);\r\n localStorage.setItem('_verify_mail_dissmissed_until_', dissmissedUntil);\r\n\r\n setDismissed(dissmissedUntil);\r\n };\r\n\r\n useEffect(() => {\r\n const dissmissedUntil = new Date(new Date().getTime() + 1 * 10 * 60 * 1000);\r\n if (localStorage.getItem('_verify_mail_dissmissed_until_') === null) {\r\n localStorage.setItem('_verify_mail_dissmissed_until_', dissmissedUntil);\r\n setDismissed(dissmissedUntil);\r\n }\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 In order to continue to have access to your account, please\r\n verify your email in 48 hours after signup.\r\n \r\n \r\n \r\n handleLaterClick()}\r\n >\r\n LATER\r\n \r\n \r\n \r\n {\r\n reload();\r\n history.push('/verify-email/resend', { date: new Date() });\r\n handleLaterClick();\r\n }}\r\n >\r\n VERIFY NOW\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 withRouter(Banner);\r\n","import React, { useState } from 'react';\r\nimport {\r\n Typography,\r\n Container,\r\n TextField,\r\n Grid,\r\n Box,\r\n Button,\r\n Link,\r\n} from '@material-ui/core';\r\nimport useForm from 'utils/useForm';\r\nimport * as signInClient from 'utils/signIn';\r\nimport { useAsync } from 'react-async';\r\nimport MigrateLogin from './MigrateLogin';\r\nimport LoginMigrated from './LoginMigrated';\r\n\r\nfunction signIntoAccount([account]) {\r\n return signInClient.signIn(account.username, account.password);\r\n}\r\n\r\nconst SignIn = () => {\r\n const { values, handleChange, handleSubmit } = useForm(handleSignIn);\r\n const [account, setAccount] = useState();\r\n\r\n const { error, isLoading, run, isPending } = useAsync({\r\n deferFn: signIntoAccount,\r\n onResolve: setAccount,\r\n });\r\n\r\n function handleSignIn() {\r\n run(values);\r\n }\r\n\r\n if (account && account.isMigratedToSSO)\r\n return ;\r\n\r\n if (account) return ;\r\n\r\n return (\r\n \r\n \r\n \r\n Sign-In\r\n \r\n \r\n\r\n
\r\n \r\n \r\n Username\r\n \r\n \r\n \r\n \r\n\r\n \r\n Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Forgot password?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading ? 'Signing-In...' : 'Sign-In'}\r\n \r\n \r\n {!isPending && error && (\r\n \r\n {error.message}\r\n \r\n )}\r\n {!isPending && !error && account === null && (\r\n \r\n \r\n {\r\n 'Could not find account, please check username and password.'\r\n }\r\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 SignIn;\r\n","import React, { useState } from 'react';\r\nimport { Container, Grid, Typography, Button, Box } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport ArrowDown from '@material-ui/icons/KeyboardArrowDown';\r\nimport ArrowUp from '@material-ui/icons/KeyboardArrowUp';\r\nimport Error from './light.svg';\r\nimport Navbar from 'components/Navbar';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n minHeight: '80vh',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n}));\r\n\r\nconst ErrorPage = ({\r\n title = 'Unexpected Error',\r\n message = 'Looks like something went wrong on our end. Head back to the home page.',\r\n details,\r\n}) => {\r\n const classes = useStyles();\r\n const [isDetailsVisible, toggleDetailsVisibility] = useState(false);\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 {!isDetailsVisible && (\r\n <>\r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n {details && (\r\n \r\n toggleDetailsVisibility(v => !v)}\r\n >\r\n View Details\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {isDetailsVisible && (\r\n <>\r\n \r\n toggleDetailsVisibility(v => !v)}\r\n >\r\n Hide Details\r\n \r\n \r\n \r\n \r\n \r\n {'Unexpected Error'}\r\n \r\n \r\n {'Unable to load.'}\r\n \r\n \r\n \r\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 ErrorPage;\r\n","import React from 'react';\r\nimport ErrorPage from 'components/ErrorPage';\r\nimport { withRouter } from 'react-router';\r\n\r\nclass ErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n componentDidCatch(error, errorInfo) {\r\n this.setState({ hasError: true });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.location !== this.props.location) {\r\n this.setState({\r\n hasError: false,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n return ;\r\n }\r\n\r\n return this.props.children;\r\n }\r\n}\r\n\r\nexport default withRouter(ErrorBoundary);\r\n","import React from 'react';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport Navbar from 'components/Navbar';\nimport Footer from 'components/Footer';\nimport { MuiThemeProvider } from '@material-ui/core/styles';\nimport theme from './theme';\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\nimport Home from 'components/Home';\nimport TypographicScale from 'components/TypographicScale';\nimport UserProfile from 'components/UserProfile';\nimport AuthCallback from 'components/AuthCallback';\nimport AuthRoute from 'components/AuthRoute';\nimport Signup from 'components/Signup';\nimport PasswordRecovery from 'components/PasswordRecovery';\nimport GetStarted from 'components/GetStarted';\nimport CreateOrganization from 'components/GetStarted/CreateOrganization';\nimport PageNotFound from 'components/PageNotFound';\nimport VerifyEmail from 'components/VerifyEmail';\nimport { useAuth } from 'context/AuthContext';\nimport Banner from 'components/Banner';\nimport SignIn from 'components/SignIn';\nimport ErrorBoundary from './ErrorBoundary';\n\nfunction App() {\n const { isSettled, isAuthenticated } = useAuth();\n\n return (\n \n \n
\n \n \n {isSettled && }\n {isAuthenticated() && }\n \n \n \n \n \n }\n title=\"Product Keys\"\n />\n }\n title=\"Support\"\n />\n \n \n \n\n \n\n \n\n \n\n \n\n {process.env.NODE_ENV === 'development' && (\n \n )}\n \n \n \n \n
\n
\n
\n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport './lato.css';\nimport AppProviders from './context';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/IconEcrion.65d30d79.png\";"],"sourceRoot":""}