{"version":3,"sources":["components/Panel/index.styles.tsx","components/Panel/index.tsx","utils/colorPalette.js","assets/icons/time-tracker.svg","reducers.ts","containers/App/reducer.ts","components/api-authorization/ApiAuthorizationConstants.js","themes/zen.theme.ts","themes/buttons.ts","themes/typography.ts","components/CustomerModal/index.styles.tsx","components/CustomerModal/index.tsx","components/StyledLabel/index.styles.tsx","components/StyledLabel/index.tsx","containers/App/actions.ts","utils/windowWidth.js","utils/constants.ts","utils/sagaInjectors.js","utils/injectSaga.js","utils/reducerInjectors.js","utils/injectReducer.js","containers/Home/reducer.ts","assets/icons/angle-down.svg","containers/App/constants.ts","components/StyledInput/index.styles.tsx","components/StyledInput/index.tsx","components/api-authorization/AuthorizeService.js","assets/fonts/CeraPro/CeraPro-Light.ttf","assets/fonts/CeraPro/CeraPro-Medium.ttf","components/StyledCheckbox/index.styles.tsx","components/StyledCheckbox/index.tsx","components/StyledEmailInput/index.styles.tsx","components/StyledEmailInput/index.tsx","components/ProjectModal/index.styles.tsx","components/ProjectModal/index.tsx","assets/fonts/CeraPro/CeraPro-LightItalic.ttf","assets/fonts/CeraPro/CeraPro-Italic.ttf","assets/fonts/CeraPro/CeraPro-Regular.ttf","assets/fonts/CeraPro/CeraPro-Bold.ttf","assets/fonts/CeraPro/CeraPro-BoldItalic.ttf","services/ApiService.ts","components/PrimaryButton/index.styles.tsx","components/PrimaryButton/index.tsx","components/StyledModal/index.styles.tsx","components/StyledModal/index.tsx","assets/images/not-found.gif","assets/images/login.png","services/AccountService.ts","containers/App/saga.ts","components/api-authorization/LoginMenu.styles.ts","components/api-authorization/LoginMenu.js","components/Header/index.styles.tsx","assets/images/logo-mobile.svg","assets/icons/reports.svg","assets/icons/projects.svg","assets/icons/team.svg","assets/icons/new-project.svg","assets/icons/new-client.svg","assets/icons/invite-member.svg","components/InviteModal/index.styles.tsx","components/InviteModal/index.tsx","components/CreateTeamModal/index.styles.tsx","components/CreateTeamModal/index.tsx","components/UserAccessModal/index.styles.tsx","components/UserSelect/index.styles.tsx","components/UserSelect/index.tsx","components/UserAccessModal/index.tsx","components/Header/index.tsx","components/Layout.js","components/api-authorization/AuthorizeRoute.js","components/LoadingPage/index.styles.tsx","components/AnimatedClock/index.styles.tsx","components/AnimatedClock/index.tsx","components/LoadingPage/index.tsx","components/api-authorization/Login.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","utils/loadable.js","containers/Projects/Loadable.tsx","containers/Teams/Loadable.tsx","containers/Home/Loadable.tsx","containers/Reports/Loadable.tsx","components/NotFound/index.styles.tsx","components/NotFound/index.tsx","components/LoginPage/index.styles.tsx","components/LoginPage/index.tsx","components/SignUp/Loadable.tsx","components/ConfirmEmail/index.tsx","components/SendEmailInstruction/index.styles.tsx","components/SendEmailInstruction/index.tsx","components/AcceptInvitation/index.styles.tsx","components/AcceptInvitation/index.tsx","assets/icons/profile-settings.svg","assets/icons/eye.svg","components/UserProfileView/index.styles.tsx","components/StyledInputTimeZone/index.tsx","components/SecondaryButton/index.styles.tsx","components/SecondaryButton/index.tsx","utils/currencies.js","components/ChangePasswordModal/index.styles.tsx","components/ChangePasswordModal/index.tsx","components/UserProfileView/index.tsx","utils/debouncer.ts","components/PasswordRecovery/index.styles.tsx","components/PasswordRecovery/index.tsx","containers/App/index.tsx","themes/globalStyles.ts","themes/energy.theme.ts","sagas/index.ts","i18n.js","index.js","utils/configureStore.ts","components/BasicLayout/index.styles.tsx","components/BasicLayout/index.tsx","assets/images/profile-image.svg","assets/images/logo-onremote.svg","utils/checkStore.ts","utils/history.ts","containers/App/selectors.ts","containers/Home/constants.ts"],"names":["StyledPanelWrapper","styled","div","props","theme","background","default","secondary","undefined","padding","Panel","children","className","zenTheme","colorPalette","palette","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref2","createElement","id","transform","fill","d","SvgTimeTracker","_ref","svgRef","title","width","height","viewBox","ref","ForwardRef","forwardRef","createReducer","injectedReducers","rootReducer","combineReducers","home","homeReducer","router","connectRouter","history","initialState","projects","isLoadingLogs","timeLogs","weekTimeLogs","logsError","isSavingLog","tasks","name","customers","teams","users","profile","appReducer","state","action","produce","draft","payload","type","appActionsTypes","DEFAULT_ACTION","GET_PROJECTS_REQUEST","GET_PROJECTS_SUCCESS","GET_PROJECTS_FAILURE","GET_TIME_LOGS_REQUEST","GET_TIME_LOGS_SUCCESS","GET_TIME_LOGS_FAILURE","err","GET_WEEK_TIME_LOGS_REQUEST","GET_WEEK_TIME_LOGS_SUCCESS","GET_WEEK_TIME_LOGS_FAILURE","CREATE_WEEK_TIME_LOGS_REQUEST","CREATE_WEEK_TIME_LOGS_SUCCESS","CREATE_WEEK_TIME_LOGS_FAILURE","DELETE_TIME_LOG_REQUEST","DELETE_TIME_LOG_SUCCESS","remove","t","DELETE_TIME_LOG_FAILURE","CREATE_TIME_LOG_REQUEST","CREATE_TIME_LOG_SUCCESS","concat","timeLog","CREATE_TIME_LOG_FAILURE","UPDATE_TIME_LOG_REQUEST","UPDATE_TIME_LOG_SUCCESS","timeLogIndex","findIndex","UPDATE_TIME_LOG_FAILURE","GET_TASKS_REQUEST","GET_TASKS_SUCCESS","GET_TASKS_FAILURE","CREATE_PROJECT_REQUEST","CREATE_PROJECT_SUCCESS","project","CREATE_PROJECT_FAILURE","GET_CUSTOMERS_REQUEST","GET_CUSTOMERS_SUCCESS","GET_CUSTOMERS_FAILURE","GET_TEAMS_REQUEST","GET_TEAMS_SUCCESS","GET_TEAMS_FAILURE","CREATE_CUSTOMER_REQUEST","CREATE_CUSTOMER_SUCCESS","customer","CREATE_CUSTOMER_FAILURE","GET_USERS_REQUEST","GET_USERS_SUCCESS","GET_USERS_FAILURE","GET_USERPROFILE_REQUEST","GET_USERPROFILE_SUCCESS","user","GET_USERPROFILE_FAILURE","UPDATE_USERPROFILE_REQUEST","UPDATE_USERPROFILE_SUCCESS","UPDATE_USERPROFILE_FAILURE","UPLOAD_PROFILE_IMAGE_REQUEST","UPLOAD_PROFILE_IMAGE_SUCCESS","profileImage","UPLOAD_PROFILE_IMAGE_FAILURE","DELETE_TEAM_REQUEST","DELETE_TEAM_SUCCESS","team","teamId","DELETE_TEAM_FAILURE","DELETE_PROJECT_REQUEST","DELETE_PROJECT_SUCCESS","projectId","DELETE_PROJECT_FAILURE","UPDATE_PROJECT_REQUEST","UPDATE_PROJECT_SUCCESS","projectIndex","p","UPDATE_PROJECT_FAILURE","ApplicationName","QueryParameterNames","ReturnUrl","Message","LogoutActions","LogoutCallback","Logout","LoggedOut","LoginActions","Login","LoginCallback","LoginFailed","Profile","Register","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","process","ApiAuthorizationPrefix","LogOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","primary","tertiary","color","primaryFont","secondaryFont","contrastFont","timeFont","lines","light","warning","active","error","red","grayClock","dark","typography","buttons","border","borderRadius","backgroundColor","boxShadow","hover","disabled","lightItalic","italic","regular","medium","bold","boldItalic","StyledCustomerModalWrapper","CustomerModal","setModal","modal","createCustomerAction","useTranslation","useState","selectedName","setSelectedName","selectedTeamId","setSelectedTeamId","React","toggle","StyledModal","isOpen","ModalHeader","ModalBody","Form","FormGroup","StyledLabel","for","StyledInput","onChange","e","value","map","PrimaryButton","onClick","StyledStyledLabelWrapper","Label","getProjectsRequestAction","getProjectsSuccessAction","getProjectsFailureAction","getTimeLogsRequestAction","getTimeLogsSuccessAction","getTimeLogsFailureAction","getWeekTimeLogsRequestAction","start","end","getWeekTimeLogsSuccessAction","getWeekTimeLogsFailureAction","createWeekTimeLogsRequestAction","item","createWeekTimeLogsSuccessAction","createWeekTimeLogsFailureAction","deleteTimeLogRequestAction","deleteTimeLogSuccessAction","deleteTimeLogFailureAction","createTimeLogRequestAction","newTime","createTimeLogSuccessAction","createTimeLogFailureAction","updateTimeLogRequestAction","updatedTime","updateTimeLogSuccessAction","updateTimeLogFailureAction","getTasksRequestAction","getTasksSuccessAction","getTasksFailureAction","createProjectRequestAction","createProjectSuccessAction","createProjectFailureAction","getCustomersRequestAction","getCustomersSuccessAction","getCustomersFailureAction","getTeamsRequestAction","getTeamsSuccessAction","getTeamsFailureAction","createCustomerRequestAction","createCustomerSuccessAction","createCustomerFailureAction","getUsersRequestAction","getUsersSuccessAction","getUsersFailureAction","getUserProfileRequestAction","getUserProfileSuccessAction","getUserProfileFailureAction","updateUserProfileRequestAction","updateUserProfileSuccessAction","updateUserProfileFailureAction","uploadProfileImageRequestAction","file","uploadProfileImageSuccessAction","uploadProfileImageFailureAction","deleteTeamRequestAction","deleteTeamSuccessAction","deleteTeamFailureAction","deleteProjectRequestAction","deleteProjectSuccessAction","deleteProjectFailureAction","updateProjectRequestAction","updateProjectSuccessAction","updateProjectFailureAction","GetWidth","window","innerWidth","setWidth","useEffect","handleResize","addEventListener","removeEventListener","DAEMON","allowedModes","checkKey","invariant","isString","isEmpty","checkDescriptor","descriptor","shape","saga","isFunction","mode","includes","conformsTo","injectSagaFactory","store","isValid","args","checkStore","newDescriptor","hasSaga","Reflect","has","injectedSagas","task","runSaga","ejectSagaFactory","cancel","getInjectors","injectSaga","ejectSaga","useInjectSaga","context","useContext","ReactReduxContext","injectors","injectReducerFactory","reducer","replaceReducer","injectReducer","useInjectReducer","summary","homeActionsTypes","GET_SUMMARY_REQUEST","isLoadingSummary","GET_SUMMARY_SUCCESS","GET_SUMMARY_FAILURE","summaryError","_ref3","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","SvgAngleDown","x","y","style","enableBackground","xmlSpace","StyledStyledInputWrapper","Input","keyid","authService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_profile","_popUpDisabled","getUser","ensureUserManagerInitialized","userManager","expired","accountApi","get","res","ok","data","access_token","signinSilent","createArguments","silentUser","updateState","success","console","log","Error","signinPopup","popUpUser","message","signinRedirect","redirect","url","signinCallback","signoutPopup","signoutRedirect","signoutCallback","response","notifySubscribers","callback","push","subscription","subscriptionId","subscriptionIndex","element","index","found","filter","splice","useReplaceToNavigate","status","AuthenticationResultStatus","Fail","Success","Redirect","fetch","json","settings","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","a","removeUser","module","exports","StyledStyledCheckboxWrapper","StyledCheckbox","checked","label","hideCheckbox","inputProps","StyledStyledEmailInputWrapper","StyledEmailInput","email","setEmail","invalidEmail","setInvalidEmail","isValidEmail","emailString","test","invalid","FormFeedback","StyledProjectModalWrapper","ProjectModal","getTeamsAction","createProjectAction","updateProjectAction","description","isPrivate","hours","price","defaultHourlyCost","defaultHourlyRate","billableByDefault","customerId","descriptionRequiredForTimeEntry","requiredHoursApproval","setProject","customerModal","setCustomerModal","setDropdownOpen","getProject","projectUrl","api","handleCustomerModal","prevState","handleInputChange","event","parseFloat","np","handlePrivacyChange","handleApprovalChange","option","currentApproval","saveProject","updateProject","Row","form","Col","md","handleCustomerChange","toLowerCase","c","teamName","tag","check","parseInt","onChangeComplete","selectedColor","hex","colors","circleSize","circleSpacing","placeholder","ModalFooter","submitFunction","renderSubmitButton","baseUrl","create","baseURL","headers","Accept","axiosInstance","defaults","withCredentials","addAsyncRequestTransform","request","getAccessToken","token","StyledPrimaryButtonWrapper","Button","isLoading","buttonProps","Spinner","StyledStyledModalWrapper","Modal","getProjectsSaga","getTimeLogsSaga","getWeekTimeLogsSaga","deleteTimeLogSaga","createTimeLogSaga","createWeekTimeLogSaga","updateTimeLogSaga","getTasksSaga","createProjectSaga","getCustomersSaga","getTeamsSaga","createCustomerSaga","getUsersSaga","getUserProfileSaga","updateUserProfileSaga","uploadProfileImageSaga","deleteTeamSaga","deleteProjectSaga","updateProjectSaga","appRootSaga","projectsResponse","put","timelogResponse","timeLogsUrl","deleteTimeLogUrl","date","replace","startTime","endTime","getTasksUrl","tasksResponse","projectResponse","customersResponse","teamsResponse","customerResponse","usersResponse","userResponse","firstDayOfWeek","formData","FormData","append","profileImageResponse","deleteTeamUrl","deleteProjectUrl","takeLatest","CustomProfileImg","LoginMenu","newState","dropdownOpen","setState","isAuthenticated","userName","_subscription","subscribe","populateState","unsubscribe","Promise","all","profilePath","logoutPath","pathname","local","split","authenticatedView","NavItem","Dropdown","DropdownToggle","DropdownMenu","activeClassName","to","exact","RRNavLink","icon","faUserCog","faSignOutAlt","Component","withTranslation","StyledHeaderWrapper","header","rx","stroke","strokeWidth","StyledInviteModalWrapper","InviteModal","setInvites","setEmailsQuery","invites","emailsQuery","modalTitle","selectedTeam","setSelectedTeam","sending","setSending","emailRegex","sendInvites","emails","Authorization","method","body","JSON","stringify","text","Alert","row","display","sm","onPaste","preventDefault","clipboardData","getData","match","RegExp","filteredEmails","onInputPaste","onKeyDown","trim","FormText","Badge","invite","StyledCreateTeamModalWrapper","CreateTeamModal","newTeam","setNewTeam","invalidTeamName","saving","setSaving","createTeam","post","StyledUserAccessModalWrapper","StyledUserSelectWrapper","Select","UserSelect","options","userId","classNamePrefix","defaultValue","isDisabled","isClearable","components","Option","alt","src","SingleValue","isSearchable","memo","newUserAccess","merge","cost","rate","role","showEarnings","userProjects","setUserProjects","projectsConfiguration","setProjectsConfiguration","userAccess","setUserAccess","setError","ua","getUserProjects","userProjectsUrl","getProjectsConfiguration","saveUserAccess","projectsUsersUrl","delete","projectConf","handleUserChange","conf","projectAttributes","handleProjectChange","Logo","Header","getCustomersAction","getUsersAction","moment","locale","format","setCreateTeam","createCustomer","setCreateCustomer","createProject","setCreateProject","handleInviteModal","Navbar","Link","faHome","NavLink","Layout","Container","displayName","AuthorizeRoute","ready","authenticated","authenticationChanged","populateAuthenticationState","redirectUrl","encodeURI","location","href","component","rest","Route","render","StyledLoadingPageWrapper","StyledAnimatedClockWrapper","AnymatedClock","AnimatedClock","LoadingPage","login","getReturnUrl","processLoginCallback","URLSearchParams","search","redirectToProfile","redirectToRegister","returnUrl","signIn","result","navigateToReturnUrl","completeSignIn","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","apiAuthorizationPath","isReady","logout","processLogoutCallback","signOut","completeSignOut","ApiAuthorizationRoutes","path","loginAction","logoutAction","loadable","importFunc","fallback","LazyComponent","lazy","StyledNotFoundWrapper","NotFound","require","StyledLoginPageWrapper","selectGlobalState","mapStateToProps","createStructuredSelector","routerParams","createSelector","appState","withConnect","connect","compose","password","setPassword","rememberMe","setRememberMe","loginIn","setLoginIn","loginUrl","Email","Password","RememberMe","BasicLayout","onSubmit","params","i18n","decodeURIComponent","confirmationInProgress","setConfirmationInProgress","confirmEmail","confirmEmailUrl","StyledSendEmailInstructionWrapper","SendEmailInstruction","buttonMessage","setButtonMessage","submitUrl","setSubmitUrl","successMessage","setSuccessMessage","working","setWorking","emailSent","setEmailSent","configAccordingAction","sendInstructions","StyledAcceptInvitationWrapper","AcceptInvitation","acceptInvitationInProgress","setAcceptInvitationInProgress","errorMessage","setErrorMessage","acceptInvitation","code","msg","StyledUserProfileViewWrapper","StyledInputTimeZone","StyledSecondaryButtonWrapper","AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTC","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLF","CLP","CNH","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GGP","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","IMP","INR","IQD","IRR","ISK","JEP","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VEF","VES","VND","VUV","WST","XAF","XAG","XAU","XCD","XDR","XOF","XPD","XPF","XPT","YER","ZAR","ZMW","ZWL","StyledChangePasswordModalWrapper","ChangePasswordModal","oldPassword","setOldPassword","repeatPassword","setRepeatPassword","errors","setErrors","passwordsDoMatch","changePassword","parseErrors","UserProfileView","getUserProfileAction","setUserProfileAction","uploadProfileImageAction","setName","debouncedName","delay","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout","useDebounce","profileImageUploader","useRef","changePasswordModal","setChangePasswordModal","up","handleChangePasswordModal","changeLanguage","current","click","faCamera","accept","files","reader","FileReader","onload","readAsDataURL","imageHandler","timeZone","dateFormat","weekdays","day","language","currencyCode","entries","defaultCurrecies","currency","StyledPasswordRecoveryWrapper","PasswordRecovery","setSuccess","resetPassword","passwordsDoNotMatch","app","makeSelectApp","makeSelectTeams","makeSelectCustomers","makeSelectUsers","makeSelectUserProfile","dispatch","getTeams","getCustomers","getUsers","getUserProfile","updateUserProfile","userProfile","uploadProfileImage","withLayout","Comp","Switch","SignUp","fromInvite","Home","Projects","Teams","Reports","GlobalStyle","createGlobalStyle","ceraProLight","ceraProLightItalic","ceraProItalic","ceraProRegular","ceraProMedium","ceraProBold","ceraProBoldItalic","root","use","Backend","LanguageDetector","initReactI18next","init","backend","loadPath","fallbackLng","preload","debug","detection","order","interpolation","escapeValue","react","wait","document","getElementsByTagName","getAttribute","rootElement","getElementById","composeEnhancers","composeWithDevTools","sagaMiddleware","createSagaMiddleware","middlewares","routerMiddleware","enhancers","applyMiddleware","createStore","run","sagas","configureStore","ReactDOM","StyledBasicLayoutWrapper","footer","cx","cy","r","SvgProfileImage","SvgLogoOnremote","getState","isObject","basename","createBrowserHistory","selectAppDomain","substate"],"mappings":"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","file":"static/js/main.b5332308.chunk.js","sourcesContent":["// Styled components for Panel\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledPanelWrapper = styled.div`\r\n background: ${(props) => props.theme.background.default};\r\n border-radius: 10px;\r\n border: ${(props) => `1px solid ${props.theme.background.secondary}`};\r\n -webkit-box-shadow: 0px 0px 10px 4px #6bb2aa1c;\r\n -moz-box-shadow: 0px 0px 10px 4px #6bb2aa1c;\r\n box-shadow: 0px 0px 10px 4px #6bb2aa1c;\r\n padding: ${(props) => (props.padding !== undefined ? props.padding + 'px' : '10px')};\r\n`;\r\n","/**\r\n *\r\n * Panel\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { StyledPanelWrapper } from './index.styles';\r\n\r\ninterface PanelPropsInterface {\r\n children?: JSX.Element;\r\n padding?: number;\r\n className?: string;\r\n}\r\n\r\nfunction Panel({ children, padding, className }: PanelPropsInterface): JSX.Element {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport default Panel;\r\n","import zenTheme from '../themes/zen.theme';\r\n\r\nconst theme = zenTheme;\r\n\r\nconst colorPalette = [\r\n theme.palette.one,\r\n theme.palette.two,\r\n theme.palette.three,\r\n theme.palette.four,\r\n theme.palette.five,\r\n theme.palette.six,\r\n theme.palette.seven,\r\n theme.palette.eight,\r\n theme.palette.nine,\r\n theme.palette.ten,\r\n theme.palette.eleven,\r\n theme.palette.twelve,\r\n theme.palette.thirteen,\r\n theme.palette.fourteen,\r\n theme.palette.fifteen,\r\n theme.palette.sixteen,\r\n theme.palette.seventeen,\r\n theme.palette.eighteen,\r\n theme.palette.nineteen,\r\n theme.palette.twenty,\r\n];\r\n\r\nexport default colorPalette;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_3724\",\n \"data-name\": \"Group 3724\",\n transform: \"translate(-2860.564 -291.963)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n id: \"Path_243\",\n d: \"M2871.722 326.362a9.454 9.454 0 1 0-9.454-9.454 9.453 9.453 0 0 0 9.454 9.454zm0 1.454a10.908 10.908 0 1 1 10.909-10.908 10.907 10.907 0 0 1-10.909 10.908z\",\n className: \"cls-1\",\n \"data-name\": \"Path 243\",\n transform: \"translate(0 -8.774)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_244\",\n d: \"M2888.5 326l.945.948-5.192 4.869-3.533-3.463.966-.928 2.588 2.536z\",\n className: \"cls-1\",\n \"data-name\": \"Path 244\",\n transform: \"translate(-12.669 -21.502)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n id: \"Rectangle_186\",\n d: \"M0 0H5.818V1.454H0z\",\n className: \"cls-1\",\n \"data-name\": \"Rectangle 186\",\n transform: \"translate(2868.813 320.758)\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_3723\",\n \"data-name\": \"Group 3723\",\n transform: \"translate(2868.101 292.213)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n id: \"Path_245\",\n d: \"M2882.254 295.946a2.32 2.32 0 0 1 2.2-2.332 2.105 2.105 0 0 1 2.239 2.067l.01.531h1.4l-.01-.559a3.5 3.5 0 0 0-3.707-3.436 3.718 3.718 0 0 0-3.524 3.755v.24h1.4z\",\n className: \"cls-1\",\n \"data-name\": \"Path 245\",\n transform: \"translate(-2880.855 -292.213)\"\n})));\n\nvar SvgTimeTracker = function SvgTimeTracker(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22.317,\n height: 30.5,\n viewBox: \"0 0 22.317 30.5\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTimeTracker, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/time-tracker.e045b825.svg\";\nexport { ForwardRef as ReactComponent };","import { combineReducers } from 'redux';\r\nimport { connectRouter } from 'connected-react-router';\r\n\r\nimport history from './utils/history';\r\n// import appReducer from './containers/App/reducer';\r\nimport homeReducer from './containers/Home/reducer';\r\n\r\n/**\r\n * Merges the main reducer with the router state and dynamically injected reducers\r\n * TODO: Move all the extra reducers to containers/App ASAP\r\n */\r\nexport default function createReducer(injectedReducers = {}) {\r\n const rootReducer = combineReducers({\r\n // app: appReducer,\r\n home: homeReducer,\r\n // theme: themeProviderReducer,\r\n router: connectRouter(history),\r\n ...injectedReducers\r\n });\r\n\r\n return rootReducer;\r\n}\r\n","/*\r\n *\r\n * App reducer\r\n *\r\n */\r\nimport produce from 'immer';\r\n\r\nimport { appActionsTypes } from './constants';\r\nimport { AnyAction } from 'redux';\r\nimport { remove, concat } from 'lodash';\r\n\r\nimport { Project, TimeLog } from '../../Models/Models';\r\n\r\nexport const initialState = {\r\n projects: [],\r\n isLoadingLogs: false,\r\n timeLogs: [],\r\n weekTimeLogs: [],\r\n logsError: '',\r\n isSavingLog: false,\r\n tasks: [{ id: '', name: 'No Tasks' }],\r\n customers: [],\r\n teams: [],\r\n users: [],\r\n profile: null,\r\n};\r\n\r\nconst appReducer = (state = initialState, action: AnyAction) =>\r\n produce(state, (draft: any) => {\r\n const { payload } = action;\r\n switch (action.type) {\r\n case appActionsTypes.DEFAULT_ACTION:\r\n break;\r\n\r\n case appActionsTypes.GET_PROJECTS_REQUEST:\r\n break;\r\n case appActionsTypes.GET_PROJECTS_SUCCESS:\r\n draft.projects = payload.projects;\r\n break;\r\n case appActionsTypes.GET_PROJECTS_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.GET_TIME_LOGS_REQUEST:\r\n draft.isLoadingLogs = true;\r\n break;\r\n case appActionsTypes.GET_TIME_LOGS_SUCCESS:\r\n draft.timeLogs = action.payload.timeLogs;\r\n draft.isLoadingLogs = false;\r\n break;\r\n case appActionsTypes.GET_TIME_LOGS_FAILURE:\r\n draft.isLoadingLogs = false;\r\n draft.logsError = action.payload.err;\r\n break;\r\n\r\n case appActionsTypes.GET_WEEK_TIME_LOGS_REQUEST:\r\n draft.isLoadingLogs = true;\r\n break;\r\n case appActionsTypes.GET_WEEK_TIME_LOGS_SUCCESS:\r\n draft.weekTimeLogs = action.payload.timeLogs;\r\n draft.isLoadingLogs = false;\r\n break;\r\n case appActionsTypes.GET_WEEK_TIME_LOGS_FAILURE:\r\n draft.isLoadingLogs = false;\r\n draft.logsError = action.payload.err;\r\n break;\r\n\r\n case appActionsTypes.CREATE_WEEK_TIME_LOGS_REQUEST:\r\n break;\r\n case appActionsTypes.CREATE_WEEK_TIME_LOGS_SUCCESS:\r\n break;\r\n case appActionsTypes.CREATE_WEEK_TIME_LOGS_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.DELETE_TIME_LOG_REQUEST:\r\n break;\r\n case appActionsTypes.DELETE_TIME_LOG_SUCCESS:\r\n remove(draft.timeLogs, (t: any) => {\r\n return t.id === action.payload.id;\r\n });\r\n break;\r\n case appActionsTypes.DELETE_TIME_LOG_FAILURE:\r\n draft.logsError = action.payload.err;\r\n break;\r\n\r\n case appActionsTypes.CREATE_TIME_LOG_REQUEST:\r\n draft.isSavingLog = true;\r\n break;\r\n case appActionsTypes.CREATE_TIME_LOG_SUCCESS:\r\n draft.timeLogs = concat(draft.timeLogs, action.payload.timeLog);\r\n draft.isSavingLog = false;\r\n break;\r\n case appActionsTypes.CREATE_TIME_LOG_FAILURE:\r\n draft.isSavingLog = false;\r\n draft.logsError = action.payload.err;\r\n break;\r\n\r\n case appActionsTypes.UPDATE_TIME_LOG_REQUEST:\r\n draft.isSavingLog = true;\r\n break;\r\n case appActionsTypes.UPDATE_TIME_LOG_SUCCESS:\r\n const currentTimeLog = (t: TimeLog) => t.id === action.payload.timeLog.id;\r\n const timeLogIndex = draft.timeLogs.findIndex(currentTimeLog);\r\n draft.projects[timeLogIndex] = action.payload.timeLog;\r\n draft.isSavingLog = false;\r\n break;\r\n case appActionsTypes.UPDATE_TIME_LOG_FAILURE:\r\n draft.isSavingLog = false;\r\n draft.logsError = action.payload.err;\r\n break;\r\n\r\n case appActionsTypes.GET_TASKS_REQUEST:\r\n break;\r\n case appActionsTypes.GET_TASKS_SUCCESS:\r\n if (payload.tasks.length > 0) {\r\n draft.tasks = payload.tasks;\r\n }\r\n break;\r\n case appActionsTypes.GET_TASKS_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.CREATE_PROJECT_REQUEST:\r\n break;\r\n case appActionsTypes.CREATE_PROJECT_SUCCESS:\r\n draft.projects = concat(draft.projects, action.payload.project);\r\n break;\r\n case appActionsTypes.CREATE_PROJECT_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.GET_CUSTOMERS_REQUEST:\r\n break;\r\n case appActionsTypes.GET_CUSTOMERS_SUCCESS:\r\n draft.customers = action.payload.customers;\r\n break;\r\n case appActionsTypes.GET_CUSTOMERS_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.GET_TEAMS_REQUEST:\r\n break;\r\n case appActionsTypes.GET_TEAMS_SUCCESS:\r\n draft.teams = action.payload.teams;\r\n break;\r\n case appActionsTypes.GET_TEAMS_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.CREATE_CUSTOMER_REQUEST:\r\n break;\r\n case appActionsTypes.CREATE_CUSTOMER_SUCCESS:\r\n draft.customers = concat(draft.customers, action.payload.customer);\r\n break;\r\n case appActionsTypes.CREATE_CUSTOMER_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.GET_USERS_REQUEST:\r\n break;\r\n case appActionsTypes.GET_USERS_SUCCESS:\r\n draft.users = action.payload.users;\r\n break;\r\n case appActionsTypes.GET_USERS_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.GET_USERPROFILE_REQUEST:\r\n break;\r\n case appActionsTypes.GET_USERPROFILE_SUCCESS:\r\n draft.profile = action.payload.user;\r\n break;\r\n case appActionsTypes.GET_USERPROFILE_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.UPDATE_USERPROFILE_REQUEST:\r\n break;\r\n case appActionsTypes.UPDATE_USERPROFILE_SUCCESS:\r\n draft.profile = action.payload.user;\r\n break;\r\n case appActionsTypes.UPDATE_USERPROFILE_FAILURE:\r\n break;\r\n case appActionsTypes.UPLOAD_PROFILE_IMAGE_REQUEST:\r\n break;\r\n case appActionsTypes.UPLOAD_PROFILE_IMAGE_SUCCESS:\r\n draft.profile.profileImage = action.payload.user.profileImage;\r\n break;\r\n case appActionsTypes.UPLOAD_PROFILE_IMAGE_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.DELETE_TEAM_REQUEST:\r\n break;\r\n case appActionsTypes.DELETE_TEAM_SUCCESS:\r\n remove(draft.teams, (team: any) => {\r\n return team.id === action.payload.teamId;\r\n });\r\n break;\r\n case appActionsTypes.DELETE_TEAM_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.DELETE_PROJECT_REQUEST:\r\n break;\r\n case appActionsTypes.DELETE_PROJECT_SUCCESS:\r\n remove(draft.projects, (project: any) => {\r\n return project.id === action.payload.projectId;\r\n });\r\n break;\r\n case appActionsTypes.DELETE_PROJECT_FAILURE:\r\n break;\r\n\r\n case appActionsTypes.UPDATE_PROJECT_REQUEST:\r\n break;\r\n case appActionsTypes.UPDATE_PROJECT_SUCCESS:\r\n const currentProject = (p: Project) => p.id === action.payload.project.id;\r\n const projectIndex = draft.projects.findIndex(currentProject);\r\n draft.projects[projectIndex] = action.payload.project;\r\n break;\r\n case appActionsTypes.UPDATE_PROJECT_FAILURE:\r\n draft.isSavingLog = false;\r\n draft.logsError = action.payload.err;\r\n break;\r\n }\r\n });\r\n\r\nexport default appReducer;\r\n","export const ApplicationName = 'HoursApp';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = `/authentication`;\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `${process.env.PUBLIC_URL}/_configuration/${ApplicationName}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: '/Identity/Account/Register',\r\n IdentityManagePath: '/Identity/Account/Manage'\r\n};\r\n","import buttons from './buttons';\r\nimport typography from './typography';\r\n\r\n// TODO: https://styled-components.com/docs/advanced#theming\r\nexport default {\r\n background: {\r\n primary: '#FFF',\r\n secondary: '#f4f5f8',\r\n tertiary: '#f9f9fb',\r\n },\r\n color: {\r\n primary: '#5aba9e',\r\n secondary: '#59bbe8',\r\n tertiary: '#455bf7',\r\n primaryFont: '#414c5a',\r\n secondaryFont: '#8593a7',\r\n contrastFont: '#fff',\r\n timeFont: '#708198',\r\n lines: '#f4f6fa',\r\n light: '#bbc9dd',\r\n warning: '#ff1515',\r\n active: '#25896b',\r\n error: '#c16250',\r\n red: '#ff222b',\r\n grayClock:' #e5eaf1',\r\n dark: '#414c5a',\r\n },\r\n palette: {\r\n one: '#5aba9e',\r\n two: '#59bbe8',\r\n three: '#455bf7',\r\n four: '#f97442',\r\n five: '#f99f41',\r\n six: '#97beb4',\r\n seven: '#8d3e41',\r\n eight: '#848296',\r\n nine: '#758fe6',\r\n ten: '#25896b',\r\n eleven: '#b3ba5a',\r\n twelve: '#8557ba',\r\n thirteen: '#2c8ebf',\r\n fourteen: '#30498b',\r\n fifteen: '#d35640',\r\n sixteen: '#d08031',\r\n seventeen: '#d96678',\r\n eighteen: '#bd97be',\r\n nineteen: '#417486',\r\n twenty: '#8ab6ca',\r\n },\r\n typography,\r\n buttons,\r\n};\r\n","export default {\r\n // Primary button styles START\r\n primary: {\r\n default: {\r\n color: '#FFFFFF',\r\n border: '0 none',\r\n borderRadius: '8px',\r\n backgroundColor: '#113A87',\r\n boxShadow: '0 1px 3px 0 rgba(0,0,0,0.2), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 1px 0 rgba(0,0,0,0.14)'\r\n },\r\n active: {\r\n color: '#FFFFFF',\r\n border: '0.5px solid #D3D3D3',\r\n borderRadius: '8px',\r\n backgroundColor: '#7088B7',\r\n boxShadow: '0 1px 18px 0 rgba(0,0,0,0.12), 0 6px 10px 0 rgba(0,0,0,0.14), 0 3px 5px -1px rgba(0,0,0,0.2)'\r\n },\r\n hover: {\r\n color: '#FFFFFF',\r\n border: '0 none',\r\n borderRadius: '8px',\r\n backgroundColor: '#40619F',\r\n boxShadow: '0 1px 10px 0 rgba(0,0,0,0.12), 0 4px 5px 0 rgba(0,0,0,0.14), 0 2px 4px -1px rgba(0,0,0,0.2)'\r\n },\r\n disabled: {\r\n color: '#FFFFFF',\r\n border: '0 none',\r\n borderRadius: '8px',\r\n backgroundColor: '#A5A5A5',\r\n boxShadow: 'none'\r\n }\r\n },\r\n // Primary button styles END\r\n // Secondary button styles START\r\n secondary: {\r\n default: {\r\n color: '#393939',\r\n border: '0.5px solid #D3D3D3',\r\n borderRadius: '8px',\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: '0 3px 1px -2px rgba(0,0,0,0.12), 0 2px 2px 0 rgba(0,0,0,0.14), 0 1px 5px 0 rgba(0,0,0,0.2)'\r\n },\r\n active: {\r\n color: '#393939',\r\n border: '0.5px solid #D3D3D3',\r\n borderRadius: '8px',\r\n backgroundColor: '#E7E7E7',\r\n boxShadow: '0 1px 18px 0 rgba(0,0,0,0.12), 0 6px 10px 0 rgba(0,0,0,0.14), 0 3px 5px -1px rgba(0,0,0,0.2)'\r\n },\r\n hover: {\r\n color: '#393939',\r\n border: '0.5px solid #D3D3D3',\r\n borderRadius: '8px',\r\n backgroundColor: '#F7F7F7',\r\n boxShadow: '0 1px 10px 0 rgba(0,0,0,0.12), 0 4px 5px 0 rgba(0,0,0,0.14), 0 2px 4px -1px rgba(0,0,0,0.2)'\r\n },\r\n disabled: {\r\n color: 'rgba(57,57,57,0.3)',\r\n border: '0.5px solid #D3D3D3',\r\n borderRadius: '8px',\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: 'none'\r\n }\r\n },\r\n // Secondary button styles END\r\n // Tertiary button styles START\r\n tertiary: {\r\n default: {\r\n color: '',\r\n border: '0 none',\r\n borderRadius: '8px',\r\n backgroundColor: 'transparent',\r\n boxShadow: 'none'\r\n },\r\n active: {\r\n color: '',\r\n border: '0 none',\r\n borderRadius: '8px',\r\n backgroundColor: 'transparent',\r\n boxShadow: 'none'\r\n },\r\n hover: {\r\n color: '',\r\n border: '0 none',\r\n borderRadius: '8px',\r\n backgroundColor: 'transparent',\r\n boxShadow: 'none'\r\n },\r\n disabled: {\r\n color: '',\r\n border: '0 none',\r\n borderRadius: '8px',\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: 'none'\r\n }\r\n }\r\n // Tertiary button styles END\r\n};\r\n","import { css } from 'styled-components';\r\n\r\nexport default {\r\n light: 'CeraPro Light',\r\n lightItalic: 'CeraPro Light Italic',\r\n italic: 'CeraPro Italic',\r\n regular: 'CeraPro Regular',\r\n medium: 'CeraPro Medium',\r\n bold: 'CeraPro Bold',\r\n boldItalic: 'CeraPro Bold Italic',\r\n};\r\n","// Styled components for CustomerModal\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledCustomerModalWrapper = styled.div`\r\n.create-customer-btn{\r\n width: 100%;\r\n}\r\n`;\r\n","/**\r\n *\r\n * CustomerModal\r\n *\r\n */\r\nimport React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Team, Customer } from '../../Models/Models';\r\nimport {\r\n ModalHeader, ModalBody, Form, FormGroup\r\n} from 'reactstrap';\r\nimport StyledInput from '../StyledInput';\r\nimport StyledModal from '../StyledModal';\r\nimport PrimaryButton from '../PrimaryButton';\r\nimport { StyledCustomerModalWrapper } from './index.styles';\r\nimport StyledLabel from '../StyledLabel';\r\n\r\ninterface CustomerModalPropsInterface {\r\n setModal: (bol: boolean) => void;\r\n modal: boolean;\r\n teams: Team[];\r\n createCustomerAction: (customer: Customer) => void;\r\n};\r\n\r\nfunction CustomerModal({\r\n setModal,\r\n modal,\r\n teams,\r\n createCustomerAction\r\n}: CustomerModalPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n const [selectedName, setSelectedName] = useState('');\r\n const [selectedTeamId, setSelectedTeamId] = useState('');\r\n const [saving, setSaving] = React.useState(false);\r\n\r\n const saveCustomer = () => {\r\n createCustomerAction({\r\n teamId: selectedTeamId,\r\n name: selectedName\r\n } as Customer);\r\n\r\n toggle();\r\n };\r\n\r\n const toggle = () => {\r\n setModal(!modal);\r\n setSelectedTeamId('');\r\n setSelectedName('');\r\n };\r\n\r\n return (\r\n \r\n \r\n {t('customerModal.title')}\r\n \r\n
\r\n \r\n {t('team')}\r\n setSelectedTeamId(e.target.value)}>\r\n <>\r\n \r\n {teams && teams.map((team) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {t('name')}\r\n setSelectedName(e.target.value)} value={selectedName} />\r\n \r\n
\r\n saveCustomer()}>{t('customerModal.create')}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CustomerModal;\r\n","// Styled components for StyledLabel\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\nimport { Label } from 'reactstrap';\r\n\r\nexport const StyledStyledLabelWrapper = styled(Label)`\r\n color: ${(props) => props.theme.color.timeFont};\r\n font-family: ${(props) => props.theme.typography.light};\r\n font-size: 0.9rem;\r\n`;\r\n","/**\r\n *\r\n * StyledLabel\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { StyledStyledLabelWrapper } from './index.styles';\r\nimport { LabelProps } from 'reactstrap';\r\n\r\ninterface StyledLabelPropsInterface extends LabelProps {\r\n children?: JSX.Element;\r\n}\r\n\r\nfunction StyledLabel(props: StyledLabelPropsInterface): JSX.Element {\r\n return {props.children};\r\n}\r\n\r\nexport default StyledLabel;\r\n","/*\r\n *\r\n * App actions\r\n *\r\n */\r\nimport { appActionsTypes } from './constants';\r\nimport {\r\n Project,\r\n Time,\r\n TimeLog,\r\n DayEntry,\r\n Task,\r\n Team,\r\n Customer,\r\n User,\r\n UserProfile,\r\n} from '../../Models/Models';\r\n\r\nexport function defaultAction() {\r\n return {\r\n type: appActionsTypes.DEFAULT_ACTION,\r\n };\r\n}\r\n\r\nexport const getProjectsRequestAction = () => ({\r\n type: appActionsTypes.GET_PROJECTS_REQUEST,\r\n payload: {},\r\n});\r\n\r\nexport const getProjectsSuccessAction = (projects: Array) => ({\r\n type: appActionsTypes.GET_PROJECTS_SUCCESS,\r\n payload: { projects },\r\n});\r\n\r\nexport const getProjectsFailureAction = (err: any) => ({\r\n type: appActionsTypes.GET_PROJECTS_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const getTimeLogsRequestAction = () => ({\r\n type: appActionsTypes.GET_TIME_LOGS_REQUEST,\r\n payload: {},\r\n});\r\n\r\nexport const getTimeLogsSuccessAction = (timeLogs: Array) => ({\r\n type: appActionsTypes.GET_TIME_LOGS_SUCCESS,\r\n payload: { timeLogs },\r\n});\r\n\r\nexport const getTimeLogsFailureAction = (err: any) => ({\r\n type: appActionsTypes.GET_TIME_LOGS_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const getWeekTimeLogsRequestAction = (start: string, end: string) => ({\r\n type: appActionsTypes.GET_WEEK_TIME_LOGS_REQUEST,\r\n payload: { start, end },\r\n});\r\n\r\nexport const getWeekTimeLogsSuccessAction = (timeLogs: Array) => ({\r\n type: appActionsTypes.GET_WEEK_TIME_LOGS_SUCCESS,\r\n payload: { timeLogs },\r\n});\r\n\r\nexport const getWeekTimeLogsFailureAction = (err: any) => ({\r\n type: appActionsTypes.GET_WEEK_TIME_LOGS_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const createWeekTimeLogsRequestAction = (item: DayEntry) => ({\r\n type: appActionsTypes.CREATE_WEEK_TIME_LOGS_REQUEST,\r\n payload: { item },\r\n});\r\n\r\nexport const createWeekTimeLogsSuccessAction = () => ({\r\n type: appActionsTypes.CREATE_WEEK_TIME_LOGS_SUCCESS,\r\n payload: {},\r\n});\r\n\r\nexport const createWeekTimeLogsFailureAction = (err: any) => ({\r\n type: appActionsTypes.CREATE_WEEK_TIME_LOGS_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const deleteTimeLogRequestAction = (id: string) => ({\r\n type: appActionsTypes.DELETE_TIME_LOG_REQUEST,\r\n payload: { id },\r\n});\r\n\r\nexport const deleteTimeLogSuccessAction = (id: string) => ({\r\n type: appActionsTypes.DELETE_TIME_LOG_SUCCESS,\r\n payload: { id },\r\n});\r\n\r\nexport const deleteTimeLogFailureAction = (err: any) => ({\r\n type: appActionsTypes.DELETE_TIME_LOG_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const createTimeLogRequestAction = (newTime: Time) => ({\r\n type: appActionsTypes.CREATE_TIME_LOG_REQUEST,\r\n payload: { newTime },\r\n});\r\n\r\nexport const createTimeLogSuccessAction = (timeLog: TimeLog) => ({\r\n type: appActionsTypes.CREATE_TIME_LOG_SUCCESS,\r\n payload: { timeLog },\r\n});\r\n\r\nexport const createTimeLogFailureAction = (err: any) => ({\r\n type: appActionsTypes.CREATE_TIME_LOG_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const updateTimeLogRequestAction = (updatedTime: Time) => ({\r\n type: appActionsTypes.UPDATE_TIME_LOG_REQUEST,\r\n payload: { updatedTime },\r\n});\r\n\r\nexport const updateTimeLogSuccessAction = (timeLog: TimeLog) => ({\r\n type: appActionsTypes.UPDATE_TIME_LOG_SUCCESS,\r\n payload: { timeLog },\r\n});\r\n\r\nexport const updateTimeLogFailureAction = (err: any) => ({\r\n type: appActionsTypes.UPDATE_TIME_LOG_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const getTasksRequestAction = (projectId: string) => ({\r\n type: appActionsTypes.GET_TASKS_REQUEST,\r\n payload: { projectId },\r\n});\r\n\r\nexport const getTasksSuccessAction = (tasks: Array) => ({\r\n type: appActionsTypes.GET_TASKS_SUCCESS,\r\n payload: { tasks },\r\n});\r\n\r\nexport const getTasksFailureAction = (err: any) => ({\r\n type: appActionsTypes.GET_TASKS_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const createProjectRequestAction = (project: Project) => ({\r\n type: appActionsTypes.CREATE_PROJECT_REQUEST,\r\n payload: { project },\r\n});\r\n\r\nexport const createProjectSuccessAction = (project: Project) => ({\r\n type: appActionsTypes.CREATE_PROJECT_SUCCESS,\r\n payload: { project },\r\n});\r\n\r\nexport const createProjectFailureAction = (err: any) => ({\r\n type: appActionsTypes.CREATE_PROJECT_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const getCustomersRequestAction = () => ({\r\n type: appActionsTypes.GET_CUSTOMERS_REQUEST,\r\n payload: {},\r\n});\r\n\r\nexport const getCustomersSuccessAction = (customers: Array) => ({\r\n type: appActionsTypes.GET_CUSTOMERS_SUCCESS,\r\n payload: { customers },\r\n});\r\n\r\nexport const getCustomersFailureAction = (err: any) => ({\r\n type: appActionsTypes.GET_CUSTOMERS_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const getTeamsRequestAction = () => ({\r\n type: appActionsTypes.GET_TEAMS_REQUEST,\r\n payload: {},\r\n});\r\n\r\nexport const getTeamsSuccessAction = (teams: Array) => ({\r\n type: appActionsTypes.GET_TEAMS_SUCCESS,\r\n payload: { teams },\r\n});\r\n\r\nexport const getTeamsFailureAction = (err: any) => ({\r\n type: appActionsTypes.GET_TEAMS_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const createCustomerRequestAction = (customer: Customer) => ({\r\n type: appActionsTypes.CREATE_CUSTOMER_REQUEST,\r\n payload: { customer },\r\n});\r\n\r\nexport const createCustomerSuccessAction = (customer: Customer) => ({\r\n type: appActionsTypes.CREATE_CUSTOMER_SUCCESS,\r\n payload: { customer },\r\n});\r\n\r\nexport const createCustomerFailureAction = (err: any) => ({\r\n type: appActionsTypes.CREATE_CUSTOMER_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const getUsersRequestAction = () => ({\r\n type: appActionsTypes.GET_USERS_REQUEST,\r\n payload: {},\r\n});\r\n\r\nexport const getUsersSuccessAction = (users: Array) => ({\r\n type: appActionsTypes.GET_USERS_SUCCESS,\r\n payload: { users },\r\n});\r\n\r\nexport const getUsersFailureAction = (err: any) => ({\r\n type: appActionsTypes.GET_USERS_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const getUserProfileRequestAction = () => ({\r\n type: appActionsTypes.GET_USERPROFILE_REQUEST,\r\n payload: {},\r\n});\r\n\r\nexport const getUserProfileSuccessAction = (user: UserProfile) => ({\r\n type: appActionsTypes.GET_USERPROFILE_SUCCESS,\r\n payload: { user },\r\n});\r\n\r\nexport const getUserProfileFailureAction = (err: any) => ({\r\n type: appActionsTypes.GET_USERPROFILE_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const updateUserProfileRequestAction = (user: UserProfile) => ({\r\n type: appActionsTypes.UPDATE_USERPROFILE_REQUEST,\r\n payload: { user },\r\n});\r\n\r\nexport const updateUserProfileSuccessAction = (user: UserProfile) => ({\r\n type: appActionsTypes.UPDATE_USERPROFILE_SUCCESS,\r\n payload: { user },\r\n});\r\n\r\nexport const updateUserProfileFailureAction = (err: any) => ({\r\n type: appActionsTypes.UPDATE_USERPROFILE_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const uploadProfileImageRequestAction = (file: object) => ({\r\n type: appActionsTypes.UPLOAD_PROFILE_IMAGE_REQUEST,\r\n payload: { file },\r\n});\r\n\r\nexport const uploadProfileImageSuccessAction = (user: UserProfile) => ({\r\n type: appActionsTypes.UPLOAD_PROFILE_IMAGE_SUCCESS,\r\n payload: { user },\r\n});\r\n\r\nexport const uploadProfileImageFailureAction = (err: any) => ({\r\n type: appActionsTypes.UPLOAD_PROFILE_IMAGE_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const deleteTeamRequestAction = (teamId: string) => ({\r\n type: appActionsTypes.DELETE_TEAM_REQUEST,\r\n payload: { teamId },\r\n});\r\n\r\nexport const deleteTeamSuccessAction = (teamId: string) => ({\r\n type: appActionsTypes.DELETE_TEAM_SUCCESS,\r\n payload: { teamId },\r\n});\r\n\r\nexport const deleteTeamFailureAction = (err: any) => ({\r\n type: appActionsTypes.DELETE_TEAM_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const deleteProjectRequestAction = (projectId: string) => ({\r\n type: appActionsTypes.DELETE_PROJECT_REQUEST,\r\n payload: { projectId },\r\n});\r\n\r\nexport const deleteProjectSuccessAction = (projectId: string) => ({\r\n type: appActionsTypes.DELETE_PROJECT_SUCCESS,\r\n payload: { projectId },\r\n});\r\n\r\nexport const deleteProjectFailureAction = (err: any) => ({\r\n type: appActionsTypes.DELETE_PROJECT_FAILURE,\r\n payload: { err },\r\n});\r\n\r\nexport const updateProjectRequestAction = (project: Project) => ({\r\n type: appActionsTypes.UPDATE_PROJECT_REQUEST,\r\n payload: { project },\r\n});\r\n\r\nexport const updateProjectSuccessAction = (project: Project) => ({\r\n type: appActionsTypes.UPDATE_PROJECT_SUCCESS,\r\n payload: { project },\r\n});\r\n\r\nexport const updateProjectFailureAction = (err: any) => ({\r\n type: appActionsTypes.UPDATE_PROJECT_FAILURE,\r\n payload: { err },\r\n});\r\n","import { useState, useEffect } from 'react';\r\n\r\nconst GetWidth = () => {\r\n const [width, setWidth] = useState(window.innerWidth);\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setWidth(window.innerWidth);\r\n };\r\n window.addEventListener('resize', handleResize);\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n };\r\n }, []);\r\n\r\n return width;\r\n};\r\n\r\nexport { GetWidth };\r\n","export const RESTART_ON_REMOUNT = '@@saga-injector/restart-on-remount';\r\nexport const DAEMON = '@@saga-injector/daemon';\r\nexport const ONCE_TILL_UNMOUNT = '@@saga-injector/once-till-unmount';\r\n","import invariant from 'invariant';\r\nimport { isEmpty, isFunction, isString, conformsTo } from 'lodash';\r\n\r\nimport checkStore from './checkStore';\r\nimport { DAEMON, ONCE_TILL_UNMOUNT, RESTART_ON_REMOUNT } from './constants';\r\n\r\nconst allowedModes = [RESTART_ON_REMOUNT, DAEMON, ONCE_TILL_UNMOUNT];\r\n\r\nconst checkKey = key =>\r\n invariant(isString(key) && !isEmpty(key), '(src/utils...) injectSaga: Expected `key` to be a non empty string');\r\n\r\nconst checkDescriptor = descriptor => {\r\n const shape = {\r\n saga: isFunction,\r\n mode: mode => isString(mode) && allowedModes.includes(mode)\r\n };\r\n invariant(conformsTo(descriptor, shape), '(src/utils...) injectSaga: Expected a valid saga descriptor');\r\n};\r\n\r\nexport function injectSagaFactory(store, isValid) {\r\n return function injectSaga(key, descriptor = {}, args) {\r\n if (!isValid) checkStore(store);\r\n\r\n const newDescriptor = {\r\n ...descriptor,\r\n mode: descriptor.mode || DAEMON\r\n };\r\n const { saga, mode } = newDescriptor;\r\n\r\n checkKey(key);\r\n checkDescriptor(newDescriptor);\r\n\r\n let hasSaga = Reflect.has(store.injectedSagas, key);\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n const oldDescriptor = store.injectedSagas[key];\r\n // enable hot reloading of daemon and once-till-unmount sagas\r\n if (hasSaga && oldDescriptor.saga !== saga) {\r\n oldDescriptor.task.cancel();\r\n hasSaga = false;\r\n }\r\n }\r\n\r\n if (!hasSaga || (hasSaga && mode !== DAEMON && mode !== ONCE_TILL_UNMOUNT)) {\r\n /* eslint-disable no-param-reassign */\r\n store.injectedSagas[key] = {\r\n ...newDescriptor,\r\n task: store.runSaga(saga, args)\r\n };\r\n /* eslint-enable no-param-reassign */\r\n }\r\n };\r\n}\r\n\r\nexport function ejectSagaFactory(store, isValid) {\r\n return function ejectSaga(key) {\r\n if (!isValid) checkStore(store);\r\n\r\n checkKey(key);\r\n\r\n if (Reflect.has(store.injectedSagas, key)) {\r\n const descriptor = store.injectedSagas[key];\r\n if (descriptor.mode && descriptor.mode !== DAEMON) {\r\n descriptor.task.cancel();\r\n // Clean up in production; in development we need `descriptor.saga` for hot reloading\r\n if (process.env.NODE_ENV === 'production') {\r\n // Need some value to be able to detect `ONCE_TILL_UNMOUNT` sagas in `injectSaga`\r\n store.injectedSagas[key] = 'done'; // eslint-disable-line no-param-reassign\r\n }\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport default function getInjectors(store) {\r\n checkStore(store);\r\n\r\n return {\r\n injectSaga: injectSagaFactory(store, true),\r\n ejectSaga: ejectSagaFactory(store, true)\r\n };\r\n}\r\n","import React from 'react';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { ReactReduxContext } from 'react-redux';\r\n\r\nimport getInjectors from './sagaInjectors';\r\n\r\n/**\r\n * Dynamically injects a saga, passes component's props as saga arguments\r\n *\r\n * @param {string} key A key of the saga\r\n * @param {function} saga A root saga that will be injected\r\n * @param {string} [mode] By default (constants.DAEMON) the saga will be started\r\n * on component mount and never canceled or started again. Another two options:\r\n * - constants.RESTART_ON_REMOUNT — the saga will be started on component mount and\r\n * cancelled with `task.cancel()` on component unmount for improved performance,\r\n * - constants.ONCE_TILL_UNMOUNT — behaves like 'RESTART_ON_REMOUNT' but never runs it again.\r\n *\r\n */\r\nexport default ({ key, saga, mode }) => WrappedComponent => {\r\n class InjectSaga extends React.Component {\r\n static WrappedComponent = WrappedComponent;\r\n\r\n static contextType = ReactReduxContext;\r\n\r\n static displayName = `withSaga(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;\r\n\r\n constructor(props, context) {\r\n super(props, context);\r\n\r\n this.injectors = getInjectors(context.store);\r\n\r\n this.injectors.injectSaga(key, { saga, mode }, this.props);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.injectors.ejectSaga(key);\r\n }\r\n\r\n render() {\r\n return ;\r\n }\r\n }\r\n\r\n return hoistNonReactStatics(InjectSaga, WrappedComponent);\r\n};\r\n\r\nconst useInjectSaga = ({ key, saga, mode }) => {\r\n const context = React.useContext(ReactReduxContext);\r\n React.useEffect(() => {\r\n const injectors = getInjectors(context.store);\r\n injectors.injectSaga(key, { saga, mode });\r\n\r\n return () => {\r\n injectors.ejectSaga(key);\r\n };\r\n }, []);\r\n};\r\n\r\nexport { useInjectSaga };\r\n","import invariant from 'invariant';\r\nimport { isEmpty, isFunction, isString } from 'lodash';\r\n\r\nimport checkStore from './checkStore';\r\nimport createReducer from '../reducers';\r\n\r\nexport function injectReducerFactory(store, isValid) {\r\n return function injectReducer(key, reducer) {\r\n if (!isValid) checkStore(store);\r\n\r\n invariant(\r\n isString(key) && !isEmpty(key) && isFunction(reducer),\r\n '(src/utils...) injectReducer: Expected `reducer` to be a reducer function'\r\n );\r\n\r\n // Check `store.injectedReducers[key] === reducer` for hot reloading when a key is the same but a reducer is different\r\n if (Reflect.has(store.injectedReducers, key) && store.injectedReducers[key] === reducer) return;\r\n\r\n store.injectedReducers[key] = reducer; // eslint-disable-line no-param-reassign\r\n store.replaceReducer(createReducer(store.injectedReducers));\r\n };\r\n}\r\n\r\nexport default function getInjectors(store) {\r\n checkStore(store);\r\n\r\n return {\r\n injectReducer: injectReducerFactory(store, true)\r\n };\r\n}\r\n","import React from 'react';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { ReactReduxContext } from 'react-redux';\r\n\r\nimport getInjectors from './reducerInjectors';\r\n\r\n/**\r\n * Dynamically injects a reducer\r\n *\r\n * @param {string} key A key of the reducer\r\n * @param {function} reducer A reducer that will be injected\r\n *\r\n */\r\nexport default ({ key, reducer }) => WrappedComponent => {\r\n class ReducerInjector extends React.Component {\r\n static WrappedComponent = WrappedComponent;\r\n\r\n static contextType = ReactReduxContext;\r\n\r\n static displayName = `withReducer(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;\r\n\r\n constructor(props, context) {\r\n super(props, context);\r\n\r\n getInjectors(context.store).injectReducer(key, reducer);\r\n }\r\n\r\n render() {\r\n return ;\r\n }\r\n }\r\n\r\n return hoistNonReactStatics(ReducerInjector, WrappedComponent);\r\n};\r\n\r\nconst useInjectReducer = ({ key, reducer }) => {\r\n const context = React.useContext(ReactReduxContext);\r\n React.useEffect(() => {\r\n getInjectors(context.store).injectReducer(key, reducer);\r\n }, []);\r\n};\r\n\r\nexport { useInjectReducer };\r\n","/*\r\n *\r\n * Home reducer\r\n *\r\n */\r\nimport produce from 'immer';\r\nimport { homeActionsTypes } from './constants';\r\nimport { AnyAction } from 'redux';\r\n\r\nexport const initialState = {\r\n summary: null\r\n};\r\n\r\nconst homeReducer = (state = initialState, action: AnyAction) =>\r\n produce(state, (draft: any) => {\r\n switch (action.type) {\r\n case homeActionsTypes.DEFAULT_ACTION:\r\n break;\r\n\r\n case homeActionsTypes.GET_SUMMARY_REQUEST:\r\n draft.isLoadingSummary = true;\r\n break;\r\n case homeActionsTypes.GET_SUMMARY_SUCCESS:\r\n draft.summary = action.payload.summary;\r\n draft.isLoadingSummary = false;\r\n break;\r\n case homeActionsTypes.GET_SUMMARY_FAILURE:\r\n draft.isLoadingSummary = false;\r\n draft.summaryError = action.payload.err;\r\n break;\r\n }\r\n });\r\n\r\nexport default homeReducer;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M282.082,76.511l-14.274-14.273c-1.902-1.906-4.093-2.856-6.57-2.856c-2.471,0-4.661,0.95-6.563,2.856L142.466,174.441 L30.262,62.241c-1.903-1.906-4.093-2.856-6.567-2.856c-2.475,0-4.665,0.95-6.567,2.856L2.856,76.515C0.95,78.417,0,80.607,0,83.082 c0,2.473,0.953,4.663,2.856,6.565l133.043,133.046c1.902,1.903,4.093,2.854,6.567,2.854s4.661-0.951,6.562-2.854L282.082,89.647 c1.902-1.903,2.847-4.093,2.847-6.565C284.929,80.607,283.984,78.417,282.082,76.511z\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar SvgAngleDown = function SvgAngleDown(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n width: \"284.929px\",\n height: \"284.929px\",\n viewBox: \"0 0 284.929 284.929\",\n style: {\n enableBackground: \"new 0 0 284.929 284.929\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAngleDown, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/angle-down.412f3289.svg\";\nexport { ForwardRef as ReactComponent };","/*\r\n *\r\n * App constants\r\n *\r\n */\r\nexport const appActionsTypes = {\r\n DEFAULT_ACTION: 'app/DEFAULT_ACTION',\r\n\r\n GET_PROJECTS_REQUEST: 'app/GET_PROJECTS_REQUEST',\r\n GET_PROJECTS_SUCCESS: 'app/GET_PROJECTS_SUCCESS',\r\n GET_PROJECTS_FAILURE: 'app/GET_PROJECTS_FAILURE',\r\n\r\n GET_TIME_LOGS_REQUEST: 'app/Home/GET_TIME_LOGS_REQUEST',\r\n GET_TIME_LOGS_SUCCESS: 'app/Home/GET_TIME_LOGS_SUCCESS',\r\n GET_TIME_LOGS_FAILURE: 'app/Home/GET_TIME_LOGS_FAILURE',\r\n\r\n GET_WEEK_TIME_LOGS_REQUEST: 'app/Home/GET_WEEK_TIME_LOGS_REQUEST',\r\n GET_WEEK_TIME_LOGS_SUCCESS: 'app/Home/GET_WEEK_TIME_LOGS_SUCCESS',\r\n GET_WEEK_TIME_LOGS_FAILURE: 'app/Home/GET_WEEK_TIME_LOGS_FAILURE',\r\n\r\n CREATE_WEEK_TIME_LOGS_REQUEST: 'app/Home/CREATE_WEEK_TIME_LOGS_REQUEST',\r\n CREATE_WEEK_TIME_LOGS_SUCCESS: 'app/Home/CREATE_WEEK_TIME_LOGS_SUCCESS',\r\n CREATE_WEEK_TIME_LOGS_FAILURE: 'app/Home/CREATE_WEEK_TIME_LOGS_FAILURE',\r\n\r\n DELETE_TIME_LOG_REQUEST: 'app/Home/DELETE_TIME_LOG_REQUEST',\r\n DELETE_TIME_LOG_SUCCESS: 'app/Home/DELETE_TIME_LOG_SUCCESS',\r\n DELETE_TIME_LOG_FAILURE: 'app/Home/DELETE_TIME_LOG_FAILURE',\r\n\r\n CREATE_TIME_LOG_REQUEST: 'app/Home/CREATE_TIME_LOG_REQUEST',\r\n CREATE_TIME_LOG_SUCCESS: 'app/Home/CREATE_TIME_LOG_SUCCESS',\r\n CREATE_TIME_LOG_FAILURE: 'app/Home/CREATE_TIME_LOG_FAILURE',\r\n\r\n UPDATE_TIME_LOG_REQUEST: 'app/Home/UPDATE_TIME_LOG_REQUEST',\r\n UPDATE_TIME_LOG_SUCCESS: 'app/Home/UPDATE_TIME_LOG_SUCCESS',\r\n UPDATE_TIME_LOG_FAILURE: 'app/Home/UPDATE_TIME_LOG_FAILURE',\r\n\r\n GET_TASKS_REQUEST: 'app/Home/GET_TASKS_REQUEST',\r\n GET_TASKS_SUCCESS: 'app/Home/GET_TASKS_SUCCESS',\r\n GET_TASKS_FAILURE: 'app/Home/GET_TASKS_FAILURE',\r\n\r\n CREATE_PROJECT_REQUEST: 'app/CREATE_PROJECT_REQUEST',\r\n CREATE_PROJECT_SUCCESS: 'app/CREATE_PROJECT_SUCCESS',\r\n CREATE_PROJECT_FAILURE: 'app/CREATE_PROJECT_FAILURE',\r\n\r\n GET_CUSTOMERS_REQUEST: 'app/GET_CUSTOMERS_REQUEST',\r\n GET_CUSTOMERS_SUCCESS: 'app/GET_CUSTOMERS_SUCCESS',\r\n GET_CUSTOMERS_FAILURE: 'app/GET_CUSTOMERS_FAILURE',\r\n\r\n GET_TEAMS_REQUEST: 'app/GET_TEAMS_REQUEST',\r\n GET_TEAMS_SUCCESS: 'app/GET_TEAMS_SUCCESS',\r\n GET_TEAMS_FAILURE: 'app/GET_TEAMS_FAILURE',\r\n\r\n CREATE_CUSTOMER_REQUEST: 'app/CREATE_CUSTOMER_REQUEST',\r\n CREATE_CUSTOMER_SUCCESS: 'app/CREATE_CUSTOMER_SUCCESS',\r\n CREATE_CUSTOMER_FAILURE: 'app/CREATE_CUSTOMER_FAILURE',\r\n\r\n GET_USERS_REQUEST: 'app/GET_USERS_REQUEST',\r\n GET_USERS_SUCCESS: 'app/GET_USERS_SUCCESS',\r\n GET_USERS_FAILURE: 'app/GET_USERS_FAILURE',\r\n\r\n GET_USERPROFILE_REQUEST: 'app/GET_USERPROFILE_REQUEST',\r\n GET_USERPROFILE_SUCCESS: 'app/GET_USERPROFILE_SUCCESS',\r\n GET_USERPROFILE_FAILURE: 'app/GET_USERPROFILE_FAILURE',\r\n\r\n UPDATE_USERPROFILE_REQUEST: 'app/UPDATE_USERPROFILE_REQUEST',\r\n UPDATE_USERPROFILE_SUCCESS: 'app/UPDATE_USERPROFILE_SUCCESS',\r\n UPDATE_USERPROFILE_FAILURE: 'app/UPDATE_USERPROFILE_FAILURE',\r\n\r\n UPLOAD_PROFILE_IMAGE_REQUEST: 'app/UPLOAD_PROFILE_IMAGE_REQUEST',\r\n UPLOAD_PROFILE_IMAGE_SUCCESS: 'app/UPLOAD_PROFILE_IMAGE_SUCCESS',\r\n UPLOAD_PROFILE_IMAGE_FAILURE: 'app/UPLOAD_PROFILE_IMAGE_FAILURE',\r\n\r\n DELETE_TEAM_REQUEST: 'app/DELETE_TEAM_REQUEST',\r\n DELETE_TEAM_SUCCESS: 'app/DELETE_TEAM_SUCCESS',\r\n DELETE_TEAM_FAILURE: 'app/DELETE_TEAM_FAILURE',\r\n\r\n DELETE_PROJECT_REQUEST: 'app/DELETE_PROJECT_REQUEST',\r\n DELETE_PROJECT_SUCCESS: 'app/DELETE_PROJECT_SUCCESS',\r\n DELETE_PROJECT_FAILURE: 'app/DELETE_PROJECT_FAILURE',\r\n\r\n UPDATE_PROJECT_REQUEST: 'app/UPDATE_PROJECT_REQUEST',\r\n UPDATE_PROJECT_SUCCESS: 'app/UPDATE_PROJECT_SUCCESS',\r\n UPDATE_PROJECT_FAILURE: 'app/UPDATE_PROJECT_FAILURE',\r\n};\r\n","// Styled components for StyledInput\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\nimport { Input } from 'reactstrap';\r\n\r\nexport const StyledStyledInputWrapper = styled(Input)`\r\n padding: 0.7rem 1.5rem;\r\n height: calc(1.5em + 1.5rem + 2px);\r\n font-size: 1rem;\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n border-radius: 8px;\r\n border-color: ${(props) => props.theme.background.secondary};\r\n border-style: solid;\r\n border-width: 2px;\r\n display: flex;\r\n align-items: center;\r\n\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-family: ${(props) => props.theme.typography.light};\r\n &:focus {\r\n outline: none;\r\n }\r\n &:hover{\r\n box-shadow: 0 0 6px #5aba9e52;\r\n border-color: #5aba9e1c;\r\n }\r\n &::-webkit-input-placeholder {\r\n /* Edge */\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-family: ${(props) => props.theme.typography.light};\r\n font-size: 0.9rem;\r\n }\r\n &:-ms-input-placeholder {\r\n /* Internet Explorer 10-11 */\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-family: ${(props) => props.theme.typography.light};\r\n font-size: 0.9rem;\r\n }\r\n &::placeholder {\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-family: ${(props) => props.theme.typography.light};\r\n font-size: 0.9rem;\r\n opacity: 0.7;\r\n }\r\n &:focus {\r\n outline: none;\r\n box-shadow: 0 0 6px ${(props) => props.theme.color.primary}52;\r\n border-color: ${(props) => props.theme.color.primary}1c;\r\n }\r\n`;\r\n","/**\r\n *\r\n * StyledInput\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { StyledStyledInputWrapper } from './index.styles';\r\nimport { InputProps } from 'reactstrap';\r\n\r\ninterface StyledInputPropsInterface extends InputProps {\r\n children?: JSX.Element;\r\n keyid?: string;\r\n}\r\n\r\nfunction StyledInput(props: StyledInputPropsInterface): JSX.Element {\r\n return {props.children};\r\n}\r\n\r\nexport default StyledInput;\r\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\r\nimport accountApi from '../../services/AccountService';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n _profile = null;\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && !user.expired && user.profile;\r\n }\r\n\r\n async getUserProfile() {\r\n if (this._profile && this._profile) {\r\n return this._profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const res = await accountApi.get('/user');\r\n if (res.ok) {\r\n this._profile = res.data;\r\n return this._profile;\r\n }\r\n return null;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log(\"Silent authentication error: \", silentError);\r\n\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\r\n this.updateState(popUpUser);\r\n return this.success(state);\r\n } catch (popUpError) {\r\n if (popUpError.message === \"Popup window closed\") {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error(\"The user closed the window.\");\r\n } else if (!this._popUpDisabled) {\r\n console.log(\"Popup authentication error: \", popUpError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log(\"Redirect authentication error: \", redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log(\"Popup signout error: \", popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log(\"Redirect signout error: \", redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n }\r\n\r\n this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let settings = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/CeraPro-Light.deec3c75.ttf\";","module.exports = __webpack_public_path__ + \"static/media/CeraPro-Medium.bafc951d.ttf\";","// Styled components for StyledCheckbox\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledStyledCheckboxWrapper = styled.div`\r\n position: relative;\r\n\r\n .checkmark:after {\r\n left: 5px;\r\n top: 1px;\r\n width: 5px;\r\n height: 10px;\r\n border: solid white;\r\n border-width: 0 2px 2px 0;\r\n -webkit-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n input:checked ~ .checkmark:after {\r\n display: block;\r\n }\r\n input {\r\n position: absolute;\r\n opacity: 0;\r\n cursor: pointer;\r\n height: 0;\r\n width: 0;\r\n }\r\n\r\n .checkmark {\r\n position: absolute;\r\n top: 3px;\r\n left: 0;\r\n height: 18px;\r\n width: 18px;\r\n background-color: ${(props) => props.theme.background.primary};\r\n border: 2px solid ${(props) => props.theme.color.light};\r\n border-radius: 4px;\r\n transition: background-color 0.2s;\r\n }\r\n\r\n &:hover input ~ .checkmark {\r\n background-color: ${(props) => props.theme.color.primary};\r\n border-color: ${(props) => props.theme.color.primary};\r\n cursor: pointer;\r\n }\r\n\r\n & input:checked ~ .checkmark {\r\n background-color: ${(props) => props.theme.color.primary};\r\n border-color: ${(props) => props.theme.color.primary};\r\n }\r\n\r\n .checkmark:after {\r\n content: '';\r\n position: absolute;\r\n display: none;\r\n }\r\n .label {\r\n margin-left: 28px;\r\n font-size: 0.9rem;\r\n }\r\n .hide-checkbox {\r\n .checkmark {\r\n width: 0;\r\n height: 0;\r\n border: none;\r\n opacity: 0;\r\n }\r\n .label {\r\n margin-left: 0;\r\n }\r\n }\r\n`;\r\n\r\nexport default StyledStyledCheckboxWrapper;\r\n","/**\r\n *\r\n * StyledCheckbox\r\n *\r\n */\r\n\r\nimport React, { useState } from 'react';\r\nimport StyledStyledCheckboxWrapper from './index.styles';\r\nimport StyledLabel from '../StyledLabel';\r\nimport { Input } from 'reactstrap';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface StyledCheckboxPropsInterface {\r\n children?: JSX.Element;\r\n checked?: boolean;\r\n disabled?: boolean;\r\n onChange?: any;\r\n label?: string;\r\n id?: string;\r\n name?: string;\r\n className?: string;\r\n value?: any;\r\n hideCheckbox?: boolean;\r\n}\r\n\r\nfunction StyledCheckbox(props: StyledCheckboxPropsInterface): JSX.Element {\r\n const {\r\n checked,\r\n disabled,\r\n onChange,\r\n label,\r\n id,\r\n name,\r\n className,\r\n value,\r\n hideCheckbox,\r\n ...inputProps\r\n } = props;\r\n\r\n return (\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\r\nexport default StyledCheckbox;\r\n","// Styled components for StyledEmailInput\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledStyledEmailInputWrapper = styled.div``;\r\n","/**\r\n *\r\n * StyledEmailInput\r\n *\r\n */\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { InputProps, FormFeedback } from 'reactstrap';\r\n\r\nimport { StyledStyledEmailInputWrapper } from './index.styles';\r\nimport StyledInput from '../StyledInput';\r\n\r\ninterface StyledEmailInputPropsInterface extends InputProps {\r\n children?: JSX.Element;\r\n}\r\n\r\nfunction StyledEmailInput(props: StyledEmailInputPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n const { email, setEmail, invalidEmail, setInvalidEmail, ...inputProps } = props;\r\n\r\n const handleEmailChange = (emailString: string) => {\r\n setEmail(emailString);\r\n isValidEmail(emailString) ? setInvalidEmail(false) : setInvalidEmail(true);\r\n };\r\n\r\n const isValidEmail = (emailString: string) => {\r\n const emailRegex: RegExp = /[\\w\\d\\.-]+@[\\w\\d\\.-]+\\.[\\w\\d\\.-]+/;\r\n return emailRegex.test(emailString);\r\n };\r\n\r\n return (\r\n \r\n handleEmailChange(e.target.value)}\r\n invalid={invalidEmail}\r\n {...inputProps}\r\n />\r\n {t('invalidEmail')}\r\n \r\n );\r\n}\r\n\r\nexport default StyledEmailInput;\r\n","// Styled components for ProjectModal\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledProjectModalWrapper = styled.div`\r\n.create-project{\r\n width:100%;\r\n}\r\n\r\n.create-customer{\r\n height: 50px;\r\n}\r\n\r\n.form-check, .form-check label, .form-check input {\r\n cursor: pointer;\r\n}\r\n`;\r\n","/**\r\n *\r\n * ProjectModal\r\n *\r\n */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Form, FormGroup, Input, Row, Col, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\n\r\nimport CustomerModal from '../CustomerModal';\r\nimport { Project, Customer, Team } from '../../Models/Models';\r\nimport StyledModal from '../StyledModal';\r\nimport StyledLabel from '../StyledLabel';\r\nimport { StyledProjectModalWrapper } from './index.styles';\r\nimport StyledInput from '../StyledInput';\r\nimport PrimaryButton from '../PrimaryButton';\r\nimport colorPalette from '../../utils/colorPalette';\r\nimport { CirclePicker } from 'react-color';\r\n\r\nimport api from '../../services/ApiService';\r\n\r\ninterface ProjectModalPropsInterface {\r\n setModal: (bol: boolean) => void;\r\n modal: boolean;\r\n teams: Team[];\r\n customers: Customer[];\r\n getTeamsAction: () => void;\r\n createProjectAction?: (project: Project) => void;\r\n createCustomerAction: (customer: Customer) => void;\r\n projectId?: string;\r\n mode?: string;\r\n updateProjectAction?: (project: Project) => void;\r\n}\r\n\r\nfunction ProjectModal({\r\n setModal,\r\n modal,\r\n teams,\r\n customers,\r\n getTeamsAction,\r\n createProjectAction,\r\n createCustomerAction,\r\n mode,\r\n projectId,\r\n updateProjectAction,\r\n}: ProjectModalPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n\r\n const newEmptyProject = () => {\r\n return {\r\n name: '',\r\n description: '',\r\n isPrivate: true,\r\n hours: 0,\r\n price: 0,\r\n defaultHourlyCost: 0,\r\n defaultHourlyRate: 0,\r\n billableByDefault: true,\r\n customerId: '',\r\n color: '0',\r\n descriptionRequiredForTimeEntry: false,\r\n requiredHoursApproval: 0,\r\n } as Project;\r\n };\r\n\r\n const [project, setProject] = useState(newEmptyProject());\r\n const [customerModal, setCustomerModal] = React.useState(false);\r\n const [dropdownOpen, setDropdownOpen] = React.useState(false);\r\n\r\n useEffect(() => {\r\n getProject(projectId);\r\n }, [projectId]);\r\n\r\n const getProject = async (projectId: any) => {\r\n if (projectId) {\r\n const projectUrl = `/projects/${projectId}`;\r\n const res = await api.get(projectUrl);\r\n\r\n if (res.ok) {\r\n setProject(res.data as Project);\r\n }\r\n }\r\n };\r\n\r\n const toggleCustomerModal = () => {\r\n setDropdownOpen((prevState) => !prevState);\r\n };\r\n\r\n const handleCustomerModal = () => {\r\n toggleCustomerModal();\r\n getTeamsAction();\r\n setCustomerModal(!customerModal);\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent) => {\r\n const target = event.target;\r\n const name = target.name;\r\n const value =\r\n target.type === 'checkbox'\r\n ? target.checked\r\n : target.type === 'number'\r\n ? target.value && parseFloat(target.value)\r\n : target.value;\r\n\r\n const np = { ...project, ...{ [name]: value } };\r\n setProject(np);\r\n };\r\n\r\n const handleCustomerChange = (customerId: string) => {\r\n const p = { ...project, ...{ ['customerId']: customerId } };\r\n setProject(p);\r\n };\r\n\r\n const handlePrivacyChange = (value: string) => {\r\n const isPrivate = value === 'Private' ? true : false;\r\n const p = { ...project, ...{ ['isPrivate']: isPrivate } };\r\n setProject(p);\r\n };\r\n\r\n const handleApprovalChange = (event: React.ChangeEvent) => {\r\n const option = event.target.name;\r\n const checked = event.target.checked;\r\n let currentApproval = project.requiredHoursApproval;\r\n\r\n switch (option) {\r\n case 'daily':\r\n currentApproval = checked ? currentApproval + 1 : currentApproval - 1;\r\n break;\r\n case 'weekly':\r\n currentApproval = checked ? currentApproval + 2 : currentApproval - 2;\r\n break;\r\n case 'monthly':\r\n currentApproval = checked ? currentApproval + 4 : currentApproval - 4;\r\n break;\r\n }\r\n\r\n const p = { ...project, ...{ ['requiredHoursApproval']: currentApproval } };\r\n setProject(p);\r\n };\r\n\r\n const handleSetColor = (color: any) => {\r\n const selectedColor = colorPalette.indexOf(color.hex);\r\n const p = { ...project, ...{ ['color']: `${selectedColor}` } };\r\n setProject(p);\r\n };\r\n\r\n const hasDailyApproval = () => {\r\n return (\r\n project.requiredHoursApproval === 1 ||\r\n project.requiredHoursApproval === 3 ||\r\n project.requiredHoursApproval === 5 ||\r\n project.requiredHoursApproval === 7\r\n );\r\n };\r\n\r\n const hasWeeklyApproval = () => {\r\n return (\r\n project.requiredHoursApproval === 2 ||\r\n project.requiredHoursApproval === 3 ||\r\n project.requiredHoursApproval === 6 ||\r\n project.requiredHoursApproval === 7\r\n );\r\n };\r\n\r\n const hasMonthlyApproval = () => {\r\n return (\r\n project.requiredHoursApproval === 4 ||\r\n project.requiredHoursApproval === 5 ||\r\n project.requiredHoursApproval === 6 ||\r\n project.requiredHoursApproval === 7\r\n );\r\n };\r\n\r\n const toggle = () => {\r\n setModal(!modal);\r\n };\r\n\r\n const renderSubmitButton = () => {\r\n let submitFunction;\r\n if (mode === 'edit') {\r\n submitFunction = () => updateProject();\r\n } else {\r\n submitFunction = () => saveProject();\r\n }\r\n\r\n return (\r\n \r\n {mode === 'edit' ? t('saveChanges') : t('projectModal.create')}\r\n \r\n );\r\n };\r\n\r\n const saveProject = () => {\r\n if (createProjectAction) {\r\n createProjectAction(project);\r\n toggle();\r\n }\r\n };\r\n\r\n const updateProject = () => {\r\n if (updateProjectAction) {\r\n updateProjectAction(project);\r\n toggle();\r\n }\r\n };\r\n\r\n const getFilteredCustomers = () => {\r\n if (mode !== 'edit') {\r\n return customers;\r\n }\r\n\r\n return customers.filter((c) => {\r\n return c.teamId === project.teamId;\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {mode === 'edit' ? t('projectModal.editTitle') : t('projectModal.title')}\r\n \r\n \r\n {project && (\r\n
\r\n \r\n {t('projectModal.name')}\r\n handleInputChange(e)}\r\n value={project.name}\r\n />\r\n \r\n \r\n {t('description')}\r\n handleInputChange(e)}\r\n value={project.description}\r\n />\r\n \r\n \r\n {t('customer')}\r\n \r\n \r\n handleCustomerChange(e.target.value)}\r\n value={project.customerId.toLowerCase()}\r\n >\r\n <>\r\n \r\n {customers &&\r\n getFilteredCustomers().map((customer) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n handleCustomerModal()}\r\n >\r\n {t('new')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('projectModal.access')}\r\n \r\n \r\n <>\r\n handlePrivacyChange(e.target.value)}\r\n />\r\n {t('projectModal.privateAccess')}\r\n
\r\n handlePrivacyChange(e.target.value)}\r\n />\r\n {t('projectModal.publicAccess')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {t('projectModal.color')}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {t('projectModal.fixedHour')}\r\n handleInputChange(e)}\r\n value={project.hours}\r\n />\r\n \r\n \r\n \r\n \r\n {t('projectModal.fixedPrice')}\r\n handleInputChange(e)}\r\n value={project.price}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('projectModal.hourlyRate')}\r\n \r\n handleInputChange(e)}\r\n value={project.defaultHourlyRate}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {t('projectModal.hourlyCost')}\r\n \r\n handleInputChange(e)}\r\n value={project.defaultHourlyCost}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n <>\r\n handleInputChange(e)}\r\n checked={project.billableByDefault}\r\n />\r\n {t('projectModal.billableByDefault')}\r\n \r\n \r\n \r\n
\r\n {t('projectModal.requiredHoursApproval')}\r\n \r\n \r\n \r\n handleApprovalChange(e)}\r\n />\r\n \r\n {t('daily')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n <>\r\n handleApprovalChange(e)}\r\n />\r\n {t('weekly')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n <>\r\n handleApprovalChange(e)}\r\n />\r\n {t('monthly')}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n <>\r\n handleInputChange(e)}\r\n checked={project.descriptionRequiredForTimeEntry as boolean}\r\n />\r\n {t('projectModal.descriptionRequired')}\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n {renderSubmitButton()}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ProjectModal;\r\n","module.exports = __webpack_public_path__ + \"static/media/CeraPro-LightItalic.0e6127b0.ttf\";","module.exports = __webpack_public_path__ + \"static/media/CeraPro-Italic.8c390dfd.ttf\";","module.exports = __webpack_public_path__ + \"static/media/CeraPro-Regular.f582d3a2.ttf\";","module.exports = __webpack_public_path__ + \"static/media/CeraPro-Bold.5390828f.ttf\";","module.exports = __webpack_public_path__ + \"static/media/CeraPro-BoldItalic.1eac650b.ttf\";","import { create } from 'apisauce';\r\nimport authService from '../components/api-authorization/AuthorizeService';\r\n\r\nconst baseUrl = process.env.NODE_ENV === 'production' ? `${process.env.PUBLIC_URL}/api` : `https://localhost:5001/api`;\r\n\r\nconst api = create({\r\n baseURL: baseUrl,\r\n // credentials: 'include',\r\n headers: {\r\n Accept: 'application/json'\r\n }\r\n});\r\n\r\napi.axiosInstance.defaults.withCredentials = true;\r\n\r\napi.addAsyncRequestTransform(request => async () => {\r\n const token = await authService.getAccessToken();\r\n if (token) {\r\n request.headers['Authorization'] = `Bearer ${token}`;\r\n }\r\n})\r\n\r\nexport default {\r\n ...api,\r\n};\r\n","// Styled components for PrimaryButton\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\nimport { Button } from 'reactstrap';\r\n\r\nexport const StyledPrimaryButtonWrapper = styled(Button)`\r\n background-color: ${(props) => props.theme.color.primary};\r\n border-color: ${(props) => props.theme.color.primary};\r\n border-radius: 10px;\r\n padding: 10px;\r\n font-size: 1rem;\r\n\r\n &:not(:disabled):not(.disabled):active,\r\n &:not(:disabled):not(.disabled):hover,\r\n &:not(:disabled):not(.disabled):focus {\r\n background-color: ${(props) => props.theme.color.active};\r\n border-color: ${(props) => props.theme.color.active};\r\n }\r\n\r\n`;\r\n","/**\r\n *\r\n * PrimaryButton\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { StyledPrimaryButtonWrapper } from './index.styles';\r\nimport { ButtonProps, Spinner } from 'reactstrap';\r\n\r\ninterface PrimaryButtonPropsInterface extends ButtonProps {\r\n children?: any;\r\n isLoading?: boolean;\r\n}\r\n\r\nfunction PrimaryButton(props: PrimaryButtonPropsInterface): JSX.Element {\r\n let { isLoading, ...buttonProps } = props;\r\n\r\n return (\r\n \r\n {!props.isLoading ?\r\n props.children :\r\n \r\n }\r\n );\r\n}\r\n\r\nexport default PrimaryButton;\r\n","// Styled components for StyledModal\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\nimport { Modal } from 'reactstrap';\r\n\r\nexport const StyledStyledModalWrapper = styled(Modal)`\r\n .modal-content{\r\n border-radius: 10px;\r\n }\r\n\r\n .modal-header{\r\n padding: 1rem 2.5rem;\r\n padding-bottom: 0;\r\n border: none;\r\n\r\n .modal-title{\r\n text-align: center;\r\n font-weight: bold;\r\n font-size: 18px;\r\n color: ${props => props.theme.color.primaryFont};\r\n display:block;\r\n width: 100%;\r\n padding-top: .9rem;\r\n }\r\n\r\n .close{\r\n position: absolute;\r\n right: 2rem !important;\r\n top: 1rem;\r\n color: ${props => props.theme.color.light};\r\n }\r\n }\r\n\r\n .modal-footer{\r\n border: none;\r\n padding: 1rem 2.5rem;\r\n }\r\n \r\n .modal-body{\r\n padding: 1.5rem 2.5rem;\r\n }\r\n`;\r\n","/**\r\n *\r\n * StyledModal\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport {StyledStyledModalWrapper} from './index.styles';\r\n\r\ninterface StyledModalPropsInterface {\r\n children?: JSX.Element;\r\n isOpen?: boolean;\r\n toggle?: React.KeyboardEventHandler | React.MouseEventHandler;\r\n}\r\n\r\nfunction StyledModal({ children, isOpen, toggle }: StyledModalPropsInterface): JSX.Element {\r\n return {children};\r\n}\r\n\r\nexport default StyledModal;\r\n","module.exports = __webpack_public_path__ + \"static/media/not-found.4a52fdf5.gif\";","module.exports = __webpack_public_path__ + \"static/media/login.be2ed30c.png\";","import { create } from 'apisauce';\r\nimport authService from '../components/api-authorization/AuthorizeService';\r\n\r\nconst baseUrl = process.env.NODE_ENV === 'production' ? `${process.env.PUBLIC_URL}/Account` : `https://localhost:5001/Account`;\r\n\r\nconst api = create({\r\n baseURL: baseUrl,\r\n // credentials: 'include',\r\n headers: {\r\n Accept: 'application/json'\r\n }\r\n});\r\n\r\napi.axiosInstance.defaults.withCredentials = true;\r\n\r\napi.addAsyncRequestTransform(request => async () => {\r\n const token = await authService.getAccessToken();\r\n if (token) {\r\n request.headers['Authorization'] = `Bearer ${token}`;\r\n }\r\n})\r\n\r\nexport default {\r\n ...api,\r\n};\r\n","import { put, takeLatest, call } from 'redux-saga/effects';\r\nimport { AnyAction } from 'redux';\r\nimport { appActionsTypes } from './constants';\r\nimport api from '../../services/ApiService';\r\nimport accountApi from '../../services/AccountService';\r\n\r\nimport {\r\n getProjectsSuccessAction,\r\n getProjectsFailureAction,\r\n getTimeLogsSuccessAction,\r\n getTimeLogsFailureAction,\r\n getWeekTimeLogsSuccessAction,\r\n getWeekTimeLogsFailureAction,\r\n deleteTimeLogSuccessAction,\r\n deleteTimeLogFailureAction,\r\n createTimeLogSuccessAction,\r\n createTimeLogFailureAction,\r\n createWeekTimeLogsSuccessAction,\r\n createWeekTimeLogsFailureAction,\r\n getTasksSuccessAction,\r\n getTasksFailureAction,\r\n createProjectSuccessAction,\r\n createProjectFailureAction,\r\n getCustomersSuccessAction,\r\n getCustomersFailureAction,\r\n getTeamsSuccessAction,\r\n getTeamsFailureAction,\r\n createCustomerSuccessAction,\r\n createCustomerFailureAction,\r\n getUsersSuccessAction,\r\n getUsersFailureAction,\r\n updateTimeLogSuccessAction,\r\n updateTimeLogFailureAction,\r\n getUserProfileSuccessAction,\r\n getUserProfileFailureAction,\r\n updateUserProfileSuccessAction,\r\n updateUserProfileFailureAction,\r\n uploadProfileImageSuccessAction,\r\n uploadProfileImageFailureAction,\r\n deleteTeamSuccessAction,\r\n deleteTeamFailureAction,\r\n deleteProjectSuccessAction,\r\n deleteProjectFailureAction,\r\n updateProjectSuccessAction,\r\n updateProjectFailureAction,\r\n} from './actions';\r\n\r\nexport function* getProjectsSaga() {\r\n try {\r\n const projectsUrl = `/Projects`;\r\n const projectsResponse = yield call([api, 'get'], projectsUrl);\r\n yield put(getProjectsSuccessAction(projectsResponse.data));\r\n } catch (err) {\r\n yield put(getProjectsFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* getTimeLogsSaga() {\r\n try {\r\n const timeLogsUrl = `/times/days`;\r\n const timelogResponse = yield call([api, 'get'], timeLogsUrl);\r\n yield put(getTimeLogsSuccessAction(timelogResponse.data));\r\n } catch (err) {\r\n yield put(getTimeLogsFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* getWeekTimeLogsSaga(action: AnyAction) {\r\n try {\r\n const timeLogsUrl = `/times/list?from=${action.payload.start}&to=${action.payload.end}`;\r\n const timelogResponse = yield call([api, 'get'], timeLogsUrl);\r\n yield put(getWeekTimeLogsSuccessAction(timelogResponse.data));\r\n } catch (err) {\r\n yield put(getWeekTimeLogsFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* deleteTimeLogSaga(action: AnyAction) {\r\n try {\r\n const deleteTimeLogUrl = `Times/${action.payload.id}`;\r\n const timelogResponse = yield call([api, 'delete'], deleteTimeLogUrl);\r\n yield put(deleteTimeLogSuccessAction(action.payload.id));\r\n } catch (err) {\r\n yield put(deleteTimeLogFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* createTimeLogSaga(action: AnyAction) {\r\n try {\r\n const timeLogsUrl = `/times`;\r\n const timelogResponse = yield call([api, 'post'], timeLogsUrl, action.payload.newTime);\r\n let res = timelogResponse.data;\r\n res.date = res.date.replace('Z', '');\r\n res.startTime = res.startTime.replace('Z', '');\r\n res.endTime = res.endTime.replace('Z', '');\r\n yield put(createTimeLogSuccessAction(res));\r\n } catch (err) {\r\n yield put(createTimeLogFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* createWeekTimeLogSaga(action: AnyAction) {\r\n try {\r\n const url = `/times/day`;\r\n yield call([api, 'post'], url, action.payload.item);\r\n yield put(createWeekTimeLogsSuccessAction());\r\n } catch (err) {\r\n yield put(createWeekTimeLogsFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* updateTimeLogSaga(action: AnyAction) {\r\n try {\r\n const timeLogsUrl = `/times/${action.payload.updatedTime.id}`;\r\n const timelogResponse = yield call([api, 'put'], timeLogsUrl, action.payload.updatedTime);\r\n let res = timelogResponse.data;\r\n res.date = res.date.replace('Z', '');\r\n res.startTime = res.startTime.replace('Z', '');\r\n res.endTime = res.endTime.replace('Z', '');\r\n yield put(updateTimeLogSuccessAction(timelogResponse.data));\r\n } catch (err) {\r\n yield put(updateTimeLogFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* getTasksSaga(action: AnyAction) {\r\n try {\r\n const getTasksUrl = `/Projects/${action.payload.projectId}/Tasks`;\r\n const tasksResponse = yield call([api, 'get'], getTasksUrl);\r\n yield put(getTasksSuccessAction(tasksResponse.data));\r\n } catch (err) {\r\n yield put(getTasksFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* createProjectSaga(action: AnyAction) {\r\n try {\r\n const projectsUrl = `/Projects`;\r\n const projectResponse = yield call([api, 'post'], projectsUrl, action.payload.project);\r\n yield put(createProjectSuccessAction(projectResponse.data));\r\n } catch (err) {\r\n yield put(createProjectFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* getCustomersSaga() {\r\n try {\r\n const customersUrl = `/Customers`;\r\n const customersResponse = yield call([api, 'get'], customersUrl);\r\n yield put(getCustomersSuccessAction(customersResponse.data));\r\n } catch (err) {\r\n yield put(getCustomersFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* getTeamsSaga() {\r\n try {\r\n const teamsUrl = `/Teams`;\r\n const teamsResponse = yield call([api, 'get'], teamsUrl);\r\n if (teamsResponse.ok) yield put(getTeamsSuccessAction(teamsResponse.data));\r\n else yield put(getTeamsFailureAction(teamsResponse.data));\r\n } catch (err) {\r\n yield put(getTeamsFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* createCustomerSaga(action: AnyAction) {\r\n try {\r\n const customersUrl = `/Customers`;\r\n const customerResponse = yield call([api, 'post'], customersUrl, action.payload.customer);\r\n if (customerResponse.ok) yield put(createCustomerSuccessAction(customerResponse.data));\r\n else yield put(createCustomerFailureAction(customerResponse.data));\r\n } catch (err) {\r\n yield put(createCustomerFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* getUsersSaga() {\r\n try {\r\n const usersUrl = `/Teams/Users`;\r\n const usersResponse = yield call([api, 'get'], usersUrl);\r\n yield put(getUsersSuccessAction(usersResponse.data));\r\n } catch (err) {\r\n yield put(getUsersFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* getUserProfileSaga() {\r\n try {\r\n const userUrl = `/User`;\r\n const userResponse = yield call([accountApi, 'get'], userUrl);\r\n yield put(getUserProfileSuccessAction(userResponse.data));\r\n } catch (err) {\r\n yield put(getUserProfileFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* updateUserProfileSaga(action: AnyAction) {\r\n try {\r\n const userUrl = `/User`;\r\n action.payload.user.firstDayOfWeek = parseInt(action.payload.user.firstDayOfWeek) || 0;\r\n const userResponse = yield call([accountApi, 'put'], userUrl, action.payload.user);\r\n yield put(updateUserProfileSuccessAction(userResponse.data));\r\n } catch (err) {\r\n yield put(updateUserProfileFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* uploadProfileImageSaga(action: AnyAction) {\r\n try {\r\n const profileImageUrl = `/profileImage`;\r\n const { file } = action.payload;\r\n const formData = new FormData();\r\n formData.append('file', file, file.name);\r\n\r\n const profileImageResponse = yield call([accountApi, 'put'], profileImageUrl, formData);\r\n yield put(uploadProfileImageSuccessAction(profileImageResponse.data));\r\n } catch (err) {\r\n yield put(uploadProfileImageFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* deleteTeamSaga(action: AnyAction) {\r\n try {\r\n const deleteTeamUrl = `Teams/${action.payload.teamId}`;\r\n const teamResponse = yield call([api, 'delete'], deleteTeamUrl);\r\n yield put(deleteTeamSuccessAction(action.payload.teamId));\r\n } catch (err) {\r\n yield put(deleteTeamFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* deleteProjectSaga(action: AnyAction) {\r\n try {\r\n const deleteProjectUrl = `Projects/${action.payload.projectId}`;\r\n const projectResponse = yield call([api, 'delete'], deleteProjectUrl);\r\n yield put(deleteProjectSuccessAction(action.payload.projectId));\r\n } catch (err) {\r\n yield put(deleteProjectFailureAction(err));\r\n }\r\n}\r\n\r\nexport function* updateProjectSaga(action: AnyAction) {\r\n try {\r\n const projectUrl = `/projects`;\r\n const projectResponse = yield call([api, 'put'], projectUrl, action.payload.project);\r\n yield put(updateProjectSuccessAction(projectResponse.data));\r\n } catch (err) {\r\n yield put(updateProjectFailureAction(err));\r\n }\r\n}\r\n\r\nexport default function* appRootSaga() {\r\n yield takeLatest(appActionsTypes.GET_PROJECTS_REQUEST, getProjectsSaga);\r\n yield takeLatest(appActionsTypes.GET_TIME_LOGS_REQUEST, getTimeLogsSaga);\r\n yield takeLatest(appActionsTypes.GET_WEEK_TIME_LOGS_REQUEST, getWeekTimeLogsSaga);\r\n yield takeLatest(appActionsTypes.DELETE_TIME_LOG_REQUEST, deleteTimeLogSaga);\r\n yield takeLatest(appActionsTypes.CREATE_TIME_LOG_REQUEST, createTimeLogSaga);\r\n yield takeLatest(appActionsTypes.CREATE_WEEK_TIME_LOGS_REQUEST, createWeekTimeLogSaga);\r\n yield takeLatest(appActionsTypes.UPDATE_TIME_LOG_REQUEST, updateTimeLogSaga);\r\n yield takeLatest(appActionsTypes.GET_TASKS_REQUEST, getTasksSaga);\r\n yield takeLatest(appActionsTypes.CREATE_PROJECT_REQUEST, createProjectSaga);\r\n yield takeLatest(appActionsTypes.GET_CUSTOMERS_REQUEST, getCustomersSaga);\r\n yield takeLatest(appActionsTypes.GET_TEAMS_REQUEST, getTeamsSaga);\r\n yield takeLatest(appActionsTypes.CREATE_CUSTOMER_REQUEST, createCustomerSaga);\r\n yield takeLatest(appActionsTypes.GET_USERS_REQUEST, getUsersSaga);\r\n yield takeLatest(appActionsTypes.GET_USERPROFILE_REQUEST, getUserProfileSaga);\r\n yield takeLatest(appActionsTypes.UPDATE_USERPROFILE_REQUEST, updateUserProfileSaga);\r\n yield takeLatest(appActionsTypes.UPLOAD_PROFILE_IMAGE_REQUEST, uploadProfileImageSaga);\r\n yield takeLatest(appActionsTypes.DELETE_TEAM_REQUEST, deleteTeamSaga);\r\n yield takeLatest(appActionsTypes.DELETE_PROJECT_REQUEST, deleteProjectSaga);\r\n yield takeLatest(appActionsTypes.UPDATE_PROJECT_REQUEST, updateProjectSaga);\r\n}\r\n","// Styled components for UserProfile\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nconst CustomProfileImg = styled.div`\r\n background-size: cover;\r\n background-position: center center;\r\n background-repeat: no-repeat;\r\n background-image: url(${(props) => props.profileImage});\r\n background-color: ${(props) => props.theme.background.secondary};\r\n position: absolute;\r\n z-index: 1;\r\n align-self: center;\r\n margin: 4px;\r\n width: 31px;\r\n height: 31px;\r\n border-radius: 31px;\r\n top: 0;\r\n`;\r\n\r\nexport default CustomProfileImg;\r\n","import React, { Component, Fragment } from 'react';\r\nimport { NavItem, Dropdown, DropdownToggle, DropdownMenu, NavLink } from 'reactstrap';\r\nimport authService from './AuthorizeService';\r\nimport { ApplicationPaths } from './ApiAuthorizationConstants';\r\nimport { ReactComponent as ProfileImage } from '../../assets/images/profile-image.svg';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faSignOutAlt } from '@fortawesome/free-solid-svg-icons';\r\nimport { faUserCog } from '@fortawesome/free-solid-svg-icons';\r\nimport { NavLink as RRNavLink } from 'react-router-dom';\r\nimport CustomProfileImg from './LoginMenu.styles';\r\n\r\nclass LoginMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isAuthenticated: false,\r\n userName: null,\r\n dropdownOpen: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.populateState());\r\n this.populateState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n async populateState() {\r\n const [isAuthenticated, user] = await Promise.all([\r\n authService.isAuthenticated(),\r\n authService.getUser(),\r\n ]);\r\n\r\n this.setState({\r\n isAuthenticated,\r\n });\r\n }\r\n setDropdownOpen = () => {\r\n const newState = !this.state.dropdownOpen;\r\n this.setState({\r\n dropdownOpen: newState,\r\n });\r\n };\r\n\r\n render() {\r\n const profilePath = `${ApplicationPaths.Profile}`;\r\n const logoutPath = { pathname: `${ApplicationPaths.LogOut}`, state: { local: true } };\r\n\r\n const { profile } = this.props;\r\n const { dropdownOpen } = this.state;\r\n\r\n let name = profile && profile.name;\r\n if (name) {\r\n name = name.split(' ')[0];\r\n }\r\n\r\n name = name || this.props.t('stranger');\r\n\r\n return this.authenticatedView(\r\n name,\r\n profilePath,\r\n logoutPath,\r\n profile && profile.profileImage,\r\n dropdownOpen,\r\n );\r\n }\r\n\r\n authenticatedView(userName, profilePath, logoutPath, profileImage, dropdownOpen) {\r\n const { t } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('hello')} {userName}\r\n \r\n \r\n \r\n \r\n \r\n {profileImage ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n {t('profileSettings')}\r\n \r\n \r\n \r\n {t('logout')}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(LoginMenu);\r\n","// Styled components for Header\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledHeaderWrapper = styled.header`\r\n padding: 0.5rem 0;\r\n\r\n .home-icon {\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n margin-right: 10px;\r\n font-size: 0.9rem;\r\n transition: color 0.2s;\r\n &:hover {\r\n color: ${(props) => props.theme.color.primary};\r\n }\r\n }\r\n\r\n .date-time {\r\n font-size: 1rem;\r\n margin: 0;\r\n font-weight: bold;\r\n color: ${(props) => props.theme.color.primaryFont};\r\n }\r\n\r\n a.navbar-brand {\r\n white-space: normal;\r\n text-align: center;\r\n word-break: break-all;\r\n }\r\n .profile-item {\r\n width: 40px;\r\n height: 40px;\r\n margin-left: 10px;\r\n }\r\n .user-name {\r\n z-index: 1;\r\n }\r\n .profile-img {\r\n position: absolute;\r\n z-index: 1;\r\n align-self: center;\r\n margin: 4px;\r\n width: 31px;\r\n height: 31px;\r\n border-radius: 31px;\r\n top: 0;\r\n }\r\n .profile-circle {\r\n width: 39px;\r\n height: 39px;\r\n border: 1px solid;\r\n border-radius: 50%;\r\n border-color: ${(props) => props.theme.color.primary};\r\n -webkit-animation: rotate 1s 2 linear;\r\n animation: rotate 1s 2 linear;\r\n position: absolute;\r\n top: 0;\r\n }\r\n .profile-circle::after {\r\n content: '';\r\n display: block;\r\n width: 30px;\r\n height: 30px;\r\n background: ${(props) => props.theme.background.primary};\r\n border-radius: 50%;\r\n margin: -35% 0 0 34%;\r\n }\r\n .menu-item-wrapper {\r\n flex: 1;\r\n }\r\n .dropdown.show .dropdown-arrow-wrapper .arrow {\r\n transform: rotate(180deg);\r\n }\r\n .dropdown-arrow-wrapper {\r\n background-color: transparent;\r\n border: none;\r\n padding: 0;\r\n &:focus,\r\n &:not(:disabled):not(.disabled):active,\r\n &:not(:disabled):not(.disabled).active {\r\n box-shadow: none;\r\n background-color: transparent;\r\n }\r\n .arrow {\r\n transition: transform 0.2s;\r\n margin-left: 10px;\r\n }\r\n\r\n .arrow {\r\n fill: ${(props) => props.theme.color.primary};\r\n }\r\n }\r\n .dropdown.show .dropdown-wrapper {\r\n transform: translate3d(5%, 45px, 0px) !important;\r\n }\r\n .dropdown-wrapper,\r\n .dropdown-profile-wrapper {\r\n background: ${(props) => props.theme.background.default};\r\n border-radius: 10px;\r\n border: ${(props) => `1px solid ${props.theme.background.secondary}`};\r\n -webkit-box-shadow: 0px 0px 10px 4px #6bb2aa1c;\r\n -moz-box-shadow: 0px 0px 10px 4px #6bb2aa1c;\r\n box-shadow: 0px 0px 10px 4px #6bb2aa1c;\r\n }\r\n .menu-item {\r\n background-color: ${(props) => props.theme.background.secondary};\r\n padding: 10px 20px;\r\n width: 150px;\r\n height: 90px;\r\n justify-content: center;\r\n margin: 5px;\r\n border-radius: 10px;\r\n transition: background-color 0.2s;\r\n\r\n span {\r\n color: ${(props) => props.theme.color.primaryFont};\r\n font-size: 0.9rem;\r\n margin-top: 7px;\r\n }\r\n\r\n &:hover,\r\n &.active {\r\n background-color: ${(props) => props.theme.color.primary};\r\n text-decoration: none;\r\n span {\r\n color: #fff;\r\n }\r\n .menu-icon {\r\n fill: #fff;\r\n }\r\n }\r\n }\r\n .inline-menu-item {\r\n padding: 8px 0;\r\n span {\r\n color: ${(props) => props.theme.color.primaryFont};\r\n font-size: 0.9rem;\r\n transition: color 0.2s;\r\n }\r\n .image {\r\n width: 30px;\r\n margin-right: 8px;\r\n text-align: center;\r\n }\r\n &:hover,\r\n &.active {\r\n text-decoration: none;\r\n span {\r\n color: ${(props) => props.theme.color.primary};\r\n }\r\n .inline-menu-icon {\r\n fill: ${(props) => props.theme.color.primary};\r\n }\r\n }\r\n }\r\n .menu-icon {\r\n fill: ${(props) => props.theme.color.secondaryFont};\r\n }\r\n .inline-menu-icon {\r\n fill: ${(props) => props.theme.color.secondaryFont};\r\n }\r\n\r\n button {\r\n background: none;\r\n border: none;\r\n // width: 100%;\r\n }\r\n\r\n .profile-link {\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-size: 1rem;\r\n width: max-content;\r\n &:hover,\r\n &.active {\r\n color: ${(props) => props.theme.color.primary};\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n @media (max-width: 768px) {\r\n .dropdown.show .dropdown-wrapper {\r\n transform: translate3d(0%, 45px, 0px) !important;\r\n }\r\n }\r\n .profile-dropdown .dropdown-profile-wrapper {\r\n transform: translate3d(-76%, 45px, 0px) !important;\r\n }\r\n\r\n .box-shadow {\r\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.05);\r\n }\r\n`;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_4158\",\n className: \"mobile-clock\",\n \"data-name\": \"Group 4158\",\n transform: \"translate(-1358.964 -790.974)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_401\",\n \"data-name\": \"Path 401\",\n d: \"M1375.457,790.977c8.912-.143,16.729,7.244,16.538,16.252.19,9.007-7.626,16.394-16.538,16.251a16.253,16.253,0,1,1,0-32.5Zm.047,4.623c-6.529,0-11.295,4.956-11.295,11.581,0,6.72,4.766,11.676,11.295,11.676,6.434,0,11.3-4.956,11.3-11.676A11.209,11.209,0,0,0,1375.5,795.6Z\",\n transform: \"translate(0 0)\",\n fill: \"#414c5a\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_4158-2\",\n \"data-name\": \"Group 4158\",\n transform: \"translate(1372.906 802.533)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_277\",\n className: \"hours\",\n \"data-name\": \"Rectangle 277\",\n width: 2.355,\n height: 6.702,\n rx: 1.177,\n transform: \"translate(0)\",\n fill: \"#5aba9e\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_278\",\n className: \"minutes\",\n \"data-name\": \"Rectangle 278\",\n width: 2.355,\n height: 6.702,\n rx: 1.177,\n transform: \"translate(6.702 4.347) rotate(90)\",\n fill: \"#5aba9e\"\n})));\n\nvar SvgLogoMobile = function SvgLogoMobile(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 33.035,\n height: 32.507,\n viewBox: \"0 0 33.035 32.507\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogoMobile, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logo-mobile.503716ec.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \"\\r\\n .cls-1{stroke-width:.5px}\\r\\n \"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_3753\",\n \"data-name\": \"Group 3753\",\n transform: \"translate(-3001.988 -291.75)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"current\",\n fill: \"current\",\n id: \"Path_256\",\n d: \"M3060.263 292h2.7a2.025 2.025 0 0 1 2.025 2.025v22.95a2.025 2.025 0 0 1-2.025 2.025h-2.7a2.025 2.025 0 0 1-2.025-2.025v-22.95a2.025 2.025 0 0 1 2.025-2.025zm0 1.35a.675.675 0 0 0-.676.675v22.95a.675.675 0 0 0 .676.675h2.7a.675.675 0 0 0 .675-.675v-22.95a.675.675 0 0 0-.675-.675z\",\n className: \"cls-1\",\n \"data-name\": \"Path 256\",\n transform: \"translate(-37.1)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"current\",\n fill: \"current\",\n id: \"Path_257\",\n d: \"M3004.263 340h2.7a2.025 2.025 0 0 1 2.025 2.025v6.75a2.025 2.025 0 0 1-2.025 2.025h-2.7a2.025 2.025 0 0 1-2.025-2.025v-6.75a2.025 2.025 0 0 1 2.025-2.025zm0 1.35a.675.675 0 0 0-.675.675v6.75a.675.675 0 0 0 .675.675h2.7a.675.675 0 0 0 .675-.675v-6.75a.675.675 0 0 0-.675-.675z\",\n className: \"cls-1\",\n \"data-name\": \"Path 257\",\n transform: \"translate(0 -31.8)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"current\",\n fill: \"current\",\n id: \"Path_258\",\n d: \"M3032.263 324h2.7a2.025 2.025 0 0 1 2.025 2.025v12.15a2.025 2.025 0 0 1-2.025 2.025h-2.7a2.025 2.025 0 0 1-2.025-2.025v-12.15a2.025 2.025 0 0 1 2.025-2.025zm0 1.35a.675.675 0 0 0-.675.675v12.15a.675.675 0 0 0 .675.675h2.7a.675.675 0 0 0 .675-.675v-12.15a.675.675 0 0 0-.675-.675z\",\n className: \"cls-1\",\n \"data-name\": \"Path 258\",\n transform: \"translate(-18.55 -21.2)\"\n}));\n\nvar SvgReports = function SvgReports(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26.15,\n height: 27.5,\n viewBox: \"0 0 26.15 27.5\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgReports, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/reports.49b5e01d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \"\\r\\n .cls-1{stroke-width:.8px}\\r\\n \"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_3839\",\n \"data-name\": \"Group 3839\",\n transform: \"translate(-672.6 -194.6)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_3838\",\n \"data-name\": \"Group 3838\",\n transform: \"translate(673 195)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"current\",\n fill: \"current\",\n id: \"Path_268\",\n d: \"M391.783 371.891v-7.079a2.722 2.722 0 0 0-2.723-2.723h-15.248a2.722 2.722 0 0 0-2.723 2.723v7.079zm0 1.089h-20.694v7.079a2.722 2.722 0 0 0 2.723 2.723h15.248a2.722 2.722 0 0 0 2.723-2.723v-7.079zM373.812 361h15.248a3.812 3.812 0 0 1 3.812 3.812v15.248a3.812 3.812 0 0 1-3.812 3.812h-15.248A3.812 3.812 0 0 1 370 380.06v-15.248a3.812 3.812 0 0 1 3.812-3.812z\",\n className: \"cls-1\",\n \"data-name\": \"Path 268\",\n transform: \"translate(-370 -361)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"current\",\n fill: \"current\",\n id: \"Path_269\",\n d: \"M384.713 365.545a.545.545 0 0 1 1.089 0 2.722 2.722 0 0 1-2.723 2.723h-4.357a2.722 2.722 0 0 1-2.722-2.723.545.545 0 0 1 1.089 0 1.634 1.634 0 0 0 1.634 1.634h4.357a1.634 1.634 0 0 0 1.634-1.634zm0 10.891a.545.545 0 0 1 1.089 0 2.722 2.722 0 0 1-2.723 2.723h-4.357a2.722 2.722 0 0 1-2.722-2.723.545.545 0 0 1 1.089 0 1.634 1.634 0 0 0 1.634 1.634h4.357a1.634 1.634 0 0 0 1.634-1.634z\",\n className: \"cls-1\",\n \"data-name\": \"Path 269\",\n transform: \"translate(-369.465 -360.643)\"\n})));\n\nvar SvgProjects = function SvgProjects(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 23.672,\n height: 23.672,\n viewBox: \"0 0 23.672 23.672\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgProjects, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/projects.c9e598af.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \"\\r\\n .cls-2{stroke-width:.3px}\\r\\n \"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_3841\",\n \"data-name\": \"Group 3841\",\n transform: \"translate(-43.818 -265.85)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"current\",\n id: \"Path_271\",\n fill: \"current\",\n d: \"M63.09 285.183a1.01 1.01 0 0 1-2.019 0 5.048 5.048 0 0 0-10.1 0 1.01 1.01 0 0 1-2.019 0 7.068 7.068 0 0 1 14.135 0zm-7.067-9.083a5.048 5.048 0 1 1 5.048-5.048 5.048 5.048 0 0 1-5.048 5.048zm0-2.019a3.029 3.029 0 1 0-3.029-3.029 3.029 3.029 0 0 0 3.029 3.029z\",\n \"data-name\": \"Path 271\",\n transform: \"translate(5.083)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"current\",\n fill: \"current\",\n id: \"Path_272\",\n d: \"M54.038 279.667a.719.719 0 0 1-1.438 0 3.6 3.6 0 1 0-7.193 0 .72.72 0 0 1-1.44 0 5.035 5.035 0 1 1 10.07 0zM49 273.193a3.6 3.6 0 1 1 3.6-3.6 3.6 3.6 0 0 1-3.6 3.6zm0-1.438a2.159 2.159 0 1 0-2.159-2.159A2.158 2.158 0 0 0 49 271.755z\",\n className: \"cls-2\",\n \"data-name\": \"Path 272\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"current\",\n fill: \"current\",\n id: \"Path_273\",\n d: \"M66.025 279.667a.719.719 0 0 1-1.438 0 3.6 3.6 0 1 0-7.193 0 .72.72 0 0 1-1.44 0 5.035 5.035 0 1 1 10.07 0zm-5.034-6.474a3.6 3.6 0 1 1 3.6-3.6 3.6 3.6 0 0 1-3.6 3.6zm0-1.438a2.159 2.159 0 1 0-2.159-2.159 2.158 2.158 0 0 0 2.159 2.159z\",\n className: \"cls-2\",\n \"data-name\": \"Path 273\",\n transform: \"translate(12.219)\"\n}));\n\nvar SvgTeam = function SvgTeam(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 34.576,\n height: 20.343,\n viewBox: \"0 0 34.576 20.343\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTeam, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/team.dc50858c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_274\",\n fill: \"current\",\n stroke: \"current\",\n strokeWidth: \"0.5px\",\n d: \"M180.5 311.81h-5.667a2.024 2.024 0 0 0-2.024 2.024v11.333a2.024 2.024 0 0 0 2.024 2.024h8.1a2.024 2.024 0 0 0 2.024-2.024v-8.1a.4.4 0 0 0-.4-.4h-2.429a1.215 1.215 0 0 1-1.214-1.214v-3.238a.4.4 0 0 0-.4-.4zm1.214.713v2.93a.4.4 0 0 0 .4.4h2.374l-2.778-3.334zm-3.238 8.192v-2.025a.4.4 0 1 1 .81 0v2.024h2.024a.4.4 0 1 1 0 .81h-2.024v2.024a.4.4 0 0 1-.81 0v-2.024h-2.024a.4.4 0 1 1 0-.81zM174.833 311h6.1a1.214 1.214 0 0 1 .933.437l3.617 4.341a1.211 1.211 0 0 1 .282.777v8.612a2.833 2.833 0 0 1-2.836 2.833h-8.1a2.833 2.833 0 0 1-2.829-2.833v-11.334a2.833 2.833 0 0 1 2.833-2.833z\",\n \"data-name\": \"Path 274\",\n transform: \"translate(-171.75 -310.75)\"\n});\n\nvar SvgNewProject = function SvgNewProject(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14.262,\n height: 17.5,\n viewBox: \"0 0 14.262 17.5\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNewProject, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/new-project.c77fce20.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5,16L11.5,16c0-1.5-0.6-2.9-1.6-3.9c-1.1-1.1-2.5-1.6-3.9-1.6c0,0,0,0,0,0C4.4,10.4,3,11,2,12.1 c-1.1,1.1-1.6,2.5-1.6,3.9c0,0.3,0.2,0.5,0.5,0.5s0.5-0.2,0.5-0.5c0-2.5,2-4.5,4.5-4.5c0,0,0,0,0,0c2.5,0,4.5,2,4.5,4.5 c0,0.3,0.2,0.5,0.5,0.5S11.5,16.3,11.5,16z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.9,0.3C3.8,0.3,2,2.1,2,4.2s1.7,3.9,3.9,3.9c2.1,0,3.9-1.7,3.9-3.9C9.8,2.1,8,0.3,5.9,0.3z M5.9,7.1 C5.9,7.1,5.9,7.1,5.9,7.1c-0.8,0-1.5-0.3-2-0.8C3.3,5.7,3,5,3,4.2c0-1.6,1.3-2.9,2.9-2.9c1.6,0,2.9,1.3,2.9,2.9S7.5,7.1,5.9,7.1z\"\n});\n\nvar SvgNewClient = function SvgNewClient(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 11.8 16.9\",\n style: {\n enableBackground: \"new 0 0 11.8 16.9\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNewClient, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/new-client.fb89e39c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M11.5,16L11.5,16c0-1.5-0.6-2.9-1.6-3.9c-1.1-1.1-2.5-1.6-3.9-1.6c0,0,0,0,0,0C4.4,10.4,3,11,2,12.1 c-1.1,1.1-1.6,2.5-1.6,3.9c0,0.3,0.2,0.5,0.5,0.5s0.5-0.2,0.5-0.5c0-2.5,2-4.5,4.5-4.5c0,0,0,0,0,0c2.5,0,4.5,2,4.5,4.5 c0,0.3,0.2,0.5,0.5,0.5S11.5,16.3,11.5,16z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M5.9,0.3C3.8,0.3,2,2.1,2,4.2s1.7,3.9,3.9,3.9c2.1,0,3.9-1.7,3.9-3.9C9.8,2.1,8,0.3,5.9,0.3z M5.9,7.1 C5.9,7.1,5.9,7.1,5.9,7.1c-0.8,0-1.5-0.3-2-0.8C3.3,5.7,3,5,3,4.2c0-1.6,1.3-2.9,2.9-2.9c1.6,0,2.9,1.3,2.9,2.9S7.5,7.1,5.9,7.1z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M12.4,8V6c0-0.2,0.2-0.4,0.4-0.4s0.4,0.2,0.4,0.4v2h2c0.2,0,0.4,0.2,0.4,0.4s-0.2,0.4-0.4,0.4h-2v2c0,0.2-0.2,0.4-0.4,0.4 s-0.4-0.2-0.4-0.4v-2h-2c-0.2,0-0.4-0.2-0.4-0.4S10.2,8,10.4,8L12.4,8z\"\n});\n\nvar SvgInviteMember = function SvgInviteMember(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 15.9 16.9\",\n style: {\n enableBackground: \"new 0 0 15.9 16.9\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgInviteMember, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/invite-member.59496d45.svg\";\nexport { ForwardRef as ReactComponent };","// Styled components for NdlInviteModal\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledInviteModalWrapper = styled.div`\r\n \r\n .send-invitations{\r\n width: 100%;\r\n }\r\n\r\n .charge-warning{\r\n color: ${props => props.theme.color.warning} !important;\r\n text-align: center;\r\n }\r\n\r\n .badge-info{\r\n background: ${props => props.theme.background.secondary};\r\n border: 1px solid ${props => props.theme.background.secondary};\r\n width: 100%;\r\n color: ${props => props.theme.color.primaryFont};\r\n display: block;\r\n text-align: left;\r\n font-size: 1rem;\r\n padding: 1rem 1.5rem;\r\n margin-bottom: 1rem;\r\n \r\n .button{\r\n background: none;\r\n border: none;\r\n display: block;\r\n float: right;\r\n color: ${props => props.theme.color.primaryFont};\r\n font-weight: bold;\r\n font-size:16px;\r\n }\r\n }\r\n`;\r\n","/**\r\n *\r\n * InviteModal\r\n *\r\n */\r\nimport React, { useState } from 'react'\r\nimport {\r\n Form,\r\n FormGroup,\r\n ModalHeader,\r\n ModalBody,\r\n Alert,\r\n Badge,\r\n Col,\r\n FormFeedback,\r\n FormText,\r\n} from 'reactstrap'\r\nimport { StyledInviteModalWrapper } from './index.styles'\r\nimport authService from '../api-authorization/AuthorizeService'\r\nimport { Team } from '../../Models/Models'\r\nimport { useTranslation } from 'react-i18next'\r\nimport PrimaryButton from '../PrimaryButton';\r\nimport StyledModal from '../StyledModal';\r\nimport StyledLabel from '../StyledLabel';\r\nimport StyledInput from '../StyledInput';\r\n\r\n\r\ninterface InviteModalPropsInterface {\r\n handleInviteModal: () => void\r\n setModal: (bol: boolean) => void\r\n setInvites: (str: string[]) => void\r\n setEmailsQuery: (str: string) => void\r\n setInvalidEmail: (bol: boolean) => void\r\n modal: boolean\r\n invites: string[]\r\n emailsQuery: string\r\n invalidEmail: boolean\r\n teams: Array\r\n}\r\n\r\nfunction InviteModal({\r\n setModal,\r\n setInvites,\r\n setEmailsQuery,\r\n setInvalidEmail,\r\n teams,\r\n modal,\r\n invites,\r\n emailsQuery,\r\n invalidEmail,\r\n}: InviteModalPropsInterface): JSX.Element {\r\n const [modalTitle, setModalTitle] = useState('Invite members')\r\n const [selectedTeam, setSelectedTeam] = useState('')\r\n const [sending, setSending] = useState(false);\r\n\r\n const emailRegex: RegExp = /[\\w\\d\\.-]+@[\\w\\d\\.-]+\\.[\\w\\d\\.-]+/\r\n\r\n const onInputChange = (event: React.ChangeEvent) => {\r\n setEmailsQuery(event.target.value)\r\n setInvalidEmail(false)\r\n }\r\n\r\n const onInputKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.key === 'Tab' || event.key === ',') {\r\n event.preventDefault()\r\n const email = emailsQuery.trim()\r\n\r\n if (isValid(email)) {\r\n if (!invites.includes(email)) {\r\n setInvites([email].concat(invites))\r\n }\r\n setEmailsQuery('')\r\n } else {\r\n setInvalidEmail(true)\r\n }\r\n }\r\n }\r\n\r\n const onInputPaste = (event: React.ClipboardEvent) => {\r\n event.preventDefault()\r\n const paste = event.clipboardData.getData('text')\r\n const emails = paste.match(RegExp(emailRegex, 'g'))\r\n\r\n if (emails) {\r\n const filteredEmails = emails.filter((email) => !invites.includes(email))\r\n setInvites(filteredEmails.concat(invites))\r\n }\r\n }\r\n\r\n const isValid = (email: string) => {\r\n return emailRegex.test(email)\r\n }\r\n\r\n const removeInvite = (email: string) => {\r\n setInvites(invites.filter((invite) => invite !== email))\r\n }\r\n\r\n const sendInvites = async () => {\r\n try {\r\n setSending(true);\r\n const token = await authService.getAccessToken()\r\n\r\n const payload = {\r\n teamId: selectedTeam,\r\n emails: invites,\r\n }\r\n\r\n const response = await fetch(`${process.env.PUBLIC_URL}/Account/Invite`, {\r\n headers: !token\r\n ? {}\r\n : { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n })\r\n\r\n if (response.ok) {\r\n setModal(false)\r\n setInvites([])\r\n setEmailsQuery('')\r\n } else {\r\n console.log(await response.text())\r\n setSending(false);\r\n }\r\n } catch (e) {\r\n console.log(`Error when sending invites: ${e.message}`)\r\n setSending(false);\r\n }\r\n }\r\n\r\n const toggle = () => {\r\n setModal(!modal)\r\n setInvites([])\r\n setEmailsQuery('')\r\n setInvalidEmail(false)\r\n }\r\n\r\n const renderTeams = () => {\r\n if (teams.length === 0) {\r\n return {t('inviteModal.teamAccessAlert')}\r\n }\r\n\r\n if (selectedTeam === '' && teams.length > 0) {\r\n setSelectedTeam(teams[0].id);\r\n }\r\n\r\n return (\r\n \r\n \r\n {t('inviteModal.selectTeam')}\r\n \r\n \r\n setSelectedTeam(e.target.value)} disabled={sending}>\r\n <>\r\n {teams && teams.map((team) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const renderInvites = () => {\r\n return (\r\n \r\n {invites.map((i) => (\r\n \r\n \r\n {i} \r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n }\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n {modalTitle}\r\n \r\n
\r\n {renderTeams()}\r\n {teams.length !== 0 && (\r\n \r\n {t('inviteModal.addEmails')}\r\n \r\n onInputChange(e)}\r\n onPaste={(e) => onInputPaste(e)}\r\n onKeyDown={onInputKeyDown}\r\n invalid={invalidEmail}\r\n disabled={sending}\r\n />\r\n {t('invalidEmail')}\r\n \r\n {t('inviteModal.charge')}\r\n \r\n \r\n \r\n )}\r\n {renderInvites()}\r\n \r\n {t('inviteModal.sendInvite')}{invites.length > 1 ? `s (${invites.length})` : ''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default InviteModal\r\n","// Styled components for CreateTeamModal\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledCreateTeamModalWrapper = styled.div`\r\n.charge-warning{\r\n color: ${props => props.theme.color.warning} !important;\r\n text-align: center;\r\n}\r\n\r\n.create-team{\r\n width: 100%;\r\n}\r\n`;\r\n","/**\r\n *\r\n * CreateTeamModal\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { StyledCreateTeamModalWrapper } from './index.styles';\r\nimport { Form, FormGroup, ModalHeader, ModalBody, Col, FormFeedback, FormText } from 'reactstrap';\r\nimport api from '../../services/ApiService';\r\nimport StyledModal from '../StyledModal';\r\nimport StyledInput from '../StyledInput';\r\nimport PrimaryButton from '../PrimaryButton';\r\n\r\ninterface CreateTeamModalPropsInterface {\r\n modal: boolean;\r\n setModal: (bol: boolean) => void;\r\n getTeamsAction: () => void;\r\n}\r\n\r\nfunction CreateTeamModal({\r\n modal,\r\n setModal,\r\n getTeamsAction,\r\n}: CreateTeamModalPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n const [newTeam, setNewTeam] = React.useState('');\r\n const [invalidTeamName, setInvalidTeamName] = React.useState(false);\r\n const [saving, setSaving] = React.useState(false);\r\n\r\n const toggle = () => {\r\n setModal(!modal);\r\n };\r\n\r\n const createTeam = async () => {\r\n try {\r\n setSaving(true);\r\n const teamsUrl = `/teams`;\r\n const res = await api.post(teamsUrl, { name: newTeam });\r\n if (res.ok) {\r\n setModal(false);\r\n setSaving(false);\r\n setNewTeam('');\r\n // force App/teams store update\r\n getTeamsAction();\r\n } else {\r\n //TODO show error\r\n setSaving(true);\r\n }\r\n } catch (err) {\r\n //TODO show error\r\n console.error(err);\r\n setSaving(true);\r\n }\r\n };\r\n\r\n const onInputChange = (event: React.ChangeEvent) => {\r\n setNewTeam(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n \r\n {t('createTeamModal.title')}\r\n \r\n
\r\n \r\n \r\n onInputChange(e)}\r\n invalid={invalidTeamName}\r\n disabled={saving}\r\n />\r\n {t('createTeamModal.invalidName')}\r\n {t('createTeamModal.charge')}\r\n \r\n \r\n \r\n {t('createTeamModal.buttonText')}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CreateTeamModal;\r\n","// Styled components for UserAccessModal\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledUserAccessModalWrapper = styled.div`\r\n .user-access-btn{\r\n width: 100%;\r\n }\r\n\r\n .form-check, .form-check label, .form-check input {\r\n cursor: pointer;\r\n }\r\n`;\r\n","import Select from 'react-select';\r\n// Styled components for UserSelect\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledUserSelectWrapper = styled(Select)`\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n align-items: center;\r\n font-family: ${(props) => props.theme.typography.light};\r\n\r\n .select__menu {\r\n border: 1px solid ${(props) => props.theme.background.secondary};\r\n box-shadow: 0px 0px 10px 4px #6bb2aa1c;\r\n .select__menu-list {\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n\r\n .select__option {\r\n &.select__option--is-focused {\r\n background-color: ${(props) => props.theme.background.secondary};\r\n .text-container {\r\n }\r\n }\r\n &.select__option--is-selected {\r\n background-color: ${(props) => props.theme.background.secondary};\r\n .text-container {\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .select__control {\r\n padding: 0.3rem 0 0.3rem 1.5rem;\r\n height: calc(1.5em + 1.5rem + 2px);\r\n border-radius: 8px;\r\n border-color: ${(props) => props.theme.background.secondary};\r\n border-style: solid;\r\n border-width: 2px;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:hover,\r\n &.select__control--is-focused {\r\n box-shadow: 0 0 6px #5aba9e52;\r\n border-color: #5aba9e1c;\r\n }\r\n\r\n &::-webkit-input-placeholder {\r\n /* Edge */\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-family: ${(props) => props.theme.typography.light};\r\n font-size: 0.9rem;\r\n }\r\n &:-ms-input-placeholder {\r\n /* Internet Explorer 10-11 */\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-family: ${(props) => props.theme.typography.light};\r\n font-size: 0.9rem;\r\n }\r\n &::placeholder {\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-family: ${(props) => props.theme.typography.light};\r\n font-size: 0.9rem;\r\n opacity: 0.7;\r\n }\r\n &:focus {\r\n outline: none;\r\n box-shadow: 0 0 6px ${(props) => props.theme.color.primary}52;\r\n border-color: ${(props) => props.theme.color.primary}1c;\r\n }\r\n\r\n .select__value-container {\r\n margin: 0;\r\n margin-top: 2px;\r\n padding: 0;\r\n }\r\n }\r\n\r\n .profile-img {\r\n vertical-align: middle;\r\n margin: 4px 0;\r\n float: left;\r\n width: 31px;\r\n height: 31px;\r\n border-radius: 31px;\r\n margin-right: 10px;\r\n }\r\n\r\n .text-container {\r\n padding-bottom: 4px;\r\n padding-top: 2px;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n display: block;\r\n height: 40px;\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n }\r\n\r\n .name {\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n word-wrap: normal;\r\n margin-bottom: 0;\r\n line-height: 1rem;\r\n overflow: hidden;\r\n font-family: ${(props) => props.theme.typography.medium};\r\n &.only-name {\r\n line-height: 2rem;\r\n }\r\n }\r\n\r\n .email {\r\n font-size: 12px;\r\n }\r\n`;\r\n","/**\r\n *\r\n * UserSelect\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { User } from '../../Models/Models';\r\nimport { components } from 'react-select';\r\nimport { StyledUserSelectWrapper } from './index.styles';\r\nimport { ReactComponent as ProfileImage } from '../../assets/images/profile-image.svg';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface UserSelectPropsInterface {\r\n users: Array;\r\n disabled: boolean;\r\n onChange?: (user: User) => void;\r\n id?: string;\r\n value: string;\r\n}\r\n\r\nfunction UserSelect({ users, disabled, onChange, id, value }: UserSelectPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n\r\n const Option = (props: any) => {\r\n return (\r\n \r\n {props.data.profileImage ?\r\n Profile :\r\n \r\n }\r\n
\r\n
{props.data.name || props.data.email}
\r\n {(props.data.name && props.data.email) &&
{props.data.email}
}\r\n
\r\n
\r\n );\r\n };\r\n\r\n const SingleValue = (props: any) => {\r\n return (\r\n \r\n {props.data.profileImage ?\r\n Profile :\r\n \r\n }\r\n
\r\n
{props.data.name || props.data.email}
\r\n {(props.data.name && props.data.email) &&
{props.data.email}
}\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n { return { ...x, value: x.userId, label: `${x.userId} ${x.name} ${x.email}` } })}\r\n className=\"basic-single\"\r\n classNamePrefix=\"select\"\r\n defaultValue={value}\r\n isDisabled={disabled}\r\n isClearable={false}\r\n components={{ Option, SingleValue }}\r\n isSearchable={true}\r\n onChange={onChange}\r\n placeholder={t('emptySelectUser')}\r\n id={id}\r\n />);\r\n}\r\n\r\nexport default UserSelect;\r\n","/**\r\n *\r\n * UserAccessModal\r\n *\r\n */\r\nimport React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { merge } from 'lodash';\r\n\r\nimport { ModalHeader, ModalBody, Form, FormGroup, Row, Col, Input, Alert } from 'reactstrap';\r\n\r\nimport StyledLabel from '../StyledLabel';\r\nimport StyledInput from '../StyledInput';\r\nimport StyledModal from '../StyledModal';\r\nimport PrimaryButton from '../PrimaryButton';\r\nimport { StyledUserAccessModalWrapper } from './index.styles';\r\nimport UserSelect from '../UserSelect';\r\n\r\nimport { User, UserAccess, Project } from '../../Models/Models';\r\nimport api from '../../services/ApiService';\r\n\r\ninterface UserAccessModalPropsInterface {\r\n setModal: (bol: boolean) => void;\r\n modal: boolean;\r\n users: Array;\r\n}\r\n\r\nfunction UserAccessModal({ setModal, modal, users }: UserAccessModalPropsInterface): JSX.Element {\r\n\r\n const blankProjectConf = () => {\r\n return {\r\n cost: 0,\r\n rate: 0,\r\n role: 'Member',\r\n active: true,\r\n showEarnings: true\r\n } as UserAccess;\r\n };\r\n\r\n const newUserAccess = () => {\r\n return merge(blankProjectConf(), { userId: '', projectId: '' }) as UserAccess;\r\n };\r\n\r\n const { t } = useTranslation();\r\n const [userProjects, setUserProjects] = useState([]);\r\n const [projectsConfiguration, setProjectsConfiguration] = useState([]);\r\n const [userAccess, setUserAccess] = useState(newUserAccess());\r\n const [error, setError] = useState('');\r\n const [saving, setSaving] = useState(false);\r\n\r\n const toggle = () => {\r\n setModal(!modal);\r\n setUserAccess(newUserAccess());\r\n setUserProjects([]);\r\n setError('');\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent) => {\r\n const target = event.target;\r\n const name = target.name;\r\n let value = target.type === 'checkbox' ?\r\n target.checked :\r\n target.type === 'number' ?\r\n target.value && parseFloat(target.value) :\r\n target.value;\r\n\r\n const ua = { ...userAccess, ...{ [name]: value } };\r\n setUserAccess(ua);\r\n };\r\n\r\n const handleUserChange = (user: User) => {\r\n const projectConf = blankProjectConf();\r\n projectConf.userId = user.userId;\r\n projectConf.projectId = '';\r\n\r\n if (user) {\r\n getUserProjects(user.userId);\r\n getProjectsConfiguration(user.userId);\r\n } else {\r\n setUserProjects([]);\r\n setProjectsConfiguration([]);\r\n }\r\n\r\n setUserAccess({ ...userAccess, ...projectConf });\r\n };\r\n\r\n const handleProjectChange = (event: React.ChangeEvent) => {\r\n const target = event.target;\r\n const projectId = target.value;\r\n const projectConf = projectsConfiguration.filter((conf) => conf.projectId === projectId);\r\n\r\n let projectAttributes = blankProjectConf();\r\n projectAttributes.projectId = projectId;\r\n\r\n if (projectConf.length) {\r\n projectAttributes.cost = projectConf[0].cost;\r\n projectAttributes.rate = projectConf[0].rate;\r\n projectAttributes.role = projectConf[0].role;\r\n projectAttributes.showEarnings = projectConf[0].showEarnings;\r\n }\r\n\r\n const ua = { ...userAccess, ...projectAttributes };\r\n setUserAccess(ua);\r\n };\r\n\r\n const getUserProjects = async (userId: string) => {\r\n const userProjectsUrl = `/Projects/Users/${userId}/available`;\r\n const response = await api.get(userProjectsUrl);\r\n\r\n if (response.ok) {\r\n setUserProjects(response.data as Project[]);\r\n } else {\r\n setError(t('userAccessModal.errors.retrieveUserProjects'));\r\n }\r\n };\r\n\r\n const getProjectsConfiguration = async (userId: string) => {\r\n const userProjectsUrl = `/Projects/Users/${userId}`;\r\n const response = await api.get(userProjectsUrl);\r\n\r\n if (response.ok) {\r\n setProjectsConfiguration(response.data as UserAccess[]);\r\n } else {\r\n setUserProjects([]);\r\n setError(t('userAccessModal.errors.retrieveUserProjectConfiguration'));\r\n }\r\n };\r\n\r\n const saveUserAccess = async () => {\r\n setSaving(true);\r\n const projectsUsersUrl = `/projects/users`;\r\n const response = userAccess.active ? await api.post(projectsUsersUrl, userAccess) : await api.delete(projectsUsersUrl, '', { data: userAccess });\r\n\r\n if (response.ok) {\r\n toggle();\r\n } else {\r\n setError(t('userAccessModal.errors.onSave'));\r\n }\r\n setSaving(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n {t('userAccessModal.title')}\r\n \r\n {error && {error}}\r\n
\r\n \r\n {t('member')}\r\n handleUserChange(e)} disabled={saving} value={userAccess.userId}>\r\n \r\n \r\n {t('project')}\r\n handleProjectChange(e)} value={userAccess.projectId} disabled={saving}>\r\n <>\r\n \r\n {userProjects && userProjects.map((project) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {t('userAccessModal.role')}\r\n handleInputChange(e)} value={userAccess.role}>\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('userAccessModal.rate')}\r\n handleInputChange(e)} value={userAccess.rate} />\r\n \r\n \r\n \r\n \r\n {t('userAccessModal.cost')}\r\n handleInputChange(e)} value={userAccess.cost} />\r\n \r\n \r\n \r\n \r\n \r\n <>\r\n handleInputChange(e)} checked={userAccess.active} />\r\n {t('userAccessModal.active')}\r\n \r\n \r\n \r\n \r\n \r\n <>\r\n handleInputChange(e)} checked={userAccess.showEarnings} />\r\n {t('userAccessModal.showEarnings')}\r\n \r\n \r\n \r\n
\r\n {t('userAccessModal.save')}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(UserAccessModal);\r\n","/**\r\n *\r\n * Header\r\n *\r\n */\r\n\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Navbar, Dropdown, DropdownToggle, DropdownMenu } from 'reactstrap';\r\nimport { Link, NavLink } from 'react-router-dom';\r\nimport LoginMenu from '../api-authorization/LoginMenu';\r\nimport { StyledHeaderWrapper } from './index.styles';\r\nimport { ReactComponent as DesktopLogo } from '../../assets/images/logo-onremote.svg';\r\nimport { ReactComponent as MobileLogo } from '../../assets/images/logo-mobile.svg';\r\nimport { ReactComponent as AngleDown } from '../../assets/icons/angle-down.svg';\r\nimport { ReactComponent as TimeTrackerIcon } from '../../assets/icons/time-tracker.svg';\r\nimport { ReactComponent as ReportsIcon } from '../../assets/icons/reports.svg';\r\nimport { ReactComponent as ProjectIcon } from '../../assets/icons/projects.svg';\r\nimport { ReactComponent as TeamIcon } from '../../assets/icons/team.svg';\r\nimport { ReactComponent as NewProjectIcon } from '../../assets/icons/new-project.svg';\r\nimport { ReactComponent as NewClientIcon } from '../../assets/icons/new-client.svg';\r\nimport { ReactComponent as InviteMemberIcon } from '../../assets/icons/invite-member.svg';\r\nimport InviteModal from '../InviteModal';\r\nimport CreateTeamModal from '../CreateTeamModal';\r\nimport CustomerModal from '../CustomerModal';\r\nimport ProjectModal from '../ProjectModal';\r\nimport UserAccessModal from '../UserAccessModal';\r\nimport moment from 'moment';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Team, Customer, Project, User, UserProfile } from '../../Models/Models';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faHome } from '@fortawesome/free-solid-svg-icons';\r\nimport { GetWidth } from '../../utils/windowWidth';\r\n\r\ninterface HeaderPropsInterface {\r\n teams: Array;\r\n getTeamsAction: () => void;\r\n createCustomerAction: (customer: Customer) => void;\r\n customers: Array;\r\n getCustomersAction: () => void;\r\n createProjectAction: (project: Project) => void;\r\n users: Array;\r\n getUsersAction: () => void;\r\n profile?: UserProfile;\r\n}\r\n\r\nconst Logo = () => {\r\n const windowWidth = GetWidth();\r\n\r\n return windowWidth < 769 ? (\r\n \r\n ) : (\r\n \r\n );\r\n};\r\n\r\nfunction Header({\r\n teams,\r\n getTeamsAction,\r\n createCustomerAction,\r\n customers,\r\n getCustomersAction,\r\n createProjectAction,\r\n users,\r\n getUsersAction,\r\n profile,\r\n}: HeaderPropsInterface): JSX.Element {\r\n const date = moment().locale('es').format('dddd, MMM Do');\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n\r\n const [modal, setModal] = useState(false);\r\n const [createTeam, setCreateTeam] = useState(false);\r\n const [invites, setInvites] = useState([]);\r\n const [emailsQuery, setEmailsQuery] = useState('');\r\n const [invalidEmail, setInvalidEmail] = useState(false);\r\n const [createCustomer, setCreateCustomer] = useState(false);\r\n const [createProject, setCreateProject] = useState(false);\r\n const [userAccess, setUserAccess] = useState(false);\r\n\r\n const { t } = useTranslation();\r\n\r\n const toggle = () => {\r\n setDropdownOpen((prevState) => !prevState);\r\n };\r\n\r\n const handleNewTeam = () => {\r\n toggle();\r\n setCreateTeam(!createTeam);\r\n };\r\n\r\n const handleNewCustomer = () => {\r\n toggle();\r\n getTeamsAction();\r\n setCreateCustomer(!createCustomer);\r\n };\r\n\r\n const handleNewProject = () => {\r\n toggle();\r\n getCustomersAction();\r\n setCreateProject(!createProject);\r\n };\r\n\r\n const handleInviteModal = () => {\r\n getTeamsAction();\r\n toggle();\r\n setModal(!modal);\r\n setInvites([]);\r\n setEmailsQuery('');\r\n setInvalidEmail(false);\r\n };\r\n\r\n const handleUserAccessModal = () => {\r\n toggle();\r\n getUsersAction();\r\n setUserAccess(!userAccess);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n

{date}

\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {t('timeTracker')}\r\n \r\n \r\n \r\n {t('reports')}\r\n \r\n
\r\n
\r\n \r\n \r\n {t('projects')}\r\n \r\n \r\n \r\n {t('teams')}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {t('newProject')}\r\n \r\n \r\n
\r\n \r\n
\r\n {t('newClient')}\r\n \r\n \r\n
\r\n \r\n
\r\n {t('newTeam')}\r\n \r\n \r\n
\r\n \r\n
\r\n {t('inviteMembers')}\r\n \r\n \r\n
\r\n \r\n
\r\n {t('userAccessModal.userAccess')}\r\n \r\n
\r\n
\r\n
\r\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 Header;\r\n","import React, { Component } from 'react'\r\nimport { Container } from 'reactstrap'\r\nimport Header from './Header'\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n {this.props.children}\r\n
\r\n );\r\n }\r\n};\r\n","import React from 'react'\r\nimport { Component } from 'react'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants'\r\nimport authService from './AuthorizeService'\r\n\r\nexport default class AuthorizeRoute extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ready: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.authenticationChanged());\r\n this.populateAuthenticationState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n render() {\r\n const { ready, authenticated } = this.state;\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURI(window.location.href)}`\r\n if (!ready) {\r\n return
;\r\n } else {\r\n const { component: Component, children, ...rest } = this.props;\r\n return {\r\n if (authenticated) {\r\n if (Component != undefined)\r\n {\r\n if (typeof(Component) == 'string')\r\n return \r\n else\r\n return Component;\r\n }\r\n else\r\n return children;\r\n } else {\r\n return \r\n }\r\n }} />\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ ready: true, authenticated });\r\n }\r\n\r\n async authenticationChanged() {\r\n this.setState({ ready: false, authenticated: false });\r\n await this.populateAuthenticationState();\r\n }\r\n}\r\n","// Styled components for LoadingPage\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledLoadingPageWrapper = styled.div`\r\n height: 100%;\r\n width: 100%;\r\n\r\n .wait{\r\n position: fixed;\r\n top: 50%;\r\n left: 50%;\r\n /* bring your own prefixes */\r\n transform: translate(-50%, -50%);\r\n text-align: center;\r\n\r\n p{\r\n margin-top: 16px;\r\n }\r\n }\r\n`;\r\n","// Styled components for AnimatedClock\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledAnimatedClockWrapper = styled.div``;\r\n\r\nexport const AnymatedClock = styled.div`\r\n width: 110px;\r\n height: 110px;\r\n border-width: 15px;\r\n border-style: solid;\r\n border-color: ${(props) => props.theme.color.primaryFont};\r\n border-radius: 50%;\r\n margin: auto;\r\n\r\n .wrapper {\r\n width: 80px;\r\n height: 80px;\r\n position: absolute;\r\n }\r\n\r\n .inner-1 {\r\n border-radius: 30px;\r\n background-color: ${(props) => props.theme.color.primary};\r\n position: absolute;\r\n top: calc(50% - (13px / 2));\r\n left: calc(50% - (13px / 2));\r\n }\r\n\r\n .inner-2 {\r\n border-radius: 10px;\r\n background-color: ${(props) => props.theme.color.primary};\r\n position: absolute;\r\n top: calc(50% - 26px);\r\n left: calc(50% - (13px / 2));\r\n }\r\n\r\n .inner-1 {\r\n width: 30px;\r\n height: 13px;\r\n }\r\n .inner-2 {\r\n width: 13px;\r\n height: 28px;\r\n }\r\n\r\n .rotate-1 {\r\n animation: rotate 2s linear infinite;\r\n }\r\n\r\n @keyframes rotate {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n`;\r\n","/**\r\n *\r\n * AnimatedClock\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { StyledAnimatedClockWrapper, AnymatedClock } from './index.styles';\r\n\r\ninterface AnimatedClockPropsInterface {\r\n children?: JSX.Element;\r\n}\r\n\r\nfunction AnimatedClock({ children }: AnimatedClockPropsInterface): JSX.Element {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AnimatedClock;\r\n","/**\r\n *\r\n * LoadingPage\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { StyledLoadingPageWrapper } from './index.styles';\r\nimport AnimatedClock from '../AnimatedClock/';\r\n\r\ninterface LoadingPagePropsInterface {\r\n message?: string;\r\n}\r\n\r\nfunction LoadingPage({ message }: LoadingPagePropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n
\r\n \r\n

{message || t('loading')}

\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default LoadingPage;\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\r\nimport LoadingPage from '../LoadingPage';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return
{message}
\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n case LoginActions.LoginCallback:\r\n return ();\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return (
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\n\r\nexport default withTranslation()(Login);","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { QueryParameterNames, LogoutActions, ApplicationPaths } from './ApiAuthorizationConstants';\r\nimport LoadingPage from '../LoadingPage';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\nclass Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.state.local) {\r\n this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.setState({ isReady: true, message: \"The logout was not initiated from within the page.\" });\r\n }\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.setState({ isReady: true, message: \"You successfully logged out!\" });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n\r\n render() {\r\n const { isReady, message } = this.state;\r\n const { t } = this.props;\r\n\r\n if (!isReady) {\r\n return
\r\n }\r\n if (!!message) {\r\n return (
{message}
);\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n case LogoutActions.LogoutCallback:\r\n return ();\r\n case LogoutActions.LogoutCallback:\r\n case LogoutActions.LoggedOut:\r\n return ();\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = { returnUrl };\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n } else {\r\n this.setState({ message: \"You successfully logged out!\" });\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ isReady: true, authenticated });\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n}\r\n\r\nexport default withTranslation()(Logout);","import React, { Component, Fragment } from 'react';\r\nimport { Route } from 'react-router';\r\nimport Login from './Login'\r\nimport Logout from './Logout'\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n\r\n render () {\r\n return(\r\n \r\n loginAction(LoginActions.Login)} />\r\n loginAction(LoginActions.LoginFailed)} />\r\n loginAction(LoginActions.LoginCallback)} />\r\n loginAction(LoginActions.Profile)} />\r\n loginAction(LoginActions.Register)} />\r\n logoutAction(LogoutActions.Logout)} />\r\n logoutAction(LogoutActions.LogoutCallback)} />\r\n logoutAction(LogoutActions.LoggedOut)} />\r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name){\r\n return ();\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ();\r\n}\r\n","import React, { lazy, Suspense } from 'react';\r\n\r\nconst loadable = (importFunc, { fallback = null } = { fallback: null }) => {\r\n const LazyComponent = lazy(importFunc);\r\n\r\n return props => (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default loadable;\r\n","/**\r\n *\r\n * Asynchronously loads the component for Projects\r\n *\r\n */\r\n\r\nimport loadable from '../../utils/loadable';\r\n\r\nexport default loadable(() => import('./index'));\r\n","/**\r\n *\r\n * Asynchronously loads the component for Teams\r\n *\r\n */\r\n\r\nimport loadable from '../../utils/loadable';\r\n\r\nexport default loadable(() => import('./index'));\r\n","/**\r\n *\r\n * Asynchronously loads the component for Home\r\n *\r\n */\r\n\r\nimport loadable from '../../utils/loadable';\r\n\r\nexport default loadable(() => import('./index'));\r\n","/**\r\n *\r\n * Asynchronously loads the component for Reports\r\n *\r\n */\r\n\r\nimport loadable from '../../utils/loadable';\r\n\r\nexport default loadable(() => import('./index'));\r\n","// Styled components for NotFound\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledNotFoundWrapper = styled.div`\r\n display: flex;\r\n background-color: #fff;\r\n margin-top: 2%;\r\n .image {\r\n h1 {\r\n font-size: 9rem;\r\n color: ${(props) => props.theme.background.secondary};\r\n font-family: ${(props) => props.theme.typography.bold};\r\n text-align: center;\r\n position: relative;\r\n top: 85px;\r\n z-index: 0;\r\n }\r\n img {\r\n z-index: 1;\r\n position: relative;\r\n }\r\n }\r\n\r\n h2 {\r\n font-size: 1.5rem;\r\n color: ${(props) => props.theme.color.primaryFont};\r\n font-family: ${(props) => props.theme.typography.medium};\r\n margin-top: 2rem;\r\n }\r\n p {\r\n font-size: 1rem;\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n }\r\n .link {\r\n color: ${(props) => props.theme.color.primary};\r\n text-decoration: underline;\r\n font-size: 1rem;\r\n margin-top: 30px;\r\n display: block;\r\n }\r\n .brand {\r\n position: relative;\r\n top: 70px;\r\n }\r\n`;\r\n","/**\r\n *\r\n * NotFound\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { StyledNotFoundWrapper } from './index.styles';\r\nimport { ReactComponent as DesktopLogo } from '../../assets/images/logo-onremote.svg';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface NotFoundPropsInterface {\r\n children?: JSX.Element;\r\n}\r\n\r\nfunction NotFound({ children }: NotFoundPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

404

\r\n \r\n
\r\n
\r\n

{t('404.subtitle')}

\r\n

{t('404.pageNotAvailable')}

\r\n \r\n {t('404.goHome')}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default NotFound;\r\n","// Styled components for LoginPage\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledLoginPageWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n .login-btn {\r\n width: 100%;\r\n margin-top: 20px;\r\n }\r\n\r\n .actions {\r\n font-size: 18px;\r\n text-align: center;\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n margin-top: 4rem;\r\n\r\n p {\r\n font-size: 1rem;\r\n }\r\n a {\r\n font-family: ${(props) => props.theme.typography.medium};\r\n transition: color 0.2s;\r\n &:hover {\r\n color: ${(props) => props.theme.color.primary} !important;\r\n }\r\n }\r\n .small {\r\n font-size: 0.9rem;\r\n font-size: 0.9rem;\r\n background: ${(props) => props.theme.background.primary};\r\n padding: 8px 15px;\r\n display: inline-block;\r\n border-radius: 7px;\r\n color: ${(props) => props.theme.color.light};\r\n }\r\n .small a {\r\n color: ${(props) => props.theme.color.light} !important;\r\n &:hover {\r\n color: ${(props) => props.theme.color.primary} !important;\r\n }\r\n }\r\n }\r\n\r\n .forgot-password {\r\n font-weight: bold;\r\n text-decoration: underline;\r\n color: ${(props) => props.theme.color.secondaryFont} !important;\r\n float: right;\r\n font-size: 0.9rem;\r\n transition: color 0.2s;\r\n &:hover {\r\n color: ${(props) => props.theme.color.primary} !important;\r\n }\r\n }\r\n .form-check {\r\n padding-left: 0;\r\n }\r\n .remember-checkbox {\r\n display: inline-block;\r\n }\r\n .btn-secondary.disabled,\r\n .btn-secondary:disabled {\r\n background-color: ${(props) => props.theme.color.secondaryFont};\r\n border-color: ${(props) => props.theme.color.secondaryFont};\r\n }\r\n @media (max-width: 768px) {\r\n margin-top: 3rem;\r\n .form-group {\r\n margin-bottom: 0.5rem;\r\n }\r\n }\r\n`;\r\n","/**\r\n *\r\n * LoginPage\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { StyledLoginPageWrapper } from './index.styles';\r\nimport StyledInput from '../StyledInput';\r\nimport PrimaryButton from '../PrimaryButton';\r\nimport { createStructuredSelector, createSelector } from 'reselect';\r\nimport { connect } from 'react-redux';\r\nimport { compose } from 'redux';\r\nimport { push } from 'connected-react-router';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useState } from 'react';\r\nimport { Form, FormGroup } from 'reactstrap';\r\nimport StyledLabel from '../StyledLabel';\r\nimport BasicLayout from '../../components/BasicLayout';\r\nimport { Link } from 'react-router-dom';\r\nimport StyledCheckbox from '../../components/StyledCheckbox';\r\n\r\ninterface LoginPagePropsInterface {\r\n routerParams?: any;\r\n push: any;\r\n}\r\n\r\nfunction LoginPage({ routerParams, push }: LoginPagePropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n const [email, setEmail] = useState('');\r\n const [password, setPassword] = useState('');\r\n const [rememberMe, setRememberMe] = useState(false);\r\n const [loginIn, setLoginIn] = useState(false);\r\n const [error, setError] = useState('');\r\n\r\n const login = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n try {\r\n setLoginIn(true);\r\n const loginUrl = `${process.env.PUBLIC_URL}/Account/login${routerParams.search}`;\r\n const response = await fetch(loginUrl, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ Email: email, Password: password, RememberMe: rememberMe }),\r\n });\r\n if (response.ok) {\r\n push(response.url.replace(window.location.origin + process.env.PUBLIC_URL, ''));\r\n } else {\r\n setError('test');\r\n setLoginIn(false);\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n setError('test');\r\n setLoginIn(false);\r\n }\r\n };\r\n\r\n const footer = () => {\r\n return (\r\n
\r\n

\r\n {t('dontHaveAccount')} {t('signup')}\r\n

\r\n

\r\n {t('haventReceiveConfirmationEmail')}{' '}\r\n {t('resend')}\r\n

\r\n
\r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n

{t('login')}

\r\n
login(e)}>\r\n \r\n {t('email')}\r\n setEmail(e.target.value)}\r\n value={email}\r\n disabled={loginIn}\r\n />\r\n \r\n \r\n {t('password')}\r\n setPassword(e.target.value)}\r\n value={password}\r\n disabled={loginIn}\r\n />\r\n \r\n\r\n \r\n setRememberMe(e.target.checked)}\r\n checked={rememberMe}\r\n disabled={loginIn}\r\n className=\"remember-checkbox\"\r\n />\r\n \r\n {t('forgotPassword')}\r\n \r\n \r\n \r\n {t('login')}\r\n \r\n \r\n\r\n {error &&

{t('invalidPassword')}

}\r\n {footer()}\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst selectGlobalState = (state: any) => state;\r\nconst makeSelectRouterParams = () =>\r\n createSelector(selectGlobalState, (appState) => appState.router.location);\r\n\r\nconst mapStateToProps = createStructuredSelector({\r\n routerParams: makeSelectRouterParams(),\r\n});\r\n\r\nconst withConnect = connect(mapStateToProps, { push });\r\n\r\nexport default compose(withConnect)(LoginPage);\r\n","/**\r\n *\r\n * Asynchronously loads the component for SignUp\r\n *\r\n */\r\n\r\nimport loadable from '../../utils/loadable';\r\n\r\nexport default loadable(() => import('./index'));\r\n","/**\r\n *\r\n * ConfirmEmail\r\n *\r\n */\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { createStructuredSelector, createSelector } from 'reselect'\r\nimport { connect } from 'react-redux';\r\nimport { compose } from 'redux';\r\nimport BasicLayout from '../BasicLayout';\r\nimport LoadingPage from '../LoadingPage';\r\n\r\ninterface ConfirmEmailPropsInterface {\r\n routerParams?: any;\r\n}\r\n\r\nfunction ConfirmEmail({ routerParams }: ConfirmEmailPropsInterface): JSX.Element {\r\n\r\n const { t, i18n } = useTranslation();\r\n const params = new URLSearchParams(decodeURIComponent(routerParams.search));\r\n const [confirmationInProgress, setConfirmationInProgress] = React.useState(true);\r\n const [error, setError] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n confirmEmail();\r\n }, []);\r\n\r\n const confirmEmail = async () => {\r\n const confirmEmailUrl = `${process.env.PUBLIC_URL}/Account/ConfirmEmail?userId=${params.get('userId')}&code=${params.get('code')}`;\r\n const response = await fetch(confirmEmailUrl);\r\n setConfirmationInProgress(false);\r\n\r\n if (!response.ok) {\r\n setError(true);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n confirmationInProgress ?\r\n :\r\n \r\n {error ?\r\n

{t('confirmEmail.failureMessage')}

:\r\n

{t('confirmEmail.successMessage')} {t('login')}

\r\n }\r\n
\r\n }\r\n \r\n );\r\n}\r\n\r\nconst selectGlobalState = (state: any) => state;\r\nconst makeSelectRouterParams = () => createSelector(selectGlobalState, appState => appState.router.location);\r\n\r\nconst mapStateToProps = createStructuredSelector({\r\n routerParams: makeSelectRouterParams()\r\n});\r\n\r\nconst withConnect = connect(mapStateToProps);\r\n\r\nexport default compose(withConnect)(ConfirmEmail);\r\n","// Styled components for SendEmailInstruction\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledSendEmailInstructionWrapper = styled.div`\r\n.btn{\r\n width: 100%;\r\n margin-top:20px;\r\n}\r\n`;\r\n","/**\r\n *\r\n * SendEmailInstruction\r\n *\r\n */\r\n\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { StyledSendEmailInstructionWrapper } from './index.styles';\r\nimport { Form, FormGroup } from 'reactstrap';\r\n\r\nimport StyledLabel from '../StyledLabel';\r\nimport StyledEmailInput from '../StyledEmailInput';\r\nimport PrimaryButton from '../PrimaryButton';\r\n\r\nimport api from '../../services/AccountService';\r\nimport BasicLayout from '../BasicLayout';\r\n\r\ninterface SendEmailInstructionPropsInterface {\r\n action: string;\r\n}\r\n\r\nfunction SendEmailInstruction({ action }: SendEmailInstructionPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n const [email, setEmail] = useState('');\r\n const [invalidEmail, setInvalidEmail] = useState(false);\r\n const [error, setError] = useState(false);\r\n\r\n const [buttonMessage, setButtonMessage] = useState('');\r\n const [submitUrl, setSubmitUrl] = useState('');\r\n const [successMessage, setSuccessMessage] = useState('');\r\n\r\n const [working, setWorking] = useState(false);\r\n const [emailSent, setEmailSent] = useState(false);\r\n\r\n useEffect(() => {\r\n configAccordingAction();\r\n }, []);\r\n\r\n const configAccordingAction = () => {\r\n switch (action) {\r\n case 'resendConfirmationEmail':\r\n setButtonMessage(t('resendEmailConfirmation.submitButton'));\r\n setSubmitUrl('/ResendConfirmationEmail?userName={:email}');\r\n setSuccessMessage(t('resendEmailConfirmation.successMessage'));\r\n break;\r\n case 'recoverPasswordEmail':\r\n setButtonMessage(t('passwordRecovery.submitButton'));\r\n setSubmitUrl('/RecoverPasswordEmail?userName={:email}');\r\n setSuccessMessage(t('passwordRecovery.sentMessage'));\r\n break;\r\n }\r\n };\r\n\r\n const sendInstructions = async () => {\r\n setWorking(true);\r\n const url = submitUrl.replace('{:email}', email);\r\n const response = await api.post(url);\r\n setWorking(false);\r\n setEmailSent(true);\r\n\r\n if (!response.ok) {\r\n setError(true);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {emailSent ? (\r\n

{error ? t('userNotFound') : successMessage}

\r\n ) : (\r\n
\r\n \r\n {t('email')}\r\n \r\n \r\n \r\n {buttonMessage}\r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default SendEmailInstruction;\r\n","// Styled components for AcceptInvitation\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledAcceptInvitationWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n a{\r\n text-align: center;\r\n margin-top: 10px;\r\n }\r\n`;\r\n","/**\r\n *\r\n * AcceptInvitation\r\n *\r\n */\r\nimport * as React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { StyledAcceptInvitationWrapper } from './index.styles';\r\nimport authService from '../api-authorization/AuthorizeService';\r\nimport BasicLayout from '../BasicLayout';\r\nimport LoadingPage from '../LoadingPage';\r\nimport { Link } from 'react-router-dom';\r\n\r\ninterface AcceptInvitationPropsInterface {\r\n}\r\n\r\nfunction AcceptInvitation({ }: AcceptInvitationPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n const [acceptInvitationInProgress, setAcceptInvitationInProgress] = React.useState(true);\r\n const [error, setError] = React.useState(false);\r\n const [errorMessage, setErrorMessage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n acceptInvitation();\r\n }, []);\r\n\r\n const acceptInvitation = async () => {\r\n const token = await authService.getAccessToken();\r\n const params = new URLSearchParams(decodeURIComponent(window.location.search));\r\n\r\n const response = await fetch(`${process.env.PUBLIC_URL}/Account/AcceptInvitation`, {\r\n headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },\r\n method: 'POST',\r\n body: JSON.stringify({ code: params.get('code') })\r\n });\r\n\r\n if (!response.ok) {\r\n let msg = t(`errorCodes.${await response.text()}`);\r\n if (msg.startsWith(\"errorCodes.\"))\r\n msg = '';\r\n setErrorMessage(msg);\r\n setError(true);\r\n }\r\n\r\n setAcceptInvitationInProgress(false);\r\n }\r\n\r\n return (\r\n <>\r\n { acceptInvitationInProgress ?\r\n :\r\n \r\n \r\n
\r\n {error ?

{errorMessage ?? t('AcceptInvitation.failureMessage')}

:

{t('AcceptInvitation.successMessage')}

}\r\n
\r\n {t('backToHome')}\r\n
\r\n
\r\n }\r\n \r\n );\r\n}\r\n\r\nexport default AcceptInvitation;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \"\\r\\n .cls-1{fill:#5aba9e}\\r\\n \"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_4163\",\n \"data-name\": \"Group 4163\",\n transform: \"translate(-1173.31 -111)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_4162\",\n \"data-name\": \"Group 4162\",\n transform: \"translate(1153.205 -155)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_270\",\n d: \"M31.9 282.014a.843.843 0 1 1-1.686 0 4.214 4.214 0 0 0-8.428 0 .843.843 0 1 1-1.686 0 5.9 5.9 0 1 1 11.8 0zm-5.9-7.586a4.214 4.214 0 1 1 4.214-4.214A4.215 4.215 0 0 1 26 274.428zm0-1.686a2.528 2.528 0 1 0-2.528-2.528A2.528 2.528 0 0 0 26 272.743z\",\n className: \"cls-1\",\n \"data-name\": \"Path 270\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_402\",\n d: \"M15.273-2.984l.569.329a.177.177 0 0 1 .088.2 3.133 3.133 0 0 1-.745 1.248.17.17 0 0 1-.2.044l-.548-.329a2.639 2.639 0 0 1-.81.46v.657a.141.141 0 0 1-.131.153 3.446 3.446 0 0 1-1.446 0 .141.141 0 0 1-.131-.153v-.657a2.639 2.639 0 0 1-.81-.46l-.569.329a.17.17 0 0 1-.2-.044 3.26 3.26 0 0 1-.723-1.248.148.148 0 0 1 .088-.2l.548-.329a2.437 2.437 0 0 1 0-.92l-.543-.328a.177.177 0 0 1-.088-.2 3.26 3.26 0 0 1 .723-1.248.17.17 0 0 1 .2-.044l.569.329a2.639 2.639 0 0 1 .81-.46v-.655a.141.141 0 0 1 .131-.153 3.446 3.446 0 0 1 1.446 0 .141.141 0 0 1 .131.153v.657a2.639 2.639 0 0 1 .81.46l.548-.329a.17.17 0 0 1 .2.044 3.133 3.133 0 0 1 .745 1.248.177.177 0 0 1-.088.2l-.569.329a2.437 2.437 0 0 1-.005.917zm-3.241.284a1.014 1.014 0 0 0 .745.307 1.014 1.014 0 0 0 .745-.307 1.014 1.014 0 0 0 .307-.745 1.014 1.014 0 0 0-.307-.745 1.014 1.014 0 0 0-.745-.307 1.014 1.014 0 0 0-.745.307 1.014 1.014 0 0 0-.307.745 1.014 1.014 0 0 0 .307.745z\",\n className: \"cls-1\",\n \"data-name\": \"Path 402\",\n transform: \"translate(1174 123)\"\n}));\n\nvar SvgProfileSettings = function SvgProfileSettings(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16.624,\n height: 16.856,\n viewBox: \"0 0 16.624 16.856\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgProfileSettings, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/profile-settings.1c942c72.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_403\",\n fill: \"#5aba9e\",\n stroke: \"#5aba9e\",\n strokeWidth: \"0.4px\",\n d: \"M10.551-7a1.949 1.949 0 0 1-1.426.6A1.949 1.949 0 0 1 7.7-7a1.949 1.949 0 0 1-.6-1.426v-.1a1.521 1.521 0 0 0 .539.1 1.43 1.43 0 0 0 1.046-.444 1.43 1.43 0 0 0 .44-1.05 1.521 1.521 0 0 0-.1-.539h.1a1.949 1.949 0 0 1 1.426.6 1.949 1.949 0 0 1 .6 1.426 1.949 1.949 0 0 1-.6 1.433zm7.6-.887a1.194 1.194 0 0 1 .1.475 1.194 1.194 0 0 1-.1.475 10.587 10.587 0 0 1-3.735 4.067 9.639 9.639 0 0 1-5.291 1.537 9.651 9.651 0 0 1-3.66-.713 10.28 10.28 0 0 1-3.12-1.965A10.786 10.786 0 0 1 .1-6.941a1.194 1.194 0 0 1-.1-.476 1.194 1.194 0 0 1 .1-.475 10.587 10.587 0 0 1 3.739-4.071A9.639 9.639 0 0 1 9.125-13.5a9.639 9.639 0 0 1 5.291 1.537 10.587 10.587 0 0 1 3.739 4.071zm-6.178-3.39a3.83 3.83 0 0 0-2.852-1.2A3.907 3.907 0 0 0 6.258-11.3a3.907 3.907 0 0 0-1.189 2.869 3.907 3.907 0 0 0 1.189 2.868 3.907 3.907 0 0 0 2.867 1.188 3.907 3.907 0 0 0 2.867-1.188A3.907 3.907 0 0 0 13.18-8.43a3.83 3.83 0 0 0-1.203-2.852zM4.372-3.71a8.817 8.817 0 0 0 4.753 1.363 8.738 8.738 0 0 0 4.737-1.363 9.3 9.3 0 0 0 3.374-3.707 9.031 9.031 0 0 0-1.774-2.329 9.422 9.422 0 0 0-2.345-1.754 4.826 4.826 0 0 1 1.077 3.073 4.882 4.882 0 0 1-1.489 3.58 4.882 4.882 0 0 1-3.58 1.489 4.882 4.882 0 0 1-3.58-1.492 4.882 4.882 0 0 1-1.489-3.58 4.826 4.826 0 0 1 1.077-3.07 9.422 9.422 0 0 0-2.345 1.755 9.031 9.031 0 0 0-1.774 2.328A9.343 9.343 0 0 0 4.372-3.71z\",\n \"data-name\": \"Path 403\",\n transform: \"translate(.2 13.7)\"\n});\n\nvar SvgEye = function SvgEye(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18.65,\n height: 12.567,\n viewBox: \"0 0 18.65 12.567\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEye, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/eye.3bfb77b8.svg\";\nexport { ForwardRef as ReactComponent };","// Styled components for UserProfile\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledUserProfileViewWrapper = styled.div`\r\n .profile-image {\r\n width: 80px;\r\n height: 80px;\r\n cursor: pointer;\r\n }\r\n .img {\r\n width: 80px;\r\n height: 80px;\r\n border-radius: 100px;\r\n }\r\n .custom-img {\r\n background-size: cover;\r\n background-position: center center;\r\n background-repeat: no-repeat;\r\n background-image: url(${(props) => props.profileImage});\r\n border-radius: 100px;\r\n width: 80px;\r\n height: 80px;\r\n background-color: ${(props) => props.theme.background.secondary};\r\n }\r\n .camera-icon {\r\n width: 25px;\r\n height: 25px;\r\n border-radius: 30px;\r\n background-color: ${(props) => props.theme.color.primary};\r\n margin: auto;\r\n position: relative;\r\n bottom: 15px;\r\n text-align: center;\r\n svg {\r\n color: ${(props) => props.theme.background.primary};\r\n height: 12px;\r\n width: 12px;\r\n position: relative;\r\n bottom: 1px;\r\n }\r\n }\r\n .title {\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-size: 1rem;\r\n font-family: ${(props) => props.theme.typography.medium};\r\n margin-bottom: 20px;\r\n margin-top: 15px;\r\n align-items: center;\r\n display: flex;\r\n .detail {\r\n font-family: ${(props) => props.theme.typography.light};\r\n }\r\n }\r\n .form-control:disabled,\r\n .form-control[readonly] {\r\n background-color: ${(props) => props.theme.background.secondary};\r\n }\r\n #circle-profile {\r\n fill: ${(props) => props.theme.color.secondaryFont};\r\n }\r\n .title-icon {\r\n fill: ${(props) => props.theme.color.primary};\r\n margin-right: 10px;\r\n }\r\n .profile-wrapper {\r\n flex: 0;\r\n }\r\n @media (max-width: 768px) {\r\n .form-row {\r\n flex-direction: column;\r\n }\r\n .change-password {\r\n width: 100%;\r\n margin-top: 20px;\r\n }\r\n .form-group {\r\n margin-top: 10px;\r\n }\r\n }\r\n`;\r\n","/**\r\n *\r\n * StyledInputTimeZone\r\n *\r\n */\r\nimport * as React from 'react';\r\nimport { InputProps } from 'reactstrap';\r\n\r\nimport StyledInput from '../StyledInput';\r\n// import { StyledStyledInputTimeZoneWrapper } from './index.styles';\r\n\r\ninterface StyledInputTimeZonePropsInterface extends InputProps {\r\n children?: JSX.Element;\r\n}\r\n\r\nfunction StyledInputTimeZone(props: StyledInputTimeZonePropsInterface): JSX.Element {\r\n return (\r\n \r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 StyledInputTimeZone;\r\n","// Styled components for SecondaryButton\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledSecondaryButtonWrapper = styled.div`\r\n color: ${(props) => props.theme.color.primary};\r\n border: 2px solid ${(props) => props.theme.color.primary};\r\n border-radius: 10px;\r\n padding: 10px 20px;\r\n font-size: 1rem;\r\n text-align: center;\r\n width: max-content;\r\n cursor: pointer;\r\n transition: background-color 0.2s;\r\n\r\n &:not(:disabled):not(.disabled):active,\r\n &:not(:disabled):not(.disabled):hover,\r\n &:not(:disabled):not(.disabled):focus {\r\n background-color: ${(props) => props.theme.color.primary};\r\n border-color: ${(props) => props.theme.color.primary};\r\n color: ${(props) => props.theme.background.primary};\r\n }\r\n`;\r\n","/**\r\n *\r\n * SecondaryButton\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { StyledSecondaryButtonWrapper } from './index.styles';\r\nimport { ButtonProps, Spinner } from 'reactstrap';\r\n\r\ninterface SecondaryButtonPropsInterface extends ButtonProps {\r\n children?: any;\r\n isLoading?: boolean;\r\n}\r\n\r\nfunction SecondaryButton(props: SecondaryButtonPropsInterface): JSX.Element {\r\n let { isLoading, ...buttonProps } = props;\r\n\r\n return (\r\n \r\n {!props.isLoading ? (\r\n props.children\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default React.memo(SecondaryButton);\r\n","export default {\r\n AED: 'United Arab Emirates Dirham',\r\n AFN: 'Afghan Afghani',\r\n ALL: 'Albanian Lek',\r\n AMD: 'Armenian Dram',\r\n ANG: 'Netherlands Antillean Guilder',\r\n AOA: 'Angolan Kwanza',\r\n ARS: 'Argentine Peso',\r\n AUD: 'Australian Dollar',\r\n AWG: 'Aruban Florin',\r\n AZN: 'Azerbaijani Manat',\r\n BAM: 'Bosnia-Herzegovina Convertible Mark',\r\n BBD: 'Barbadian Dollar',\r\n BDT: 'Bangladeshi Taka',\r\n BGN: 'Bulgarian Lev',\r\n BHD: 'Bahraini Dinar',\r\n BIF: 'Burundian Franc',\r\n BMD: 'Bermudan Dollar',\r\n BND: 'Brunei Dollar',\r\n BOB: 'Bolivian Boliviano',\r\n BRL: 'Brazilian Real',\r\n BSD: 'Bahamian Dollar',\r\n BTC: 'Bitcoin',\r\n BTN: 'Bhutanese Ngultrum',\r\n BWP: 'Botswanan Pula',\r\n BYN: 'Belarusian Ruble',\r\n BZD: 'Belize Dollar',\r\n CAD: 'Canadian Dollar',\r\n CDF: 'Congolese Franc',\r\n CHF: 'Swiss Franc',\r\n CLF: 'Chilean Unit of Account (UF)',\r\n CLP: 'Chilean Peso',\r\n CNH: 'Chinese Yuan (Offshore)',\r\n CNY: 'Chinese Yuan',\r\n COP: 'Colombian Peso',\r\n CRC: 'Costa Rican Colón',\r\n CUC: 'Cuban Convertible Peso',\r\n CUP: 'Cuban Peso',\r\n CVE: 'Cape Verdean Escudo',\r\n CZK: 'Czech Republic Koruna',\r\n DJF: 'Djiboutian Franc',\r\n DKK: 'Danish Krone',\r\n DOP: 'Dominican Peso',\r\n DZD: 'Algerian Dinar',\r\n EGP: 'Egyptian Pound',\r\n ERN: 'Eritrean Nakfa',\r\n ETB: 'Ethiopian Birr',\r\n EUR: 'Euro',\r\n FJD: 'Fijian Dollar',\r\n FKP: 'Falkland Islands Pound',\r\n GBP: 'British Pound Sterling',\r\n GEL: 'Georgian Lari',\r\n GGP: 'Guernsey Pound',\r\n GHS: 'Ghanaian Cedi',\r\n GIP: 'Gibraltar Pound',\r\n GMD: 'Gambian Dalasi',\r\n GNF: 'Guinean Franc',\r\n GTQ: 'Guatemalan Quetzal',\r\n GYD: 'Guyanaese Dollar',\r\n HKD: 'Hong Kong Dollar',\r\n HNL: 'Honduran Lempira',\r\n HRK: 'Croatian Kuna',\r\n HTG: 'Haitian Gourde',\r\n HUF: 'Hungarian Forint',\r\n IDR: 'Indonesian Rupiah',\r\n ILS: 'Israeli New Sheqel',\r\n IMP: 'Manx pound',\r\n INR: 'Indian Rupee',\r\n IQD: 'Iraqi Dinar',\r\n IRR: 'Iranian Rial',\r\n ISK: 'Icelandic Króna',\r\n JEP: 'Jersey Pound',\r\n JMD: 'Jamaican Dollar',\r\n JOD: 'Jordanian Dinar',\r\n JPY: 'Japanese Yen',\r\n KES: 'Kenyan Shilling',\r\n KGS: 'Kyrgystani Som',\r\n KHR: 'Cambodian Riel',\r\n KMF: 'Comorian Franc',\r\n KPW: 'North Korean Won',\r\n KRW: 'South Korean Won',\r\n KWD: 'Kuwaiti Dinar',\r\n KYD: 'Cayman Islands Dollar',\r\n KZT: 'Kazakhstani Tenge',\r\n LAK: 'Laotian Kip',\r\n LBP: 'Lebanese Pound',\r\n LKR: 'Sri Lankan Rupee',\r\n LRD: 'Liberian Dollar',\r\n LSL: 'Lesotho Loti',\r\n LYD: 'Libyan Dinar',\r\n MAD: 'Moroccan Dirham',\r\n MDL: 'Moldovan Leu',\r\n MGA: 'Malagasy Ariary',\r\n MKD: 'Macedonian Denar',\r\n MMK: 'Myanma Kyat',\r\n MNT: 'Mongolian Tugrik',\r\n MOP: 'Macanese Pataca',\r\n MRO: 'Mauritanian Ouguiya (pre-2018)',\r\n MRU: 'Mauritanian Ouguiya',\r\n MUR: 'Mauritian Rupee',\r\n MVR: 'Maldivian Rufiyaa',\r\n MWK: 'Malawian Kwacha',\r\n MXN: 'Mexican Peso',\r\n MYR: 'Malaysian Ringgit',\r\n MZN: 'Mozambican Metical',\r\n NAD: 'Namibian Dollar',\r\n NGN: 'Nigerian Naira',\r\n NIO: 'Nicaraguan Córdoba',\r\n NOK: 'Norwegian Krone',\r\n NPR: 'Nepalese Rupee',\r\n NZD: 'New Zealand Dollar',\r\n OMR: 'Omani Rial',\r\n PAB: 'Panamanian Balboa',\r\n PEN: 'Peruvian Nuevo Sol',\r\n PGK: 'Papua New Guinean Kina',\r\n PHP: 'Philippine Peso',\r\n PKR: 'Pakistani Rupee',\r\n PLN: 'Polish Zloty',\r\n PYG: 'Paraguayan Guarani',\r\n QAR: 'Qatari Rial',\r\n RON: 'Romanian Leu',\r\n RSD: 'Serbian Dinar',\r\n RUB: 'Russian Ruble',\r\n RWF: 'Rwandan Franc',\r\n SAR: 'Saudi Riyal',\r\n SBD: 'Solomon Islands Dollar',\r\n SCR: 'Seychellois Rupee',\r\n SDG: 'Sudanese Pound',\r\n SEK: 'Swedish Krona',\r\n SGD: 'Singapore Dollar',\r\n SHP: 'Saint Helena Pound',\r\n SLL: 'Sierra Leonean Leone',\r\n SOS: 'Somali Shilling',\r\n SRD: 'Surinamese Dollar',\r\n SSP: 'South Sudanese Pound',\r\n STD: 'São Tomé and Príncipe Dobra (pre-2018)',\r\n STN: 'São Tomé and Príncipe Dobra',\r\n SVC: 'Salvadoran Colón',\r\n SYP: 'Syrian Pound',\r\n SZL: 'Swazi Lilangeni',\r\n THB: 'Thai Baht',\r\n TJS: 'Tajikistani Somoni',\r\n TMT: 'Turkmenistani Manat',\r\n TND: 'Tunisian Dinar',\r\n TOP: \"Tongan Pa'anga\",\r\n TRY: 'Turkish Lira',\r\n TTD: 'Trinidad and Tobago Dollar',\r\n TWD: 'New Taiwan Dollar',\r\n TZS: 'Tanzanian Shilling',\r\n UAH: 'Ukrainian Hryvnia',\r\n UGX: 'Ugandan Shilling',\r\n USD: 'United States Dollar',\r\n UYU: 'Uruguayan Peso',\r\n UZS: 'Uzbekistan Som',\r\n VEF: 'Venezuelan Bolívar Fuerte (Old)',\r\n VES: 'Venezuelan Bolívar Soberano',\r\n VND: 'Vietnamese Dong',\r\n VUV: 'Vanuatu Vatu',\r\n WST: 'Samoan Tala',\r\n XAF: 'CFA Franc BEAC',\r\n XAG: 'Silver Ounce',\r\n XAU: 'Gold Ounce',\r\n XCD: 'East Caribbean Dollar',\r\n XDR: 'Special Drawing Rights',\r\n XOF: 'CFA Franc BCEAO',\r\n XPD: 'Palladium Ounce',\r\n XPF: 'CFP Franc',\r\n XPT: 'Platinum Ounce',\r\n YER: 'Yemeni Rial',\r\n ZAR: 'South African Rand',\r\n ZMW: 'Zambian Kwacha',\r\n ZWL: 'Zimbabwean Dollar',\r\n};\r\n","// Styled components for ChangePasswordModal\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledChangePasswordModalWrapper = styled.div`\r\n p {\r\n margin-bottom: 5px;\r\n }\r\n`;\r\n","/**\r\n *\r\n * ChangePasswordModal\r\n *\r\n */\r\nimport React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport api from '../../services/AccountService';\r\nimport { StyledChangePasswordModalWrapper } from './index.styles';\r\n\r\nimport StyledLabel from '../StyledLabel';\r\nimport StyledInput from '../StyledInput';\r\nimport StyledModal from '../StyledModal';\r\nimport PrimaryButton from '../PrimaryButton';\r\nimport { ModalHeader, ModalBody, Form, FormGroup, FormFeedback, Alert } from 'reactstrap';\r\n\r\ninterface ChangePasswordModalPropsInterface {\r\n setModal: (bol: boolean) => void;\r\n modal: boolean;\r\n}\r\n\r\nfunction ChangePasswordModal({ setModal, modal }: ChangePasswordModalPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n const [oldPassword, setOldPassword] = useState('');\r\n const [password, setPassword] = useState('');\r\n const [repeatPassword, setRepeatPassword] = useState('');\r\n const [errors, setErrors] = useState([]);\r\n const [saving, setSaving] = useState(false);\r\n\r\n const toggle = () => {\r\n setModal(!modal);\r\n setOldPassword('');\r\n setPassword('');\r\n setRepeatPassword('');\r\n setErrors([]);\r\n };\r\n\r\n const passwordsDoMatch = () => {\r\n return password !== repeatPassword;\r\n };\r\n\r\n const changePassword = async () => {\r\n setErrors([]);\r\n setSaving(true);\r\n const response = await api.post('ChangePassword', { oldPassword, password, repeatPassword });\r\n setSaving(false);\r\n\r\n if (response.ok) {\r\n toggle();\r\n } else {\r\n parseErrors(response.data);\r\n }\r\n };\r\n\r\n const parseErrors = (errors: any) => {\r\n setErrors(errors.map((error: any) => t(`passwordErrors.${error.code}`)));\r\n };\r\n\r\n return (\r\n \r\n \r\n {t('changePasswordModal.title')}\r\n \r\n
\r\n {errors.length > 0 && (\r\n \r\n {errors.map((error) => {\r\n return

{error}

;\r\n })}\r\n
\r\n )}\r\n \r\n \r\n {t('changePasswordModal.currentPassword')}\r\n \r\n setOldPassword(e.target.value)}\r\n value={oldPassword}\r\n disabled={saving}\r\n />\r\n \r\n \r\n {t('changePasswordModal.newPassword')}\r\n setPassword(e.target.value)}\r\n value={password}\r\n disabled={saving}\r\n />\r\n \r\n \r\n \r\n {t('changePasswordModal.repeatNewPassword')}\r\n \r\n setRepeatPassword(e.target.value)}\r\n value={repeatPassword}\r\n invalid={passwordsDoMatch()}\r\n disabled={saving}\r\n />\r\n {t('passwordErrors.wrongMatch')}\r\n \r\n
\r\n changePassword()}\r\n isLoading={saving}\r\n >\r\n {t('userProfile.changePassword')}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ChangePasswordModal;\r\n","/**\r\n *\r\n * UserProfileView\r\n *\r\n */\r\nimport React, { useEffect, useState, useRef } from 'react';\r\nimport moment from 'moment';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Container, Form, FormGroup, Row, Col } from 'reactstrap';\r\nimport { ReactComponent as ProfileImage } from '../../assets/images/profile-image.svg';\r\nimport { ReactComponent as TimeTrackerIcon } from '../../assets/icons/time-tracker.svg';\r\nimport { ReactComponent as ProfileSettingsIcon } from '../../assets/icons/profile-settings.svg';\r\nimport { ReactComponent as EyeIcon } from '../../assets/icons/eye.svg';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCamera } from '@fortawesome/free-solid-svg-icons';\r\n\r\nimport { StyledUserProfileViewWrapper } from './index.styles';\r\n\r\nimport StyledLabel from '../StyledLabel';\r\nimport StyledInput from '../StyledInput';\r\nimport StyledInputTimeZone from '../StyledInputTimeZone';\r\nimport SecondaryButton from '../SecondaryButton';\r\nimport Panel from '../Panel';\r\n\r\nimport { UserProfile } from '../../Models/Models';\r\nimport defaultCurrecies from '../../utils/currencies';\r\nimport useDebounce from '../../utils/debouncer';\r\n\r\nimport ChangePasswordModal from '../ChangePasswordModal';\r\n\r\ninterface UserProfileViewPropsInterface {\r\n profile: UserProfile;\r\n getUserProfileAction: () => void;\r\n setUserProfileAction: (userProfile: UserProfile) => void;\r\n uploadProfileImageAction: (file: object) => void;\r\n}\r\n\r\nfunction UserProfileView({\r\n profile,\r\n getUserProfileAction,\r\n setUserProfileAction,\r\n uploadProfileImageAction,\r\n}: UserProfileViewPropsInterface): JSX.Element {\r\n const { t, i18n } = useTranslation();\r\n const [name, setName] = useState('');\r\n const debouncedName = useDebounce(name, 1000);\r\n const profileImageUploader = useRef(null) as React.RefObject;\r\n\r\n const [changePasswordModal, setChangePasswordModal] = useState(false);\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n getUserProfileAction();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (debouncedName) {\r\n const up = { ...profile, ...{ name: name } };\r\n setUserProfileAction(up);\r\n }\r\n }, [debouncedName]);\r\n\r\n const toggleChangePasswordModal = () => {\r\n setDropdownOpen((prevState) => !prevState);\r\n };\r\n\r\n const handleChangePasswordModal = () => {\r\n toggleChangePasswordModal();\r\n setChangePasswordModal(!changePasswordModal);\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent) => {\r\n const target = event.target;\r\n const name = target.name;\r\n let value = target.type === 'checkbox' ? target.checked : target.value;\r\n\r\n if (name === 'language') {\r\n i18n.changeLanguage(value as string);\r\n }\r\n\r\n const up = { ...profile, ...{ [name]: value } };\r\n setUserProfileAction(up);\r\n };\r\n\r\n const imageHandler = (event: any) => {\r\n const file = event.target.files[0];\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n uploadProfileImageAction(file);\r\n };\r\n reader.readAsDataURL(file);\r\n };\r\n\r\n const clickInputImage = () => {\r\n if (profileImageUploader.current) {\r\n return profileImageUploader.current.click();\r\n }\r\n return false;\r\n };\r\n\r\n if (!profile) return <>;\r\n\r\n return (\r\n \r\n
\r\n \r\n

\r\n \r\n {t('userProfile.personalInfo')}\r\n

\r\n \r\n \r\n \r\n
clickInputImage()}>\r\n {profile.profileImage ? (\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n
\r\n imageHandler(e)}\r\n />\r\n
\r\n \r\n \r\n \r\n {t('userProfile.name')}\r\n setName(e.target.value)}\r\n value={name || profile.name}\r\n />\r\n \r\n \r\n \r\n \r\n {t('email')}\r\n \r\n \r\n \r\n \r\n handleChangePasswordModal()}\r\n >\r\n {t('userProfile.changePassword')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

\r\n \r\n \r\n {t('userProfile.timeSettings')}\r\n {t('userProfile.timeSettingsExplain')}\r\n \r\n

\r\n \r\n <>\r\n \r\n \r\n \r\n {t('userProfile.timezone')}\r\n handleInputChange(e)}\r\n value={profile.timeZone}\r\n />\r\n \r\n \r\n \r\n \r\n {t('userProfile.dateFormat')}\r\n handleInputChange(e)}\r\n value={profile.dateFormat || ''}\r\n >\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('userProfile.firstDayWeek')}\r\n handleInputChange(e)}\r\n value={profile.firstDayOfWeek || 0}\r\n >\r\n <>\r\n {moment.weekdays().map((day, 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 {t('userProfile.displayPreferences')}\r\n

\r\n \r\n \r\n \r\n \r\n {t('userProfile.language')}\r\n handleInputChange(e)}\r\n value={profile.language || ''}\r\n >\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('userProfile.visualTheme')}\r\n handleInputChange(e)}\r\n value={profile.theme || ''}\r\n disabled={true}\r\n >\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('userProfile.currency')}\r\n handleInputChange(e)}\r\n value={profile.currencyCode || ''}\r\n >\r\n <>\r\n {Object.entries(defaultCurrecies).map((currency) => (\r\n {`${currency[0]} - ${currency[1]}`}\r\n ))}\r\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 UserProfileView;\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport default function useDebounce(value: string, delay: number) {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n }, [value, delay]);\r\n\r\n return debouncedValue;\r\n}\r\n","// Styled components for PasswordRecovery\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledPasswordRecoveryWrapper = styled.div`\r\n p {\r\n margin-bottom: 5px;\r\n }\r\n .btn{\r\n width:100%;\r\n }\r\n a{\r\n font-weight: bold;\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n }\r\n`;\r\n","/**\r\n *\r\n * PasswordRecovery\r\n *\r\n */\r\nimport React, { useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport api from '../../services/AccountService';\r\n\r\nimport StyledLabel from '../StyledLabel';\r\nimport StyledInput from '../StyledInput';\r\nimport PrimaryButton from '../PrimaryButton';\r\n\r\nimport { StyledPasswordRecoveryWrapper } from './index.styles';\r\nimport { Form, FormGroup, Alert, FormFeedback } from 'reactstrap';\r\nimport BasicLayout from '../BasicLayout';\r\n\r\ninterface PasswordRecoveryPropsInterface {}\r\n\r\nfunction PasswordRecovery({}: PasswordRecoveryPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n const [password, setPassword] = useState('');\r\n const [repeatPassword, setRepeatPassword] = useState('');\r\n const [errors, setErrors] = useState([]);\r\n const [working, setWorking] = useState(false);\r\n const [success, setSuccess] = useState(false);\r\n\r\n const resetPassword = async () => {\r\n setErrors([]);\r\n setWorking(true);\r\n\r\n const params = new URLSearchParams(decodeURIComponent(window.location.search));\r\n const userId = params.get('userId');\r\n const token = params.get('token');\r\n const response = await api.post('ResetPassword', { userId, token, password, repeatPassword });\r\n\r\n setWorking(false);\r\n\r\n if (response.ok) {\r\n setSuccess(true);\r\n } else {\r\n parseErrors(response.data);\r\n }\r\n };\r\n\r\n const passwordsDoNotMatch = () => {\r\n return password !== repeatPassword;\r\n };\r\n\r\n const parseErrors = (errors: any) => {\r\n setErrors(errors.map((error: any) => t(`passwordErrors.${error.code}`)));\r\n };\r\n\r\n return (\r\n \r\n \r\n {success ? (\r\n

\r\n {t('passwordRecovery.resetSuccessfull')} {t('login')}\r\n

\r\n ) : (\r\n
\r\n {errors.length > 0 && (\r\n \r\n {errors.map((error) => {\r\n return

{error}

;\r\n })}\r\n
\r\n )}\r\n \r\n {t('changePasswordModal.newPassword')}\r\n setPassword(e.target.value)}\r\n value={password}\r\n disabled={working}\r\n placeholder={t('changePasswordModal.intpuPlaceholder')}\r\n />\r\n \r\n \r\n \r\n {t('changePasswordModal.repeatNewPassword')}\r\n \r\n setRepeatPassword(e.target.value)}\r\n value={repeatPassword}\r\n invalid={passwordsDoNotMatch()}\r\n disabled={working}\r\n />\r\n {t('passwordErrors.wrongMatch')}\r\n \r\n resetPassword()}\r\n isLoading={working}\r\n >\r\n {t('passwordRecovery.resetPassword')}\r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default PasswordRecovery;\r\n","/**\r\n *\r\n * App\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { createStructuredSelector } from 'reselect';\r\nimport { compose, Dispatch } from 'redux';\r\n\r\nimport { useInjectSaga } from '../../utils/injectSaga';\r\nimport { useInjectReducer } from '../../utils/injectReducer';\r\nimport makeSelectApp, {\r\n makeSelectTeams,\r\n makeSelectCustomers,\r\n makeSelectUsers,\r\n makeSelectUserProfile,\r\n} from './selectors';\r\nimport reducer from './reducer';\r\nimport saga from './saga';\r\nimport { Layout } from '../../components/Layout';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport AuthorizeRoute from '../../components/api-authorization/AuthorizeRoute';\r\nimport ApiAuthorizationRoutes from '../../components/api-authorization/ApiAuthorizationRoutes';\r\nimport { ApplicationPaths } from '../../components/api-authorization/ApiAuthorizationConstants';\r\nimport Projects from '../Projects/Loadable';\r\nimport Teams from '../Teams/Loadable';\r\nimport Home from '../Home/Loadable';\r\nimport Reports from '../Reports/Loadable';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport history from '../../utils/history';\r\nimport NotFound from '../../components/NotFound';\r\n\r\nimport {\r\n getTeamsRequestAction,\r\n createCustomerRequestAction,\r\n getCustomersRequestAction,\r\n createProjectRequestAction,\r\n getUsersRequestAction,\r\n getUserProfileRequestAction,\r\n updateUserProfileRequestAction,\r\n uploadProfileImageRequestAction,\r\n} from './actions';\r\n\r\nimport { Customer, Team, Project, User, UserProfile } from '../../Models/Models';\r\nimport LoginPage from '../../components/LoginPage';\r\nimport SignUp from '../../components/SignUp/Loadable';\r\nimport ConfirmEmail from '../../components/ConfirmEmail';\r\nimport SendEmailInstruction from '../../components/SendEmailInstruction';\r\nimport AcceptInvitation from '../../components/AcceptInvitation';\r\nimport UserProfileView from '../../components/UserProfileView';\r\nimport PasswordRecovery from '../../components/PasswordRecovery';\r\n\r\nimport { useTranslation } from 'react-i18next';\r\nimport moment from 'moment';\r\n\r\ninterface AppPropsInterface {\r\n teams: Array;\r\n getTeams: () => void;\r\n createCustomer: (customer: Customer) => void;\r\n customers: Array;\r\n getCustomers: () => void;\r\n createProject: (project: Project) => void;\r\n users: Array;\r\n getUsers: () => void;\r\n getUserProfile: () => void;\r\n profile: UserProfile;\r\n updateUserProfile: (userProfile: UserProfile) => void;\r\n uploadProfileImage: (file: object) => void;\r\n}\r\n\r\nexport function App({\r\n teams,\r\n getTeams,\r\n createCustomer,\r\n customers,\r\n getCustomers,\r\n createProject,\r\n users,\r\n getUsers,\r\n getUserProfile,\r\n profile,\r\n updateUserProfile,\r\n uploadProfileImage,\r\n}: AppPropsInterface) {\r\n useInjectReducer({ key: 'app', reducer });\r\n useInjectSaga({ key: 'app', saga, mode: '' });\r\n\r\n const withLayout = (component: any) => {\r\n const Comp = component;\r\n\r\n return (\r\n \r\n {typeof Comp === 'function' ? : Comp}\r\n \r\n );\r\n };\r\n\r\n const { i18n } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n if (profile) {\r\n i18n.changeLanguage(profile.language);\r\n moment.locale(profile.language);\r\n } else {\r\n getUserProfile();\r\n }\r\n }, [profile]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {withLayout(\r\n ,\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = createStructuredSelector({\r\n app: makeSelectApp(),\r\n teams: makeSelectTeams(),\r\n customers: makeSelectCustomers(),\r\n users: makeSelectUsers(),\r\n profile: makeSelectUserProfile(),\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n getTeams: () => dispatch(getTeamsRequestAction()),\r\n createCustomer: (customer: Customer) => dispatch(createCustomerRequestAction(customer)),\r\n getCustomers: () => dispatch(getCustomersRequestAction()),\r\n createProject: (project: Project) => dispatch(createProjectRequestAction(project)),\r\n getUsers: () => dispatch(getUsersRequestAction()),\r\n getUserProfile: () => dispatch(getUserProfileRequestAction()),\r\n updateUserProfile: (userProfile: UserProfile) =>\r\n dispatch(updateUserProfileRequestAction(userProfile)),\r\n uploadProfileImage: (file: object) => dispatch(uploadProfileImageRequestAction(file)),\r\n});\r\n\r\nconst withConnect = connect(mapStateToProps, mapDispatchToProps);\r\n\r\nexport default compose(withConnect)(App);\r\n","import { createGlobalStyle } from 'styled-components';\r\nimport ceraProLight from './../assets/fonts/CeraPro/CeraPro-Light.ttf';\r\nimport ceraProLightItalic from './../assets/fonts/CeraPro/CeraPro-LightItalic.ttf';\r\nimport ceraProItalic from './../assets/fonts/CeraPro/CeraPro-Italic.ttf';\r\nimport ceraProRegular from './../assets/fonts/CeraPro/CeraPro-Regular.ttf';\r\nimport ceraProMedium from './../assets/fonts/CeraPro/CeraPro-Medium.ttf';\r\nimport ceraProBold from './../assets/fonts/CeraPro/CeraPro-Bold.ttf';\r\nimport ceraProBoldItalic from './../assets/fonts/CeraPro/CeraPro-BoldItalic.ttf';\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n @font-face {\r\n font-family: 'CeraPro Light';\r\n src: url(${ceraProLight}) format('truetype');\r\n font-weight: 300;\r\n font-style: normal;\r\n }\r\n @font-face {\r\n font-family: 'CeraPro Light Italic';\r\n src: url(${ceraProLightItalic}) format('truetype');\r\n font-weight: 300;\r\n font-style: italic;\r\n }\r\n @font-face {\r\n font-family: 'CeraPro Italic';\r\n src: url(${ceraProItalic}) format('truetype');\r\n font-weight: 400;\r\n font-style: italic;\r\n }\r\n @font-face {\r\n font-family: 'CeraPro Regular';\r\n src: url(${ceraProRegular}) format('truetype');\r\n font-weight: 400;\r\n font-style: normal;\r\n }\r\n @font-face {\r\n font-family: 'CeraPro Medium';\r\n src: url(${ceraProMedium}) format('truetype');\r\n font-weight: 600;\r\n font-style: normal;\r\n }\r\n @font-face {\r\n font-family: 'CeraPro Bold';\r\n src: url(${ceraProBold}) format('truetype');\r\n font-weight: bold;\r\n font-style: normal;\r\n }\r\n @font-face {\r\n font-family: 'CeraPro Bold Italic';\r\n src: url(${ceraProBoldItalic}) format('truetype');\r\n font-weight: bold;\r\n font-style: italic;\r\n }\r\n * {\r\n outline: none;\r\n }\r\n html, body, #root {\r\n height: 100%;\r\n }\r\n\r\n body {\r\n font-size: 1rem;\r\n font-family: 'CeraPro Regular', 'Segoe Ui', Helvetica, Arial, sans-serif;\r\n }\r\n .btn {\r\n border-radius: 10px;\r\n }\r\n button, .btn-secondary{\r\n &:focus{\r\n outline: none;\r\n box-shadow: none;\r\n }\r\n &:active, &:not(:disabled):not(.disabled):active{\r\n background-color: transparent;\r\n border-color: transparent;\r\n }\r\n }\r\n .bold {\r\n font-family: 'CeraPro Medium', 'Segoe Ui', Helvetica, Arial, sans-serif;\r\n }\r\n @media (min-width: 1200px) {\r\n .container, .container-sm, .container-md, .container-lg, .container-xl {\r\n max-width: 1300px;\r\n }\r\n }\r\n\r\n .scrollbar, .select__menu-list {\r\n overflow-y: hidden;\r\n }\r\n\r\n .scrollbar:hover, .select__menu-list:hover {\r\n overflow-y: scroll !important;\r\n }\r\n\r\n .scrollbar::-webkit-scrollbar-track, .select__menu-list::-webkit-scrollbar-track {\r\n background-color: #fff;\r\n border-radius: 10px;\r\n }\r\n\r\n .scrollbar::-webkit-scrollbar, .select__menu-list::-webkit-scrollbar {\r\n width: 7px;\r\n height: 7px;\r\n background-color: #fff;\r\n }\r\n\r\n .scrollbar::-webkit-scrollbar-thumb, .select__menu-list::-webkit-scrollbar-thumb {\r\n border-radius: 10px;\r\n background-color: #00000050;\r\n }\r\n`;\r\n\r\nexport default GlobalStyle;\r\n","import buttons from './buttons';\r\nimport typography from './typography';\r\n\r\n// TODO: https://styled-components.com/docs/advanced#theming\r\nexport default {\r\n background: {\r\n default: 'red',\r\n primary: '#001D2F',\r\n secondary: '#D8D8D8',\r\n tertiary: '#EEEEEE'\r\n },\r\n buttons,\r\n border: {\r\n default: '#979797',\r\n primary: '#979797',\r\n secondary: 'transparent'\r\n },\r\n typography\r\n};\r\n","import { all } from 'redux-saga/effects';\r\n\r\nexport default function* root() {\r\n yield all([])\r\n}","import i18n from 'i18next';\r\nimport Backend from 'i18next-http-backend';\r\n//import LanguageDetector from 'i18next-browser-languagedetector';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\n\r\ni18n\r\n // load translation using xhr -> see /public/locales\r\n // learn more: https://github.com/i18next/i18next-xhr-backend\r\n .use(Backend)\r\n // detect user language\r\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n //.use(LanguageDetector)\r\n .use(LanguageDetector)\r\n // pass the i18n instance to the react-i18next components.\r\n // Alternative use the I18nextProvider: https://react.i18next.com/components/i18nextprovider\r\n .use(initReactI18next)\r\n // init i18next\r\n // for all options read: https://www.i18next.com/overview/configuration-options\r\n .init({\r\n backend: {\r\n loadPath: `${process.env.PUBLIC_URL}/locales/{{lng}}/{{ns}}.json`,\r\n },\r\n fallbackLng: 'en',\r\n preload: ['es', 'en'],\r\n debug: process.env.NODE_ENV === 'development',\r\n\r\n detection: {\r\n order: ['path']\r\n },\r\n\r\n interpolation: {\r\n escapeValue: false, // not needed for react as it escapes by default\r\n },\r\n\r\n // special options for react-i18next\r\n // learn more: https://react.i18next.com/components/i18next-instance\r\n react: {\r\n wait: true,\r\n },\r\n });\r\n\r\nexport default i18n;\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React, { Suspense } from 'react';\r\nimport ReactDOM from 'react-dom';\r\n// import { BrowserRouter } from 'react-router-dom';\r\nimport App from './containers/App';\r\nimport GlobalStyle from './themes/globalStyles.ts';\r\nimport { ThemeProvider } from 'styled-components';\r\nimport { Provider } from 'react-redux';\r\nimport zenTheme from './themes/zen.theme';\r\nimport energyTheme from './themes/energy.theme';\r\nimport history from './utils/history';\r\nimport configureStore from './utils/configureStore';\r\nimport './i18n';\r\n\r\nimport 'react-dates/initialize';\r\n//import registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nconst initialState = {};\r\nconst store = configureStore(initialState, history);\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n rootElement,\r\n);\r\n\r\n// Uncomment the line above that imports the registerServiceWorker function\r\n// and the line below to register the generated service worker.\r\n// By default create-react-app includes a service worker to improve the\r\n// performance of the application by caching static assets. This service\r\n// worker can interfere with the Identity UI, so it is\r\n// disabled by default when Identity is being used.\r\n//\r\n//registerServiceWorker();\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport { routerMiddleware } from 'connected-react-router';\r\nimport { History } from 'history';\r\nimport { composeWithDevTools } from 'redux-devtools-extension/logOnlyInProduction';\r\n\r\nimport createReducer from '../reducers';\r\n\r\n// FIXME: TODO: LEGACY: Remove these once we fully migrate sagas to their own containers\r\nimport sagas from '../sagas';\r\n\r\nexport default function configureStore(initialState = {}, history: History) {\r\n const composeEnhancers = composeWithDevTools({});\r\n\r\n const sagaMiddleware = createSagaMiddleware();\r\n\r\n const middlewares = [sagaMiddleware, routerMiddleware(history)];\r\n\r\n const enhancers = [applyMiddleware(...middlewares)];\r\n\r\n const store = createStore(createReducer(), initialState, composeEnhancers(...enhancers));\r\n\r\n // sagaMiddleware.run(sagas);\r\n // Extensions\r\n // @ts-ignore\r\n store.runSaga = sagaMiddleware.run;\r\n // @ts-ignore\r\n store.injectedReducers = {}; // Reducer registry\r\n // @ts-ignore\r\n store.injectedSagas = {}; // Saga registry\r\n\r\n // FIXME: TODO: LEGACY: Remove these once we fully migrate sagas to their own containers\r\n sagaMiddleware.run(sagas);\r\n\r\n // Make reducers hot reloadable\r\n if (module.hot) {\r\n module.hot.accept('../reducers', () => {\r\n // @ts-ignore\r\n store.replaceReducer(createReducer(store.injectedReducers));\r\n });\r\n }\r\n\r\n return store;\r\n}\r\n\r\n// export type AppState = ReturnType;\r\n","// Styled components for BasicLayout\r\n// Use this file to create all the styled components you need\r\n// in order to properly style component your new component\r\n//\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledBasicLayoutWrapper = styled.div`\r\n height: 100%;\r\n margin-right: 0;\r\n margin-left: 0;\r\n\r\n .form-control:focus {\r\n border-color: ${(props) => props.theme.color.primary};\r\n box-shadow: none;\r\n }\r\n\r\n .error-msg {\r\n text-align: center;\r\n margin-top: 1.2rem;\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n }\r\n\r\n h1 {\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n font-size: 1.2rem;\r\n text-align: center;\r\n font-family: ${(props) => props.theme.typography.medium};\r\n margin-top: 10px;\r\n }\r\n\r\n p {\r\n font-size: 18px;\r\n text-align: center;\r\n color: ${(props) => props.theme.color.secondaryFont};\r\n\r\n &.error {\r\n color: ${(props) => props.theme.color.warning};\r\n margin-top: 14px;\r\n font-size: 0.9rem;\r\n }\r\n }\r\n\r\n .form {\r\n background: ${(props) => props.theme.background.secondary};\r\n flex-direction: column;\r\n }\r\n .content {\r\n width: 80%;\r\n max-width: 400px;\r\n margin: auto;\r\n }\r\n .logo-wrapper {\r\n width: fit-content;\r\n margin: 0 auto;\r\n margin-bottom: 15%;\r\n }\r\n\r\n a {\r\n font-weight: bold;\r\n color: ${(props) => props.theme.color.secondaryFont} !important;\r\n text-decoration: underline;\r\n }\r\n\r\n .form-footer {\r\n margin-top: 1rem;\r\n }\r\n\r\n @media (max-width: 768px) {\r\n .logo-wrapper {\r\n margin-bottom: 10%;\r\n margin-top: 10%;\r\n }\r\n }\r\n`;\r\n","/**\r\n *\r\n * BasicLayout\r\n *\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { ReactComponent as DesktopLogo } from '../../assets/images/logo-onremote.svg';\r\nimport { StyledBasicLayoutWrapper } from './index.styles';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface BasicLayoutPropsInterface {\r\n children?: JSX.Element;\r\n footer?: JSX.Element;\r\n}\r\n\r\nfunction BasicLayout({ children, footer }: BasicLayoutPropsInterface): JSX.Element {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n {t('profile')}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {children}\r\n
\r\n
\r\n {footer}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default BasicLayout;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_4188\",\n \"data-name\": \"Group 4188\",\n transform: \"translate(-1261 -32)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"circle-profile\",\n cx: 15.5,\n cy: 15.5,\n r: 15.5,\n fill: \"#414c5a\",\n \"data-name\": \"Ellipse 1\",\n transform: \"translate(1261 32)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_466\",\n fill: \"#f7faff\",\n d: \"M30.9 280.657a.771.771 0 1 1-1.543 0 3.857 3.857 0 0 0-7.714 0 .771.771 0 1 1-1.543 0 5.4 5.4 0 1 1 10.8 0zm-5.4-6.943a3.857 3.857 0 1 1 3.857-3.857 3.858 3.858 0 0 1-3.857 3.857zm0-1.543a2.314 2.314 0 1 0-2.314-2.314 2.314 2.314 0 0 0 2.314 2.314z\",\n \"data-name\": \"Path 466\",\n transform: \"translate(1251.205 -226)\"\n}));\n\nvar SvgProfileImage = function SvgProfileImage(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 31,\n height: 31,\n viewBox: \"0 0 31 31\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgProfileImage, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/profile-image.97a74e15.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Grupo_4150\",\n \"data-name\": \"Grupo 4150\",\n transform: \"translate(-861.727 -785.938)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Grupo_4147\",\n \"data-name\": \"Grupo 4147\",\n transform: \"translate(861.727 785.938)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_388\",\n \"data-name\": \"Trazado 388\",\n d: \"M871.129,785.939a9.265,9.265,0,1,1-9.4,9.265A9.295,9.295,0,0,1,871.129,785.939Zm.027,2.636a6.632,6.632,0,1,0,6.439,6.6A6.341,6.341,0,0,0,871.156,788.574Z\",\n transform: \"translate(-861.727 -785.937)\",\n fill: \"#414c5a\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_389\",\n \"data-name\": \"Trazado 389\",\n d: \"M921.842,809.652h-2.853v-7.96a2.849,2.849,0,0,0-2.907-3.1,2.954,2.954,0,0,0-3.043,3.1v7.96h-2.853v-13.34h2.662v1.3a5.259,5.259,0,0,1,3.994-1.6c3.125,0,5,2.119,5,5.3Z\",\n transform: \"translate(-888.097 -791.42)\",\n fill: \"#414c5a\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_390\",\n \"data-name\": \"Trazado 390\",\n d: \"M956.15,804.527l-5.108-6.928h-3.287v6.928h-2.88V786.6h6.547c3.613,0,6.086,2.255,6.086,5.488a5.238,5.238,0,0,1-3.45,5.053l5.379,7.39Zm-8.4-9.482h3.613a2.956,2.956,0,1,0,0-5.9h-3.613Z\",\n transform: \"translate(-906.973 -786.296)\",\n fill: \"#414c5a\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_391\",\n \"data-name\": \"Trazado 391\",\n d: \"M982.23,803.917a4.123,4.123,0,0,0,4.347,3.5,5.752,5.752,0,0,0,3.885-1.575l1.358,1.956a7.475,7.475,0,0,1-5.325,2.146,6.97,6.97,0,1,1-.272-13.937,6,6,0,0,1,6.167,6.113,8.513,8.513,0,0,1-.217,1.793Zm7.308-2.227a3.224,3.224,0,0,0-3.423-3.261,3.908,3.908,0,0,0-3.831,3.261Z\",\n transform: \"translate(-925.717 -791.418)\",\n fill: \"#414c5a\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_392\",\n \"data-name\": \"Trazado 392\",\n d: \"M1035.167,809.652h-2.88v-7.933c0-1.874-1.059-3.1-2.771-3.1a2.832,2.832,0,0,0-2.934,2.962v8.069h-2.853v-7.933a2.783,2.783,0,0,0-2.8-3.1,2.87,2.87,0,0,0-2.934,3.1v7.933h-2.853v-13.34h2.662v1.249a5.216,5.216,0,0,1,3.858-1.548,4.5,4.5,0,0,1,4.048,2.092,5.643,5.643,0,0,1,4.51-2.092c3.07,0,4.944,2.119,4.944,5.3Z\",\n transform: \"translate(-945.21 -791.42)\",\n fill: \"#414c5a\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_393\",\n \"data-name\": \"Trazado 393\",\n d: \"M1072.958,796.011a6.969,6.969,0,1,1-7.036,6.955A6.981,6.981,0,0,1,1072.958,796.011Zm.028,2.608a4.192,4.192,0,0,0-4.157,4.374,4.147,4.147,0,1,0,8.286,0A4.2,4.2,0,0,0,1072.986,798.619Z\",\n transform: \"translate(-972.841 -791.418)\",\n fill: \"#414c5a\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_394\",\n \"data-name\": \"Trazado 394\",\n d: \"M1110.185,805.825a11.7,11.7,0,0,1-2.364.3c-3.07,0-4.917-1.521-4.917-4.646v-6.52h-2.174v-2.472h2.174v-3.5h2.879v3.5h3.967v2.472h-3.967v6.276c0,1.712.9,2.309,2.636,2.309.407,0,.978-.054,1.766-.136Z\",\n transform: \"translate(-991.783 -787.593)\",\n fill: \"#414c5a\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_395\",\n \"data-name\": \"Trazado 395\",\n d: \"M1128.252,803.917a4.123,4.123,0,0,0,4.347,3.5,5.751,5.751,0,0,0,3.885-1.575l1.359,1.956a7.475,7.475,0,0,1-5.325,2.146,6.97,6.97,0,1,1-.272-13.937,6,6,0,0,1,6.168,6.113,8.491,8.491,0,0,1-.218,1.793Zm7.308-2.227a3.225,3.225,0,0,0-3.423-3.261,3.908,3.908,0,0,0-3.83,3.261Z\",\n transform: \"translate(-1005.176 -791.418)\",\n fill: \"#414c5a\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Grupo_4148\",\n \"data-name\": \"Grupo 4148\",\n transform: \"translate(869.675 792.527)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rect\\\\xE1ngulo_275\",\n \"data-name\": \"Rect\\\\xE1ngulo 275\",\n width: 1.342,\n height: 3.821,\n rx: 0.671,\n transform: \"translate(0 0)\",\n fill: \"#5aba9e\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rect\\\\xE1ngulo_276\",\n \"data-name\": \"Rect\\\\xE1ngulo 276\",\n width: 1.342,\n height: 3.821,\n rx: 0.671,\n transform: \"translate(3.821 2.478) rotate(90)\",\n fill: \"#5aba9e\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Grupo_4149\",\n \"data-name\": \"Grupo 4149\",\n transform: \"translate(963.217 808.877)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_396\",\n \"data-name\": \"Trazado 396\",\n d: \"M1084.372,844.43v-8.169h.965v3.366h4.58v-3.366h.965v8.169h-.965v-3.936h-4.58v3.936Z\",\n transform: \"translate(-1084.372 -836.261)\",\n fill: \"#5aba9e\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_397\",\n \"data-name\": \"Trazado 397\",\n d: \"M1102.347,843.8a3.156,3.156,0,1,1,5.384,2.222,2.989,2.989,0,0,1-2.24.922,3.136,3.136,0,0,1-3.144-3.143Zm5.335.012a2.262,2.262,0,0,0-.625-1.622,2.174,2.174,0,0,0-3.107-.006,2.254,2.254,0,0,0-.625,1.628,2.223,2.223,0,0,0,.625,1.6,2.054,2.054,0,0,0,1.541.65,2.082,2.082,0,0,0,1.553-.656A2.2,2.2,0,0,0,1107.682,843.815Z\",\n transform: \"translate(-1094.153 -838.654)\",\n fill: \"#5aba9e\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_398\",\n \"data-name\": \"Trazado 398\",\n d: \"M1119.7,844.585v-3.627h.941v3.689a1.564,1.564,0,0,0,.439,1.157,1.517,1.517,0,0,0,1.12.439,1.471,1.471,0,0,0,1.1-.446,1.584,1.584,0,0,0,.433-1.151v-3.689h.953v3.627a2.467,2.467,0,0,1-.712,1.832,2.6,2.6,0,0,1-3.564,0A2.467,2.467,0,0,1,1119.7,844.585Z\",\n transform: \"translate(-1103.595 -838.817)\",\n fill: \"#5aba9e\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_399\",\n \"data-name\": \"Trazado 399\",\n d: \"M1138.271,840.9v.842h-.359a1.964,1.964,0,0,0-1.343.482,1.628,1.628,0,0,0-.551,1.288v3.416h-.953V840.9h.892v.854a2.192,2.192,0,0,1,1.869-.9A1.953,1.953,0,0,1,1138.271,840.9Z\",\n transform: \"translate(-1111.957 -838.758)\",\n fill: \"#5aba9e\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Trazado_400\",\n \"data-name\": \"Trazado 400\",\n d: \"M1143.646,845.783l.607-.631a4.076,4.076,0,0,0,.86.705,1.723,1.723,0,0,0,.872.223,1.394,1.394,0,0,0,.83-.229.726.726,0,0,0,.322-.625.663.663,0,0,0-.229-.538,3.231,3.231,0,0,0-.823-.427l-.582-.248a3.252,3.252,0,0,1-1.139-.705,1.357,1.357,0,0,1-.359-.965,1.486,1.486,0,0,1,.575-1.226,2.265,2.265,0,0,1,1.455-.458,2.509,2.509,0,0,1,2.017.953l-.582.594a2.058,2.058,0,0,0-1.486-.669,1.215,1.215,0,0,0-.73.2.65.65,0,0,0-.272.557.591.591,0,0,0,.2.464,3.029,3.029,0,0,0,.774.415l.557.235a3.58,3.58,0,0,1,1.232.774,1.445,1.445,0,0,1,.365,1.009,1.555,1.555,0,0,1-.619,1.312,2.415,2.415,0,0,1-1.5.458A2.83,2.83,0,0,1,1143.646,845.783Z\",\n transform: \"translate(-1116.626 -838.654)\",\n fill: \"#5aba9e\"\n})));\n\nvar SvgLogoOnremote = function SvgLogoOnremote(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 133.236,\n height: 31.244,\n viewBox: \"0 0 133.236 31.244\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogoOnremote, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logo-onremote.bf27a8dc.svg\";\nexport { ForwardRef as ReactComponent };","import invariant from 'invariant';\r\nimport { conformsTo, isFunction, isObject } from 'lodash';\r\n\r\n/**\r\n * Validate the shape of redux store\r\n */\r\nexport default function checkStore(store: any) {\r\n const shape = {\r\n dispatch: isFunction,\r\n subscribe: isFunction,\r\n getState: isFunction,\r\n replaceReducer: isFunction,\r\n runSaga: isFunction,\r\n injectedReducers: isObject,\r\n injectedSagas: isObject\r\n };\r\n invariant(conformsTo(store, shape), '(src/utils...) injectors: Expected a valid redux store');\r\n}\r\n","import { createBrowserHistory } from 'history';\r\n\r\nconst basename = `${process.env.PUBLIC_URL}`;\r\n\r\nconst history = createBrowserHistory({\r\n basename\r\n});\r\n\r\nexport default history;\r\n","import { createSelector } from 'reselect';\r\nimport { initialState } from './reducer';\r\n\r\n// import { StateTreeInterface } from './types';\r\n\r\nconst selectAppDomain = (state: any) => state.app || initialState;\r\n\r\nconst makeSelectApp = () => createSelector(selectAppDomain, (substate) => substate);\r\n\r\nconst makeSelectTeams = () => createSelector(selectAppDomain, (substate) => substate.teams);\r\nconst makeSelectCustomers = () => createSelector(selectAppDomain, (substate) => substate.customers);\r\nconst makeSelectUsers = () => createSelector(selectAppDomain, (substate) => substate.users);\r\nconst makeSelectUserProfile = () => createSelector(selectAppDomain, (substate) => substate.profile);\r\n\r\nexport default makeSelectApp;\r\nexport {\r\n selectAppDomain,\r\n makeSelectTeams,\r\n makeSelectCustomers,\r\n makeSelectUsers,\r\n makeSelectUserProfile,\r\n};\r\n","/*\r\n *\r\n * Home constants\r\n *\r\n */\r\n\r\nexport const homeActionsTypes = {\r\n DEFAULT_ACTION: 'app/Home/DEFAULT_ACTION',\r\n\r\n GET_SUMMARY_REQUEST: 'app/Home/GET_SUMMARY_REQUEST',\r\n GET_SUMMARY_SUCCESS: 'app/Home/GET_SUMMARY_SUCCESS',\r\n GET_SUMMARY_FAILURE: 'app/Home/GET_SUMMARY_FAILURE'\r\n};\r\n"],"sourceRoot":""}