{"version":3,"sources":["main.style.ts","theme.ts","utils/checkVersion.ts","utils/initTranslation.ts","locales/index.ts","locales/en/index.ts","App.style.ts","components/LoginHeader/LoginHeader.style.ts","store/user/user.actions.types.ts","store/user/user.actions.ts","store/user/user.selectors.ts","components/SessionExpiredModal/SessionExpiredModal.styled.tsx","components/SessionExpiredModal/SessionExpiredModal.tsx","icons/Help.tsx","icons/Logout.tsx","icons/ReleaseNotes.tsx","utils/restApplicationClient.ts","utils/axiosInstance.ts","components/LoginHeader/LoginHeader.tsx","utils/envHandler.ts","components/CustomLink/CustomLink.tsx","components/Form/Div/FormDiv.tsx","components/Form/Input/CustomInput.styled.tsx","components/Form/Input/CustomField.tsx","components/Form/Title/FormTitle.tsx","store/spinner/spinner.selectors.ts","utils/customRegex.ts","utils/customValidators.ts","utils/objectEquality.ts","containers/Login/LoginContainer.style.ts","enums/userRouteParameter.ts","containers/Login/LoginContainer.tsx","containers/ResetPassword/ResetPasswordContainer.style.ts","containers/ResetPassword/ResetPasswordContainer.tsx","components/ChangePasswordForm/ChangePasswordForm.tsx","layouts/login/routes.ts","containers/ChangePasswordContainer/ChangePasswordContainer.tsx","layouts/login/index.tsx","components/Form/ButtonContainer/ButtonContainer.tsx","components/Form/CilentData/EditData.tsx","components/Form/Input/CustomCheckbox.tsx","components/Form/Input/CustomSelect.tsx","store/administrator/administrator.actions.types.ts","store/administrator/administrator.actions.ts","store/administrator/administrator.selectors.ts","store/client/client.actions.types.ts","store/client/client.actions.ts","store/client/client.selectors.ts","containers/AddAdministrator/AddAdministratorContainer.tsx","containers/AddClientContainer/addClientContainer.style.ts","containers/AddClientContainer/AddClientContainer.tsx","icons/Xtm.tsx","components/Form/Accordion/Accordion.style.ts","icons/Link.tsx","icons/LinkBroken.tsx","enums/roles.ts","components/Form/Accordion/AccordionIcon.tsx","components/Form/Accordion/XtmConnectAccordion/XtmConnectAccordion.tsx","store/project/project.actions.types.ts","store/project/project.actions.ts","store/project/project.selectors.ts","components/Form/Input/DraggableSelect/DraggableSelect.styled.ts","components/Form/Input/DraggableSelect/DraggableSelect.tsx","components/Form/ConnectedFields/ConnectedFields.styled.tsx","components/Form/ConnectedFields/LanguageMapping/LanguageMappingContainer.styled.tsx","components/Form/ConnectedFields/TemplatesAccordion.tsx","components/Form/ConnectedFields/ConnectedUserFields.tsx","enums/filter.ts","utils/checkRoles.ts","containers/AddUser/AddUserContainer.tsx","store/table/table.actions.types.ts","store/table/table.actions.ts","store/table/table.selectors.ts","utils/parseDate.ts","components/Table/CustomTable.style.ts","components/Table/Pagination.styled.tsx","components/Table/PaginationTransLabel.tsx","components/Table/Pagination.tsx","components/Table/TableEmpty/TableEmpty.style.ts","components/Table/TableEmpty/TableEmpty.tsx","components/Table/CustomTable.tsx","components/IconButtonLabel/IconButtonLabel.style.ts","components/IconButtonLabel/IconButtonLabel.tsx","components/TableToolbar/TableToolbar.style.ts","components/TableToolbar/TableToolbar.tsx","containers/Administrators/AdministratorsContainer.tsx","containers/Clients/ClientsContainer.tsx","icons/Kentico.tsx","components/Form/Accordion/ProjectConnectAccordion/ProjectConnectAccordion.tsx","components/CustomTooltip/CustomTooltip.tsx","components/CustomTooltip/CustomTooltip.styled.tsx","components/Form/Input/CustomAutocomplete.tsx","components/Form/ConnectedFields/ConnectedProjectFields.tsx","components/Form/ConnectedFields/LanguageMapping/LanguageMappingContainer.tsx","containers/ProjectFormContainer/ProjectFormContainer.tsx","containers/Projects/ProjectsContainer.tsx","store/user/users.selectors.ts","containers/Users/UsersContainer.tsx","layouts/main/routes.ts","components/Navbar/Navbar.style.ts","components/Navbar/Navbar.tsx","layouts/main/index.tsx","utils/browserHistory.ts","store/notify/notify.actions.types.ts","store/notify/notify.actions.ts","components/NotifyAlert/NotifyAlert.tsx","App.tsx","serviceWorker.ts","utils/checkProjectValidation.ts","store/error/error.epic.ts","store/administrator/administrator.epics.ts","store/administrator/administrator.reducer.ts","store/client/client.epics.ts","store/client/client.reducer.ts","store/notify/notify.reducer.ts","store/project/project.epics.ts","store/project/project.reducer.ts","store/spinner/spinner.actions.types.ts","store/spinner/spinner.actions.ts","store/spinner/spinner.epics.ts","store/spinner/spinner.reducer.ts","store/table/table.epics.ts","store/table/table.reducer.ts","store/user/user.epics.ts","store/user/user.reducer.ts","store/index.ts","index.tsx"],"names":["mainStyles","css","theme","createMuiTheme","overrides","MuiSvgIcon","root","padding","MuiTablePagination","toolbar","background","MuiButton","textTransform","fontWeight","MuiTabs","backgroundColor","indicator","height","MuiFormControl","marginBottom","marginTop","MuiTableSortLabel","color","MuiTableCell","head","fontSize","body","stickyHeader","MuiTableRow","MuiTableContainer","width","MuiTab","opacity","minWidth","MuiAppBar","display","flexDirection","alignItems","boxShadow","justifyContent","MuiTextField","MuiSelect","MuiInputBase","MuiOutlinedInput","adornedStart","paddingLeft","inputMarginDense","paddingTop","paddingBottom","marginDense","palette","primary","main","contrastText","light","secondary","text","clearCaches","a","window","location","reload","caches","keys","forEach","key","delete","console","error","checkVersion","currentVersion","process","fetch","json","metaVersion","version","resources","en","translation","common","client","table","administrator","validator","auth","users","projects","i18n","i18next","initTranslation","use","LanguageDetector","initReactI18next","init","lng","fallbackLng","interpolation","escapeValue","appStyle","loginHeaderStyle","title","img","logoContainer","HeaderButton","styled","Button","HeaderLogoutButton","UserActionTypes","verifyPassToken","createAction","verifyPassTokenSuccess","verifyPassTokenError","changePassword","changePasswordSuccess","changePasswordError","changeUserPassword","changeUserPasswordSuccess","changeUserPasswordError","loginUser","loginUserSuccess","loginUserError","logoutUser","logoutUserSuccess","logoutUserError","getUsersByClientId","getUsersByClientIdSuccess","getUsersByClientIdError","resetPassword","resetPasswordSuccess","resetPasswordError","resetUserPassword","resetUserPasswordSuccess","resetUserPasswordError","verifyToken","verifyTokenSuccess","verifyTokenError","refreshTokenSuccess","getAllUsersError","getAllUsersSuccess","createUser","createUserSuccess","createUserError","usersPageable","usersPageableSuccess","usersPageableError","editUser","editUserSuccess","editUserError","getUserById","getUserByIdSuccess","getUserByIdError","clearUser","clearUserErrors","xtmConnect","xtmConnectError","xtmConnectSuccess","xtmConnectUser","xtmConnectUserError","xtmConnectUserSuccess","xtmGetCustomers","xtmGetCustomersError","xtmGetCustomersSuccess","xtmGetTemplates","xtmGetTemplatesError","xtmGetTemplatesSuccess","xtmGetCustomersById","xtmGetCustomersByIdError","xtmGetCustomersByIdSuccess","xtmGetConnectData","xtmGetConnectDataError","xtmGetConnectDataSuccess","getDefaultUserLanguages","getDefaultUserLanguagesSuccess","getDefaultUserLanguagesError","clearDefaultUserLanguages","clearXtmTemplates","sessionExpired","showSessionExpired","hideSessionExpired","getAuthSelector","createSelector","state","user","getVerifyFinishSelector","verifyFinished","finished","getUserDataSelector","data","roles","getUserErrorsSelector","errors","getUserSelector","getXtmAuthorizationIdSelector","xtmAuthorizationId","authorizationId","getXtmCustomersSelector","customers","getXtmTemplatesSelector","templates","Array","isArray","length","undefined","getXtmConnectDataSelector","connectData","getDefaultUserLanguagesSelector","defaultUserLanguages","languages","getSessionExpiredSeletor","ModalDropdown","div","ModalWindow","ModalLogoBar","ModalTextDiv","SessionExpiredModal","handleClick","props","setSessionExpired","logout","this","t","visibility","src","Typography","variant","onClick","Component","connect","dispatch","payload","withTranslation","Help","viewBox","fill","xmlns","d","Logout","ReleaseNotes","RestApplicationClient","httpClient","options","request","method","url","uriEncoding","createAdministrator","queryParams","administratorId","updateAdministrator","authRequest","createClient","clientId","updateClient","xtmProject","activeProjectSearch","xtmCustomerId","frontendIds","jobsErrorCodeIgnoreDTO","jobId","connectRequest","kontentScheduledTime","project_id","kontentProjectId","kontentItemsSearchDTO","snippet_identifier","taxonomy_group_identifier","type_identifier","projectId","createProject","updateProject","rawBody","filteringParamsDTO","translateRequest","userId","updateUser","xtmConnectRequest","template","result","i","encodeURIComponent","AxiosHttpClient","axios","requestConfig","config","params","target","source","hasOwnProperty","assign","copyFn","then","axiosResponse","originalData","AxiosRestApplicationClient","baseURL","axiosInstance","create","defaults","Axios","interceptors","headers","accessToken","localStorage","getItem","refreshToken","includes","Authorization","paramsSerializer","parameters","Object","map","value","join","stringifyParameters","response","ttl","setItem","String","api","LoginHeader","handleOpenLink","open","handleLogout","_env_","REACT_APP_HELP_URL","REACT_APP_CHANGELOG_URL","token","AppBar","position","disableTouchRipple","PureComponent","CustomLink","StyledDiv","wide","linkProps","FormDiv","center","children","CustomDraggableContainer","InputDiv","column","StyledSelect","Select","StyledTextField","TextField","CustomAutocompleteTypography","CustomTypography","customInputStyles","label","outlineError","textError","textErrorNoMargin","checkbox","radio","AutocompleteChipDefaultSpan","span","AutocompleteTextField","draggable","ErrorDiv","FieldDiv","CheckboxDiv","CustomInputError","CustomEndAdornment","CustomStyledCheckbox","Checkbox","CustomField","input","textFieldProps","disableAutocomplete","meta","touched","disabled","tooltip","shouldDisplayError","useTranslation","renderTextFieldComponent","textComponent","inputProps","autoComplete","type","margin","Tooltip","component","Box","FormTitle","StyledTypography","align","fetchSpinnerState","spinner","getFetchSpinnerSelector","fetchSpinner","getTemplateSpinnerSelector","templateSpinner","getCustomerSpinnerSelector","customerSpinner","getconnectDataSpinnerSelector","connectDataSpinner","getConnectToXtmSpinnerSelector","connectToXtmSpinner","getProjectSpinnerSelector","connectToCMSSpinner","defaultUserLanguagesSpinner","projectSpinner","getKenticoDataSpinnerSelector","kenticoDataSpinner","getKenticoConnectSpinnerSelector","kenticoConnectSpinner","EMAIL_REGEX","PASSWORD_REGEX","ISNUMBER","PREFIX_REGEX","required","isString","requiredAutocomplete","email","test","password","isNumber","isAllowedPrefix","composeValidators","validators","reduce","fetchValidator","previousValue","fetchValidatorObject","values","objectA","objectB","objectAProperties","getOwnPropertyNames","objectBProperties","currentValue","isObjectEqual","optionalValidator","UserRouteParameterEnum","loginContainerStyles","button","form","LoginContainer","unsubscribe","onSubmit","setState","submitValues","login","createForm","subscribe","validate","subscription","pristine","submitting","render","handleSubmit","name","CircularProgress","size","to","resetPasswordContainerStyles","ResetPasswordContainer","ChangePasswordForm","useDispatch","useSelector","newPassword","resetPasswordToken","confirmPassword","comparePass","loginRoutes","pathname","exact","useLocation","URLSearchParams","search","get","useEffect","verifyPassFinished","LoginLayoutComponent","route","path","ButtonContainerDiv","ButtonLink","Link","ButtonContainer","backTo","style","textDecoration","Container","Date","p","EditData","createdAt","modifiedAt","moment","format","CustomCheckbox","textAlign","CustomSelect","rows","onChange","selectProps","Boolean","native","placeholder","row","index","AdministratorActionTypes","createAdministratorError","createAdministratorSuccess","clearAdministratorErrors","getAdministratorsPageable","getAdministratorsPageableSuccess","getAdministratorsPageableError","getAdministratorById","getAdministratorByIdSuccess","getAdministratorByIdError","clearAdministrator","editAdministrator","editAdministratorSuccess","editAdministratorError","getAdministratorErrorsSelector","getAdministratorsPageableSelector","administratorsPageable","administrators","getAdministratorSelector","ClientActionTypes","getAllClients","getAllClientsError","getAllClientsSuccess","createClientSuccess","createClientError","getClientsPageable","getClientsPageableSuccess","getClientsPageableError","editClient","editClientSuccess","editClientError","getClientById","getClientByIdSuccess","getClientByIdError","clearClient","clearClientErrors","clientStateSelector","getClientsPageableSelector","clientsPageable","getAllClientsSelector","clients","getAllActiveClientsSelector","filter","status","getClientErrorsSelector","getClientSelector","AddAdministratorContainer","match","id","clientName","initialValues","clientUUID","paddingX","parseClientSelect","withRouter","addClientContainerStyles","heading","btnContainer","useRouteMatch","useState","setSubmitValues","submitFailed","stateErrors","XTM","accordionStyles","summary","details","accordionError","accordionErrorText","accordionLabel","buttonIcon","AccordionDiv","AccordionButton","LinkBroken","Roles","AccordionIcon","connected","renderIcon","XtmConnectAccordion","isNewPassword","xtmPassword","connectionParameters","userUuidToCopyPassword","edit","xtmParameters","duplicate","xtmUrl","xtmCompanyName","username","getConnectData","previousProps","xtmUsername","rest","Accordion","AccordionSummary","expandIcon","AccordionDetails","fullWidth","ProjectActionTypes","getProjectsPageable","getProjectsPageableSuccess","getProjectsPageableError","getContentTypes","getContentTypesSuccess","getContentTypesError","getContentElements","getContentElementsSuccess","getContentElementsError","getWorkflowSteps","getWorkflowStepsSuccess","getWorkflowStepsError","getWebhooks","getWebhooksSuccess","getWebhooksError","connectToKentico","connectToKenticoSuccess","connectToKenticoError","getApiKey","getApiKeySuccess","getApiKeyError","addProject","addProjectSuccess","addProjectError","editProject","editProjectSuccess","editProjectError","getProjectById","getProjectByIdSuccess","getProjectByIdError","clearProjectErrors","getKenticoLanguages","getKenticoLanguagesSuccess","getKenticoLanguagesError","getXtmLanguages","getXtmLanguagesSuccess","getXtmLanguagesError","GetProjectsByClientId","GetProjectsByClientIdSuccess","GetProjectsByClientIdError","updateFormProject","clearProjectFormAll","allFormObservers","projectStateSelector","project","getProjectsPageableSelector","projectsPageable","getProjectErrorsSelector","getProjectFormSelector","getClientProjectsSelector","clientProjects","DraggableSelectChip","Chip","DraggableSelectEllipsisContainer","DraggableSelectEllipsis","DraggableSelectArrowContainer","DraggableSelectIconButton","IconButton","DraggableSelectOptionCheckbox","DraggableSelectInputContainer","DraggableSelectInput","InputBase","DraggableSelectChipContainer","DraggableSelectDataContainer","opened","hovered","DraggableSelectSpinnerContainer","DraggableSelectDefaultChip","DraggableSelectActionButton","DraggableSelectButtonContainer","DraggableSelectAutocompletePaper","Paper","DraggableSelectPopper","Popper","DraggableSelectSelectClasses","autocomplete","DraggableSelect","inputContainerRef","createRef","arrowRef","draggableContextRef","chipElements","draggableContextWidth","handleChange","event","onHandleChange","elements","anchorEl","canOpen","isDragged","currentTarget","handleClose","stopPropagation","setTimeout","onChipDelete","handleChipDelete","record","onSelectAll","handleSelectAll","onClearAll","handleClearAll","onDragEnd","destination","customOnChange","handleDragEnd","filteredData","splice","removed","onDragStart","checkIfOverflowed","some","node","offsetWidth","handleInputMouseEvent","isHovered","checkChipContainerHeight","chipParentHeight","parentElement","offsetHeight","count","chipTotalHeight","isOpened","draggableElement","current","arrowElement","from","querySelectorAll","noOptionsText","allowDragAndDrop","inputValue","popperElement","popperWidth","Number","onMouseEnter","onMouseLeave","ref","droppableId","toString","direction","provided","innerRef","draggableId","isDragDisabled","draggableProps","dragHandleProps","deleteIcon","onDelete","transform","placement","Autocomplete","PaperComponent","multiple","onClose","disablePortal","disableCloseOnSelect","getOptionLabel","option","getOptionSelected","renderInput","InputProps","endAdornment","autoFocus","renderOption","selected","checked","ConnectedFieldsCheckboxGroup","CustomLanguageMappingFieldContainer","CustomLanguageMappingContainer","fieldset","CustomLanguageMappingLegend","legend","CustomLanguageMappingButton","CustomLanguageMappingRemoveButton","TemplatesAccordion","mapTemplatesToRows","xtmTemplateId","renderTemplateFields","initialTemplates","initialValue","fields","ConnectedUserFields","handleCustomerChange","getTemplates","selectedCustomers","xtmAuthId","xtmCustomerIds","customer","handleOnCustomerChange","mutators","valueIds","removedIndex","findIndex","remove","push","handleSelectAllCustomers","previousTemplates","getState","xtmTemplates","previousCustomers","update","concat","previousCustomerId","templateIndex","handleClearAllCustomers","previousCustomerIndexes","removeBatch","swap","mapCustomersToRows","mapAssignedProjects","initialProjects","assignedProjectIds","assignedProjectId","find","clientProject","kenticoProjectName","getProjectsByClientId","initialCustomers","projectsSpinner","defaultValue","marginY","defaultLanguages","clearTemplates","OrderDirection","checkRoles","routeRoles","userRoles","previous","AddUserContainer","onClientChange","shouldConnectedFieldsRender","xtmProperties","xtmCustomers","change","customerIndex","customerId","orderNumber","templateId","projectIds","editValues","mapCustomers","xtmCustomer","customerTemplates","customerTemplate","currentUser","isClientAdmin","ADMIN_CLIENT","firstName","userSpecification","lastName","interfaceLanguage","daysToDefaultDueDate","allowDueDateChange","notifyWhenTranslationImported","notifyWhenXTMWorkflowChange","xtmProjectNamePrefix","daysAfterRemoveArchivedOrDeletedFiles","daysAfterRemoveCancelledJobs","arrayMutators","TableActionTypes","setPaginationOptions","setPaginationOptionsNoEmit","clearPaginationOptions","setPaginationSearch","setPaginationAction","setPaginationSearchSpinner","getPaginationOptionsSelector","paginationOptions","getPaginationSearchSpinnerSelector","searchSpinner","parseDateBulk","contentParsed","content","element","createdAtParsed","modifiedAtParsed","parseDate","customTableStyle","container","iconContainer","spinnerCell","CustomPaginationContainer","td","CustomTableRow","TableRow","CustomPaginationActionsContainer","CustomPaginationSelect","PaginationTransLabel","Fragment","Trans","i18nKey","CustomPagination","onChangePage","onChangeRowsPerPage","page","rowsPerPage","columns","pages","Math","ceil","colSpan","rowOption","MenuItem","Pagination","tableEmptyStyles","icon","TableEmpty","CustomTable","onChangeOrder","property","orderBy","order","isAsc","ASC","DESC","paginationProps","pageable","totalElements","nativeSelect","parseColumn","renderEmpty","fetchSpinnerOverride","paginationAction","onEdit","onDuplicate","displayActionsLabel","TableContainer","Table","TableHead","headCell","TableCell","sortDirection","TableSortLabel","active","className","TableBody","hover","header","TableFooter","mapStateToProps","mapDispatchToProps","CustomTableContainer","iconButtonLabelStyle","Text","IconButtonLabel","buttonLabelKey","onAdd","tableToolbarStyles","TableToolbar","searchValue","debounceFn","throttleFn","onInputChange","persist","throttle","debounce","setSearch","callbackFunc","limit","wait","timeout","clearTimeout","startAdornment","TestTable","AdministratorsContainer","history","ClientsContainer","Kentico","ProjectConnectAccordion","unsubscribeForm","formValues","onConnect","managementApiKey","deliveryApiKey","isConnected","connectSubscription","subscribeActionAfter","getFieldState","setConnection","connectErrorSubscription","apiKeySubscription","action","connectedData","kenticoSpinner","isProjectIdEditable","clientForm","Name","isOverflown","checkIfOverflown","scrollHeight","scrollWidth","typographyProps","maxLines","textColor","NameTypographyWidth","lines","CustomTooltipTypography","CustomAutocomplete","renderTags","getTagProps","tag","renderCustomTags","renderAdornment","multi","CustomTooltip","React","ConnectedProjectFields","usersForWebhooksRef","webhooks","workflowSteps","contentTypes","contentElements","LanguageMappingContainer","handleAddLanguageMapping","xtmLanguage","kenticoLanguage","setFilteredLanguages","handleRemoveLanguageMapping","onKenticoLanguageChange","filteredLanguages","kenticoLanguages","languageMappingFields","choosedKenticoLanguages","language","languageMappingField","xtmLanguages","getKenticoLanguageValue","ProjectFormContainer","parsedData","parseSubmitFormData","clientChanged","assignedUserIds","setKontentProjectId","clientsSubscription","usersSubscription","kenticoConnectSubscription","_","previousState","shouldClearDetails","contentTypeIds","contentElementTypes","handledWorkflowIds","translatedContentWorkflowStepId","webhookIds","usersForWebhooks","languageMapping","initialize","parseFormData","translate","field","clearDetails","foundClient","workflowStep","assignedClient","projectName","codeName","contentId","usersAssigned","stepId","webhookId","userUUID","kontentLanguageName","kontentLanguageCode","xtmLanguageCode","xtmLanguageName","parseAutocompleteFieldToValue","assignedUsersUUID","handledWorkflowStepIds","requiredFields","fieldKey","editableKontentProjectId","projectData","ProjectsTable","ProjectsContainer","getUsersPageableSelector","UserTable","UsersContainer","mainRoutes","ADMIN_XTM","navbar","routeTextKey","AddClientContainer","navbarStyles","routeValues","Navbar","pagesToRender","setTabValue","startsWith","handleTabChange","Tabs","Tab","MainLayoutComponent","renderRoute","isAuth","createBrowserHistory","NotificationActionTypes","showError","showSuccessful","closeAlert","displayed","withSnackbar","notifications","store","notify","useSnackbar","enqueueSnackbar","closeSnackbar","message","reason","myKey","onExited","_event","dp","notistackRef","onClickDismiss","App","browserHistory","hostname","ProjecValidationErrorEnum","ActionSourceType","administratorEpics","combineEpics","action$","pipe","ofType","switchMap","of","catchError","skipMessage","getAllAdministrators","actions$","getAdministrator","initState","administratorReducer","createReducer","builder","addCase","clientEpics","getAllClients$GET$api_client_pageable","getAllClients$GET$api_client","getClient","clientReducer","notifyReducer","getTime","floor","random","projectEpics","getAllProjects","state$","getWebhookList","connectedProjectId","getWorkflowStepList","connectKontentProject","getContentTypesListByKontentProject","getContentElementTypesList","getProjectLanguageListByKontentProject","getLanguages","getProject","getAllProjectsByClientId","zip","mergeMap","observer","selectedClientId","dataFetchedCount","projectReducer","kenticoConnect","addMatcher","isAnyOf","errorMessage","errorCode","isProjectIdError","SpinnerActionTypes","setFetchSpinner","setTemplateSpinner","setCustomerSpinner","setConnectDataSpinner","setConnectToXtmSpinner","setConnectToCMSSpinner","setDefaultUserLanguageSpinner","setProjectSpinner","setKenticoDataSpinner","setKenticoConnectSpinner","spinnerEpics","debounceTime","endsWith","spinnerReducer","tableEpics","dispatchAction","sort","EMPTY","tableReducer","userEpics","authenticateAdmin","tap","removeItem","sendResetPasswordEmailForAdmin","pluck","delayWhen","timer","verifyResetPasswordToken","getAllUsers","getUser","res","connectToXtm","getXTMCustomers$GET$api_xtm_customers","getXTMTemplates","getXTMCustomersForExistingUser","getXTMConnectionParameters","reconnectToXtm","sendResetPasswordEmail","href","getAllUsersList","userReducer","AvailableErrorActionTypes","errorEpics","actionType","COMMON","errorData","errorArguments","errorTypes","split","argument","CONTENT_TYPES","WORKFLOWS","WEBHOOKS","USERS","checkProjectValidation","args","appReducer","combineReducers","epicMiddleware","createEpicMiddleware","dependencies","configureStore","reducer","middleware","subscribeActionMiddleware","devTools","run","ReactDOM","StrictMode","ThemeProvider","styles","document","getElementById","Sentry","dsn","REACT_APP_SENTRY_DSN","environment","addEventListener","navigator","serviceWorker","ready","registration","unregister","catch"],"mappings":"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","file":"static/js/main.b7422a34.chunk.js","sourcesContent":["import { css, SerializedStyles } from '@emotion/core';\n\nexport const mainStyles = (): SerializedStyles => css`\n *,\n *:before,\n *:after {\n box-sizing: border-box;\n font-family: 'Roboto', sans-serif;\n }\n\n html {\n display: table;\n height: 100%;\n width: 100%;\n margin: 0;\n padding: 0;\n }\n\n body {\n display: table-cell;\n width: 100%;\n margin: 0;\n padding: 0;\n font-weight: 400;\n font-family: Lato, arial, sans-serif;\n text-rendering: optimizeLegibility;\n font-smooth: always;\n -webkit-font-smoothing: antialiased;\n font-kerning: auto;\n background: #eff3f7;\n }\n\n #root {\n width: 100%;\n height: 100%;\n }\n\n a:link {\n color: #0c93e4;\n }\n\n a:visited {\n color: #0c93e4;\n }\n\n @supports (-moz-appearance: none) {\n #root {\n height: 100vh;\n }\n }\n`;\n","import { createMuiTheme } from '@material-ui/core';\n\nexport const theme = createMuiTheme({\n overrides: {\n MuiSvgIcon: {\n root: {\n padding: '2px',\n },\n },\n MuiTablePagination: {\n toolbar: {\n background: '#fff',\n },\n },\n MuiButton: {\n root: {\n textTransform: 'none',\n fontWeight: 400,\n },\n },\n MuiTabs: {\n root: {\n backgroundColor: '#fff',\n },\n indicator: {\n backgroundColor: '#00A4E4',\n height: '4px',\n },\n },\n MuiFormControl: {\n root: {\n marginBottom: '4px',\n marginTop: '8px',\n },\n },\n MuiTableSortLabel: {\n root: {\n color: '#333333 !important',\n },\n },\n MuiTableCell: {\n head: {\n fontSize: '15px',\n fontWeight: 700,\n background: '#fff',\n padding: '7px 16px',\n },\n body: {\n padding: '3px 16px 4px 16px',\n color: '#333333 !important',\n },\n stickyHeader: {\n backgroundColor: '#fff',\n },\n },\n MuiTableRow: {\n root: {\n backgroundColor: '#fff',\n '&.MuiTableRow-hover:hover': {\n backgroundColor: '#ccedfa',\n },\n },\n },\n MuiTableContainer: {\n root: {\n width: 'auto',\n },\n },\n MuiTab: {\n root: {\n textTransform: 'none',\n fontSize: '15px',\n opacity: '1 !important',\n minWidth: '80px !important',\n padding: '6px 19px',\n },\n },\n MuiAppBar: {\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n padding: '16px 21px 20px 16px',\n boxShadow: 'none',\n justifyContent: 'space-between',\n },\n },\n MuiTextField: {\n root: {\n background: '#fff',\n },\n },\n MuiSelect: {\n root: {\n background: '#fff',\n },\n },\n MuiInputBase: {\n root: {\n color: '#333',\n fontSize: '14px',\n },\n },\n MuiOutlinedInput: {\n adornedStart: {\n paddingLeft: '0px',\n },\n inputMarginDense: {\n paddingTop: '8px',\n paddingBottom: '8px',\n },\n root: {\n height: '32px',\n },\n marginDense: {\n padding: '2.815px 0 !important',\n },\n },\n },\n palette: {\n primary: {\n main: '#2e3645',\n contrastText: '#FFFFFF',\n light: '5EB555',\n },\n secondary: {\n main: '#0096eb',\n },\n text: {\n secondary: '#6F8294',\n },\n },\n});\n","/* eslint-disable no-console */\n\n/**\n * Clears workers cache and force reloads page\n */\nconst clearCaches = async (): Promise => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window.location.reload as any)(true);\n if (caches) {\n try {\n const keys = await caches.keys();\n keys.forEach(async (key) => {\n await caches.delete(key);\n });\n } catch {\n console.error(\"Couldn't clear worker cache\");\n }\n }\n};\n\n/**\n * Compares app version with currently deployed version and clears cache if needed\n */\nexport const checkVersion = async (): Promise => {\n const currentVersion = process.env.REACT_APP_VERSION;\n let metaVersion: string | undefined;\n try {\n metaVersion = (await (await fetch('./meta.json')).json()).version;\n } catch {\n console.error(\"Couldn't fetch meta.json\");\n return;\n }\n\n if (currentVersion !== metaVersion) {\n await clearCaches();\n }\n};\n","import i18next from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\n// eslint-disable-next-line id-match\nimport { initReactI18next } from 'react-i18next';\nimport locales from 'locales';\n\nconst resources = locales;\n\nconst i18n = i18next;\n\n/**\n * Initializes i18next module with translation from src/locales\n */\nexport function initTranslation(): void {\n i18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n resources,\n lng: 'en',\n fallbackLng: 'en',\n interpolation: {\n escapeValue: false,\n },\n });\n}\n\nexport default i18n;\n","import en from './en';\n\nconst locales = {\n en,\n};\n\nexport default locales;\n","import administrator from './administrator.json';\nimport auth from './auth.json';\nimport client from './client.json';\nimport common from './common.json';\nimport table from './table.json';\nimport users from './users.json';\nimport validator from './validator.json';\nimport projects from './projects.json';\n\nconst en = {\n translation: {\n common,\n client,\n table,\n administrator,\n validator,\n auth,\n users,\n projects,\n },\n};\n\nexport default en;\n","import { css } from '@emotion/core';\n\nexport const appStyle = css`\n text-align: center;\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n","import { css } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport { Button } from '@material-ui/core';\n\nconst loginHeaderStyle = {\n title: css`\n font-size: 17px;\n padding-top: 15px;\n `,\n img: css`\n width: auto;\n height: 29px;\n `,\n logoContainer: css`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n `,\n};\n\nexport const HeaderButton = styled(Button)`\n font-size: 14px !important;\n font-weight: 400 !important;\n color: #fff !important;\n transition: opacity 0.2s !important;\n\n &:hover {\n opacity: 0.8;\n }\n\n svg {\n width: 20px;\n height: 20px;\n padding: 0 4px 0 0;\n }\n`;\n\nexport const HeaderLogoutButton = styled(HeaderButton)`\n color: #219ce6 !important;\n font-size: 14px !important;\n font-weight: 500 !important;\n font-weight: bold !important;\n`;\n\nexport default loginHeaderStyle;\n","export const UserActionTypes = {\n Login: 'USER_LOGIN',\n LoginSuccess: 'USER_LOGIN_SUCCESS',\n LoginError: 'USER_LOGIN_ERROR',\n Logout: 'USER_LOGOUT',\n LogoutSuccess: 'USER_LOGOUT_SUCCESS',\n LogoutError: 'USER_LOGOUT_ERROR',\n ResetPassword: 'USER_RESET_PASSWORD',\n ResetPasswordSuccess: 'USER_RESET_PASSWORD_SUCCESS',\n ResetPasswordError: 'USER_RESET_PASSWORD_ERROR',\n ResetUserPassword: 'USER_RESET_USER_PASSWORD',\n ResetUserPasswordSuccess: 'USER_RESET_USER_PASSWORD_SUCCESS',\n ResetUserPasswordError: 'USER_RESET_USER_PASSWORD_ERROR',\n VerifyToken: 'USER_VERIFY_TOKEN',\n VerifyTokenSuccess: 'USER_VERIFY_TOKEN_SUCCESS',\n VerifyTokenError: 'USER_VERIFY_TOKEN_ERROR',\n RefreshTokenSuccess: 'REFRESH_USER_TOKEN_SUCCESS',\n ChangePasswordSuccess: 'CHANGE_PASSWORD_SUCCESS',\n ChangePasswordError: 'CHANGE_PASSWORD_ERROR',\n ChangePassword: 'CHANGE_PASSWORD',\n ChangeUserPasswordSuccess: 'CHANGE_USER_PASSWORD_SUCCESS',\n ChangeUserPasswordError: 'CHANGE_USER_PASSWORD_ERROR',\n ChangeUserPassword: 'CHANGE_USER_PASSWORD',\n verifyPassTokenSuccess: 'VERIFY_PASS_TOKEN_SUCCESS',\n verifyPassTokenError: 'VERIFY_PASS_TOKEN_ERROR',\n verifyPassToken: 'VERIFY_PASS_TOKEN',\n GetAllUsers: 'GET_ALL_USERS',\n GetAllUsersError: 'GET_ALL_USERS_ERROR',\n GetAllUsersSuccess: 'GET_ALL_USERS_SUCCESS',\n CreateUser: 'CREATE_USER',\n CreateUserSuccess: 'CREATE_USER_SUCCESS',\n CreateUserError: 'CREATE_USER_ERROR',\n UsersPageable: 'USERS-PAGEABLE',\n UsersPageableError: 'USERS_PAGEABLE_ERROR',\n UsersPageableSuccess: 'USERS_PAGEABLE_SUCCESS',\n EditUser: 'EDIT_USER',\n EditUserSuccess: 'EDIT_USER_SUCCESS',\n EditUserError: 'EDIT_USER_ERROR',\n GetUserById: 'GET_USER_BY_ID',\n GetUserByIdSuccess: 'GET_USER_BY_ID_SUCCESS',\n GetUserByIdError: 'GET_USER_BY_ID_ERROR',\n ClearUser: 'CLEAR_USER',\n ClearUserErrors: 'CLEAR_USER_ERROR',\n xtmConnect: 'USER_XTM_CONNECT',\n xtmConnectSuccess: 'USER_XTM_CONNECT_SUCCESS',\n xtmConnectError: 'USER_XTM_CONNECT_ERROR',\n xtmGetCustomers: 'USER_XTM_GET_CUSTOMERS',\n xtmGetCustomersError: 'USER_XTM_GET_CUSTOMERS_ERROR',\n xtmGetCustomersSuccess: 'USER_XTM_GET_CUSTOMERS_SUCCESS',\n xtmGetTemplates: 'USER_XTM_GET_TEMPLATES',\n xtmGetTemplatesSuccess: 'USER_XTM_GET_TEMPLATES_SUCCESS',\n xtmGetTemplatesError: 'USER_XTM_GET_TEMPLATES_ERROR',\n xtmGetCustomersById: 'USER_XTM_GET_CUSTOMERS_BY_ID',\n xtmGetCustomersByIdSuccess: 'USER_XTM_GET_CUSTOMERS_BY_ID_SUCCESS',\n xtmGetCustomersByIdError: 'USER_XTM_GET_CUSTOMERS_BY_ID_ERROR',\n xtmGetConnectData: 'USER_XTM_GET_CONNECT_DATA',\n xtmGetConnectDataSuccess: 'USER_XTM_GET_CONNECT_DATA_SUCCESS',\n xtmGetConnectDataError: 'USER_XTM_GET_CONNECT_DATA_ERROR',\n xtmConnectUser: 'USER_CONNECT_TO_XTM_USER',\n xtmConnectUserError: 'USER_CONNECT_TO_XTM_USER_ERROR',\n xtmConnectUserSuccess: 'USER_CONNECT_TO_XTM_USER_SUCCESS',\n clearTemplates: 'USER_CLEAR_XTM_TEMPLATES',\n getDefaultUserLanguage: 'USER_GET_DEFAULT_LANGUAGE',\n getDefaultUserLanguageSuccess: 'USER_GET_DEFAULT_LANGUAGE_SUCCESS',\n getDefaultUserLanguageError: 'USER_GET_DEFAULT_LANGUAGE_ERROR',\n clearDefaultUserLanguage: 'USER_CLEAR_DEFAULT_LANGUAGE',\n sessionExpired: 'USER_SESSION_EXPIRED',\n showSessionExpired: 'USER_SHOW_SESSION_EXPIRED',\n hideSessionExpired: 'USER_HIDE_SESSION_EXPIRED',\n getUsersByClientId: 'GET_USERS_BT_CLIENT_ID',\n getUsersByClientIdSuccess: 'GET_USERS_BT_CLIENT_ID_SUCCESS',\n getUsersByClientIdError: 'GET_USERS_BT_CLIENT_ID_ERROR',\n};\n\nexport interface IRemindPasswordPayload {\n email: string;\n}\n","import { createAction } from '@reduxjs/toolkit';\nimport { ErrorPayload } from 'store/error/error.epic';\nimport {\n AuthenticationResult,\n Page,\n RefreshTokenResult,\n UserDTO,\n UserOverviewDTO,\n XTMConnectDTO,\n XTMCustomerInfoDTO,\n XTMLanguageDTO,\n XTMTemplateDTO,\n} from 'utils/restApplicationClient';\nimport {\n AuthenticationRequest,\n ChangePasswordDTO,\n CreateUserDTO,\n XTMConnectionParametersDTO,\n XTMConnectRequest,\n} from 'utils/restApplicationClientTypeOverrides';\nimport { IRemindPasswordPayload, UserActionTypes } from './user.actions.types';\nimport { IEditUser, IUsersPageable, XTMGetTemplatesDTO } from './user.interface';\n\nexport const verifyPassToken = createAction(UserActionTypes.verifyPassToken);\nexport const verifyPassTokenSuccess = createAction(UserActionTypes.verifyPassTokenSuccess);\nexport const verifyPassTokenError = createAction(UserActionTypes.verifyPassTokenError);\nexport const changePassword = createAction(UserActionTypes.ChangePassword);\nexport const changePasswordSuccess = createAction(UserActionTypes.ChangePasswordSuccess);\nexport const changePasswordError = createAction(UserActionTypes.ChangePasswordError);\nexport const changeUserPassword = createAction(UserActionTypes.ChangeUserPassword);\nexport const changeUserPasswordSuccess = createAction(UserActionTypes.ChangeUserPasswordSuccess);\nexport const changeUserPasswordError = createAction(UserActionTypes.ChangeUserPasswordError);\nexport const loginUser = createAction(UserActionTypes.Login);\nexport const loginUserSuccess = createAction(UserActionTypes.LoginSuccess);\nexport const loginUserError = createAction(UserActionTypes.LoginError);\n\nexport const logoutUser = createAction(UserActionTypes.Logout);\nexport const logoutUserSuccess = createAction(UserActionTypes.LogoutSuccess);\nexport const logoutUserError = createAction(UserActionTypes.LogoutError);\n\nexport const getUsersByClientId = createAction(UserActionTypes.getUsersByClientId);\nexport const getUsersByClientIdSuccess = createAction(UserActionTypes.getUsersByClientIdSuccess);\nexport const getUsersByClientIdError = createAction(UserActionTypes.getUsersByClientIdError);\n\nexport const resetPassword = createAction(UserActionTypes.ResetPassword);\nexport const resetPasswordSuccess = createAction(UserActionTypes.ResetPasswordSuccess);\nexport const resetPasswordError = createAction(UserActionTypes.ResetPasswordError);\n\nexport const resetUserPassword = createAction(UserActionTypes.ResetUserPassword);\nexport const resetUserPasswordSuccess = createAction(UserActionTypes.ResetUserPasswordSuccess);\nexport const resetUserPasswordError = createAction(UserActionTypes.ResetUserPasswordError);\n\nexport const verifyToken = createAction(UserActionTypes.VerifyToken);\nexport const verifyTokenSuccess = createAction<{ ttl: number }>(UserActionTypes.VerifyTokenSuccess);\nexport const verifyTokenError = createAction(UserActionTypes.VerifyTokenError);\nexport const refreshTokenSuccess = createAction(UserActionTypes.RefreshTokenSuccess);\n\nexport const getAllUsers = createAction(UserActionTypes.GetAllUsers);\nexport const getAllUsersError = createAction(UserActionTypes.GetAllUsersError);\nexport const getAllUsersSuccess = createAction(UserActionTypes.GetAllUsersSuccess);\nexport const createUser = createAction(UserActionTypes.CreateUser);\nexport const createUserSuccess = createAction(UserActionTypes.CreateUserSuccess);\nexport const createUserError = createAction(UserActionTypes.CreateUserError);\n\nexport const usersPageable = createAction(UserActionTypes.UsersPageable);\nexport const usersPageableSuccess = createAction>(UserActionTypes.UsersPageableSuccess);\nexport const usersPageableError = createAction(UserActionTypes.UsersPageableError);\nexport const editUser = createAction(UserActionTypes.EditUser);\nexport const editUserSuccess = createAction(UserActionTypes.EditUserSuccess);\nexport const editUserError = createAction(UserActionTypes.EditUserError);\n\nexport const getUserById = createAction(UserActionTypes.GetUserById);\nexport const getUserByIdSuccess = createAction(UserActionTypes.GetUserByIdSuccess);\nexport const getUserByIdError = createAction(UserActionTypes.GetUserByIdError);\n\nexport const clearUser = createAction(UserActionTypes.ClearUser);\n\nexport const clearUserErrors = createAction(UserActionTypes.ClearUserErrors);\n\nexport const xtmConnect = createAction(UserActionTypes.xtmConnect);\n\nexport const xtmConnectError = createAction(UserActionTypes.xtmConnectError);\n\nexport const xtmConnectSuccess = createAction(UserActionTypes.xtmConnectSuccess);\n\nexport const xtmConnectUser = createAction<{\n userId: string;\n xtmParameters: XTMConnectRequest;\n}>(UserActionTypes.xtmConnectUser);\n\nexport const xtmConnectUserError = createAction(UserActionTypes.xtmConnectUserError);\n\nexport const xtmConnectUserSuccess = createAction(UserActionTypes.xtmConnectUserSuccess);\n\nexport const xtmGetCustomers = createAction(UserActionTypes.xtmGetCustomers);\n\nexport const xtmGetCustomersError = createAction(UserActionTypes.xtmGetCustomersError);\n\nexport const xtmGetCustomersSuccess = createAction>(UserActionTypes.xtmGetCustomersSuccess);\n\nexport const xtmGetTemplates = createAction(UserActionTypes.xtmGetTemplates);\n\nexport const xtmGetTemplatesError = createAction(UserActionTypes.xtmGetTemplatesError);\n\nexport const xtmGetTemplatesSuccess = createAction<{ [customerId: string]: XTMTemplateDTO[] }>(\n UserActionTypes.xtmGetTemplatesSuccess,\n);\n\nexport const xtmGetCustomersById = createAction(UserActionTypes.xtmGetCustomersById);\n\nexport const xtmGetCustomersByIdError = createAction(UserActionTypes.xtmGetCustomersByIdError);\n\nexport const xtmGetCustomersByIdSuccess = createAction>(\n UserActionTypes.xtmGetCustomersByIdSuccess,\n);\n\nexport const xtmGetConnectData = createAction(UserActionTypes.xtmGetConnectData);\n\nexport const xtmGetConnectDataError = createAction(UserActionTypes.xtmGetConnectDataError);\n\nexport const xtmGetConnectDataSuccess = createAction(\n UserActionTypes.xtmGetConnectDataSuccess,\n);\n\nexport const getDefaultUserLanguages = createAction(UserActionTypes.getDefaultUserLanguage);\nexport const getDefaultUserLanguagesSuccess = createAction(\n UserActionTypes.getDefaultUserLanguageSuccess,\n);\nexport const getDefaultUserLanguagesError = createAction(UserActionTypes.getDefaultUserLanguageError);\nexport const clearDefaultUserLanguages = createAction(UserActionTypes.clearDefaultUserLanguage);\n\nexport const clearXtmTemplates = createAction(UserActionTypes.clearTemplates);\n\nexport const sessionExpired = createAction(UserActionTypes.sessionExpired);\n\nexport const showSessionExpired = createAction(UserActionTypes.showSessionExpired);\n\nexport const hideSessionExpired = createAction(UserActionTypes.hideSessionExpired);\n","import { createSelector } from '@reduxjs/toolkit';\nimport { AppState } from 'store';\nimport { XTMConnectionParametersDTO } from 'utils/restApplicationClientTypeOverrides';\nimport { XTMLanguageDTO } from '../../../../xtm-kontent-app/src/utils/restApplicationClient';\nimport { IUserState } from './user.interface';\n\nconst authSelector = (state: AppState): boolean => state.user.auth;\n\nconst verifyFinishSelector = (state: AppState): boolean => state.user.verifyFinished;\n\nconst userDataSelector = (state: AppState): IUserState['data'] => {\n return state.user.data;\n};\n\nconst userErrorsSelector = (state: AppState): IUserState['errors'] => state.user.errors;\n\nconst userSelector = (state: AppState): IUserState['user'] => state.user.user;\n\nconst xtmAuthorizationIdSelector = ({ user: { xtmAuthorizationId } }: AppState): IUserState['xtmAuthorizationId'] =>\n xtmAuthorizationId;\n\nconst xtmCustomersSelector = ({ user: { customers } }: AppState): IUserState['customers'] => customers;\n\nconst xtmTemplatesSelector = ({ user: { templates } }: AppState): IUserState['templates'] => templates;\n\nconst xtmConnectDataSelector = ({ user: { connectData } }: AppState): XTMConnectionParametersDTO | undefined =>\n connectData;\n\nconst sessionExpiredSelector = ({ user: { sessionExpired } }: AppState): boolean => sessionExpired;\n\nexport const getAuthSelector = createSelector(authSelector, (auth) => auth);\n\nexport const getVerifyFinishSelector = createSelector(verifyFinishSelector, (finished) => finished);\n\nexport const getUserDataSelector = createSelector(userDataSelector, (roles) => roles);\n\nexport const getUserErrorsSelector = createSelector(userErrorsSelector, (errors) => errors);\n\nexport const getUserSelector = createSelector(userSelector, (user) => user);\n\nexport const getXtmAuthorizationIdSelector = createSelector(\n xtmAuthorizationIdSelector,\n (authorizationId) => authorizationId,\n);\n\nexport const getXtmCustomersSelector = createSelector(xtmCustomersSelector, (customers) => customers);\n\nexport const getXtmTemplatesSelector = createSelector(xtmTemplatesSelector, (templates) =>\n Array.isArray(templates) && templates.length === 0 ? undefined : templates,\n);\n\nexport const getXtmConnectDataSelector = createSelector(xtmConnectDataSelector, (connectData) => connectData);\n\nexport const allDefaultUserLanguages = (state: AppState): XTMLanguageDTO[] | undefined =>\n state.user.defaultUserLanguages;\nexport const getDefaultUserLanguagesSelector = createSelector(allDefaultUserLanguages, (languages) => languages);\n\nexport const getSessionExpiredSeletor = createSelector(sessionExpiredSelector, (sessionExpired) => sessionExpired);\n","import styled from '@emotion/styled';\n\nexport const ModalDropdown = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 9999;\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ModalWindow = styled.div`\n background-color: #eff3f7;\n text-align: center;\n border-radius: 15px;\n border: 2px solid #2e3645;\n width: 300px;\n button:last-child {\n margin-bottom: 20px;\n }\n`;\n\nexport const ModalLogoBar = styled.div`\n height: 100px;\n width: 100%;\n background-color: #2e3645;\n padding: 20px;\n border-top-right-radius: 12px;\n border-top-left-radius: 12px;\n > img {\n height: 100%;\n }\n`;\nexport const ModalTextDiv = styled.div`\n padding: 20px 40px;\n p:first-of-type {\n margin-bottom: 10px;\n }\n`;\n","/** @jsx jsx */\nimport { css, jsx } from '@emotion/core';\nimport { Button, Typography } from '@material-ui/core';\nimport loginHeaderStyle from 'components/LoginHeader/LoginHeader.style';\nimport { Component } from 'react';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { logoutUser, sessionExpired } from 'store/user/user.actions';\nimport { getSessionExpiredSeletor } from 'store/user/user.selectors';\nimport { ModalDropdown, ModalLogoBar, ModalTextDiv, ModalWindow } from './SessionExpiredModal.styled';\n\ninterface IStateProps {\n sessionExpired: boolean;\n}\n\ninterface IDispatchProps {\n setSessionExpired: (payload: boolean) => AppDispatch;\n logout: () => AppDispatch;\n}\n\ntype PropType = WithTranslation & IDispatchProps & IStateProps;\n\nclass SessionExpiredModal extends Component {\n handleClick = (): void => {\n const { setSessionExpired, logout } = this.props;\n setSessionExpired(false);\n logout();\n };\n\n render(): JSX.Element {\n const { t, sessionExpired } = this.props;\n const visibility = css`\n visibility: ${sessionExpired ? 'visible' : 'hidden'};\n `;\n return (\n \n \n \n \n \n \n {t('auth.sessionExpired.text1')}\n {t('auth.sessionExpired.text2')}\n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n sessionExpired: getSessionExpiredSeletor(state),\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n setSessionExpired: (payload: boolean): AppDispatch => dispatch(sessionExpired(payload)),\n logout: (): AppDispatch => dispatch(logoutUser()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(SessionExpiredModal));\n","import React from 'react';\n\nexport default function Help(): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport default function Logout(): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport default function ReleaseNotes(): JSX.Element {\n return (\n \n \n \n );\n}\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n// Generated using typescript-generator version 2.24.612 on 2023-03-28 09:47:39.\n\nimport { AuthenticationRequest, ChangePasswordDTO, CreateAdministratorDTO, CreateUserDTO, GetTemplatesDTO, TranslationProduct, UpdateAdministratorDTO, UpdateUserDTO, UserAuthenticationRequest, XTMConnectionParametersDTO, XTMConnectRequest, FilteringParamsDTO } from \"./restApplicationClientTypeOverrides\";\n\nexport interface AbstractCreateOrUpdateUserDTO extends Serializable {\n firstName: string;\n lastName: string;\n interfaceLanguage: string;\n email: string;\n clientUUID: string;\n status: boolean;\n daysToDefaultDueDate: number;\n assignedProjectIds: string[];\n xtmCustomers: XTMCustomerDTO[];\n xtmProjectNamePrefix: string;\n daysAfterRemoveArchivedOrDeletedFiles: number;\n daysAfterRemoveCancelledJobs: number;\n notifyWhenTranslationImported: boolean;\n allowDueDateChange: boolean;\n notifyWhenXTMWorkflowChange: boolean;\n}\n\nexport interface XTMCustomerDTO extends Serializable {\n xtmCustomerId: number;\n xtmTemplates: XTMCustomerTemplateDTO[];\n orderNumber: number;\n}\n\nexport interface Serializable {\n}\n\nexport interface AdministratorDTO extends BaseDTO, Serializable {\n email: string;\n status: boolean;\n clientName: string;\n client: ClientDTO;\n}\n\nexport interface AuthenticationResult {\n accessToken: string;\n ttl: number;\n refreshToken: string;\n username: string;\n roles: string[];\n}\n\nexport interface RefreshTokenResult {\n accessToken: string;\n ttl: number;\n refreshToken: string;\n username: string;\n roles: string[];\n}\n\nexport interface CreateClientDTO extends Serializable {\n clientName: string;\n status: boolean;\n}\n\nexport interface UpdateClientDTO extends Serializable {\n clientName: string;\n status: boolean;\n}\n\nexport interface ClientDTO extends BaseDTO, Serializable {\n clientName: string;\n status: boolean;\n}\n\nexport interface KontentConnectRequest extends Serializable {\n code: string;\n}\n\nexport interface KontentProductDTO extends Serializable {\n id: string;\n name: string;\n codeName: string;\n typeName: string;\n typeCodeName: string;\n workflowStep: string;\n dueDate: Date;\n publishedDate: Date;\n lastModification: Date;\n}\n\nexport interface XTMConnectDTO extends Serializable {\n xtmAuthorizationId: string;\n}\n\nexport interface ActiveProjectSearchDTO extends Serializable {\n sourceLanguage: string;\n targetLanguages: string[];\n customerId: number;\n}\n\nexport interface GetCustomersDTO extends Serializable {\n defaultCustomerId: number;\n customers: XTMCustomerInfoDTO[];\n}\n\nexport interface XTMProjectVerifyDTO extends Serializable {\n customerId: number;\n templateId: number;\n sourceLanguage: string;\n targetLanguages: string[];\n entries: TranslationProduct[];\n}\n\nexport interface XTMProjectEntryVerifyDTO extends Serializable {\n entries: XTMProjectEntriesVerifyDTO[];\n haveProjects: boolean;\n}\n\nexport interface MassOperationRequest extends Serializable {\n jobsIds: string[];\n operation: JobOperation;\n}\n\nexport interface JobsErrorCodeIgnoreDTO extends Serializable {\n jobUUIDs: string[];\n errorMessageCode: string;\n}\n\nexport interface ChangedKontentRequest {\n requestId: string;\n operation: Operation;\n productIds?: string[];\n kontentLanguagesCodes?: string[];\n}\n\nexport interface Resource extends InputStreamSource {\n open: boolean;\n file: any;\n readable: boolean;\n url: URL;\n uri: URI;\n description: string;\n filename: string;\n}\n\nexport interface ResetPasswordDTO extends Serializable {\n email: string;\n language: string;\n}\n\nexport interface VerifyTokenDTO extends Serializable {\n token: string;\n}\n\nexport interface ApiKeysDTO extends Serializable {\n kontentProjectId: string;\n managementApiKey: string;\n deliveryApiKey: string;\n}\n\nexport interface CreateOrUpdateProjectDTO extends Serializable {\n projectName: string;\n clientUUID: string;\n kontentProjectId: string;\n status: boolean;\n contentTypeIds: string[];\n contentElementTypes: ContentElementType[];\n handledWorkflowStepIds: string[];\n translatedContentWorkflowStepId: string;\n webhookIds: string[];\n usersForWebhooks: AssignedWebhookUserDTO[];\n assignedUsersUUID: string[];\n languageMapping: KontentProjectLanguageMappingDTO[];\n}\n\nexport interface KontentProjectDTO extends BaseDTO {\n clientUUID: string;\n name: string;\n status: boolean;\n kontentProjectId: string;\n contentTypeIds: string[];\n contentElementTypes: ContentElementType[];\n handledWorkflowIds: string[];\n translatedContentWorkflowStepId: string;\n webhookIds: string[];\n usersForWebhooks: AssignedWebhookUserDTO[];\n assignedUserIds: string[];\n languageMapping: KontentProjectLanguageMappingDTO[];\n editableKontentProjectId: boolean;\n}\n\nexport interface KontentProjectOverviewDTO extends BaseDTO {\n status: boolean;\n clientName: string;\n kenticoProjectName: string;\n}\n\nexport interface KontentItemsSearchDTO extends Serializable {\n name?: string;\n codeName?: string;\n languageCodeName?: string;\n types: string[];\n workflows: string[];\n taxonomies: KontentItemsTaxonomySearch[];\n}\n\nexport interface KontentContentTypeDTO extends Serializable {\n id: string;\n codeName: string;\n lastModified: Date;\n name: string;\n elements: KontentContentElementDTO[];\n externalId: string;\n contentGroups: ContentGroupDTO[];\n}\n\nexport interface KontentProject {\n id: string;\n name: string;\n environment: string;\n}\n\nexport interface KontentSnippetDTO extends Serializable {\n id: string;\n codeName: string;\n lastModified: string;\n name: string;\n elements: KontentContentElementDTO[];\n externalId: string;\n}\n\nexport interface KontentTaxonomyDTO extends Serializable {\n codeName: string;\n extrenalId: string;\n id: string;\n lastModified: string;\n name: string;\n terms: TaxonomyTerm[];\n}\n\nexport interface TranslateRequestDTO extends Serializable {\n customerId?: number;\n templateId?: number;\n projectName: string;\n description: string;\n products: { [index: string]: TranslationProduct[] };\n sourceLanguage: string;\n targetLanguages: string[];\n dueDate?: Date;\n daysToDefaultDueDate?: number;\n serverUrl: string;\n workflowStepCodeName?: string;\n updateXtmProject: boolean;\n kontentProjectUUID: string;\n userId?: string;\n productIdVersionTimestampNotForUpdateMap?: { [index: string]: number[] };\n}\n\nexport interface UserDueDateChangeDTO extends Serializable {\n allowDueDateChange: boolean;\n daysToDefaultDueDate: number;\n}\n\nexport interface UserProjectPrefixDTO extends Serializable {\n prefix: string;\n}\n\nexport interface UserDTO extends BaseDTO {\n email: string;\n status: boolean;\n clientName: string;\n interfaceLanguage: string;\n client: ClientDTO;\n xtmProperties: UserXTMPropertiesDTO;\n userSpecification: UserSpecificationDTO;\n assignedProjectIds: string[];\n}\n\nexport interface XTMCustomerTemplateDTO extends Serializable {\n xtmTemplateId: number;\n orderNumber: number;\n}\n\nexport interface BaseDTO extends Serializable {\n id: string;\n createdAt: Date;\n modifiedAt: Date;\n}\n\nexport interface Page extends Slice {\n totalPages: number;\n totalElements: number;\n}\n\nexport interface ItemLanguageVariationsDTO extends Serializable {\n itemId: string;\n sourceLanguage: string;\n}\n\nexport interface ScheduledTimeDTO extends Serializable {\n scheduledTo: Date;\n}\n\nexport interface XTMProjectDTO extends Serializable {\n id: number;\n name: string;\n status: string;\n activityEnum: ActivityEnum;\n}\n\nexport interface XTMCustomerInfoDTO extends Serializable {\n xtmCustomerId: number;\n name: string;\n}\n\nexport interface XTMProjectEntriesVerifyDTO extends Serializable {\n entryId: string;\n entryName: string;\n projectId: number;\n}\n\nexport interface XTMLanguageDTO extends Serializable {\n xtmLanguageCode: string;\n xtmLanguageName: string;\n}\n\nexport interface XTMTemplateDTO extends Serializable {\n xtmTemplateId: number;\n name: string;\n}\n\nexport interface XTMWorkflowStepDTO extends Serializable {\n step: string;\n}\n\nexport interface KontentContentDTO extends BaseDTO {\n frontendId: string;\n content: string;\n jobs: KontentContentJob[];\n}\n\nexport interface ProjectDTO extends Serializable {\n id: string;\n xtmId: number;\n name: string;\n customer: string;\n createdAt: Date;\n dueDate: Date;\n progress: number;\n status: CompletionStatusEnum;\n sourceLanguage: string;\n sourceLanguageName: string;\n targetLanguages: ProjectTargetLanguageDTO[];\n inAnalysis: boolean;\n joinedFilesInXTM: boolean;\n}\n\nexport interface URL extends Serializable {\n}\n\nexport interface URI extends Comparable, Serializable {\n}\n\nexport interface InputStreamSource {\n inputStream: any;\n}\n\nexport interface ChangedProductsDTO extends Serializable {\n productId: string;\n name: string;\n}\n\nexport interface AssignedWebhookUserDTO extends Serializable {\n userUUID: string;\n orderNumber: number;\n}\n\nexport interface KontentProjectLanguageMappingDTO extends Serializable {\n xtmLanguageCode: string;\n xtmLanguageName: string;\n kontentLanguageCode: string;\n kontentLanguageName: string;\n}\n\nexport interface KontentItemsTaxonomySearch extends Serializable {\n taxonomyGroupKeys: string[];\n taxonomyTerms: string[];\n}\n\nexport interface KontentLanguageDTO extends Serializable {\n id: string;\n name: string;\n codeName: string;\n externalId: string;\n isActive: boolean;\n isDefault: boolean;\n}\n\nexport interface KontentDeliveryTaxonomyDTO extends Serializable {\n name: string;\n codeName: string;\n terms: KontentDeliveryTaxonomyTerm[];\n taxonomyGroupKeys: string[];\n}\n\nexport interface KontentContentElementTypeDTO extends Serializable {\n name: string;\n codeName: string;\n}\n\nexport interface KontentContentElementDTO extends Serializable {\n name: string;\n type: ContentElementType;\n id: string;\n codeName: string;\n externalId: string;\n guideLines: string;\n assetCountLimit: ValueCondition;\n maximumFileSize: number;\n allowedFileTypes: AllowedFileType;\n imageWidthLimit: ValueCondition;\n imageHeightLimit: ValueCondition;\n contentGroup: IdObject;\n sourceUrl: string;\n jsonParameters: string;\n allowedElements: IdObject[];\n itemCountLimit: ValueCondition;\n allowedContentTypes: IdObject[];\n mode: ContentElementMode;\n options: ContentElementOption[];\n maximumTextLength: ContentElementElementValueAppliedTo;\n maximumImageSize: number;\n allowedBlocks: AllowedBlock[];\n allowedTextBlocks: AllowedTextBlock[];\n allowedFormatting: AllowedFormatting[];\n allowedTableBlocks: AllowedTableBlock[];\n allowedTableTextBlocks: AllowedTextBlock[];\n allowedTableFormatting: AllowedFormatting[];\n allowedImageTypes: AllowedFileType;\n snippet: IdObject;\n taxonomyGroup: IdObject;\n dependsOn: DependentElement;\n required: boolean;\n}\n\nexport interface ContentGroupDTO extends Serializable {\n id: string;\n name: string;\n codeName: string;\n externalId: string;\n}\n\nexport interface TaxonomyTerm {\n id: string;\n name: string;\n terms?: TaxonomyTerm[];\n codename: string;\n external_id: string;\n}\n\nexport interface KontentWebhookDTO extends Serializable {\n id: string;\n name: string;\n lastModified: string;\n}\n\nexport interface KontentWorkflowStepDTO extends Serializable {\n id: string;\n name: string;\n codeName: string;\n transitionsTo: string[];\n}\n\nexport interface SkippedItemDTO extends Serializable {\n id: string;\n productId: string;\n productName: string;\n}\n\nexport interface UserOverviewDTO extends BaseDTO {\n email: string;\n status: boolean;\n clientName: string;\n}\n\nexport interface RequesterDTO extends Serializable {\n id: string;\n name: string;\n}\n\nexport interface UserXTMPropertiesDTO extends BaseDTO {\n xtmCustomers: XTMCustomerDTO[];\n xtmProjectNamePrefix: string;\n daysAfterRemoveArchivedOrDeletedFiles: number;\n daysAfterRemoveCancelledJobs: number;\n}\n\nexport interface UserSpecificationDTO extends BaseDTO {\n firstName: string;\n lastName: string;\n generateAndUploadScreenshots: boolean;\n automaticImport: boolean;\n importPerJobs: boolean;\n importAllJobs: boolean;\n notifyWhenTranslationImported: boolean;\n allowDueDateChange: boolean;\n importInterval: number;\n daysToDefaultDueDate: number;\n notifyWhenXTMWorkflowChange: boolean;\n}\n\nexport interface Sort extends Streamable, Serializable {\n unsorted: boolean;\n sorted: boolean;\n}\n\nexport interface Pageable {\n offset: number;\n sort: Sort;\n paged: boolean;\n unpaged: boolean;\n pageNumber: number;\n pageSize: number;\n}\n\nexport interface KontentContentJob extends Serializable {\n targetLanguage: string;\n status: XTMJobStatus;\n}\n\nexport interface ProjectTargetLanguageDTO extends Serializable {\n name: string;\n progress: number;\n status: XTMJobStatus;\n language: string;\n files: ProjectDataDTO[];\n}\n\nexport interface KontentDeliveryTaxonomyTerm extends Serializable {\n name: string;\n codeName: string;\n terms: KontentDeliveryTaxonomyTerm[];\n}\n\nexport interface ValueCondition {\n value: number;\n condition: AssetCondition;\n}\n\nexport interface IdObject {\n id: string;\n}\n\nexport interface ContentElementOption {\n id: string;\n name: string;\n codename: string;\n external_id: string;\n}\n\nexport interface ContentElementElementValueAppliedTo {\n value: number;\n applies_to: TextAppliedTo;\n}\n\nexport interface DependentElement {\n element: IdObject;\n snippet: IdObject;\n}\n\nexport interface Slice extends Streamable {\n size: number;\n content: T[];\n number: number;\n sort: Sort;\n numberOfElements: number;\n pageable: Pageable;\n first: boolean;\n last: boolean;\n}\n\nexport interface ProjectDataDTO extends Serializable {\n id: string;\n xtmId: number;\n name: string;\n requester: string;\n createdAt: Date;\n dueDate: Date;\n workflowStep: string;\n progress: number;\n status: XTMJobStatus;\n errorMessage: string;\n errorMessagesDetails: string[];\n joinedFile: boolean;\n}\n\nexport interface Comparable {\n}\n\nexport interface Streamable extends Iterable, Supplier> {\n empty: boolean;\n}\n\nexport interface Order extends Serializable {\n direction: Direction;\n property: string;\n ignoreCase: boolean;\n nullHandling: NullHandling;\n ascending: boolean;\n descending: boolean;\n}\n\nexport interface Iterable {\n}\n\nexport interface Supplier {\n}\n\nexport interface Stream extends BaseStream> {\n}\n\nexport interface BaseStream extends AutoCloseable {\n parallel: boolean;\n}\n\nexport interface AutoCloseable {\n}\n\nexport interface RestApplication {\n\n /**\n * HTTP GET /\n * Java method: cloud.xtm.kontent.backend.common.app.api.RootController.getRoot\n */\n getRoot(options?: O): RestResponse;\n\n /**\n * HTTP GET /api\n * Java method: cloud.xtm.kontent.backend.common.app.api.RootController.getApiRoot\n */\n getApiRoot(options?: O): RestResponse;\n\n /**\n * HTTP POST /api/administrators\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.createAdministrator\n */\n createAdministrator(createAdministrator: CreateAdministratorDTO, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/administrators/pageable\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.getAllAdministrators\n */\n getAllAdministrators(queryParams?: { search?: string; page?: number; size?: number; sort?: string; }, options?: O): RestResponse>;\n\n /**\n * HTTP DELETE /api/administrators/{administratorId}\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.deleteAdministrator\n */\n deleteAdministrator(administratorId: string, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/administrators/{administratorId}\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.editAdministrator\n */\n editAdministrator(administratorId: string, updateAdministrator: UpdateAdministratorDTO, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/administrators/{administratorId}\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.getAdministrator\n */\n getAdministrator(administratorId: string, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/auth/admin\n * Java method: cloud.xtm.kontent.backend.auth.app.api.AuthController.authenticateAdmin\n */\n authenticateAdmin(authRequest: AuthenticationRequest, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/auth/refreshToken\n * Java method: cloud.xtm.kontent.backend.auth.app.api.AuthController.refreshToken\n */\n refreshToken(options?: O): RestResponse;\n\n /**\n * HTTP POST /api/auth/user\n * Java method: cloud.xtm.kontent.backend.auth.app.api.AuthController.authenticateUser\n */\n authenticateUser(authRequest: UserAuthenticationRequest, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/client\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.createClient\n */\n createClient(createClient: CreateClientDTO, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/client\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.getAllClients\n */\n getAllClients$GET$api_client(options?: O): RestResponse;\n\n /**\n * HTTP GET /api/client/pageable\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.getAllClients\n */\n getAllClients$GET$api_client_pageable(queryParams?: { search?: string; page?: number; size?: number; sort?: string; }, options?: O): RestResponse>;\n\n /**\n * HTTP DELETE /api/client/{clientId}\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.deleteClient\n */\n deleteClient(clientId: string, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/client/{clientId}\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.editClient\n */\n editClient(clientId: string, updateClient: UpdateClientDTO, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/client/{clientId}\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.getClient\n */\n getClient(clientId: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/content/customers\n * Java method: cloud.xtm.kontent.backend.integration.xtm.content.api.XTMAddContentController.getXTMCustomers\n */\n getXTMCustomers$GET$api_content_customers(options?: O): RestResponse;\n\n /**\n * HTTP POST /api/content/entries/verify\n * Java method: cloud.xtm.kontent.backend.integration.xtm.content.api.XTMAddContentController.verify\n */\n verify(xtmProject: XTMProjectVerifyDTO, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/content/projects/active\n * Java method: cloud.xtm.kontent.backend.integration.xtm.content.api.XTMAddContentController.getActiveXTMProjects\n */\n getActiveXTMProjects(activeProjectSearch: ActiveProjectSearchDTO, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/content/templates/{xtmCustomerId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.content.api.XTMAddContentController.getXTMTemplatesForExistingUser\n */\n getXTMTemplatesForExistingUser(xtmCustomerId: number, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/contents/check-statuses\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ContentController.checkStatusesForContents\n */\n checkStatusesForContents(frontendIds: string[], options?: O): RestResponse;\n\n /**\n * HTTP POST /api/jobs\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.performOperation\n */\n performOperation(request: MassOperationRequest, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/jobs/action-for-changed-kontent\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.performActionForChangedKontentJobs\n */\n performActionForChangedKontentJobs(request: ChangedKontentRequest, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/jobs/cancel-for-target-language\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.cancelForTargetLanguage\n */\n cancelForTargetLanguage(queryParams: { targetLanguage: string; projectId: string; }, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/jobs/ignore-error-code\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.ignoreErrorCode\n */\n ignoreErrorCode(jobsErrorCodeIgnoreDTO: JobsErrorCodeIgnoreDTO, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/jobs/operation-applicable-for\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.findJobsIdsByOperationType\n */\n findJobsIdsByOperationType$POST$api_jobs_operationapplicablefor(request: MassOperationRequest, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/jobs/{jobId}/operation-applicable-for\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.findJobsIdsByOperationType\n */\n findJobsIdsByOperationType$GET$api_jobs_jobId_operationapplicablefor(jobId: string, queryParams: { jobOperation: JobOperation; }, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/jobs/{jobId}/update-due-date\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.updateDueDateForJob\n */\n updateDueDateForJob(jobId: string, queryParams: { newDueDate: Date; }, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/kontent/connect\n * Java method: cloud.xtm.kontent.backend.integration.kontent.auth.app.api.KontentConnectController.connect\n */\n connect(connectRequest: KontentConnectRequest, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/kontent/connect/refresh\n * Java method: cloud.xtm.kontent.backend.integration.kontent.auth.app.api.KontentConnectController.refresh\n */\n refresh(options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/connect/status\n * Java method: cloud.xtm.kontent.backend.integration.kontent.auth.app.api.KontentConnectController.status\n */\n status(options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/item\n * Java method: cloud.xtm.kontent.backend.integration.kontent.item.api.KontentItemController.findKontentItem\n */\n findKontentItem(queryParams: { projectId: string; itemId: string; }, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/kontent/item/languages\n * Java method: cloud.xtm.kontent.backend.integration.kontent.item.api.KontentItemController.getItemLanguageVariations\n */\n getItemLanguageVariations(queryParams: { projectId: string; itemId: string[]; }, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/kontent/item/publish\n * Java method: cloud.xtm.kontent.backend.integration.kontent.item.api.KontentItemController.publishKontentItemLanguageVariant\n */\n publishKontentItemLanguageVariant(kontentScheduledTime?: ScheduledTimeDTO, queryParams: { projectId: string; itemId: string; targetLang: string; }, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/kontent/item/workflow\n * Java method: cloud.xtm.kontent.backend.integration.kontent.item.api.KontentItemController.updateKontentItemLanguageVariantWorkflow\n */\n updateKontentItemLanguageVariantWorkflow(queryParams: { projectId: string; itemId: string; targetLang: string; workflowStepId: string; }, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/delivery/uuid/{project_id}/languages\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getProjectLanguageList\n */\n getProjectLanguageList(project_id: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/delivery/uuid/{project_id}/taxonomies\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getTaxonomyListByKontentProject\n */\n getTaxonomyListByKontentProject(project_id: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/delivery/uuid/{project_id}/types\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getContentTypesList\n */\n getContentTypesList(project_id: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/delivery/{kontentProjectId}/languages\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getProjectLanguageListByKontentProject\n */\n getProjectLanguageListByKontentProject(kontentProjectId: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/delivery/{kontentProjectId}/types\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getContentTypesListByKontentProject\n */\n getContentTypesListByKontentProject(kontentProjectId: string, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/kontent/project/delivery/{project_id}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getItems\n */\n getItems(project_id: string, kontentItemsSearchDTO: KontentItemsSearchDTO, queryParams?: { page?: number; size?: number; sort?: string; }, options?: O): RestResponse>;\n\n /**\n * HTTP GET /api/kontent/project/management/elementtypes\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getContentElementTypesList\n */\n getContentElementTypesList(options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getProjectInfo\n */\n getProjectInfo(project_id: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/snippets\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getSnippetList\n */\n getSnippetList(project_id: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/snippets/{snippet_identifier}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getSnippet\n */\n getSnippet(project_id: string, snippet_identifier: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/taxonomies\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getTaxonomies\n */\n getTaxonomies(project_id: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/taxonomies/{taxonomy_group_identifier}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getTaxonomy\n */\n getTaxonomy(project_id: string, taxonomy_group_identifier: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/types/{type_identifier}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getContentType\n */\n getContentType(project_id: string, type_identifier: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/webhooks\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getWebhookList\n */\n getWebhookList(project_id: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/workflow\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getWorkflowStepList\n */\n getWorkflowStepList(project_id: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/specification/languages/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectSpecificationController.getProjectLanguageMapping\n */\n getProjectLanguageMapping(projectId: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/specification/types/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectSpecificationController.getProjectTypes\n */\n getProjectTypes(projectId: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/project/specification/workflows/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectSpecificationController.getProjectWorkflows\n */\n getProjectWorkflows(projectId: string, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/kontent/projects\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.createProject\n */\n createProject(createProject: CreateOrUpdateProjectDTO, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/projects\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getAllProjectsByClientId\n */\n getAllProjectsByClientId(queryParams: { clientUUID: string; }, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/projects/apikey/{kontentProjectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentApiKeyController.getApiKey\n */\n getApiKey(kontentProjectId: string, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/kontent/projects/connect\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentApiKeyController.connectKontentProject\n */\n connectKontentProject(queryParams: { managementApiKey: string; deliveryApiKey: string; kontentProjectId: string; }, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/projects/kontentId/{kontentProjectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getProjectByKontentProjectId\n */\n getProjectByKontentProjectId(kontentProjectId: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/projects/pageable\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getAllProjects\n */\n getAllProjects(queryParams?: { search?: string; page?: number; size?: number; sort?: string; }, options?: O): RestResponse>;\n\n /**\n * HTTP GET /api/kontent/projects/user\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getAllActiveProjectsByUserId\n */\n getAllActiveProjectsByUserId(options?: O): RestResponse;\n\n /**\n * HTTP DELETE /api/kontent/projects/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.deleteProject\n */\n deleteProject(projectId: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/kontent/projects/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getProject\n */\n getProject(projectId: string, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/kontent/projects/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.updateProject\n */\n updateProject(projectId: string, updateProject: CreateOrUpdateProjectDTO, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/kontent/webhook/item/translate/workflowstepevent\n * Java method: cloud.xtm.kontent.backend.webhook.app.api.KontentWebhookItemController.translateItemOnWorkflowStepEvent\n */\n translateItemOnWorkflowStepEvent(rawBody: string, queryParams: { source_language: string; target_languages: string[]; xtm_customer_id?: number; xtm_template_id?: number; due_date?: number; project_name?: string; description?: string; update_xtm_project?: boolean; workflow_step?: string; }, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/notifications/admin/send-reset-password-email\n * Java method: cloud.xtm.kontent.backend.notification.app.api.NotificationController.sendResetPasswordEmailForAdmin\n */\n sendResetPasswordEmailForAdmin(resetPassword: ResetPasswordDTO, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/notifications/change-password\n * Java method: cloud.xtm.kontent.backend.notification.app.api.NotificationController.changePassword\n */\n changePassword(changePassword: ChangePasswordDTO, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/notifications/send-reset-password-email\n * Java method: cloud.xtm.kontent.backend.notification.app.api.NotificationController.sendResetPasswordEmail\n */\n sendResetPasswordEmail(resetPassword: ResetPasswordDTO, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/notifications/verify-reset-password-token\n * Java method: cloud.xtm.kontent.backend.notification.app.api.NotificationController.verifyResetPasswordToken\n */\n verifyResetPasswordToken(verifyToken: VerifyTokenDTO, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/parametrization/admin-panel-connector-url\n * Java method: cloud.xtm.kontent.backend.parametrization.app.api.AdminPanelParametrizationController.getAdminPanelConnectorUrl\n */\n getAdminPanelConnectorUrl(options?: O): RestResponse;\n\n /**\n * HTTP POST /api/projects/action-for-changed-kontents\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.performActionForChangedKontentProjects\n */\n performActionForChangedKontentProjects(request: ChangedKontentRequest, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/projects/filter\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.filterProjects\n */\n filterProjects(filteringParamsDTO: FilteringParamsDTO, queryParams: { kontentProjectUUID: string; forceUpdate?: boolean; page?: number; size?: number; sort?: string; }, options?: O): RestResponse>;\n\n /**\n * HTTP POST /api/projects/report\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.generateReport\n */\n generateReport(filteringParamsDTO: FilteringParamsDTO, queryParams: { kontentProjectUUID: string; }, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/projects/{projectId}\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.addTargetLanguages\n */\n addTargetLanguages(projectId: string, queryParams: { newTargetLanguages: string[]; }, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/projects/{projectId}/get-changed-kontent-products\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.getChangedKontentProducts\n */\n getChangedKontentProducts(projectId: string, queryParams: { sort: boolean; }, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/projects/{projectId}/remove-target-languages\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.removeTargetLanguagesTargetLanguages\n */\n removeTargetLanguagesTargetLanguages(projectId: string, queryParams: { targetLanguagesToRemove: string[]; }, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/projects/{projectId}/update-due-date\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.updateDueDateForProject\n */\n updateDueDateForProject(projectId: string, queryParams: { newDueDate: Date; }, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/translations/add-to-queue\n * Java method: cloud.xtm.kontent.backend.translation.app.api.XTMTranslationController.addToQueue\n */\n addToQueue(translateRequest: TranslateRequestDTO, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/translations/translate\n * Java method: cloud.xtm.kontent.backend.translation.app.api.XTMTranslationController.translate\n */\n translate(translateRequest: TranslateRequestDTO, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/users\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.createUser\n */\n createUser(createUser: CreateUserDTO, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/users\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getAllUsersList\n */\n getAllUsersList(queryParams: { clientUUID: string; }, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/users/due-date-change\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getAllowDueDateChangeForCurrentUser\n */\n getAllowDueDateChangeForCurrentUser(options?: O): RestResponse;\n\n /**\n * HTTP GET /api/users/pageable\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getAllUsers\n */\n getAllUsers(queryParams?: { search?: string; page?: number; size?: number; sort?: string; }, options?: O): RestResponse>;\n\n /**\n * HTTP GET /api/users/project-prefix\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getProjectPrefixForCurrentUser\n */\n getProjectPrefixForCurrentUser(options?: O): RestResponse;\n\n /**\n * HTTP GET /api/users/requester-list\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getRequestersForProject\n */\n getRequestersForProject(queryParams: { kontentProjectUUID: string; }, options?: O): RestResponse;\n\n /**\n * HTTP DELETE /api/users/{userId}\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.deleteUser\n */\n deleteUser(userId: string, options?: O): RestResponse;\n\n /**\n * HTTP PUT /api/users/{userId}\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.editUser\n */\n editUser(userId: string, updateUser: UpdateUserDTO, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/users/{userId}\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getUser\n */\n getUser(userId: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/xtm/callbacks/jobs/{clientId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.callback.app.api.XTMCallbackController.getJobFinishedCallback\n */\n getJobFinishedCallback(clientId: string, queryParams: { xtmJobId: number; xtmProjectId: number; }, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/xtm/callbacks/project/analysis/finished/{clientId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.callback.app.api.XTMCallbackController.analysisFinished\n */\n analysisFinished(clientId: string, queryParams: { xtmCustomerId: number; xtmProjectId: number; }, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/xtm/callbacks/workflow/{clientId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.callback.app.api.XTMCallbackController.updateWorkflow\n */\n updateWorkflow(clientId: string, queryParams: { additionalData: string; xtmCustomerId: number; xtmProjectId: number; }, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/xtm/connect\n * Java method: cloud.xtm.kontent.backend.integration.xtm.auth.app.api.XTMConnectController.connectToXtm\n */\n connectToXtm(xtmConnectRequest: XTMConnectRequest, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/xtm/connect/{userId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.auth.app.api.XTMConnectController.getXTMConnectionParameters\n */\n getXTMConnectionParameters(userId: string, options?: O): RestResponse;\n\n /**\n * HTTP POST /api/xtm/connect/{userId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.auth.app.api.XTMConnectController.reconnectToXtm\n */\n reconnectToXtm(userId: string, xtmConnectRequest: XTMConnectRequest, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/xtm/customers\n * Java method: cloud.xtm.kontent.backend.integration.xtm.customers.app.api.XTMCustomersController.getXTMCustomers\n */\n getXTMCustomers$GET$api_xtm_customers(queryParams: { xtmAuthId: string; }, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/xtm/customers/current-user\n * Java method: cloud.xtm.kontent.backend.integration.xtm.customers.app.api.XTMCustomersController.getXTMCustomersForCurrentUser\n */\n getXTMCustomersForCurrentUser(options?: O): RestResponse;\n\n /**\n * HTTP GET /api/xtm/customers/{userId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.customers.app.api.XTMCustomersController.getXTMCustomersForExistingUser\n */\n getXTMCustomersForExistingUser(userId: string, options?: O): RestResponse;\n\n /**\n * HTTP GET /api/xtm/languages/languages\n * Java method: cloud.xtm.kontent.backend.integration.xtm.languages.app.api.LanguageController.getLanguages\n */\n getLanguages(options?: O): RestResponse;\n\n /**\n * HTTP GET /api/xtm/templates\n * Java method: cloud.xtm.kontent.backend.integration.xtm.templates.app.api.XTMTemplatesController.getXTMTemplates\n */\n getXTMTemplates(queryParams: { xtmAuthId: string; xtmCustomerIds: number[]; }, options?: O): RestResponse<{ [index: string]: XTMTemplateDTO[] }>;\n\n /**\n * HTTP GET /api/xtm/workflows\n * Java method: cloud.xtm.kontent.backend.integration.xtm.workflow.app.api.WorkflowsController.getXTMWorkflowSteps\n */\n getXTMWorkflowSteps(options?: O): RestResponse;\n}\n\nexport interface HttpClient {\n\n request(requestConfig: { method: string; url: string; queryParams?: any; data?: any; copyFn?: (data: R) => R; options?: O; }): RestResponse;\n}\n\nexport class RestApplicationClient implements RestApplication {\n\n constructor(protected httpClient: HttpClient) {\n }\n\n /**\n * HTTP GET /\n * Java method: cloud.xtm.kontent.backend.common.app.api.RootController.getRoot\n */\n getRoot(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding``, options: options });\n }\n\n /**\n * HTTP GET /api\n * Java method: cloud.xtm.kontent.backend.common.app.api.RootController.getApiRoot\n */\n getApiRoot(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api`, options: options });\n }\n\n /**\n * HTTP POST /api/administrators\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.createAdministrator\n */\n createAdministrator(createAdministrator: CreateAdministratorDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/administrators`, data: createAdministrator, options: options });\n }\n\n /**\n * HTTP GET /api/administrators/pageable\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.getAllAdministrators\n */\n getAllAdministrators(queryParams?: { search?: string; page?: number; size?: number; sort?: string; }, options?: O): RestResponse> {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/administrators/pageable`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP DELETE /api/administrators/{administratorId}\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.deleteAdministrator\n */\n deleteAdministrator(administratorId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"DELETE\", url: uriEncoding`api/administrators/${administratorId}`, options: options });\n }\n\n /**\n * HTTP PUT /api/administrators/{administratorId}\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.editAdministrator\n */\n editAdministrator(administratorId: string, updateAdministrator: UpdateAdministratorDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/administrators/${administratorId}`, data: updateAdministrator, options: options });\n }\n\n /**\n * HTTP GET /api/administrators/{administratorId}\n * Java method: cloud.xtm.kontent.backend.administrators.app.api.ClientAdministratorController.getAdministrator\n */\n getAdministrator(administratorId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/administrators/${administratorId}`, options: options });\n }\n\n /**\n * HTTP POST /api/auth/admin\n * Java method: cloud.xtm.kontent.backend.auth.app.api.AuthController.authenticateAdmin\n */\n authenticateAdmin(authRequest: AuthenticationRequest, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/auth/admin`, data: authRequest, options: options });\n }\n\n /**\n * HTTP GET /api/auth/refreshToken\n * Java method: cloud.xtm.kontent.backend.auth.app.api.AuthController.refreshToken\n */\n refreshToken(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/auth/refreshToken`, options: options });\n }\n\n /**\n * HTTP POST /api/auth/user\n * Java method: cloud.xtm.kontent.backend.auth.app.api.AuthController.authenticateUser\n */\n authenticateUser(authRequest: UserAuthenticationRequest, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/auth/user`, data: authRequest, options: options });\n }\n\n /**\n * HTTP POST /api/client\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.createClient\n */\n createClient(createClient: CreateClientDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/client`, data: createClient, options: options });\n }\n\n /**\n * HTTP GET /api/client\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.getAllClients\n */\n getAllClients$GET$api_client(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/client`, options: options });\n }\n\n /**\n * HTTP GET /api/client/pageable\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.getAllClients\n */\n getAllClients$GET$api_client_pageable(queryParams?: { search?: string; page?: number; size?: number; sort?: string; }, options?: O): RestResponse> {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/client/pageable`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP DELETE /api/client/{clientId}\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.deleteClient\n */\n deleteClient(clientId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"DELETE\", url: uriEncoding`api/client/${clientId}`, options: options });\n }\n\n /**\n * HTTP PUT /api/client/{clientId}\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.editClient\n */\n editClient(clientId: string, updateClient: UpdateClientDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/client/${clientId}`, data: updateClient, options: options });\n }\n\n /**\n * HTTP GET /api/client/{clientId}\n * Java method: cloud.xtm.kontent.backend.clients.app.api.ClientController.getClient\n */\n getClient(clientId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/client/${clientId}`, options: options });\n }\n\n /**\n * HTTP GET /api/content/customers\n * Java method: cloud.xtm.kontent.backend.integration.xtm.content.api.XTMAddContentController.getXTMCustomers\n */\n getXTMCustomers$GET$api_content_customers(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/content/customers`, options: options });\n }\n\n /**\n * HTTP POST /api/content/entries/verify\n * Java method: cloud.xtm.kontent.backend.integration.xtm.content.api.XTMAddContentController.verify\n */\n verify(xtmProject: XTMProjectVerifyDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/content/entries/verify`, data: xtmProject, options: options });\n }\n\n /**\n * HTTP POST /api/content/projects/active\n * Java method: cloud.xtm.kontent.backend.integration.xtm.content.api.XTMAddContentController.getActiveXTMProjects\n */\n getActiveXTMProjects(activeProjectSearch: ActiveProjectSearchDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/content/projects/active`, data: activeProjectSearch, options: options });\n }\n\n /**\n * HTTP GET /api/content/templates/{xtmCustomerId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.content.api.XTMAddContentController.getXTMTemplatesForExistingUser\n */\n getXTMTemplatesForExistingUser(xtmCustomerId: number, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/content/templates/${xtmCustomerId}`, options: options });\n }\n\n /**\n * HTTP POST /api/contents/check-statuses\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ContentController.checkStatusesForContents\n */\n checkStatusesForContents(frontendIds: string[], options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/contents/check-statuses`, data: frontendIds, options: options });\n }\n\n /**\n * HTTP POST /api/jobs\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.performOperation\n */\n performOperation(request: MassOperationRequest, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/jobs`, data: request, options: options });\n }\n\n /**\n * HTTP POST /api/jobs/action-for-changed-kontent\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.performActionForChangedKontentJobs\n */\n performActionForChangedKontentJobs(request: ChangedKontentRequest, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/jobs/action-for-changed-kontent`, data: request, options: options });\n }\n\n /**\n * HTTP PUT /api/jobs/cancel-for-target-language\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.cancelForTargetLanguage\n */\n cancelForTargetLanguage(queryParams: { targetLanguage: string; projectId: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/jobs/cancel-for-target-language`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP PUT /api/jobs/ignore-error-code\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.ignoreErrorCode\n */\n ignoreErrorCode(jobsErrorCodeIgnoreDTO: JobsErrorCodeIgnoreDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/jobs/ignore-error-code`, data: jobsErrorCodeIgnoreDTO, options: options });\n }\n\n /**\n * HTTP POST /api/jobs/operation-applicable-for\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.findJobsIdsByOperationType\n */\n findJobsIdsByOperationType$POST$api_jobs_operationapplicablefor(request: MassOperationRequest, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/jobs/operation-applicable-for`, data: request, options: options });\n }\n\n /**\n * HTTP GET /api/jobs/{jobId}/operation-applicable-for\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.findJobsIdsByOperationType\n */\n findJobsIdsByOperationType$GET$api_jobs_jobId_operationapplicablefor(jobId: string, queryParams: { jobOperation: JobOperation; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/jobs/${jobId}/operation-applicable-for`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP PUT /api/jobs/{jobId}/update-due-date\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.JobsController.updateDueDateForJob\n */\n updateDueDateForJob(jobId: string, queryParams: { newDueDate: Date; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/jobs/${jobId}/update-due-date`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP POST /api/kontent/connect\n * Java method: cloud.xtm.kontent.backend.integration.kontent.auth.app.api.KontentConnectController.connect\n */\n connect(connectRequest: KontentConnectRequest, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/kontent/connect`, data: connectRequest, options: options });\n }\n\n /**\n * HTTP POST /api/kontent/connect/refresh\n * Java method: cloud.xtm.kontent.backend.integration.kontent.auth.app.api.KontentConnectController.refresh\n */\n refresh(options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/kontent/connect/refresh`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/connect/status\n * Java method: cloud.xtm.kontent.backend.integration.kontent.auth.app.api.KontentConnectController.status\n */\n status(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/connect/status`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/item\n * Java method: cloud.xtm.kontent.backend.integration.kontent.item.api.KontentItemController.findKontentItem\n */\n findKontentItem(queryParams: { projectId: string; itemId: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/item`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP POST /api/kontent/item/languages\n * Java method: cloud.xtm.kontent.backend.integration.kontent.item.api.KontentItemController.getItemLanguageVariations\n */\n getItemLanguageVariations(queryParams: { projectId: string; itemId: string[]; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/kontent/item/languages`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP POST /api/kontent/item/publish\n * Java method: cloud.xtm.kontent.backend.integration.kontent.item.api.KontentItemController.publishKontentItemLanguageVariant\n */\n publishKontentItemLanguageVariant(kontentScheduledTime?: ScheduledTimeDTO, queryParams: { projectId: string; itemId: string; targetLang: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/kontent/item/publish`, queryParams: queryParams, data: kontentScheduledTime, options: options });\n }\n\n /**\n * HTTP POST /api/kontent/item/workflow\n * Java method: cloud.xtm.kontent.backend.integration.kontent.item.api.KontentItemController.updateKontentItemLanguageVariantWorkflow\n */\n updateKontentItemLanguageVariantWorkflow(queryParams: { projectId: string; itemId: string; targetLang: string; workflowStepId: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/kontent/item/workflow`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/delivery/uuid/{project_id}/languages\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getProjectLanguageList\n */\n getProjectLanguageList(project_id: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/delivery/uuid/${project_id}/languages`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/delivery/uuid/{project_id}/taxonomies\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getTaxonomyListByKontentProject\n */\n getTaxonomyListByKontentProject(project_id: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/delivery/uuid/${project_id}/taxonomies`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/delivery/uuid/{project_id}/types\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getContentTypesList\n */\n getContentTypesList(project_id: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/delivery/uuid/${project_id}/types`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/delivery/{kontentProjectId}/languages\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getProjectLanguageListByKontentProject\n */\n getProjectLanguageListByKontentProject(kontentProjectId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/delivery/${kontentProjectId}/languages`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/delivery/{kontentProjectId}/types\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getContentTypesListByKontentProject\n */\n getContentTypesListByKontentProject(kontentProjectId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/delivery/${kontentProjectId}/types`, options: options });\n }\n\n /**\n * HTTP POST /api/kontent/project/delivery/{project_id}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectDeliveryController.getItems\n */\n getItems(project_id: string, kontentItemsSearchDTO: KontentItemsSearchDTO, queryParams?: { page?: number; size?: number; sort?: string; }, options?: O): RestResponse> {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/kontent/project/delivery/${project_id}`, queryParams: queryParams, data: kontentItemsSearchDTO, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/management/elementtypes\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getContentElementTypesList\n */\n getContentElementTypesList(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/management/elementtypes`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getProjectInfo\n */\n getProjectInfo(project_id: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/management/${project_id}`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/snippets\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getSnippetList\n */\n getSnippetList(project_id: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/management/${project_id}/snippets`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/snippets/{snippet_identifier}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getSnippet\n */\n getSnippet(project_id: string, snippet_identifier: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/management/${project_id}/snippets/${snippet_identifier}`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/taxonomies\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getTaxonomies\n */\n getTaxonomies(project_id: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/management/${project_id}/taxonomies`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/taxonomies/{taxonomy_group_identifier}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getTaxonomy\n */\n getTaxonomy(project_id: string, taxonomy_group_identifier: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/management/${project_id}/taxonomies/${taxonomy_group_identifier}`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/types/{type_identifier}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getContentType\n */\n getContentType(project_id: string, type_identifier: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/management/${project_id}/types/${type_identifier}`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/webhooks\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getWebhookList\n */\n getWebhookList(project_id: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/management/${project_id}/webhooks`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/management/{project_id}/workflow\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectManagementController.getWorkflowStepList\n */\n getWorkflowStepList(project_id: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/management/${project_id}/workflow`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/specification/languages/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectSpecificationController.getProjectLanguageMapping\n */\n getProjectLanguageMapping(projectId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/specification/languages/${projectId}`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/specification/types/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectSpecificationController.getProjectTypes\n */\n getProjectTypes(projectId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/specification/types/${projectId}`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/project/specification/workflows/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectSpecificationController.getProjectWorkflows\n */\n getProjectWorkflows(projectId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/project/specification/workflows/${projectId}`, options: options });\n }\n\n /**\n * HTTP POST /api/kontent/projects\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.createProject\n */\n createProject(createProject: CreateOrUpdateProjectDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/kontent/projects`, data: createProject, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/projects\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getAllProjectsByClientId\n */\n getAllProjectsByClientId(queryParams: { clientUUID: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/projects`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/projects/apikey/{kontentProjectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentApiKeyController.getApiKey\n */\n getApiKey(kontentProjectId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/projects/apikey/${kontentProjectId}`, options: options });\n }\n\n /**\n * HTTP POST /api/kontent/projects/connect\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentApiKeyController.connectKontentProject\n */\n connectKontentProject(queryParams: { managementApiKey: string; deliveryApiKey: string; kontentProjectId: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/kontent/projects/connect`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/projects/kontentId/{kontentProjectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getProjectByKontentProjectId\n */\n getProjectByKontentProjectId(kontentProjectId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/projects/kontentId/${kontentProjectId}`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/projects/pageable\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getAllProjects\n */\n getAllProjects(queryParams?: { search?: string; page?: number; size?: number; sort?: string; }, options?: O): RestResponse> {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/projects/pageable`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/projects/user\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getAllActiveProjectsByUserId\n */\n getAllActiveProjectsByUserId(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/projects/user`, options: options });\n }\n\n /**\n * HTTP DELETE /api/kontent/projects/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.deleteProject\n */\n deleteProject(projectId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"DELETE\", url: uriEncoding`api/kontent/projects/${projectId}`, options: options });\n }\n\n /**\n * HTTP GET /api/kontent/projects/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.getProject\n */\n getProject(projectId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/kontent/projects/${projectId}`, options: options });\n }\n\n /**\n * HTTP PUT /api/kontent/projects/{projectId}\n * Java method: cloud.xtm.kontent.backend.projects.app.api.KontentProjectController.updateProject\n */\n updateProject(projectId: string, updateProject: CreateOrUpdateProjectDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/kontent/projects/${projectId}`, data: updateProject, options: options });\n }\n\n /**\n * HTTP POST /api/kontent/webhook/item/translate/workflowstepevent\n * Java method: cloud.xtm.kontent.backend.webhook.app.api.KontentWebhookItemController.translateItemOnWorkflowStepEvent\n */\n translateItemOnWorkflowStepEvent(rawBody: string, queryParams: { source_language: string; target_languages: string[]; xtm_customer_id?: number; xtm_template_id?: number; due_date?: number; project_name?: string; description?: string; update_xtm_project?: boolean; workflow_step?: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/kontent/webhook/item/translate/workflowstepevent`, queryParams: queryParams, data: rawBody, options: options });\n }\n\n /**\n * HTTP POST /api/notifications/admin/send-reset-password-email\n * Java method: cloud.xtm.kontent.backend.notification.app.api.NotificationController.sendResetPasswordEmailForAdmin\n */\n sendResetPasswordEmailForAdmin(resetPassword: ResetPasswordDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/notifications/admin/send-reset-password-email`, data: resetPassword, options: options });\n }\n\n /**\n * HTTP POST /api/notifications/change-password\n * Java method: cloud.xtm.kontent.backend.notification.app.api.NotificationController.changePassword\n */\n changePassword(changePassword: ChangePasswordDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/notifications/change-password`, data: changePassword, options: options });\n }\n\n /**\n * HTTP POST /api/notifications/send-reset-password-email\n * Java method: cloud.xtm.kontent.backend.notification.app.api.NotificationController.sendResetPasswordEmail\n */\n sendResetPasswordEmail(resetPassword: ResetPasswordDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/notifications/send-reset-password-email`, data: resetPassword, options: options });\n }\n\n /**\n * HTTP POST /api/notifications/verify-reset-password-token\n * Java method: cloud.xtm.kontent.backend.notification.app.api.NotificationController.verifyResetPasswordToken\n */\n verifyResetPasswordToken(verifyToken: VerifyTokenDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/notifications/verify-reset-password-token`, data: verifyToken, options: options });\n }\n\n /**\n * HTTP GET /api/parametrization/admin-panel-connector-url\n * Java method: cloud.xtm.kontent.backend.parametrization.app.api.AdminPanelParametrizationController.getAdminPanelConnectorUrl\n */\n getAdminPanelConnectorUrl(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/parametrization/admin-panel-connector-url`, options: options });\n }\n\n /**\n * HTTP POST /api/projects/action-for-changed-kontents\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.performActionForChangedKontentProjects\n */\n performActionForChangedKontentProjects(request: ChangedKontentRequest, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/projects/action-for-changed-kontents`, data: request, options: options });\n }\n\n /**\n * HTTP POST /api/projects/filter\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.filterProjects\n */\n filterProjects(filteringParamsDTO: FilteringParamsDTO, queryParams: { kontentProjectUUID: string; forceUpdate?: boolean; page?: number; size?: number; sort?: string; }, options?: O): RestResponse> {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/projects/filter`, queryParams: queryParams, data: filteringParamsDTO, options: options });\n }\n\n /**\n * HTTP POST /api/projects/report\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.generateReport\n */\n generateReport(filteringParamsDTO: FilteringParamsDTO, queryParams: { kontentProjectUUID: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/projects/report`, queryParams: queryParams, data: filteringParamsDTO, options: options });\n }\n\n /**\n * HTTP PUT /api/projects/{projectId}\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.addTargetLanguages\n */\n addTargetLanguages(projectId: string, queryParams: { newTargetLanguages: string[]; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/projects/${projectId}`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP GET /api/projects/{projectId}/get-changed-kontent-products\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.getChangedKontentProducts\n */\n getChangedKontentProducts(projectId: string, queryParams: { sort: boolean; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/projects/${projectId}/get-changed-kontent-products`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP PUT /api/projects/{projectId}/remove-target-languages\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.removeTargetLanguagesTargetLanguages\n */\n removeTargetLanguagesTargetLanguages(projectId: string, queryParams: { targetLanguagesToRemove: string[]; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/projects/${projectId}/remove-target-languages`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP PUT /api/projects/{projectId}/update-due-date\n * Java method: cloud.xtm.kontent.backend.jobs.app.api.ProjectsController.updateDueDateForProject\n */\n updateDueDateForProject(projectId: string, queryParams: { newDueDate: Date; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/projects/${projectId}/update-due-date`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP POST /api/translations/add-to-queue\n * Java method: cloud.xtm.kontent.backend.translation.app.api.XTMTranslationController.addToQueue\n */\n addToQueue(translateRequest: TranslateRequestDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/translations/add-to-queue`, data: translateRequest, options: options });\n }\n\n /**\n * HTTP POST /api/translations/translate\n * Java method: cloud.xtm.kontent.backend.translation.app.api.XTMTranslationController.translate\n */\n translate(translateRequest: TranslateRequestDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/translations/translate`, data: translateRequest, options: options });\n }\n\n /**\n * HTTP POST /api/users\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.createUser\n */\n createUser(createUser: CreateUserDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/users`, data: createUser, options: options });\n }\n\n /**\n * HTTP GET /api/users\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getAllUsersList\n */\n getAllUsersList(queryParams: { clientUUID: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/users`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP GET /api/users/due-date-change\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getAllowDueDateChangeForCurrentUser\n */\n getAllowDueDateChangeForCurrentUser(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/users/due-date-change`, options: options });\n }\n\n /**\n * HTTP GET /api/users/pageable\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getAllUsers\n */\n getAllUsers(queryParams?: { search?: string; page?: number; size?: number; sort?: string; }, options?: O): RestResponse> {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/users/pageable`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP GET /api/users/project-prefix\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getProjectPrefixForCurrentUser\n */\n getProjectPrefixForCurrentUser(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/users/project-prefix`, options: options });\n }\n\n /**\n * HTTP GET /api/users/requester-list\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getRequestersForProject\n */\n getRequestersForProject(queryParams: { kontentProjectUUID: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/users/requester-list`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP DELETE /api/users/{userId}\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.deleteUser\n */\n deleteUser(userId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"DELETE\", url: uriEncoding`api/users/${userId}`, options: options });\n }\n\n /**\n * HTTP PUT /api/users/{userId}\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.editUser\n */\n editUser(userId: string, updateUser: UpdateUserDTO, options?: O): RestResponse {\n return this.httpClient.request({ method: \"PUT\", url: uriEncoding`api/users/${userId}`, data: updateUser, options: options });\n }\n\n /**\n * HTTP GET /api/users/{userId}\n * Java method: cloud.xtm.kontent.backend.users.app.api.UserController.getUser\n */\n getUser(userId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/users/${userId}`, options: options });\n }\n\n /**\n * HTTP GET /api/xtm/callbacks/jobs/{clientId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.callback.app.api.XTMCallbackController.getJobFinishedCallback\n */\n getJobFinishedCallback(clientId: string, queryParams: { xtmJobId: number; xtmProjectId: number; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/xtm/callbacks/jobs/${clientId}`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP POST /api/xtm/callbacks/project/analysis/finished/{clientId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.callback.app.api.XTMCallbackController.analysisFinished\n */\n analysisFinished(clientId: string, queryParams: { xtmCustomerId: number; xtmProjectId: number; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/xtm/callbacks/project/analysis/finished/${clientId}`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP POST /api/xtm/callbacks/workflow/{clientId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.callback.app.api.XTMCallbackController.updateWorkflow\n */\n updateWorkflow(clientId: string, queryParams: { additionalData: string; xtmCustomerId: number; xtmProjectId: number; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/xtm/callbacks/workflow/${clientId}`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP POST /api/xtm/connect\n * Java method: cloud.xtm.kontent.backend.integration.xtm.auth.app.api.XTMConnectController.connectToXtm\n */\n connectToXtm(xtmConnectRequest: XTMConnectRequest, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/xtm/connect`, data: xtmConnectRequest, options: options });\n }\n\n /**\n * HTTP GET /api/xtm/connect/{userId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.auth.app.api.XTMConnectController.getXTMConnectionParameters\n */\n getXTMConnectionParameters(userId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/xtm/connect/${userId}`, options: options });\n }\n\n /**\n * HTTP POST /api/xtm/connect/{userId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.auth.app.api.XTMConnectController.reconnectToXtm\n */\n reconnectToXtm(userId: string, xtmConnectRequest: XTMConnectRequest, options?: O): RestResponse {\n return this.httpClient.request({ method: \"POST\", url: uriEncoding`api/xtm/connect/${userId}`, data: xtmConnectRequest, options: options });\n }\n\n /**\n * HTTP GET /api/xtm/customers\n * Java method: cloud.xtm.kontent.backend.integration.xtm.customers.app.api.XTMCustomersController.getXTMCustomers\n */\n getXTMCustomers$GET$api_xtm_customers(queryParams: { xtmAuthId: string; }, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/xtm/customers`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP GET /api/xtm/customers/current-user\n * Java method: cloud.xtm.kontent.backend.integration.xtm.customers.app.api.XTMCustomersController.getXTMCustomersForCurrentUser\n */\n getXTMCustomersForCurrentUser(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/xtm/customers/current-user`, options: options });\n }\n\n /**\n * HTTP GET /api/xtm/customers/{userId}\n * Java method: cloud.xtm.kontent.backend.integration.xtm.customers.app.api.XTMCustomersController.getXTMCustomersForExistingUser\n */\n getXTMCustomersForExistingUser(userId: string, options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/xtm/customers/${userId}`, options: options });\n }\n\n /**\n * HTTP GET /api/xtm/languages/languages\n * Java method: cloud.xtm.kontent.backend.integration.xtm.languages.app.api.LanguageController.getLanguages\n */\n getLanguages(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/xtm/languages/languages`, options: options });\n }\n\n /**\n * HTTP GET /api/xtm/templates\n * Java method: cloud.xtm.kontent.backend.integration.xtm.templates.app.api.XTMTemplatesController.getXTMTemplates\n */\n getXTMTemplates(queryParams: { xtmAuthId: string; xtmCustomerIds: number[]; }, options?: O): RestResponse<{ [index: string]: XTMTemplateDTO[] }> {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/xtm/templates`, queryParams: queryParams, options: options });\n }\n\n /**\n * HTTP GET /api/xtm/workflows\n * Java method: cloud.xtm.kontent.backend.integration.xtm.workflow.app.api.WorkflowsController.getXTMWorkflowSteps\n */\n getXTMWorkflowSteps(options?: O): RestResponse {\n return this.httpClient.request({ method: \"GET\", url: uriEncoding`api/xtm/workflows`, options: options });\n }\n}\n\nexport type RestResponse = Promise>;\n\nexport type JobOperation = \"CANCEL\" | \"DELETE\" | \"IMPORT\" | \"SEND\";\n\nexport type HttpStatus = \"CONTINUE\" | \"SWITCHING_PROTOCOLS\" | \"PROCESSING\" | \"CHECKPOINT\" | \"OK\" | \"CREATED\" | \"ACCEPTED\" | \"NON_AUTHORITATIVE_INFORMATION\" | \"NO_CONTENT\" | \"RESET_CONTENT\" | \"PARTIAL_CONTENT\" | \"MULTI_STATUS\" | \"ALREADY_REPORTED\" | \"IM_USED\" | \"MULTIPLE_CHOICES\" | \"MOVED_PERMANENTLY\" | \"FOUND\" | \"MOVED_TEMPORARILY\" | \"SEE_OTHER\" | \"NOT_MODIFIED\" | \"USE_PROXY\" | \"TEMPORARY_REDIRECT\" | \"PERMANENT_REDIRECT\" | \"BAD_REQUEST\" | \"UNAUTHORIZED\" | \"PAYMENT_REQUIRED\" | \"FORBIDDEN\" | \"NOT_FOUND\" | \"METHOD_NOT_ALLOWED\" | \"NOT_ACCEPTABLE\" | \"PROXY_AUTHENTICATION_REQUIRED\" | \"REQUEST_TIMEOUT\" | \"CONFLICT\" | \"GONE\" | \"LENGTH_REQUIRED\" | \"PRECONDITION_FAILED\" | \"PAYLOAD_TOO_LARGE\" | \"REQUEST_ENTITY_TOO_LARGE\" | \"URI_TOO_LONG\" | \"REQUEST_URI_TOO_LONG\" | \"UNSUPPORTED_MEDIA_TYPE\" | \"REQUESTED_RANGE_NOT_SATISFIABLE\" | \"EXPECTATION_FAILED\" | \"I_AM_A_TEAPOT\" | \"INSUFFICIENT_SPACE_ON_RESOURCE\" | \"METHOD_FAILURE\" | \"DESTINATION_LOCKED\" | \"UNPROCESSABLE_ENTITY\" | \"LOCKED\" | \"FAILED_DEPENDENCY\" | \"TOO_EARLY\" | \"UPGRADE_REQUIRED\" | \"PRECONDITION_REQUIRED\" | \"TOO_MANY_REQUESTS\" | \"REQUEST_HEADER_FIELDS_TOO_LARGE\" | \"UNAVAILABLE_FOR_LEGAL_REASONS\" | \"INTERNAL_SERVER_ERROR\" | \"NOT_IMPLEMENTED\" | \"BAD_GATEWAY\" | \"SERVICE_UNAVAILABLE\" | \"GATEWAY_TIMEOUT\" | \"HTTP_VERSION_NOT_SUPPORTED\" | \"VARIANT_ALSO_NEGOTIATES\" | \"INSUFFICIENT_STORAGE\" | \"LOOP_DETECTED\" | \"BANDWIDTH_LIMIT_EXCEEDED\" | \"NOT_EXTENDED\" | \"NETWORK_AUTHENTICATION_REQUIRED\";\n\nexport type Operation = \"CREATE_NEW\" | \"UPDATE\" | \"IGNORE\";\n\nexport type ContentElementType = \"text\" | \"rich_text\" | \"number\" | \"multiple_choice\" | \"date_time\" | \"asset\" | \"modular_content\" | \"custom\" | \"url_slug\" | \"guidelines\" | \"snippet\" | \"taxonomy\" | \"subpages\";\n\nexport type ActivityEnum = \"ACTIVE\" | \"ARCHIVED\" | \"AUTO_ARCHIVED\" | \"DELETED\" | \"INACTIVE\";\n\nexport type CompletionStatusEnum = \"IN_PROGRESS\" | \"PARTIALLY_FINISHED\" | \"FINISHED\" | \"NEW\";\n\nexport type AllowedFileType = \"adjustable\" | \"any\";\n\nexport type ContentElementMode = \"single\" | \"multiple\";\n\nexport type AllowedBlock = \"images\" | \"text\" | \"tables\" | \"components-and-items\";\n\nexport type AllowedTextBlock = \"paragraph\" | \"heading-one\" | \"heading-two\" | \"heading-three\" | \"heading-four\" | \"ordered-list\" | \"unordered-list\";\n\nexport type AllowedFormatting = \"unstyled\" | \"bold\" | \"italic\" | \"code\" | \"link\" | \"subscript\" | \"superscript\";\n\nexport type AllowedTableBlock = \"images\" | \"text\";\n\nexport type XTMJobStatus = \"NEW\" | \"SENT\" | \"IN_PROGRESS\" | \"FINISHED\" | \"CANCELLED\";\n\nexport type AssetCondition = \"at_most\" | \"exactly\" | \"at_least\";\n\nexport type TextAppliedTo = \"words\" | \"characters\";\n\nexport type Direction = \"ASC\" | \"DESC\";\n\nexport type NullHandling = \"NATIVE\" | \"NULLS_FIRST\" | \"NULLS_LAST\";\n\nfunction uriEncoding(template: TemplateStringsArray, ...substitutions: any[]): string {\n let result = \"\";\n for (let i = 0; i < substitutions.length; i++) {\n result += template[i];\n result += encodeURIComponent(substitutions[i]);\n }\n result += template[template.length - 1];\n return result;\n}\n\n\n// Added by 'AxiosClientExtension' extension\n\nimport axios from \"axios\";\nimport * as Axios from \"axios\";\n\ndeclare module \"axios\" {\n export interface GenericAxiosResponse extends Axios.AxiosResponse {\n data: R;\n }\n}\n\nclass AxiosHttpClient implements HttpClient {\n\n constructor(private axios: Axios.AxiosInstance) {\n }\n\n request(requestConfig: { method: string; url: string; queryParams?: any; data?: any; copyFn?: (data: R) => R; options?: Axios.AxiosRequestConfig; }): RestResponse {\n function assign(target: any, source?: any) {\n if (source != undefined) {\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }\n\n const config: Axios.AxiosRequestConfig = {};\n config.method = requestConfig.method as typeof config.method; // `string` in axios 0.16.0, `Method` in axios 0.19.0\n config.url = requestConfig.url;\n config.params = requestConfig.queryParams;\n config.data = requestConfig.data;\n assign(config, requestConfig.options);\n const copyFn = requestConfig.copyFn;\n\n const axiosResponse = this.axios.request(config);\n return axiosResponse.then(axiosResponse => {\n if (copyFn && axiosResponse.data) {\n (axiosResponse as any).originalData = axiosResponse.data;\n axiosResponse.data = copyFn(axiosResponse.data);\n }\n return axiosResponse;\n });\n }\n}\n\nexport class AxiosRestApplicationClient extends RestApplicationClient {\n\n constructor(baseURL: string, axiosInstance: Axios.AxiosInstance = axios.create()) {\n axiosInstance.defaults.baseURL = baseURL;\n super(new AxiosHttpClient(axiosInstance));\n }\n}\n","import Axios, { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { AuthenticationResult, AxiosRestApplicationClient } from './restApplicationClient';\n\nconst axiosInstance = Axios.create();\nexport const tokenStorageKey = '___TOKEN_KEY___';\nexport const refreshTokenStorageKey = '___TOKEN2_KEY___';\nexport const tokenTtlStorageKey = '___TOKEN3_KEY___';\n\n/**\n * Query parameter parser\n *\n * @param parameters - query parameters object\n */\nconst stringifyParameters = (parameters: Record): string => {\n const keys = Object.keys(parameters);\n return keys\n .map((key: keyof typeof parameters) => {\n const value = parameters[key];\n if (Array.isArray(value)) {\n return `${key}=${value.join(',')}`;\n }\n return `${key}=${value}`;\n })\n .join('&');\n};\n\n/**\n * request interceptor\n *\n * @param config - axios default configuration\n */\nconst requestInterceptor = (config: AxiosRequestConfig): AxiosRequestConfig => {\n let headers: AxiosRequestConfig['headers'];\n const accessToken = localStorage.getItem(tokenStorageKey);\n const refreshToken = localStorage.getItem(refreshTokenStorageKey);\n\n if (config.url && config.url.includes('refreshToken')) {\n headers = {\n Authorization: `${accessToken}`,\n 'X-Authorization': `${refreshToken}`,\n };\n } else {\n headers = {\n Authorization: `Bearer ${accessToken}`,\n };\n }\n\n config.paramsSerializer = (parameters) => stringifyParameters(parameters);\n\n config.headers = headers;\n return config;\n};\n\n/**\n * response interceptor\n *\n * @param response - axios response\n */\nconst responseInterceptor = (response: AxiosResponse): AxiosResponse => {\n if (response.config.url === 'api/auth/admin' || response.config.url === 'api/auth/refreshToken') {\n const { accessToken, refreshToken, ttl } = response.data as AuthenticationResult;\n localStorage.setItem(tokenStorageKey, accessToken);\n localStorage.setItem(refreshTokenStorageKey, refreshToken);\n localStorage.setItem(tokenTtlStorageKey, String(ttl));\n }\n\n return response;\n};\n\naxiosInstance.interceptors.request.use(requestInterceptor);\naxiosInstance.interceptors.response.use(responseInterceptor);\n\nconst baseUrl = '/';\n\n// eslint-disable-next-line require-jsdoc\nexport const clearToken = (): void => {\n localStorage.removeItem(tokenStorageKey);\n localStorage.removeItem(refreshTokenStorageKey);\n localStorage.removeItem(tokenTtlStorageKey);\n};\n\n// eslint-disable-next-line require-jsdoc\nexport const getTTL = (): number => {\n return Number(localStorage.getItem(tokenTtlStorageKey));\n};\n\nexport const api = new AxiosRestApplicationClient(baseUrl, axiosInstance);\nexport default axiosInstance;\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { AppBar } from '@material-ui/core';\nimport Help from 'icons/Help';\nimport Logout from 'icons/Logout';\nimport ReleaseNotes from 'icons/ReleaseNotes';\nimport { Dispatch, PureComponent, ReactNode } from 'react';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { AppDispatch } from 'store';\nimport { logoutUser } from 'store/user/user.actions';\nimport { tokenStorageKey } from 'utils/axiosInstance';\nimport { getAllEnvironment } from 'utils/envHandler';\nimport loginHeaderStyle, { HeaderButton, HeaderLogoutButton } from './LoginHeader.style';\n\ninterface IProps {\n children?: ReactNode;\n}\n\ninterface IDispatchProps {\n logout: () => void;\n}\n\ntype PropType = IProps & WithTranslation & IDispatchProps;\n\nclass LoginHeader extends PureComponent {\n handleOpenLink = (url: string) => (): void => {\n window.open(url, '_blank');\n };\n\n handleLogout = (): void => {\n this.props.logout();\n };\n\n render(): JSX.Element {\n const { t } = this.props;\n const { REACT_APP_HELP_URL, REACT_APP_CHANGELOG_URL } = getAllEnvironment();\n const token = localStorage.getItem(tokenStorageKey);\n\n return (\n \n
\n \n \n {t('common.title')} {t('common.version', { version: process.env.REACT_APP_VERSION })}\n \n
\n
\n {token && REACT_APP_CHANGELOG_URL && (\n \n \n {t('common.releaseNotes')}\n \n )}\n {token && REACT_APP_HELP_URL && (\n \n \n {t('common.help')}\n \n )}\n {token && (\n \n \n {t('common.logout')}\n \n )}\n
\n
\n );\n }\n}\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n logout: (): void => dispatch(logoutUser()),\n});\n\nexport default connect(null, mapDispatchToProps)(withTranslation()(LoginHeader));\n","/**\n * Return string value either from .env file or window._env_ if defined\n *\n * @param key - Env variable key\n *\n */\nexport const getEnvironment = (key: string): string | undefined => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const env = (window as any)._env_;\n return env ? env[key] : process.env[key];\n};\n\n/**\n * Return all evnironmental variables either from .env file or window._env_ if defined\n */\nexport const getAllEnvironment = (): { [key: string]: string } => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (window as any)._env_ || process.env;\n};\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport { PureComponent } from 'react';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { Link, LinkProps } from 'react-router-dom';\n\ninterface IProps {\n text: string;\n wide?: boolean;\n linkProps: React.PropsWithoutRef & React.RefAttributes;\n}\n\nclass CustomLink extends PureComponent {\n StyledDiv = styled.div`\n font-weight: bold;\n text-align: start;\n ${this.props.wide ? 'width: 100%;' : ''}\n\n & > a {\n transition: opacity 0.2s;\n }\n\n & > a:hover {\n opacity: 0.8;\n }\n `;\n\n render(): JSX.Element {\n const { t, text, linkProps } = this.props;\n return (\n \n {t(text)}\n \n );\n }\n}\n\nexport default withTranslation()(CustomLink);\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport { Fragment, PureComponent, ReactNode } from 'react';\n\ninterface IProps {\n children?: ReactNode;\n center?: boolean;\n width?: number;\n}\n\nclass FormDiv extends PureComponent {\n StyledDiv = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: ${this.props.width ? this.props.width : '700'}px;\n align-self: center;\n ${this.props.center ? 'margin: auto;' : ''}\n & form {\n width: 100%;\n }\n `;\n\n render(): JSX.Element {\n const { StyledDiv } = this;\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport default FormDiv;\n","import { css } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport {\n Checkbox,\n OutlinedTextFieldProps,\n Select,\n SelectProps,\n TextField,\n Typography,\n TypographyProps,\n} from '@material-ui/core';\nimport { DetailedHTMLProps, HTMLAttributes } from 'react';\n\ninterface FieldDivProps extends DetailedHTMLProps, HTMLDivElement> {\n column?: boolean;\n}\n\ninterface CustomAutocompleteTypographyProps extends TypographyProps {\n column?: boolean | string;\n component?: string;\n}\n\ninterface StyledSelectProps extends SelectProps {\n width?: string;\n}\n\ninterface StyledTextFieldProps extends OutlinedTextFieldProps {\n width?: string;\n}\n\ninterface StyledAutocompleteTextFieldProps {\n draggable?: boolean;\n}\n\nexport const CustomDraggableContainer = styled.div`\n display: flex;\n overflow: auto;\n margin-top: 5px;\n padding: 5px 0;\n border-top: 1px solid rgba(0, 0, 0, 0.23);\n width: 100%;\n\n &::-webkit-scrollbar-track {\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.15);\n border-radius: 10px;\n background-color: #f5f5f5;\n }\n\n &::-webkit-scrollbar {\n height: 8px;\n background-color: #f5f5f5;\n }\n\n &::-webkit-scrollbar-thumb {\n border-radius: 10px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.15);\n background-color: #dde0e6;\n }\n`;\n\nexport const InputDiv = styled.div(\n ({ column }: FieldDivProps) => `\n display: flex;\n flex-direction: ${column ? 'column' : 'row'};\n justify-content: space-between;\n align-items: ${column ? 'stretch' : 'baseline'};\n margin: 4px auto;\n width: 100%;\n text-align: start;\n\n .MuiAutocomplete-inputRoot {\n padding-top: 3.8px !important;\n padding-bottom: 3.8px !important;\n }\n`,\n);\n\nexport const StyledSelect = styled(Select)(\n ({ width }: StyledSelectProps) => `\n width: ${width ? width : 'auto'};\n margin-top: 8px;\n margin-bottom: 4px;\n background-color: #fff;\n\n .MuiOutlinedInput-inputMarginDense {\n padding-top: 6px;\n padding-bottom: 6px;\n }\n`,\n);\n\nexport const StyledTextField = styled(TextField)(\n ({ width }: StyledTextFieldProps) => `\n width: ${width ? width : 'auto'};\n`,\n);\n\nexport const CustomAutocompleteTypography = styled(Typography)(\n ({ column }: CustomAutocompleteTypographyProps) => `\n align-self: ${column ? 'start' : 'center'};\n`,\n);\n\nexport const CustomTypography = styled(Typography)`\n margin: 6px 0 !important;\n`;\n\nexport const InputLabel = styled(Typography)`\n font-weight: bold;\n color: #333;\n text-align: start;\n max-width: 300px;\n width: 295px;\n`;\n\nexport const customInputStyles = {\n root: css`\n display: flex;\n flex-direction: column;\n margin: 4px auto;\n width: 100%;\n `,\n label: css`\n font-size: 14px;\n font-weight: 500;\n text-align: start;\n width: 276px;\n color: #333 !important;\n `,\n outlineError: css`\n &:hover {\n fieldset {\n border-color: red !important;\n border-width: 3px;\n }\n }\n\n fieldset {\n border-color: red !important;\n border-width: 2px;\n }\n `,\n textError: css`\n color: red;\n text-align: start;\n max-width: 400px;\n margin-left: 300px;\n `,\n textErrorNoMargin: css`\n color: red;\n text-align: start;\n max-width: 400px;\n `,\n checkbox: css`\n display: flex;\n `,\n radio: css`\n width: 100%;\n `,\n};\n\nexport const AutocompleteChipDefaultSpan = styled.span`\n color: rgba(0, 0, 0, 0.35);\n padding-left: 5px;\n`;\n\nexport const AutocompleteTextField = styled(TextField)(\n ({ draggable }: StyledAutocompleteTextFieldProps) => `\n .MuiAutocomplete-popupIndicator {\n margin-right: -4px;\n }\n\n ${\n draggable\n ? `\n .MuiInputBase-root {\n display:flex;\n align-items: flex-start;\n flex-direction: column-reverse;\n padding: 6px !important;\n cursor: auto;\n\n .MuiInputBase-input {\n width: calc(100% - 58px);\n }\n\n .MuiAutocomplete-endAdornment {\n top:5px;\n }\n }`\n : ''\n };\n`,\n);\n\nexport const CustomCheckboxGroupLabel = styled.span`\n font-weight: bold;\n color: #333;\n text-align: start;\n max-width: 300px;\n width: 295px;\n align-self: flex-start;\n margin-top: 12px;\n`;\n\nexport const ErrorDiv = styled.div`\n width: 100%;\n text-align: left;\n`;\n\nexport const FieldDiv = styled.div(\n (props: FieldDivProps) => `\n display: flex;\n flex-direction: ${props.column ? 'column' : 'row'};\n justify-content: space-between;\n align-items: ${props.column ? 'start' : 'center'};\n`,\n);\n\nexport const CheckboxFieldDiv = styled(FieldDiv)`\n margin-top: 12px;\n justify-content: flex-start;\n`;\n\nexport const FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n`;\n\nexport const CheckboxDiv = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n & label {\n margin-left: 0;\n }\n & .Mui-checked svg {\n color: #38af49 !important;\n }\n`;\n\nexport const CustomCheckboxGroupTypography = styled(Typography)`\n cursor: pointer;\n user-select: none;\n`;\n\nexport const CustomCheckboxGroupDivRow = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const CustomCheckboxGroupDiv = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const CustomInputError = styled.span`\n margin-left: 306px;\n display: flex;\n color: red;\n text-align: start;\n max-width: 400px;\n`;\n\nexport const CustomCheckboxGroupTextField = styled(TextField)`\n max-width: 60px;\n margin: 0 6px !important;\n`;\n\nexport const SelectDiv = styled.div`\n display: flex;\n flex-direction: row;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const RadioTypography = styled(Typography)`\n font-weight: bold !important;\n color: #333 !important;\n text-align: start !important;\n max-width: 300px !important;\n width: 295px !important;\n`;\n\nexport const CheckboxTypography = styled(Typography)`\n font-weight: bold !important;\n color: #333 !important;\n text-align: start !important;\n`;\n\nexport const CheckboxLabelTypography = styled(Typography)`\n font-weight: bold !important;\n color: #333 !important;\n text-align: start !important;\n padding-top: 10px;\n`;\n\nexport const RadioButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const CustomEndAdornment = styled.div`\n position: absolute;\n right: 12px;\n`;\n\nexport const CustomStyledCheckbox = styled(Checkbox)`\n margin-left: -12px !important;\n\n & svg {\n width: 28px;\n height: 28px;\n color: #777;\n }\n`;\n","import { Box, OutlinedTextFieldProps, Tooltip, Typography } from '@material-ui/core';\nimport React from 'react';\nimport { FieldRenderProps } from 'react-final-form';\nimport { useTranslation } from 'react-i18next';\nimport { InputDiv, StyledTextField } from './CustomInput.styled';\n\ninterface IProps extends FieldRenderProps {\n label: string;\n disableAutocomplete?: boolean;\n textFieldProps?: Omit;\n column?: boolean;\n width?: string;\n disabled?: boolean;\n tooltip?: string;\n}\n\ntype PropType = IProps;\n\nconst CustomField = ({\n input,\n textFieldProps,\n disableAutocomplete,\n meta: { error, touched },\n width,\n label,\n column,\n disabled,\n tooltip,\n}: PropType): JSX.Element => {\n const shouldDisplayError = (typeof error === 'boolean' || (error && touched)) as boolean;\n const { t } = useTranslation();\n\n const renderTextFieldComponent = (): JSX.Element => {\n const textComponent = (\n \n );\n\n if (tooltip) {\n return {textComponent};\n }\n\n return textComponent;\n };\n\n return (\n \n \n \n {t(label)}\n \n \n {column ? (\n renderTextFieldComponent()\n ) : (\n \n {renderTextFieldComponent()}\n {shouldDisplayError && typeof error !== 'boolean' && (\n \n {t(error as string)}\n \n )}\n \n )}\n {column && shouldDisplayError && typeof error !== 'boolean' && (\n \n {t(error as string)}\n \n )}\n \n );\n};\n\nexport default CustomField;\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport { Typography } from '@material-ui/core';\nimport { Fragment, PureComponent } from 'react';\nimport { withTranslation, WithTranslation } from 'react-i18next';\n\ninterface IProps {\n text: string;\n}\n\nclass FormTitle extends PureComponent {\n StyledTypography = styled(Typography)`\n display: block;\n width: 100%;\n font-size: 17px !important;\n margin: 24px 0 !important;\n color: #00a4e4 !important;\n `;\n\n render(): JSX.Element {\n const { t, text } = this.props;\n const { StyledTypography } = this;\n return (\n \n \n {t(text)}\n \n \n );\n }\n}\n\nexport default withTranslation()(FormTitle);\n","import { createSelector } from '@reduxjs/toolkit';\nimport { AppState } from 'store';\nimport { ISpinnerState } from './spinner.interface';\n\nconst fetchSpinnerState = ({ spinner }: AppState): ISpinnerState => spinner;\n\nexport const getFetchSpinnerSelector = createSelector(fetchSpinnerState, ({ fetchSpinner }) => fetchSpinner);\n\nexport const getTemplateSpinnerSelector = createSelector(fetchSpinnerState, ({ templateSpinner }) => templateSpinner);\n\nexport const getCustomerSpinnerSelector = createSelector(fetchSpinnerState, ({ customerSpinner }) => customerSpinner);\nexport const getconnectDataSpinnerSelector = createSelector(\n fetchSpinnerState,\n ({ connectDataSpinner }) => connectDataSpinner,\n);\n\nexport const getConnectToXtmSpinnerSelector = createSelector(\n fetchSpinnerState,\n ({ connectToXtmSpinner }) => connectToXtmSpinner,\n);\n\nexport const getConnectToCMSSpinnerSelector = createSelector(\n fetchSpinnerState,\n ({ connectToCMSSpinner }) => connectToCMSSpinner,\n);\n\nexport const getDefaultLanguagesSpinnerSelector = createSelector(\n fetchSpinnerState,\n ({ defaultUserLanguagesSpinner }) => defaultUserLanguagesSpinner,\n);\n\nexport const getProjectSpinnerSelector = createSelector(fetchSpinnerState, ({ projectSpinner }) => projectSpinner);\n\nexport const getKenticoDataSpinnerSelector = createSelector(\n fetchSpinnerState,\n ({ kenticoDataSpinner }) => kenticoDataSpinner,\n);\n\nexport const getKenticoConnectSpinnerSelector = createSelector(\n fetchSpinnerState,\n ({ kenticoConnectSpinner }) => kenticoConnectSpinner,\n);\n","export const EMAIL_REGEX = /^[\\w!#$%&'*+./=?^`{|}~-]+@[\\dA-Za-z](?:[\\dA-Za-z-]{0,61}[\\dA-Za-z])?(?:\\.[\\dA-Za-z](?:[\\dA-Za-z-]{0,61}[\\dA-Za-z])?)*$/;\nexport const LOWERCASE_REGEX = /[a-z]/;\nexport const UPPERCASE_REGEX = /[A-Z]/;\nexport const NUMBER_REGEX = /\\d/;\nexport const WHITESPACE_REGEX = /\\s/;\nexport const PASSWORD_REGEX = /^((?=.*[a-z])(?=.*\\d)(?=.*[A-Z])(?!.*\\s).{8,64})$/;\nexport const ISNUMBER = /^\\d*$/;\nexport const PREFIX_REGEX = /[\"*/:<>?\\\\{|}]/;\n/**\n * Returns length regexp\n *\n * @param min - Minimum amout of letters\n * @param max - Maximum amout of letters\n *\n * @returns {RegExp} Length regexp\n */\nexport const LENGTH_REGEX = (min: number, max: number): RegExp => new RegExp(`^.{${min},${max}}$`);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ValidationErrors } from 'final-form';\nimport { IAutocompleteField } from 'types/shared';\nimport { isString } from 'util';\nimport { EMAIL_REGEX, ISNUMBER, LENGTH_REGEX, PASSWORD_REGEX, PREFIX_REGEX, WHITESPACE_REGEX } from './customRegex';\nimport { isObjectEqual } from './objectEquality';\n\n/**\n * Returns whether given field has a value\n *\n * @param value - Form string value to test against\n *\n * @returns {string | null} Either null when validation is successful or translated error message\n */\nconst required = (value: string): string | null => {\n if (value && isString(value)) {\n return null;\n }\n return 'validator.required';\n};\n\n/**\n * Returns whether given field has a value\n *\n * @param value - Form string value to test against\n *\n * @returns {string | null} Either null when validation is successful or translated error message\n */\nconst requiredAutocomplete = (value: IAutocompleteField | Array | null): string | null => {\n if (Array.isArray(value) && value.length > 0) {\n return null;\n } else if (!Array.isArray(value) && value?.value) {\n return null;\n }\n return 'validator.required';\n};\n\n/**\n * Returns whether second set of fields has a value if chosen field has value\n *\n * @param field - Field key\n *\n * @param requiredFields - An array of field keys that are required if field value is present\n *\n * @returns {ValidationErrors} Either null when validation is successful or translated error message\n */\nconst requiredAutocompleteBasedOnField = (\n field: keyof T,\n requiredFields: Array,\n) => (values: T): ValidationErrors => {\n if (Boolean(values?.[field]?.length)) {\n const errors: { [key: string]: string } = {};\n\n requiredFields.forEach((fieldKey) => {\n if (!Boolean(values?.[fieldKey]?.length)) {\n errors[fieldKey.toString()] = 'validator.required';\n }\n });\n\n return errors;\n }\n return undefined;\n};\n\n/**\n * Returns whether given field is a valid email\n *\n * @param value - Form string value to test against\n *\n * @returns {string | null} Either null when validation is successful or translated error message\n */\nconst email = (value: string): string | null => {\n // eslint-disable-next-line no-console\n if (EMAIL_REGEX.test(value)) {\n return null;\n }\n return 'validator.email';\n};\n/**\n * Returns whether given field is a valid password\n *\n * @param value - Form string value to test against\n *\n * @returns {string | null} Either null when validation is successful or translated error message\n */\nconst password = (value: string): string | null => {\n if (PASSWORD_REGEX.test(value)) {\n return null;\n }\n return 'validator.password';\n};\n/**\n * Returns whether given field contains whitespaces\n *\n * @param value - Form string value to test against\n *\n * @returns {string | null} Either null when validation is successful or translated error message\n */\nconst noWhitespace = (value: string): string | null => {\n if (!WHITESPACE_REGEX.test(value)) {\n return null;\n }\n return 'validator.whitespace';\n};\n/**\n * Returns whether field does not match\n *\n * @returns {string | null} Either null when validation is successful or translated error message\n */\nconst comparePass = (values: {\n newPassword: string;\n confirmPassword: string;\n}): ValidationErrors | Promise | undefined => {\n if (values.newPassword !== values.confirmPassword) {\n return {\n confirmPassword: 'validator.confirmPassword',\n };\n }\n return undefined;\n};\n\n/**\n * Returns whether value is not a number\n *\n * @returns {string | null} Either null when validation is successful or translated error message\n */\nconst isNumber = (value: string): string | null => {\n if (ISNUMBER.test(value) || typeof value === 'undefined') {\n return null;\n }\n return 'validator.removeXTMFiles';\n};\n\n/**\n * Returns whether value length is composed of between 1 and 9\n *\n * @returns {string | null} Either null when validation is successful or translated error message\n */\nconst isMaxLength = (value: string): string | null => {\n if (LENGTH_REGEX(1, 9).test(value)) {\n return null;\n }\n return 'validator.maxLength';\n};\n\n/**\n * Returns whether value does not contain any special characters\n *\n * @returns {string | null} Either null when validation is successful or translated error message\n */\nconst isAllowedPrefix = (value: string): string | null => {\n if (!PREFIX_REGEX.test(value)) {\n return null;\n }\n return 'validator.XTMProjectPrefix';\n};\n\n/**\n * Returns reduced validator from given validator array\n *\n * @param validators - An array of validators\n *\n * @returns {(value: string) => string | null} A reduced validator function\n */\nconst composeValidators = (\n validators: ((value: string) => boolean | string | null)[],\n): ((value: string) => boolean | string | null) => (value: string) => {\n return validators.reduce((error: boolean | string | null, validator) => error || validator(value), null);\n};\n/**\n * Returns whether a field has an error field assigned to it in store and has different value than the one that threw an error\n *\n * @param error - An error returned from api\n *\n * @param previousValue - A value which caused error\n *\n * @returns {string | null} Wheter given value is the same as the one that threw an error\n */\nconst fetchValidator = (error: string | undefined, previousValue: string | undefined) => (\n value: string,\n): string | null => {\n if (error && previousValue && previousValue === value) {\n return error;\n }\n return null;\n};\n/**\n * Returns whether a submit object has an error assigned to it in store and has different value than the one that threw an error\n *\n * @param error - An error returned from api\n *\n * @param previousValue - Values which caused error\n *\n * @returns {string | null} Wheter given value is the same as the one that threw an error\n */\nconst fetchValidatorObject = (error: string | undefined, previousValue: Record) => (\n values: Record,\n): {} => {\n const errors: Record = {};\n if (error && previousValue && isObjectEqual(values, previousValue)) {\n const valuesParameters = Object.keys(values);\n valuesParameters.map((key) => {\n errors[key] = true;\n });\n }\n return errors;\n};\n\n/**\n * Returns whether a field has an error field assigned to it in store\n *\n * @param error - Whether should display red outline\n *\n * @returns {string | null} Whether store field is set to true\n */\nfunction booleanValidator(error: boolean) {\n return function () {\n return error ? error : null;\n };\n}\n\n/**\n * Returns whether a field is not empty and validator\n *\n * @param value - field value\n * @param validator - optional validator\n */\nfunction optionalValidator(value: string, validator: Function): null | string {\n if (value === undefined) {\n return null;\n }\n\n return validator(value);\n}\n\nexport {\n required,\n email,\n composeValidators,\n password,\n noWhitespace,\n fetchValidator,\n comparePass,\n booleanValidator,\n fetchValidatorObject,\n isNumber,\n isAllowedPrefix,\n optionalValidator,\n isMaxLength,\n requiredAutocomplete,\n requiredAutocompleteBasedOnField,\n};\n","/**\n * Returns whether objects are equal (shallow compare)\n *\n * @param objectA - Key - Value object\n *\n * @param objectB - Key - Value object\n *\n * @returns {boolean} Whether objects are equal\n */\nexport function isObjectEqual(objectA: Record, objectB: Record): boolean {\n const objectAProperties = Object.getOwnPropertyNames(objectA);\n const objectBProperties = Object.getOwnPropertyNames(objectB);\n\n if (objectAProperties.length !== objectBProperties.length) {\n return false;\n }\n\n return objectAProperties.reduce(\n (previousValue: boolean, currentValue: string) => objectA[currentValue] === objectB[currentValue] && previousValue,\n true,\n );\n}\n","import { css } from '@emotion/core';\n\nexport const loginContainerStyles = {\n root: css`\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n justify-content: center;\n `,\n button: css`\n margin-top: 20px !important;\n width: 75%;\n `,\n form: css`\n margin: 16px;\n `,\n};\n","export enum UserRouteParameterEnum {\n edit = 'edit',\n duplicate = 'duplicate',\n}\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Button, CircularProgress } from '@material-ui/core';\nimport CustomLink from 'components/CustomLink/CustomLink';\nimport FormDiv from 'components/Form/Div/FormDiv';\nimport CustomField from 'components/Form/Input/CustomField';\nimport { customInputStyles, ErrorDiv } from 'components/Form/Input/CustomInput.styled';\nimport FormTitle from 'components/Form/Title/FormTitle';\nimport { createForm, FormApi, Unsubscribe } from 'final-form';\nimport { Component } from 'react';\nimport { Field, Form } from 'react-final-form';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { getFetchSpinnerSelector } from 'store/spinner/spinner.selectors';\nimport { clearUserErrors, loginUser } from 'store/user/user.actions';\nimport { getUserErrorsSelector } from 'store/user/user.selectors';\nimport { composeValidators, email, fetchValidatorObject, required } from 'utils/customValidators';\nimport { AuthenticationRequest } from 'utils/restApplicationClientTypeOverrides';\nimport { loginContainerStyles } from './LoginContainer.style';\n\ninterface IDispatchProps {\n login: (payload: AuthenticationRequest) => AppDispatch;\n clearUserErrors: () => AppDispatch;\n}\n\ninterface IStateProps {\n errors: { [key: string]: string | undefined };\n fetchSpinner: boolean;\n}\n\ninterface IFormValues {\n email: string;\n password: string;\n}\n\ninterface IState {\n submitValues: {\n email: string;\n password: string;\n };\n}\n\ntype PropType = IDispatchProps & WithTranslation & IStateProps;\n\nexport class LoginContainer extends Component {\n form: FormApi>>;\n unsubscribe: Unsubscribe;\n constructor(props: PropType) {\n super(props);\n this.state = {\n submitValues: {\n email: '',\n password: '',\n },\n };\n this.form = createForm({\n onSubmit: this.onSubmit,\n });\n this.unsubscribe = this.form.subscribe(\n () => {\n if (this.props.errors['login']) {\n this.props.clearUserErrors();\n }\n },\n { values: true },\n );\n }\n\n componentWillUnmount(): void {\n this.unsubscribe();\n }\n\n onSubmit = ({ email, password }: IFormValues): void => {\n this.setState({ submitValues: { email, password } });\n this.props.login({ email, password });\n };\n\n render(): JSX.Element {\n const { t, errors = {}, fetchSpinner } = this.props;\n const { submitValues } = this.state;\n\n return (\n \n \n (\n
\n \n \n \n {t(errors['login'] ?? '')}\n \n \n {fetchSpinner ? : t('auth.login')}\n \n \n )}\n />\n \n
\n );\n }\n}\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n login: (payload: AuthenticationRequest): AppDispatch => dispatch(loginUser(payload)),\n clearUserErrors: (): AppDispatch => dispatch(clearUserErrors()),\n});\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n errors: getUserErrorsSelector(state),\n fetchSpinner: getFetchSpinnerSelector(state),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(LoginContainer));\n","import { css } from '@emotion/core';\n\nexport const resetPasswordContainerStyles = {\n root: css`\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n justify-content: center;\n max-width: 400px;\n align-self: center;\n `,\n button: css`\n margin-top: 20px !important;\n width: 75%;\n `,\n text: css`\n text-align: start;\n margin: 20px 10px;\n `,\n form: css`\n margin: 16px;\n `,\n};\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Button, CircularProgress } from '@material-ui/core';\nimport CustomLink from 'components/CustomLink/CustomLink';\nimport FormDiv from 'components/Form/Div/FormDiv';\nimport CustomField from 'components/Form/Input/CustomField';\nimport FormTitle from 'components/Form/Title/FormTitle';\nimport { Component } from 'react';\nimport { Field, Form } from 'react-final-form';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { getFetchSpinnerSelector } from 'store/spinner/spinner.selectors';\nimport { resetPassword } from 'store/user/user.actions';\nimport { IRemindPasswordPayload } from 'store/user/user.actions.types';\nimport { composeValidators, email, required } from 'utils/customValidators';\nimport { resetPasswordContainerStyles } from './ResetPasswordContainer.style';\n\ninterface IFormValues {\n email: string;\n}\n\ninterface IDispatchProps {\n resetPassword: (payload: IRemindPasswordPayload) => void;\n}\n\ninterface IStateProps {\n fetchSpinner: boolean;\n}\nexport class ResetPasswordContainer extends Component {\n onSubmit = (values: IFormValues): void => {\n this.props.resetPassword(values);\n };\n\n render(): JSX.Element {\n const { t, fetchSpinner } = this.props;\n return (\n \n \n {t('auth.password.resetInfo')}\n (\n
\n \n \n {fetchSpinner ? : t('common.send')}\n \n \n )}\n />\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n fetchSpinner: getFetchSpinnerSelector(state),\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n resetPassword: (payload: IRemindPasswordPayload): AppDispatch => dispatch(resetPassword(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(ResetPasswordContainer));\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Button, CircularProgress } from '@material-ui/core';\nimport FormDiv from 'components/Form/Div/FormDiv';\nimport FormTitle from 'components/Form/Title/FormTitle';\nimport { ValidationErrors } from 'final-form';\nimport { Field, Form } from 'react-final-form';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { AppState } from 'store';\nimport { getFetchSpinnerSelector } from 'store/spinner/spinner.selectors';\nimport { loginContainerStyles } from '../../containers/Login/LoginContainer.style';\nimport { changePassword } from '../../store/user/user.actions';\nimport { comparePass, composeValidators, password, required } from '../../utils/customValidators';\nimport { ChangePasswordDTO } from '../../utils/restApplicationClientTypeOverrides';\nimport CustomField from '../Form/Input/CustomField';\n\ninterface IResetFormValues {\n newPassword: string;\n confirmPassword: string;\n}\n\ninterface IResetFormProps {\n token: string | null;\n}\n\nexport const ChangePasswordForm = (props: IResetFormProps): JSX.Element => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const fetchSpinner = useSelector((state: AppState) => getFetchSpinnerSelector(state));\n const onSubmit = ({ newPassword }: IResetFormValues): void => {\n if (props.token) {\n dispatch(\n changePassword({\n newPassword,\n resetPasswordToken: props.token,\n } as ChangePasswordDTO),\n );\n }\n };\n\n return (\n \n \n comparePass(values)}\n render={({ handleSubmit, submitting }): JSX.Element => (\n
\n \n \n \n {fetchSpinner ? : t('auth.password.change')}\n \n \n )}\n />\n
\n );\n};\n","import LoginContainer from 'containers/Login/LoginContainer';\nimport ResetPasswordContainer from 'containers/ResetPassword/ResetPasswordContainer';\nimport { IRoute } from 'types/route';\nimport ChangePasswordContainer from '../../containers/ChangePasswordContainer/ChangePasswordContainer';\n\nexport const loginRoutes: IRoute[] = [\n {\n pathname: '/login',\n component: LoginContainer,\n exact: true,\n },\n {\n pathname: '/reset-password',\n component: ResetPasswordContainer,\n exact: true,\n },\n {\n pathname: '/changePassword',\n component: ChangePasswordContainer,\n exact: false,\n },\n];\n","// @flow\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\nimport { ChangePasswordForm } from '../../components/ChangePasswordForm/ChangePasswordForm';\nimport { AppState } from '../../store';\nimport { verifyPassToken } from '../../store/user/user.actions';\n\nconst ChangePasswordContainer = (): JSX.Element => {\n const location = useLocation();\n const parameters = new URLSearchParams(location.search);\n const dispatch = useDispatch();\n const token = parameters.get('token');\n useEffect(() => {\n if (token) {\n dispatch(verifyPassToken(token));\n }\n }, []);\n const selector = (state: AppState): boolean => state.user.verifyPassFinished;\n const finished = useSelector(selector);\n return {finished && };\n};\n\nexport default ChangePasswordContainer;\n","import LoginHeader from 'components/LoginHeader/LoginHeader';\nimport React, { Component } from 'react';\nimport { Route } from 'react-router-dom';\nimport { loginRoutes } from './routes';\n\nclass LoginLayoutComponent extends Component {\n render(): JSX.Element {\n return (\n <>\n \n {loginRoutes.map((route) => {\n return ;\n })}\n \n );\n }\n}\n\nexport default LoginLayoutComponent;\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport { Button, CircularProgress } from '@material-ui/core';\nimport { PureComponent } from 'react';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\ninterface IProps {\n submitting: boolean;\n backTo: string;\n spinner: boolean;\n}\n\nconst ButtonContainerDiv = styled.div`\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: row;\n border-top: 1px solid #dddddd;\n justify-content: center;\n height: 50px;\n align-items: center;\n z-index: 2;\n background-color: #fff;\n\n & button {\n margin-right: 8px;\n font-size: 13px;\n font-weight: 500;\n }\n`;\n\nconst ButtonLink = styled(Link)`\n text-decoration: none;\n`;\n\nclass ButtonContainer extends PureComponent {\n render(): JSX.Element {\n const { t, submitting, backTo, spinner } = this.props;\n\n return (\n \n \n \n \n \n \n );\n }\n}\n\nexport default withTranslation()(ButtonContainer);\n","import styled from '@emotion/styled';\nimport { Box, Typography } from '@material-ui/core';\nimport moment from 'moment';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { FieldDiv } from '../Input/CustomInput.styled';\n\ninterface IProps {\n createdAt: Date;\n modifiedAt: Date;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n text-align: left;\n color: #333;\n`;\n\nconst Date = styled.p`\n font-weight: 400;\n width: 100%;\n font-size: 14px;\n`;\n\nexport const EditData = (props: IProps): JSX.Element => {\n const { createdAt, modifiedAt } = props;\n const { t } = useTranslation();\n return (\n \n \n \n \n {t('common.creationDate')}\n \n \n {moment(createdAt).format('DD.MM.YYYY HH:MM')}\n \n \n \n \n {t('common.modificationDate')}\n \n \n {moment(modifiedAt).format('DD.MM.YYYY HH:MM')}\n \n \n );\n};\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Box, Typography } from '@material-ui/core';\nimport { FieldRenderProps } from 'react-final-form';\nimport { useTranslation } from 'react-i18next';\nimport { CheckboxDiv, CustomStyledCheckbox, FieldDiv } from './CustomInput.styled';\n\ninterface IProps extends FieldRenderProps {\n label: string;\n}\n\nconst CustomCheckbox = ({ input, label }: IProps): JSX.Element => {\n const { t } = useTranslation();\n\n return (\n \n \n \n {t(label)}\n \n \n \n \n \n \n );\n};\n\nexport default CustomCheckbox;\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Box, SelectProps, Typography } from '@material-ui/core';\nimport { ChangeEvent, Component } from 'react';\nimport { FieldInputProps } from 'react-final-form';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { InputDiv, StyledSelect } from './CustomInput.styled';\n\ninterface IProps {\n label: string;\n meta: { error?: string; touched?: boolean };\n inputProps: FieldInputProps;\n rows: Array<{ value: string; name: string }>;\n width?: string;\n selectProps?: SelectProps;\n onChange?: (\n event: ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>,\n ) => void;\n}\n\nexport class CustomSelect extends Component {\n render(): JSX.Element {\n const {\n t,\n meta: { error, touched },\n inputProps,\n rows,\n width,\n onChange,\n label,\n } = this.props;\n\n return (\n \n \n \n {t(label)}\n \n \n \n \n {!this.props.inputProps.value && }\n {rows.map((row, index) => {\n return (\n \n );\n })}\n \n {error && touched && (\n \n {t(error)}\n \n )}\n \n \n );\n }\n}\n\nexport default withTranslation()(CustomSelect);\n","export const AdministratorActionTypes = {\n CreateAdministrator: 'ADMINISTRATOR_CREATE_ADMINISTRATOR',\n CreateAdministratorError: 'ADMINISTRATOR_CREATE_ADMINISTRATOR_ERROR',\n CreateAdministratorSuccess: 'ADMINISTRATOR_CREATE_ADMINISTRATOR_SUCCESS',\n ClearAdministratorErrors: 'ADMINISTRATOR_CLEAR_ERRORS',\n GetAdministatorsPageable: 'ADMINISTRATOR_GET_ADMINISTRATORS_PAGEABLE',\n GetAdministratorsPageableSuccess: 'ADMINISTRATOR_GET_ADMINISTRATORS_PAGEABLE_SUCCESS',\n GetAdministratorsPageableError: 'ADMINISTRATOR_GET_ADMINISTRATORS_PAGEABLE_ERROR',\n GetAdministratorById: 'ADMINISTRATOR_GET_ADMINISTRATOR_BY_ID',\n GetAdministratorByIdSuccess: 'ADMINISTRATOR_GET_ADMINISTRATOR_BY_ID_SUCCESS',\n GetAdministratorByIdError: 'ADMINISTRATOR_GET_ADMINISTRATOR_BY_ID_ERROR',\n ClearAdministrator: 'ADMINISTRATOR_CLEAR_ADMINISTRATOR',\n EditAdministrator: 'ADMINISTRATOR_EDIT_ADMINISTRATOR',\n EditAdministratorSuccess: 'ADMINISTRATOR_EDIT_ADMINISTRATOR_SUCCESS',\n EditAdministratorError: 'ADMINISTRATOR_EDIT_ADMINISTRATOR_ERROR',\n};\n","import { createAction } from '@reduxjs/toolkit';\nimport { ErrorPayload } from 'store/error/error.epic';\nimport { IEditAdministrator, IPaginationOptions } from 'types/api';\nimport { AdministratorDTO, Page } from 'utils/restApplicationClient';\nimport { CreateAdministratorDTO } from 'utils/restApplicationClientTypeOverrides';\nimport { AdministratorActionTypes } from './administrator.actions.types';\n\nexport const createAdministrator = createAction(AdministratorActionTypes.CreateAdministrator);\nexport const createAdministratorError = createAction(AdministratorActionTypes.CreateAdministratorError);\nexport const createAdministratorSuccess = createAction(AdministratorActionTypes.CreateAdministratorSuccess);\n\nexport const clearAdministratorErrors = createAction(AdministratorActionTypes.ClearAdministratorErrors);\n\nexport const getAdministratorsPageable = createAction(\n AdministratorActionTypes.GetAdministatorsPageable,\n);\nexport const getAdministratorsPageableSuccess = createAction>(\n AdministratorActionTypes.GetAdministratorsPageableSuccess,\n);\nexport const getAdministratorsPageableError = createAction(\n AdministratorActionTypes.GetAdministratorsPageableError,\n);\n\nexport const getAdministratorById = createAction(AdministratorActionTypes.GetAdministratorById);\nexport const getAdministratorByIdSuccess = createAction(\n AdministratorActionTypes.GetAdministratorByIdSuccess,\n);\nexport const getAdministratorByIdError = createAction(AdministratorActionTypes.GetAdministratorByIdError);\n\nexport const clearAdministrator = createAction(AdministratorActionTypes.ClearAdministrator);\n\nexport const editAdministrator = createAction(AdministratorActionTypes.EditAdministrator);\n\nexport const editAdministratorSuccess = createAction(AdministratorActionTypes.EditAdministratorSuccess);\n\nexport const editAdministratorError = createAction(AdministratorActionTypes.EditAdministratorError);\n","import { createSelector } from '@reduxjs/toolkit';\nimport { AppState } from 'store';\nimport { AdministratorDTO, Page } from 'utils/restApplicationClient';\n\nexport const administratorErrorsSelector = (state: AppState): { [key: string]: string | undefined } =>\n state.administrator.errors;\n\nexport const administratorsPageableSelector = (state: AppState): Page | undefined =>\n state.administrator.administratorsPageable;\n\nexport const administratorSelector = (state: AppState): AdministratorDTO | undefined =>\n state.administrator.administrator;\n\nexport const getAdministratorErrorsSelector = createSelector(administratorErrorsSelector, (errors) => errors);\n\nexport const getAdministratorsPageableSelector = createSelector(\n administratorsPageableSelector,\n (administrators) => administrators,\n);\n\nexport const getAdministratorSelector = createSelector(administratorSelector, (administrator) => administrator);\n","export const ClientActionTypes = {\n GetClientsPageable: 'CLIENT_GET_CLIENTS_PAGEABLE',\n GetClientsPageableSuccess: 'CLIENT_GET_CLIENTS_PAGEABLE_SUCCESS',\n GetClientsPageableError: 'CLIENT_GET_CLIENTS_PAGEABLE_ERROR',\n GetAllClients: 'CLIENT_GET_ALL_CLIENTS',\n GetAllClientsSuccess: 'CLIENT_GET_ALL_CLIENTS_SUCCESS',\n GetAllClientsError: 'CLIENT_GET_ALL_CLIENTS_ERROR',\n CreateClient: 'CLIENT_CREATE_CLIENT',\n CreateClientSuccess: 'CLIENT_CREATE_CLIENT_SUCCESS',\n CreateClientError: 'CLIENT_CREATE_CLIENT_ERROR',\n EditClient: 'CLIENT_EDIT_CLIENT',\n EditClientSuccess: 'CLIENT_EDIT_CLIENT_SUCCESS',\n EditClientError: 'CLIENT_EDIT_CLIENT_ERROR',\n GetClientById: 'CLIENT_GET_CLIENT_BY_ID',\n GetClientByIdSuccess: 'CLIENT_GET_CLIENT_BY_ID_SUCCESS',\n GetClientByIdError: 'CLIENT_GET_CLIENT_BY_ID_ERROR',\n ClearClient: 'CLIENT_CLEAR_CLIENT',\n ClearClientErrors: 'CLIENT_CLEAR_ERRORS',\n};\n","import { createAction } from '@reduxjs/toolkit';\nimport { ErrorPayload } from 'store/error/error.epic';\nimport { IEditClient, IPaginationOptions } from 'types/api';\nimport { ClientDTO, CreateClientDTO, Page } from 'utils/restApplicationClient';\nimport { ClientActionTypes } from './client.actions.types';\n\nexport const getAllClients = createAction(ClientActionTypes.GetAllClients);\n\nexport const getAllClientsError = createAction(ClientActionTypes.GetAllClientsError);\nexport const getAllClientsSuccess = createAction(ClientActionTypes.GetAllClientsSuccess);\nexport const createClient = createAction(ClientActionTypes.CreateClient);\nexport const createClientSuccess = createAction(ClientActionTypes.CreateClientSuccess);\nexport const createClientError = createAction(ClientActionTypes.CreateClientError);\n\nexport const getClientsPageable = createAction(ClientActionTypes.GetClientsPageable);\nexport const getClientsPageableSuccess = createAction>(ClientActionTypes.GetClientsPageableSuccess);\nexport const getClientsPageableError = createAction(ClientActionTypes.GetClientsPageableError);\nexport const editClient = createAction(ClientActionTypes.EditClient);\nexport const editClientSuccess = createAction(ClientActionTypes.EditClientSuccess);\nexport const editClientError = createAction(ClientActionTypes.EditClientError);\n\nexport const getClientById = createAction(ClientActionTypes.GetClientById);\nexport const getClientByIdSuccess = createAction(ClientActionTypes.GetClientByIdSuccess);\nexport const getClientByIdError = createAction(ClientActionTypes.GetClientByIdError);\n\nexport const clearClient = createAction(ClientActionTypes.ClearClient);\n\nexport const clearClientErrors = createAction(ClientActionTypes.ClearClientErrors);\n","import { createSelector } from '@reduxjs/toolkit';\nimport { AppState } from 'store';\nimport { IClientState } from './client.interface';\n\nexport const clientStateSelector = (state: AppState): IClientState => state.client;\n\nexport const getClientsPageableSelector = createSelector(clientStateSelector, ({ clientsPageable }) => clientsPageable);\n\nexport const getAllClientsSelector = createSelector(clientStateSelector, ({ clients }) => clients);\n\nexport const getAllActiveClientsSelector = createSelector(clientStateSelector, ({ clients }) =>\n clients.filter(({ status }) => status),\n);\n\nexport const getClientErrorsSelector = createSelector(clientStateSelector, ({ errors }) => errors);\n\nexport const getClientSelector = createSelector(clientStateSelector, ({ client }) => client);\n","import { Box } from '@material-ui/core';\nimport { Dispatch } from '@reduxjs/toolkit';\nimport ButtonContainer from 'components/Form/ButtonContainer/ButtonContainer';\nimport { EditData } from 'components/Form/CilentData/EditData';\nimport FormDiv from 'components/Form/Div/FormDiv';\nimport CustomCheckbox from 'components/Form/Input/CustomCheckbox';\nimport CustomField from 'components/Form/Input/CustomField';\nimport CustomSelect from 'components/Form/Input/CustomSelect';\nimport FormTitle from 'components/Form/Title/FormTitle';\nimport React, { Component } from 'react';\nimport { Field, Form } from 'react-final-form';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport { AppDispatch, AppState } from 'store';\nimport {\n clearAdministrator,\n clearAdministratorErrors,\n createAdministrator,\n editAdministrator,\n getAdministratorById,\n} from 'store/administrator/administrator.actions';\nimport { getAdministratorErrorsSelector, getAdministratorSelector } from 'store/administrator/administrator.selectors';\nimport { getAllClients } from 'store/client/client.actions';\nimport { getAllClientsSelector } from 'store/client/client.selectors';\nimport { getFetchSpinnerSelector } from 'store/spinner/spinner.selectors';\nimport { IEditAdministrator } from 'types/api';\nimport {\n composeValidators,\n email,\n fetchValidator,\n optionalValidator,\n password,\n required,\n} from 'utils/customValidators';\nimport { AdministratorDTO, ClientDTO } from 'utils/restApplicationClient';\nimport { CreateAdministratorDTO, UpdateAdministratorDTO } from 'utils/restApplicationClientTypeOverrides';\n\ninterface IState {\n submitValues?: CreateAdministratorDTO & UpdateAdministratorDTO;\n}\n\ninterface IDispatchProps {\n createAdministrator: (payload: CreateAdministratorDTO) => AppDispatch;\n getAllClients: () => AppDispatch;\n clearAdministratorErrors: () => AppDispatch;\n clearAdministrator: () => AppDispatch;\n getAdministratorById: (payload: string) => AppDispatch;\n editAdministrator: (payload: IEditAdministrator) => AppDispatch;\n}\n\ninterface IStateProps {\n clients: ClientDTO[];\n errors: { [key: string]: string | undefined };\n administrator?: AdministratorDTO;\n spinner: boolean;\n}\n\ninterface IProps {\n native?: boolean;\n}\n\ninterface IMatchParams {\n id?: string;\n}\n\nexport class AddAdministratorContainer extends Component<\n WithTranslation & RouteComponentProps & IDispatchProps & IStateProps & IProps,\n IState\n> {\n componentDidMount(): void {\n const {\n match: {\n params: { id: administratorId },\n },\n getAdministratorById,\n getAllClients,\n } = this.props;\n\n if (administratorId) {\n getAdministratorById(administratorId);\n }\n getAllClients();\n }\n\n componentWillUnmount(): void {\n const { clearAdministrator, clearAdministratorErrors } = this.props;\n clearAdministratorErrors();\n clearAdministrator();\n }\n\n parseClientSelect(rows: ClientDTO[]): Array<{ value: string; name: string }> {\n return rows.map((client) => ({\n value: client.id,\n name: client.clientName,\n }));\n }\n\n onSubmit = (values: CreateAdministratorDTO & UpdateAdministratorDTO): void => {\n const {\n match: {\n params: { id: administratorId },\n },\n createAdministrator,\n editAdministrator,\n } = this.props;\n this.props.clearAdministratorErrors();\n this.setState({ submitValues: values });\n if (administratorId) {\n editAdministrator({ administratorId, updateAdministrator: values });\n } else {\n createAdministrator(values);\n }\n };\n render(): JSX.Element {\n const {\n errors,\n match: {\n params: { id: administratorId },\n },\n administrator,\n native,\n spinner,\n } = this.props;\n return (\n \n \n (\n
\n \n \n optionalValidator(value, password) : password\n }\n label=\"common.password\"\n textFieldProps={{\n type: 'password',\n }}\n disableAutocomplete\n />\n \n {({ input, meta }): JSX.Element => (\n \n )}\n \n \n {administrator && (\n \n )}\n \n \n
\n )}\n />\n
\n );\n }\n}\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n createAdministrator: (payload: CreateAdministratorDTO): AppDispatch => dispatch(createAdministrator(payload)),\n getAllClients: (): AppDispatch => dispatch(getAllClients()),\n clearAdministratorErrors: (): AppDispatch => dispatch(clearAdministratorErrors()),\n getAdministratorById: (payload: string): AppDispatch => dispatch(getAdministratorById(payload)),\n clearAdministrator: (): AppDispatch => dispatch(clearAdministrator()),\n editAdministrator: (payload: IEditAdministrator): AppDispatch => dispatch(editAdministrator(payload)),\n});\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n clients: getAllClientsSelector(state),\n errors: getAdministratorErrorsSelector(state),\n administrator: getAdministratorSelector(state),\n spinner: getFetchSpinnerSelector(state),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(withTranslation()(AddAdministratorContainer)));\n","import { css } from '@emotion/core';\nimport styled from '@emotion/styled';\n\nexport const Title = styled.div`\n margin: 16px 0;\n`;\n\nexport const addClientContainerStyles = {\n root: css`\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 100%;\n justify-content: flex-start;\n `,\n heading: css`\n color: #0796eb;\n font-weight: 100;\n `,\n\n form: css`\n margin: 16px;\n `,\n btnContainer: css`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 40%;\n margin: 0 auto;\n margin-top: 20px !important;\n `,\n checkbox: css`\n display: flex;\n `,\n};\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Box } from '@material-ui/core';\nimport { Dispatch } from '@reduxjs/toolkit';\nimport ButtonContainer from 'components/Form/ButtonContainer/ButtonContainer';\nimport { EditData } from 'components/Form/CilentData/EditData';\nimport FormDiv from 'components/Form/Div/FormDiv';\nimport CustomCheckbox from 'components/Form/Input/CustomCheckbox';\nimport CustomField from 'components/Form/Input/CustomField';\nimport { CustomInputError } from 'components/Form/Input/CustomInput.styled';\nimport FormTitle from 'components/Form/Title/FormTitle';\nimport { useEffect, useState } from 'react';\nimport { Field, Form } from 'react-final-form';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { useRouteMatch } from 'react-router-dom';\nimport { AppDispatch, AppState } from 'store';\nimport { clearClient, clearClientErrors, createClient, editClient, getClientById } from 'store/client/client.actions';\nimport { getClientErrorsSelector, getClientSelector } from 'store/client/client.selectors';\nimport { getFetchSpinnerSelector } from 'store/spinner/spinner.selectors';\nimport { IEditClient } from 'types/api';\nimport { composeValidators, fetchValidator, required } from 'utils/customValidators';\nimport { ClientDTO, CreateClientDTO } from 'utils/restApplicationClient';\nimport { addClientContainerStyles } from './addClientContainer.style';\n\ninterface IStateProps {\n errors: { [key: string]: string | undefined };\n client: ClientDTO | undefined;\n spinner: boolean;\n}\n\ninterface IDispatchProps {\n createClient: (payload: CreateClientDTO) => AppDispatch;\n editClient: (payload: IEditClient) => AppDispatch;\n getClientById: (payload: string) => AppDispatch;\n clearClient: () => AppDispatch;\n clearClientErrors: () => AppDispatch;\n}\n\n// eslint-disable-next-line max-lines-per-function\nexport const AddClientForm = (props: IStateProps & IDispatchProps): JSX.Element => {\n const {\n params: { id: clientId },\n } = useRouteMatch<{ id: string }>();\n\n const { t } = useTranslation();\n const { errors, createClient, editClient } = props;\n const [submitValues, setSubmitValues] = useState<{\n clientName?: string;\n status?: boolean;\n }>({\n clientName: undefined,\n status: undefined,\n });\n\n const { client, spinner } = props;\n\n const onSubmit = (values: CreateClientDTO): void => {\n props.clearClientErrors();\n setSubmitValues(values);\n\n if (clientId) {\n editClient({ clientId, updateClient: values });\n } else {\n createClient(values);\n }\n };\n\n useEffect(() => {\n if (clientId) {\n props.getClientById(clientId);\n }\n return (): void => {\n props.clearClient();\n props.clearClientErrors();\n };\n }, []);\n\n return (\n \n \n (\n
\n \n \n \n {stateErrors && submitFailed && {t(stateErrors.error)}}\n {client && }\n \n \n
\n )}\n />\n
\n );\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n createClient: (payload: CreateClientDTO): AppDispatch => dispatch(createClient(payload)),\n editClient: (payload: IEditClient): AppDispatch => dispatch(editClient(payload)),\n getClientById: (payload: string): AppDispatch => dispatch(getClientById(payload)),\n clearClient: (): AppDispatch => dispatch(clearClient()),\n clearClientErrors: (): AppDispatch => dispatch(clearClientErrors()),\n});\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n errors: getClientErrorsSelector(state),\n client: getClientSelector(state),\n spinner: getFetchSpinnerSelector(state),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AddClientForm);\n","import React from 'react';\n\nexport default function XTM(): JSX.Element {\n return (\n \n \n \n \n \n );\n}\n","import { css } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport { Button } from '@material-ui/core';\n\nexport const accordionStyles = {\n root: css`\n margin: 0 0 20px 0 !important;\n box-sizing: border-box;\n width: 400px;\n `,\n summary: css`\n background: #dde0e6 !important;\n min-height: fit-content !important;\n\n .MuiAccordionSummary-content {\n margin: 0;\n align-items: center;\n span {\n padding-left: 8px;\n }\n }\n\n .MuiAccordionSummary-content.Mui-expanded {\n margin: 12px 0;\n }\n\n .Mui-expanded {\n margin: 0 !important;\n }\n\n .MuiIconButton-root {\n padding: 8px;\n }\n\n .MuiSvgIcon-root {\n padding-right: 0;\n width: auto;\n }\n .MuiSvgIcon-root.connectedIcon {\n transform-origin: center !important;\n transform: rotate(-45deg) !important;\n }\n\n .MuiAccordion-root {\n margin-bottom: 24px !important;\n }\n `,\n details: css`\n flex-direction: column;\n `,\n accordionError: css`\n border: 2px solid red;\n border-radius: 4px !important;\n `,\n accordionErrorText: css`\n color: red;\n text-align: start;\n max-width: 400px;\n margin: 12px 0;\n `,\n accordionLabel: css`\n font-weight: bold;\n color: #333;\n text-align: start;\n margin-top: 12px;\n `,\n spinner: css`\n width: 20px !important;\n height: auto !important;\n margin-right: 8px;\n `,\n buttonIcon: css`\n width: 20px;\n margin-right: 10px;\n `,\n};\n\nexport const AccordionDiv = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: start;\n margin-top: 20px;\n`;\n\nexport const AccordionButton = styled(Button)`\n height: 28px;\n font-size: 13px !important;\n & > * > svg {\n margin-right: 8px;\n }\n`;\n","import React from 'react';\n\nexport default function Link(): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport default function LinkBroken(): JSX.Element {\n return (\n \n \n \n );\n}\n","export enum Roles {\n ADMIN_XTM = 'ROLE_XTM_ADMIN',\n ADMIN_CLIENT = 'ROLE_CLIENT_ADMIN',\n USER = 'USER',\n}\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { CircularProgress } from '@material-ui/core';\nimport ErrorIcon from '@material-ui/icons/Error';\nimport Link from 'icons/Link';\nimport LinkBroken from 'icons/LinkBroken';\nimport { Component, Fragment } from 'react';\nimport { accordionStyles } from './Accordion.style';\n\ninterface IProps {\n connected: boolean;\n spinner?: boolean;\n error?: boolean;\n touched?: boolean;\n}\n\nclass AccordionIcon extends Component {\n renderIcon(): JSX.Element {\n const { connected, spinner, error, touched } = this.props;\n if (error && touched) {\n return ;\n }\n if (spinner) {\n return ;\n }\n if (connected) {\n return ;\n }\n return ;\n }\n\n render(): JSX.Element {\n return {this.renderIcon()};\n }\n}\n\nexport default AccordionIcon;\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Accordion, AccordionDetails, AccordionSummary, Box, CircularProgress, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { UserRouteParameterEnum } from 'enums/userRouteParameter';\nimport { createForm, FormApi, Unsubscribe } from 'final-form';\nimport XTM from 'icons/Xtm';\nimport { Component, Fragment } from 'react';\nimport { Field, FieldRenderProps, Form } from 'react-final-form';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { getconnectDataSpinnerSelector, getConnectToXtmSpinnerSelector } from 'store/spinner/spinner.selectors';\nimport { clearUserErrors, xtmConnect, xtmConnectUser, xtmGetConnectData } from 'store/user/user.actions';\nimport {\n getUserErrorsSelector,\n getUserSelector,\n getXtmAuthorizationIdSelector,\n getXtmConnectDataSelector,\n} from 'store/user/user.selectors';\nimport { composeValidators, fetchValidatorObject, required } from 'utils/customValidators';\nimport { UserDTO } from 'utils/restApplicationClient';\nimport { XTMConnectionParametersDTO, XTMConnectRequest } from 'utils/restApplicationClientTypeOverrides';\nimport CustomField from '../../Input/CustomField';\nimport { customInputStyles } from '../../Input/CustomInput.styled';\nimport { AccordionButton, AccordionDiv, accordionStyles } from '../Accordion.style';\nimport AccordionIcon from '../AccordionIcon';\n\ninterface IStateProps {\n errors: { [key: string]: string | undefined };\n authorizationId?: string;\n user?: UserDTO;\n connectData?: XTMConnectionParametersDTO;\n connectDataSpinner: boolean;\n connectToXtmSpinner: boolean;\n}\n\ninterface IDispatchProps {\n xtmConnect: (payload: XTMConnectRequest) => AppDispatch;\n xtmConnectUser: (payload: { userId: string; xtmParameters: XTMConnectRequest }) => AppDispatch;\n clearUserErrors: () => AppDispatch;\n getConnectData: (payload: string) => AppDispatch;\n}\n\ninterface IState {\n connected: boolean;\n submitValues: XTMConnectRequest;\n}\n\ninterface IMatchParams {\n id?: string;\n type?: UserRouteParameterEnum;\n}\n\ntype PropType = FieldRenderProps &\n WithTranslation &\n IStateProps &\n IDispatchProps &\n RouteComponentProps;\n\nexport class XtmConnectAccordion extends Component {\n unsubscribe: Unsubscribe;\n constructor(props: PropType) {\n super(props);\n this.state = {\n connected: false,\n submitValues: {\n userUuidToCopyPassword: null,\n xtmUrl: '',\n xtmCompanyName: '',\n password: '',\n username: '',\n },\n };\n this.form = createForm({\n onSubmit: this.onSubmit,\n });\n this.unsubscribe = this.form.subscribe(\n () => {\n const { errors } = this.props;\n\n if (errors && errors['xtmConnect']) {\n this.props.clearUserErrors();\n }\n },\n { values: true },\n );\n }\n\n componentDidMount(): void {\n const {\n match: {\n params: { id: userId },\n },\n getConnectData,\n } = this.props;\n if (userId) {\n getConnectData(userId);\n }\n }\n\n componentDidUpdate(previousProps: PropType): void {\n const {\n authorizationId,\n errors: { xtmConnect } = {},\n connectData,\n match: {\n params: { id: userId, type },\n },\n xtmConnectUser,\n } = this.props;\n const { connected } = this.state;\n\n if (previousProps.authorizationId !== authorizationId && authorizationId) {\n this.props.input.onChange(authorizationId);\n this.setState({ connected: true });\n } else if (xtmConnect && connected) {\n this.props.input.onChange(undefined);\n this.setState({ connected: false });\n }\n\n if (previousProps.connectData === undefined && connectData && userId && type === UserRouteParameterEnum.edit) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { xtmUsername, xtmPassword, ...rest } = connectData;\n xtmConnectUser({\n userId,\n xtmParameters: {\n password: null,\n username: connectData.xtmUsername,\n userUuidToCopyPassword: userId,\n ...rest,\n },\n });\n }\n }\n\n componentWillUnmount(): void {\n this.unsubscribe();\n }\n\n form: FormApi>>;\n\n onSubmit = (values: XTMConnectRequest): void => {\n const {\n match: {\n params: { id: userId, type },\n },\n connectData,\n } = this.props;\n const isNewPassword = values.password !== connectData?.xtmPassword;\n if (userId) {\n const connectionParameters = {\n ...values,\n password: isNewPassword ? values.password : null,\n userUuidToCopyPassword: isNewPassword ? null : userId,\n };\n if (userId && type === UserRouteParameterEnum.edit) {\n this.props.xtmConnectUser({\n userId,\n xtmParameters: {\n ...connectionParameters,\n },\n });\n } else if (userId && type === UserRouteParameterEnum.duplicate) {\n this.props.xtmConnect({\n ...connectionParameters,\n });\n }\n } else {\n this.props.xtmConnect(values);\n }\n this.setState({ submitValues: values });\n };\n\n render(): JSX.Element {\n const { t, errors = {}, connectData, connectDataSpinner, connectToXtmSpinner, meta } = this.props;\n return (\n \n \n \n {t('users.xtm.connect')}\n \n \n \n }>\n \n \n {this.state.connected ? t('users.connected') : t('users.disconnected')}\n \n \n \n {errors['xtmConnect'] && {t(errors['xtmConnect'])}}\n ,\n )}\n subscription={{ pristine: true, submitting: true }}\n render={({ handleSubmit, submitting }): JSX.Element => (\n \n \n \n \n \n \n {connectToXtmSpinner ? (\n \n ) : (\n \n {t('users.xtm.connect')}\n \n )}\n \n \n )}\n />\n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n errors: getUserErrorsSelector(state),\n authorizationId: getXtmAuthorizationIdSelector(state),\n user: getUserSelector(state),\n connectData: getXtmConnectDataSelector(state),\n connectDataSpinner: getconnectDataSpinnerSelector(state),\n connectToXtmSpinner: getConnectToXtmSpinnerSelector(state),\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n xtmConnect: (payload: XTMConnectRequest): AppDispatch => dispatch(xtmConnect(payload)),\n clearUserErrors: (): AppDispatch => dispatch(clearUserErrors()),\n getConnectData: (payload: string): AppDispatch => dispatch(xtmGetConnectData(payload)),\n xtmConnectUser: (payload: { userId: string; xtmParameters: XTMConnectRequest }): AppDispatch =>\n dispatch(xtmConnectUser(payload)),\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withTranslation()(XtmConnectAccordion)));\n","export const ProjectActionTypes = {\n GetProjectsPageable: 'PROJECTS_GET_PROJECTS_PAGEABLE',\n GetProjectsPageableSuccess: 'PROJECTS_GET_PROJECTS_PAGEABLE_SUCCESS',\n GetProjectsPageableError: 'PROJECTS_GET_PROJECTS_PAGEABLE_ERROR',\n GetWorkflowSteps: 'GET_WORKFLOW_STEPS',\n GetWorkflowStepsSuccess: 'PGET_WORKFLOW_STEPS_SUCCESS',\n GetWorkflowStepsError: 'GET_WORKFLOW_STEPS_ERROR',\n GetWebhooks: 'GET_WEBHOOKS',\n GetWebhooksSuccess: 'GET_WEBHOOKS_SUCCESS',\n GetWebhooksError: 'GET_WEBHOOKS_ERROR',\n GetContentTypes: 'GET_CONTENT_TYPES',\n GetContentTypesError: 'GET_CONTENT_TYPES_ERROR',\n GetContentTypesSuccess: 'GET_CONTENT_TYPES_SUCCESS',\n GetContentElements: 'GET_CONTENT_ELEMENTS',\n GetContentElementsError: 'GET_CONTENT_ELEMENTS_ERROR',\n GetContentElementsSuccess: 'GET_CONTENT_ELEMENTS_SUCCESS',\n ConnectToKentico: 'CONNECT_TO_KENTICO',\n ConnectToKenticoSuccess: 'CONNECT_TO_KENTICO_SUCCESS',\n ConnectToKenticoError: 'CONNECT_TO_KENTICO_ERROR',\n GetApiKey: 'GET_API_KEY',\n GetApiKeySuccess: 'GET_API_KEY_SUCCESS',\n GetApiKeyError: 'GET_API_KEY_ERROR',\n AddProject: 'ADD_PROJECT',\n AddProjectSuccess: 'ADD_PROJECT_SUCCESS',\n AddProjectError: 'ADD_PROJECT_ERROR',\n EditProject: 'EDIT_PROJECT',\n EditProjectSuccess: 'EDIT_PROJECT_SUCCESS',\n EditProjectError: 'EDIT_PROJECT_ERROR',\n GetProjectById: 'GET_PROJECT_BY_ID',\n GetProjectByIdSuccess: 'GET_PROJECT_BY_ID_SUCCESS',\n GetProjectByIdError: 'GET_PROJECT_BY_ID_ERROR',\n ClearProjectErrors: 'CLEAR_PROJECT_ERROR',\n GetXTMLanguages: 'GET_XTM_LANGUAGES',\n GetXTMLanguagesSuccess: 'GET_XTM_LANGUAGES_SUCCESS',\n GetXTMLanguagesError: 'GET_XTM_LANGUAGES_ERROR',\n GetKenticoLanguages: 'GET_KENTICO_LANGUAGES',\n GetKenticoLanguagesSuccess: 'GET_KENTICO_LANGUAGES_SUCCESS',\n GetKenticoLanguagesError: 'GET_KENTICO_LANGUAGES_ERROR',\n GetProjectsByClientId: 'PROJECT_GET_PROJECTS_BY_CLIENT_ID',\n GetProjectsByClientIdSuccess: 'PROJECT_GET_PROJECTS_BY_CLIENT_ID_SUCCESS',\n GetProjectsByClientIdError: 'PROJECT_GET_PROJECTS_BY_CLIENT_ID_ERROR',\n updateFormProject: 'UPDATE_FORM_PROJECT',\n clearProjectFormAll: 'CLEAR_PROJECT_FORM_ALL',\n allFormObservers: 'ALL_FORM_OBSERVER',\n};\n","import { createAction } from '@reduxjs/toolkit';\nimport { ErrorPayload } from 'store/error/error.epic';\nimport { IPaginationOptions } from 'types/api';\nimport {\n ApiKeysDTO,\n CreateOrUpdateProjectDTO,\n KontentContentElementTypeDTO,\n KontentContentTypeDTO,\n KontentProjectDTO,\n KontentProjectOverviewDTO,\n KontentWebhookDTO,\n KontentWorkflowStepDTO,\n Page,\n XTMLanguageDTO,\n} from 'utils/restApplicationClient';\nimport { KontentLanguageDTO } from '../../../../xtm-kontent-app/src/utils/restApplicationClient';\nimport { ProjectActionTypes } from './project.actions.types';\nimport { IConntectedProject, IProjectForm } from './project.interface';\n\nexport const getProjectsPageable = createAction(ProjectActionTypes.GetProjectsPageable);\n\nexport const getProjectsPageableSuccess = createAction>(\n ProjectActionTypes.GetProjectsPageableSuccess,\n);\n\nexport const getProjectsPageableError = createAction(ProjectActionTypes.GetProjectsPageableError);\n\nexport const getContentTypes = createAction(ProjectActionTypes.GetContentTypes);\n\nexport const getContentTypesSuccess = createAction(ProjectActionTypes.GetContentTypesSuccess);\n\nexport const getContentTypesError = createAction(ProjectActionTypes.GetContentTypesError);\n\nexport const getContentElements = createAction(ProjectActionTypes.GetContentElements);\n\nexport const getContentElementsSuccess = createAction(\n ProjectActionTypes.GetContentElementsSuccess,\n);\n\nexport const getContentElementsError = createAction(ProjectActionTypes.GetContentElementsError);\n\nexport const getWorkflowSteps = createAction(ProjectActionTypes.GetWorkflowSteps);\n\nexport const getWorkflowStepsSuccess = createAction(\n ProjectActionTypes.GetWorkflowStepsSuccess,\n);\n\nexport const getWorkflowStepsError = createAction(ProjectActionTypes.GetProjectsPageableError);\n\nexport const getWebhooks = createAction(ProjectActionTypes.GetWebhooks);\n\nexport const getWebhooksSuccess = createAction(ProjectActionTypes.GetWebhooksSuccess);\n\nexport const getWebhooksError = createAction(ProjectActionTypes.GetWebhooksError);\n\nexport const connectToKentico = createAction(ProjectActionTypes.ConnectToKentico);\n\nexport const connectToKenticoSuccess = createAction(ProjectActionTypes.ConnectToKenticoSuccess);\n\nexport const connectToKenticoError = createAction(ProjectActionTypes.ConnectToKenticoError);\n\nexport const getApiKey = createAction(ProjectActionTypes.GetApiKey);\n\nexport const getApiKeySuccess = createAction(ProjectActionTypes.GetApiKeySuccess);\n\nexport const getApiKeyError = createAction(ProjectActionTypes.GetApiKeyError);\n\nexport const addProject = createAction(ProjectActionTypes.AddProject);\n\nexport const addProjectSuccess = createAction(ProjectActionTypes.AddProjectSuccess);\n\nexport const addProjectError = createAction(ProjectActionTypes.AddProjectError);\n\nexport const editProject = createAction<{\n projectId: string;\n projectData: CreateOrUpdateProjectDTO;\n}>(ProjectActionTypes.EditProject);\n\nexport const editProjectSuccess = createAction(ProjectActionTypes.EditProjectSuccess);\n\nexport const editProjectError = createAction(ProjectActionTypes.EditProjectError);\n\nexport const getProjectById = createAction(ProjectActionTypes.GetProjectById);\n\nexport const getProjectByIdSuccess = createAction(ProjectActionTypes.GetProjectByIdSuccess);\n\nexport const getProjectByIdError = createAction(ProjectActionTypes.GetProjectByIdError);\n\nexport const clearProjectErrors = createAction(ProjectActionTypes.ClearProjectErrors);\n\nexport const getKenticoLanguages = createAction(ProjectActionTypes.GetKenticoLanguages);\n\nexport const getKenticoLanguagesSuccess = createAction(\n ProjectActionTypes.GetKenticoLanguagesSuccess,\n);\n\nexport const getKenticoLanguagesError = createAction(ProjectActionTypes.GetKenticoLanguagesError);\n\nexport const getXtmLanguages = createAction(ProjectActionTypes.GetXTMLanguages);\n\nexport const getXtmLanguagesSuccess = createAction(ProjectActionTypes.GetXTMLanguagesSuccess);\n\nexport const getXtmLanguagesError = createAction(ProjectActionTypes.GetXTMLanguagesError);\n\nexport const GetProjectsByClientId = createAction<{ clientUUID: string }>(ProjectActionTypes.GetProjectsByClientId);\n\nexport const GetProjectsByClientIdSuccess = createAction>(\n ProjectActionTypes.GetProjectsByClientIdSuccess,\n);\n\nexport const GetProjectsByClientIdError = createAction(ProjectActionTypes.GetProjectsByClientIdError);\n\nexport const updateFormProject = createAction(ProjectActionTypes.updateFormProject);\n\nexport const clearProjectFormAll = createAction(ProjectActionTypes.clearProjectFormAll);\n\nexport const allFormObservers = createAction(ProjectActionTypes.allFormObservers);","import { createSelector } from '@reduxjs/toolkit';\nimport { AppState } from 'store';\nimport { IProjectState } from './project.interface';\n\nexport const projectStateSelector = (state: AppState): IProjectState => state.project;\n\nexport const getProjectsPageableSelector = createSelector(\n projectStateSelector,\n ({ projectsPageable }) => projectsPageable,\n);\n\nexport const getProjectErrorsSelector = createSelector(projectStateSelector, ({ errors }) => errors);\n\nexport const getProjectFormSelector = createSelector(projectStateSelector, ({ form }) => form);\n\nexport const getClientProjectsSelector = createSelector(projectStateSelector, ({ clientProjects }) => clientProjects);\n","import { css } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport { Box, Checkbox, Chip, IconButton, InputBase, Link, Paper, Popper, Typography } from '@material-ui/core';\n\nexport interface IDisabledProps {\n disabled?: number;\n spinner?: number;\n}\nexport interface IPaperProps {\n width: number;\n}\n\nexport interface IInputProps {\n error: number;\n opened: number;\n hovered: number;\n height?: number;\n width?: number;\n}\n\nexport const DraggableSelectChip = styled(Chip)`\n margin: 8px 2px;\n`;\n\nexport const DraggableSelectEllipsisContainer = styled(Box)`\n align-items: flex-start;\n opacity: ${({ disabled }: IDisabledProps) => (disabled ? `0.5` : '1')};\n display: ${({ spinner }: IDisabledProps) => (spinner ? `none` : 'flex')};\n`;\n\nexport const DraggableSelectEllipsis = styled.span`\n margin-top: 3px !important;\n`;\n\nexport const DraggableSelectArrowContainer = styled(Box)`\n align-items: flex-start;\n opacity: ${({ disabled }: IDisabledProps) => (disabled ? `0.5` : '1')};\n display: ${({ spinner }: IDisabledProps) => (spinner ? `none` : 'flex')};\n`;\n\nexport const DraggableSelectButtonTypography = styled(Typography)`\n display: flex;\n justify-content: space-between;\n background: #e0e0e0;\n margin: 3px;\n border-radius: 20px;\n min-width: 50px;\n padding: 0 5px;\n`;\n\nexport const DraggableSelectIconButton = styled(IconButton)`\n padding: 0 !important;\n color: #fff;\n margin-top: 3px !important;\n`;\n\nexport const DraggableSelectOptionCheckbox = styled(Checkbox)`\n padding: 0 !important;\n`;\n\nexport const DraggableSelectInputContainer = styled(Box)`\n display: flex;\n justify-content: center;\n min-height: 32px;\n`;\n\nexport const DraggableSelectInput = styled(InputBase)`\n width: 90%;\n margin: 10px;\n border: 1px solid rgba(0, 0, 0, 0.23);\n\n .MuiInputBase-input {\n padding: 5px;\n min-height: 30px;\n }\n`;\n\nexport const DraggableSelectChipContainer = styled(Box)`\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n`;\n\nexport const DraggableSelectDataContainer = styled(Box)`\n border: 1px solid rgba(0, 0, 0, 0.23) !important;\n border-color: ${({ error }: IInputProps) => (error ? `#f44336` : 'rgba(0, 0, 0, 0.23)')} !important;\n display: flex;\n margin: 5px 0;\n border-radius: ${({ opened }: IInputProps) => (opened ? `4px 4px 0 0` : '4px')} !important;\n background: #fff;\n padding: 0 6px;\n justify-content: space-between !important;\n min-height: 32px;\n max-height: 32px;\n box-sizing: border-box;\n overflow: ${({ hovered, opened }: IInputProps) => (hovered || opened ? `auto` : 'hidden')};\n max-height: ${({ hovered, height }: IInputProps) => (hovered ? `${height}px` : '32px')};\n overflow: hidden;\n width: ${({ width }: IInputProps) => (width ? `${width}px` : '100%')};\n transition: ${({ opened }: IInputProps) => (opened ? `unset` : 'max-height 0.2s ease')};\n\n &:hover {\n cursor: pointer;\n border-color: ${({ error }: IInputProps) => (error ? `#f44336` : '#536171')} !important;\n }\n\n .MuiChip-root {\n margin: 4px 2px !important;\n }\n\n .MuiChip-deleteIconSmall {\n width: 22px;\n height: 22px;\n color: white;\n }\n`;\n\nexport const DraggableSelectSpinnerContainer = styled(Box)`\n align-items: center;\n margin-right: 5px;\n display: ${({ spinner }: IDisabledProps) => (spinner ? `flex` : 'none')};\n`;\n\nexport const DraggableSelectDefaultChip = styled.span`\n color: rgba(0, 0, 0, 0.35);\n padding-left: 5px;\n`;\n\nexport const DraggableSelectActionButton = styled(Link)`\n color: #00a4e4 !important;\n\n &:hover {\n opacity: 0.8;\n cursor: pointer;\n }\n`;\n\nexport const DraggableSelectButtonContainer = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 0 10px;\n`;\n\nexport const DraggableSelectAutocompletePaper = styled(Paper)`\n margin-left: -1px !important;\n margin-top: 0 !important;\n width: ${({ width }: IPaperProps) => (width ? `${width}px` : 'initial')};\n border: 1px solid rgba(0, 0, 0, 0.23);\n border-radius: unset !important;\n box-shadow: unset !important;\n\n .MuiAutocomplete-listbox {\n max-height: 25vh !important;\n }\n`;\n\nexport const DraggableSelectPopper = styled(Popper)`\n width: ${({ width }: IPaperProps) => (width ? `${width}px` : 'initial')};\n border: 1px solid rgba(0, 0, 0, 0.23);\n border-top: 0;\n`;\n\nexport const DraggableSelectSelectClasses = {\n autocomplete: css`\n position: relative;\n background-color: #fff;\n box-sizing: border-box;\n `,\n};\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Box, BoxProps, CircularProgress, Typography } from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport CloseIcon from '@material-ui/icons/Close';\nimport SearchIcon from '@material-ui/icons/Search';\nimport { Autocomplete } from '@material-ui/lab';\nimport React, { ChangeEvent, Component, ComponentType, createRef, Fragment, MouseEventHandler } from 'react';\nimport { DragDropContext, Draggable, Droppable, OnDragEndResponder, OnDragStartResponder } from 'react-beautiful-dnd';\nimport { FieldRenderProps } from 'react-final-form';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { IAutocompleteField } from 'types/shared';\nimport { CustomAutocompleteTypography, CustomTypography, InputDiv } from '../CustomInput.styled';\nimport {\n DraggableSelectActionButton,\n DraggableSelectArrowContainer,\n DraggableSelectAutocompletePaper,\n DraggableSelectButtonContainer,\n DraggableSelectChip,\n DraggableSelectChipContainer,\n DraggableSelectDataContainer,\n DraggableSelectDefaultChip,\n DraggableSelectEllipsis,\n DraggableSelectEllipsisContainer,\n DraggableSelectIconButton,\n DraggableSelectInput,\n DraggableSelectInputContainer,\n DraggableSelectOptionCheckbox,\n DraggableSelectPopper,\n DraggableSelectSelectClasses,\n DraggableSelectSpinnerContainer,\n} from './DraggableSelect.styled';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface IProps extends FieldRenderProps {\n options: Array;\n onChange?: (value: Array | null) => void;\n onHandleChange?: (\n selectedCustomers: Array | null,\n value: Array | null\n ) => void;\n handleChipDelete?: (index: number) => void;\n handleSelectAll?: (selectedCustomers: Array, options: Array) => void;\n handleClearAll?: (selectedCustomers: Array) => void;\n handleDragEnd?: (destination: number, source: number) => void;\n column?: boolean;\n label: string;\n noOptionsText?: string;\n error?: string;\n spinner?: boolean;\n disabled?: boolean;\n placeholder?: string;\n allowDragAndDrop?: boolean;\n width?: number;\n}\n\ninterface IState {\n canOpen: boolean;\n id?: string;\n isDragged: boolean;\n isHovered: boolean;\n isOpened: boolean;\n chipTotalHeight: number;\n anchorEl?: EventTarget & HTMLDivElement;\n elements: Array | null;\n}\n\ntype PropType = IProps & WithTranslation;\n\nexport class DraggableSelect extends Component {\n private inputContainerRef = createRef, Record>>();\n private arrowRef = createRef, Record>>();\n private draggableContextRef = createRef, Record>>();\n\n private chipElements: HTMLElement[] = [];\n private draggableContextWidth = 0;\n constructor(props: PropType) {\n super(props);\n this.state = {\n canOpen: true,\n isDragged: false,\n isHovered: false,\n isOpened: false,\n chipTotalHeight: 32,\n elements: null,\n };\n }\n\n componentDidUpdate(): void {\n const draggableElement = this.draggableContextRef?.current as unknown as HTMLElement;\n const arrowElement = this.arrowRef?.current as unknown as HTMLElement;\n // eslint-disable-next-line unicorn/prefer-spread\n const chipElements: HTMLElement[] = Array.from(draggableElement?.querySelectorAll('.MuiChip-root') || []);\n const draggableContextWidth = draggableElement?.offsetWidth - arrowElement?.offsetWidth;\n\n if (this.chipElements?.length !== chipElements.length || draggableContextWidth !== this.draggableContextWidth) {\n this.chipElements = chipElements;\n this.draggableContextWidth = draggableContextWidth;\n }\n\n this.checkChipContainerHeight();\n }\n\n handleChange = (event: React.ChangeEvent<{}>, value: Array | null): void => {\n const { onChange, input, onHandleChange, disabled, spinner } = this.props;\n\n if (!disabled && !spinner) {\n onChange?.(value);\n onHandleChange?.(input.value, value);\n\n this.setState({ elements: value });\n input.onChange(value);\n }\n };\n\n handleClick: MouseEventHandler = (event): void => {\n const { disabled } = this.props;\n const { anchorEl, canOpen, isDragged } = this.state;\n\n if (canOpen && !isDragged && !disabled) {\n this.setState({ anchorEl: anchorEl ? undefined : event.currentTarget, canOpen: false });\n }\n };\n\n handleClose = (event?: ChangeEvent<{}>): void => {\n event?.stopPropagation();\n\n this.setState({ anchorEl: undefined });\n setTimeout(() => {\n this.setState({ canOpen: true });\n }, 100);\n };\n\n onChipDelete = (value: string) => (): void => {\n const { input, onChange, handleChipDelete } = this.props;\n\n const data = (input.value as IAutocompleteField[])?.filter((record, index) => {\n if (record.value !== value) {\n return true;\n }\n handleChipDelete?.(index);\n return false;\n });\n\n this.setState({ elements: data });\n input.onChange(data);\n onChange?.(data);\n };\n\n onSelectAll = (): void => {\n const { input, options, onChange, handleSelectAll, disabled, spinner } = this.props;\n\n if (!disabled && !spinner) {\n handleSelectAll?.(input.value, options);\n input.onChange(options);\n onChange?.(options);\n }\n };\n\n onClearAll = (): void => {\n const { input, onChange, handleClearAll, disabled, spinner } = this.props;\n\n if (!disabled && !spinner) {\n handleClearAll?.(input.value);\n input.onChange([]);\n onChange?.(null);\n }\n };\n\n onDragEnd: OnDragEndResponder = ({ destination, source }) => {\n const {\n input: { value, onChange },\n onChange: customOnChange,\n handleDragEnd,\n } = this.props;\n\n if (!destination) {\n return;\n }\n\n const filteredData = value as IAutocompleteField[];\n const [removed] = filteredData.splice(source.index, 1);\n\n handleDragEnd?.(destination.index, source.index);\n\n filteredData.splice(destination.index, 0, removed);\n onChange(filteredData);\n customOnChange?.(filteredData);\n this.setState({ isDragged: false });\n };\n\n onDragStart: OnDragStartResponder = (): void => {\n this.setState({ isDragged: true });\n };\n\n checkIfOverflowed = (): boolean => {\n let width = 0;\n\n return this.chipElements?.some((node) => {\n width += node.offsetWidth;\n return width > this.draggableContextWidth;\n });\n };\n\n handleInputMouseEvent = (value: boolean) => (): void => {\n this.setState({ isHovered: value });\n };\n\n checkChipContainerHeight = (): void => {\n const chipParentHeight = this.chipElements[0]?.parentElement?.offsetHeight;\n let count = 1;\n let width = 0;\n this.chipElements?.forEach((node) => {\n width += node.offsetWidth;\n\n if (width > this.draggableContextWidth) {\n count += 1;\n width = 0;\n }\n });\n const chipTotalHeight = count * (chipParentHeight ?? 0);\n\n if (this.state.chipTotalHeight !== chipTotalHeight) {\n this.setState({ chipTotalHeight });\n }\n };\n\n render(): JSX.Element {\n const {\n options,\n column,\n input,\n label,\n t,\n meta,\n spinner,\n disabled,\n noOptionsText,\n width,\n allowDragAndDrop,\n placeholder,\n error,\n } = this.props;\n const { anchorEl, isHovered, chipTotalHeight } = this.state;\n const inputValue = input.value as IAutocompleteField[];\n const popperElement = this.inputContainerRef.current as unknown as HTMLElement;\n const popperWidth = popperElement?.offsetWidth ?? 0;\n\n return (\n \n \n \n {t(label)}\n \n \n \n \n \n \n \n {inputValue &&\n inputValue?.map(({ label, value }, index) => (\n \n {(provided): JSX.Element => (\n
\n {provided.placeholder}\n\n \n {(provided): JSX.Element => (\n }\n label={\n
\n {label}\n {index === 0 && allowDragAndDrop && (\n {`(${t(\n 'common.default'\n )})`}\n )}\n
\n }\n size=\"small\"\n onDelete={this.onChipDelete(value)}\n />\n )}\n
\n
\n )}\n
\n ))}\n
\n
\n\n \n \n \n\n {this.checkIfOverflowed() && !isHovered && !anchorEl && (\n \n ...\n \n )}\n\n \n \n \n \n \n \n \n (\n \n )}\n open\n multiple\n options={options}\n onClose={this.handleClose}\n disablePortal\n disableCloseOnSelect\n noOptionsText={!options.length ? noOptionsText : undefined}\n getOptionLabel={(option): string => (option.label ? option.label : '')}\n onChange={this.handleChange}\n getOptionSelected={(option, value): boolean => value.label === option.label}\n value={input.value ? input.value : []}\n renderInput={(parameters): JSX.Element => (\n \n \n }\n placeholder={placeholder ? placeholder : t('common.searchPlaceholder')}\n autoFocus\n />\n \n \n \n Select all\n \n \n Clear\n \n \n \n )}\n renderOption={({ label }, { selected }): JSX.Element => (\n \n \n \n {label}\n \n \n )}\n size=\"small\"\n />\n \n
\n\n {(error || (meta.error && meta.touched)) && (\n \n {t(error || meta.error)}\n \n )}\n
\n
\n );\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default withTranslation()(DraggableSelect) as ComponentType>;\n","import styled from '@emotion/styled';\n\nexport const ConnectedFieldsCheckboxGroup = styled.div`\n > * {\n margin: 28px 0;\n }\n`;\n","import styled from '@emotion/styled';\nimport { IconButton } from '@material-ui/core';\n\nexport const CustomLanguageMappingFieldContainer = styled.div`\n margin: 12px 12px 8px 0;\n width: 100%;\n`;\n\nexport const CustomLanguageMappingContainer = styled.fieldset`\n margin: 20px -16px;\n display: flex;\n flex-direction: column;\n padding: 16px 13px 16px 15px;\n border: 1px solid #6f8294;\n`;\n\nexport const CustomLanguageMappingLegend = styled.legend`\n text-align: initial;\n font-weight: 700;\n font-size: 14px;\n color: #333;\n padding: 0 4px;\n margin-left: -5px;\n`;\n\nexport const CustomLanguageMappingButton = styled(IconButton)`\n align-self: flex-start;\n padding: 0 !important;\n color: #38af49 !important;\n`;\n\nexport const CustomLanguageMappingRemoveButton = styled(IconButton)`\n margin: 36px -8px 0 -8px !important;\n`;\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Accordion, AccordionDetails, AccordionSummary, Box, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ViewListIcon from '@material-ui/icons/ViewList';\nimport { IForm } from 'containers/AddUser/AddUserContainer';\nimport { FormApi } from 'final-form';\nimport { Component, Fragment } from 'react';\nimport { Field } from 'react-final-form';\nimport { FieldArray } from 'react-final-form-arrays';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { IUserState } from 'store/user/user.interface';\nimport { IAutocompleteField } from 'types/shared';\nimport { requiredAutocomplete } from 'utils/customValidators';\nimport { XTMTemplateDTO } from '../../../../../xtm-kontent-app/src/utils/restApplicationClient';\nimport { AccordionDiv, accordionStyles } from '../Accordion/Accordion.style';\nimport { customInputStyles } from '../Input/CustomInput.styled';\nimport DraggableSelect from '../Input/DraggableSelect/DraggableSelect';\n\ninterface IProps {\n form: FormApi;\n templates: IUserState['templates'];\n customers: Array<{\n label: string;\n value: string;\n }>;\n spinner: boolean;\n initialTemplates?: Array>;\n}\n\ntype PropType = IProps & WithTranslation;\n\nexport class TemplatesAccordion extends Component {\n mapTemplatesToRows = (templates?: Array): Array<{ value: string; label: string }> => {\n return templates?.map(({ name, xtmTemplateId }) => ({ value: xtmTemplateId.toString(), label: name })) || [];\n };\n\n renderTemplateFields = (): JSX.Element => {\n const { customers, templates, initialTemplates } = this.props;\n\n return (\n \n {(customers.length > 0 && (\n \n {({ fields }): Array =>\n fields.map((name, index) => (\n \n ))\n }\n \n )) || (\n \n \n \n Select at least one customer from above list\n \n \n )}\n \n );\n };\n render(): JSX.Element {\n const { t } = this.props;\n return (\n \n \n \n {t('users.xtm.templates')}\n \n \n \n }>\n {t('common.selectPlaceholder')}\n \n {this.renderTemplateFields()}\n \n \n );\n }\n}\n\nexport default withTranslation()(TemplatesAccordion);\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Box } from '@material-ui/core';\nimport { IForm } from 'containers/AddUser/AddUserContainer';\nimport { FormApi } from 'final-form';\nimport { Component, Fragment } from 'react';\nimport { Field } from 'react-final-form';\nimport { OnChange } from 'react-final-form-listeners';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { GetProjectsByClientId } from 'store/project/project.actions';\nimport { getClientProjectsSelector } from 'store/project/project.selectors';\nimport {\n getCustomerSpinnerSelector,\n getProjectSpinnerSelector,\n getTemplateSpinnerSelector,\n} from 'store/spinner/spinner.selectors';\nimport { clearXtmTemplates, xtmGetTemplates } from 'store/user/user.actions';\nimport { IUserState, XTMGetTemplatesDTO } from 'store/user/user.interface';\nimport {\n getDefaultUserLanguagesSelector,\n getXtmCustomersSelector,\n getXtmTemplatesSelector,\n} from 'store/user/user.selectors';\nimport { IAutocompleteField } from 'types/shared';\nimport { composeValidators, isAllowedPrefix, isNumber, required, requiredAutocomplete } from 'utils/customValidators';\nimport { KontentProjectOverviewDTO, UserDTO, XTMCustomerInfoDTO, XTMLanguageDTO } from 'utils/restApplicationClient';\nimport { EditData } from '../CilentData/EditData';\nimport CustomCheckbox from '../Input/CustomCheckbox';\nimport CustomField from '../Input/CustomField';\nimport DraggableSelect from '../Input/DraggableSelect/DraggableSelect';\nimport { ConnectedFieldsCheckboxGroup } from './ConnectedFields.styled';\nimport {\n CustomLanguageMappingContainer,\n CustomLanguageMappingLegend,\n} from './LanguageMapping/LanguageMappingContainer.styled';\nimport TemplatesAccordion from './TemplatesAccordion';\n\ninterface IProps {\n native?: boolean;\n authorizationId: string;\n user?: UserDTO;\n form: FormApi;\n initialCustomers?: Array;\n initialTemplates?: Array>;\n}\n\ninterface IState {\n selectedCustomers?: Array;\n initialProjects?: Array;\n}\n\ninterface IDispatchProps {\n getTemplates: (payload: XTMGetTemplatesDTO) => AppDispatch;\n clearTemplates: () => AppDispatch;\n getProjectsByClientId: (payload: { clientUUID: string }) => AppDispatch;\n}\n\ninterface IStateProps {\n customers?: XTMCustomerInfoDTO[];\n templates: IUserState['templates'];\n customerSpinner: boolean;\n templateSpinner: boolean;\n defaultLanguages?: XTMLanguageDTO[];\n clientProjects: KontentProjectOverviewDTO[];\n projectsSpinner: boolean;\n}\n\ntype PropType = IProps & IDispatchProps & IStateProps & WithTranslation;\n\nexport class ConnectedUserFields extends Component {\n constructor(props: PropType) {\n super(props);\n this.state = {\n selectedCustomers: [],\n initialProjects: undefined,\n };\n }\n\n componentDidMount(): void {\n const { form, getProjectsByClientId } = this.props;\n const { clientUUID } = form.getState().values;\n if (clientUUID) {\n getProjectsByClientId({ clientUUID });\n }\n }\n\n componentDidUpdate(previousProps: PropType): void {\n const { user, clientProjects } = this.props;\n\n if (user !== previousProps.user || clientProjects !== previousProps.clientProjects) {\n this.mapAssignedProjects();\n }\n }\n\n handleCustomerChange = (value: Array | null): void => {\n const { getTemplates, authorizationId } = this.props;\n\n this.setState({\n selectedCustomers: value || [],\n });\n if (value) {\n getTemplates({ xtmAuthId: authorizationId, xtmCustomerIds: value.map((customer) => Number(customer.value)) });\n }\n };\n\n handleOnCustomerChange = (\n selectedCustomers: Array | null,\n value: Array | null\n ): void => {\n const {\n form: { mutators },\n } = this.props;\n\n if (selectedCustomers && selectedCustomers.length > 0 && value && value.length > 0) {\n const valueIds = value.map(({ value }) => value);\n const removedIndex = selectedCustomers.findIndex(({ value }) => !valueIds.includes(value));\n\n if (removedIndex >= 0) {\n mutators.remove('xtmTemplates', removedIndex);\n return;\n }\n } else if (value && value.length === 0) {\n mutators.remove('xtmTemplates', 0);\n return;\n }\n mutators.push('xtmTemplates', []);\n };\n\n handleChipDelete = (index: number): void => {\n const {\n form: { mutators },\n } = this.props;\n\n mutators.remove('xtmTemplates', index);\n };\n\n handleSelectAllCustomers = (\n selectedCustomers: Array,\n options: Array\n ): void => {\n const { form } = this.props;\n const previousTemplates = form.getState().values.xtmTemplates;\n\n if (selectedCustomers) {\n const previousCustomers = selectedCustomers?.map(({ value }) => value) || [];\n\n selectedCustomers.forEach((customer, index) => {\n form.mutators.update('xtmTemplates', index, []);\n });\n\n form.mutators.concat('xtmTemplates', new Array<[]>(options.length - previousCustomers.length));\n\n previousCustomers.forEach((previousCustomerId, index) => {\n const templateIndex = options.findIndex((option) => option.value === previousCustomerId);\n\n if (templateIndex >= 0) {\n form.mutators.update('xtmTemplates', templateIndex, previousTemplates[index]);\n }\n });\n } else {\n form.mutators.concat('xtmTemplates', new Array<[]>(options.length));\n }\n };\n\n handleClearAllCustomers = (selectedCustomers: Array): void => {\n const {\n form: { mutators },\n } = this.props;\n if (selectedCustomers) {\n const previousCustomerIndexes = selectedCustomers.map((customer, index) => index);\n\n mutators.removeBatch('xtmTemplates', previousCustomerIndexes);\n }\n };\n\n handleDragEnd = (destination: number, source: number): void => {\n const {\n form: { mutators },\n } = this.props;\n\n mutators.swap('xtmTemplates', source, destination);\n };\n\n mapCustomersToRows = (customers?: Array): Array<{ value: string; label: string }> => {\n return customers?.map((customer) => ({ value: customer.xtmCustomerId.toString(), label: customer.name })) || [];\n };\n\n mapAssignedProjects = (): void => {\n const { user, clientProjects } = this.props;\n\n if (user && clientProjects.length > 0) {\n const { assignedProjectIds } = user;\n\n const initialProjects = assignedProjectIds\n .map((assignedProjectId) => {\n const project = clientProjects.find((clientProject) => clientProject.id === assignedProjectId);\n\n if (project) {\n return {\n label: project.kenticoProjectName,\n value: assignedProjectId,\n };\n }\n return undefined;\n })\n .filter((value) => value) as Array;\n\n this.setState({\n initialProjects,\n });\n\n return;\n }\n this.setState({\n initialProjects: undefined,\n });\n };\n\n render(): JSX.Element {\n const {\n user,\n form,\n clientProjects,\n customers,\n templateSpinner,\n customerSpinner,\n templates,\n initialCustomers,\n initialTemplates,\n projectsSpinner,\n t,\n } = this.props;\n const { selectedCustomers, initialProjects } = this.state;\n\n return (\n \n \n {(value: Array): void => {\n this.setState({\n selectedCustomers: value || [],\n });\n }}\n \n \n \n \n \n \n \n {t('users.xtm.emailNotifications')}\n \n \n \n \n \n ({ label: kenticoProjectName, value: id }))}\n spinner={projectsSpinner}\n />\n \n \n \n {user && }\n \n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n customers: getXtmCustomersSelector(state),\n templates: getXtmTemplatesSelector(state),\n customerSpinner: getCustomerSpinnerSelector(state),\n templateSpinner: getTemplateSpinnerSelector(state),\n defaultLanguages: getDefaultUserLanguagesSelector(state),\n clientProjects: getClientProjectsSelector(state),\n projectsSpinner: getProjectSpinnerSelector(state),\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n getTemplates: (payload: XTMGetTemplatesDTO): AppDispatch => dispatch(xtmGetTemplates(payload)),\n clearTemplates: (): AppDispatch => dispatch(clearXtmTemplates()),\n getProjectsByClientId: (payload: { clientUUID: string }): AppDispatch => dispatch(GetProjectsByClientId(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(ConnectedUserFields));\n","export enum OrderDirection {\n ASC = 'asc',\n DESC = 'desc',\n}\n","import { Roles } from 'enums/roles';\n\n/**\n * Return whether user roles match route roles\n *\n * @param {Roles} routeRoles - Route roles\n * @param {Roles} userRoles - User roles\n * @returns {boolean} Either true or false\n */\nexport const checkRoles = (routeRoles: Roles[] = [], userRoles: Roles[] = []): boolean => {\n return routeRoles.reduce((previous: boolean, current: Roles) => userRoles.includes(current) || previous, false);\n};\n","/* eslint-disable id-length */\nimport { Box } from '@material-ui/core';\nimport { Dispatch } from '@reduxjs/toolkit';\nimport XtmConnectAccordion from 'components/Form/Accordion/XtmConnectAccordion/XtmConnectAccordion';\nimport ButtonContainer from 'components/Form/ButtonContainer/ButtonContainer';\nimport ConnectedUserFields from 'components/Form/ConnectedFields/ConnectedUserFields';\nimport FormDiv from 'components/Form/Div/FormDiv';\nimport CustomCheckbox from 'components/Form/Input/CustomCheckbox';\nimport CustomField from 'components/Form/Input/CustomField';\nimport { CustomInputError } from 'components/Form/Input/CustomInput.styled';\nimport CustomSelect from 'components/Form/Input/CustomSelect';\nimport FormTitle from 'components/Form/Title/FormTitle';\nimport { Roles } from 'enums/roles';\nimport { UserRouteParameterEnum } from 'enums/userRouteParameter';\nimport { FormApi } from 'final-form';\nimport arrayMutators from 'final-form-arrays';\nimport React, { Component } from 'react';\nimport { Field, Form } from 'react-final-form';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps } from 'react-router-dom';\nimport { AppDispatch, AppState } from 'store';\nimport { getAllClients } from 'store/client/client.actions';\nimport { getAllClientsSelector } from 'store/client/client.selectors';\nimport { GetProjectsByClientId } from 'store/project/project.actions';\nimport { getFetchSpinnerSelector } from 'store/spinner/spinner.selectors';\nimport {\n clearUser,\n clearUserErrors,\n createUser,\n editUser,\n getDefaultUserLanguages,\n getUserById,\n xtmGetTemplates,\n} from 'store/user/user.actions';\nimport { IEditUser, IUserState, XTMGetTemplatesDTO } from 'store/user/user.interface';\nimport {\n getDefaultUserLanguagesSelector,\n getUserDataSelector,\n getUserErrorsSelector,\n getUserSelector,\n getXtmAuthorizationIdSelector,\n getXtmCustomersSelector,\n getXtmTemplatesSelector,\n} from 'store/user/user.selectors';\nimport { IAutocompleteField } from 'types/shared';\nimport { checkRoles } from 'utils/checkRoles';\nimport {\n composeValidators,\n email,\n fetchValidator,\n optionalValidator,\n password,\n required,\n} from 'utils/customValidators';\nimport {\n AuthenticationResult,\n ClientDTO,\n UserDTO,\n XTMCustomerInfoDTO,\n XTMLanguageDTO,\n} from 'utils/restApplicationClient';\nimport { CreateUserDTO, UpdateUserDTO } from 'utils/restApplicationClientTypeOverrides';\n\ninterface IStateProps {\n errors: { [key: string]: string | undefined };\n clients: ClientDTO[];\n user?: UserDTO;\n authorizationId?: string;\n currentUser?: AuthenticationResult;\n defaultLanguages?: XTMLanguageDTO[];\n spinner: boolean;\n customers?: Array;\n templates: IUserState['templates'];\n}\n\ninterface IDispatchProps {\n getAllClients: () => AppDispatch;\n createUser: (payload: CreateUserDTO) => AppDispatch;\n getUserById: (payload: string) => AppDispatch;\n editUser: (payload: IEditUser) => AppDispatch;\n clearUserErrors: () => AppDispatch;\n clearUser: () => AppDispatch;\n getDefaultUserLanguages: () => AppDispatch;\n getProjectsByClientId: (payload: { clientUUID: string }) => AppDispatch;\n getTemplates: (payload: XTMGetTemplatesDTO) => AppDispatch;\n}\n\ninterface IState {\n submitValues?: UpdateUserDTO | CreateUserDTO | IForm;\n initialCustomers?: Array;\n initialTemplates?: Array>;\n}\n\ninterface IProps {\n native?: boolean;\n}\n\ninterface IMatchParams {\n id?: string;\n type?: UserRouteParameterEnum;\n}\n\n// TODO update once EP is ready\nexport interface IForm extends Omit {\n xtmCustomers: Array;\n xtmTemplates: Array>;\n assignedProjectIds: Array;\n}\n\ntype PropType = WithTranslation & RouteComponentProps & IProps & IStateProps & IDispatchProps;\nexport class AddUserContainer extends Component {\n constructor(props: PropType) {\n super(props);\n\n this.state = {\n initialCustomers: undefined,\n initialTemplates: undefined,\n submitValues: undefined,\n };\n }\n\n componentDidMount(): void {\n const {\n getAllClients,\n getUserById,\n defaultLanguages,\n getDefaultUserLanguages,\n match: {\n params: { id: userId },\n },\n } = this.props;\n clearUserErrors();\n clearUser();\n getAllClients();\n\n if (!defaultLanguages) {\n getDefaultUserLanguages();\n }\n\n if (userId) {\n getUserById(userId);\n }\n }\n\n componentDidUpdate(previousProps: PropType): void {\n const { user, authorizationId, getTemplates, customers, templates } = this.props;\n\n if (user && authorizationId && previousProps.authorizationId !== authorizationId) {\n const customerIds = user.xtmProperties.xtmCustomers.map(({ xtmCustomerId }) => xtmCustomerId);\n getTemplates({ xtmAuthId: authorizationId, xtmCustomerIds: customerIds });\n }\n\n if (user !== previousProps.user || customers !== previousProps.customers || templates !== previousProps.templates) {\n this.mapCustomers();\n }\n }\n\n componentWillUnmount(): void {\n const { clearUser, clearUserErrors } = this.props;\n\n clearUserErrors();\n clearUser();\n }\n\n parseClientSelect(rows: ClientDTO[]): Array<{ value: string; name: string }> {\n return rows.map((client) => ({\n value: client.id,\n name: client.clientName,\n }));\n }\n\n onClientChange =\n (form: FormApi) =>\n ({\n target: { value },\n }: React.ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>): void => {\n const { authorizationId, user, getProjectsByClientId } = this.props;\n const shouldConnectedFieldsRender = user && user.xtmProperties && user.xtmProperties.xtmCustomers?.length > 0;\n\n if ((authorizationId || shouldConnectedFieldsRender) && value) {\n form.change('assignedProjectIds', undefined);\n getProjectsByClientId({ clientUUID: value as string });\n }\n };\n\n onSubmit = (values: IForm): void => {\n const {\n match: {\n params: { id: userId, type },\n },\n } = this.props;\n const { assignedProjectIds, xtmCustomers, xtmTemplates, xtmAuthorizationId, ...rest } = values;\n const customers = xtmCustomers.map(({ value: customerId }, customerIndex) => ({\n orderNumber: customerIndex,\n xtmCustomerId: Number(customerId),\n xtmTemplates: xtmTemplates[customerIndex].map(({ value: templateId }, templateIndex) => ({\n orderNumber: templateIndex,\n xtmTemplateId: Number(templateId),\n })),\n }));\n const projectIds = assignedProjectIds?.map(({ value }) => value) || [];\n const editValues = { ...rest, assignedProjectIds: projectIds, xtmCustomers: customers };\n\n this.props.clearUserErrors();\n this.setState({ submitValues: values });\n if (userId && type === UserRouteParameterEnum.edit) {\n this.props.editUser({\n userId,\n updateUser: editValues,\n });\n } else {\n this.props.createUser({\n xtmAuthorizationId,\n ...editValues,\n });\n }\n };\n\n mapCustomers = (): void => {\n const { user, customers, templates } = this.props;\n const initialTemplates: Array> = [];\n\n if (user && customers && templates) {\n const initialCustomers = user.xtmProperties.xtmCustomers\n\n .map((xtmCustomer) => {\n const customer = customers.find((customer) => customer.xtmCustomerId === xtmCustomer.xtmCustomerId);\n const customerTemplates = templates[xtmCustomer.xtmCustomerId];\n\n if (customerTemplates) {\n initialTemplates.push(\n xtmCustomer.xtmTemplates\n .map(({ xtmTemplateId }) => {\n const template = customerTemplates.find(\n (customerTemplate) => customerTemplate.xtmTemplateId === xtmTemplateId\n );\n\n if (template) {\n return {\n label: template.name,\n value: template.xtmTemplateId.toString(),\n };\n }\n return undefined;\n })\n .filter((value) => value) as Array\n );\n }\n\n if (customer) {\n return {\n label: customer.name,\n value: customer.xtmCustomerId.toString(),\n };\n }\n\n return undefined;\n })\n .filter((value) => value) as Array;\n\n this.setState({\n initialCustomers,\n initialTemplates,\n });\n\n return;\n }\n\n this.setState({\n initialCustomers: undefined,\n initialTemplates: undefined,\n });\n };\n\n render(): JSX.Element {\n const {\n match: {\n params: { id: userId, type },\n },\n native,\n errors,\n user,\n authorizationId,\n currentUser,\n spinner,\n t,\n } = this.props;\n const { initialCustomers, initialTemplates } = this.state;\n\n const shouldConnectedFieldsRender =\n authorizationId && user && user.xtmProperties && user.xtmProperties.xtmCustomers?.length;\n const isClientAdmin = checkRoles([Roles.ADMIN_CLIENT], currentUser?.roles as Roles[]);\n\n return (\n \n \n (\n
\n \n \n optionalValidator(value, password)\n : password\n }\n label=\"common.password\"\n textFieldProps={{ type: 'password' }}\n disableAutocomplete\n />\n \n \n \n {({ input, meta }): JSX.Element => (\n \n )}\n \n {stateErrors && submitFailed && {t(stateErrors.error)}}\n\n \n {({ input, meta }): JSX.Element => (\n \n )}\n \n \n \n {(inputProps): JSX.Element => }\n \n {(authorizationId || shouldConnectedFieldsRender) && (\n \n )}\n \n \n
\n )}\n />\n
\n );\n }\n}\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n getAllClients: (): AppDispatch => dispatch(getAllClients()),\n createUser: (payload: CreateUserDTO): AppDispatch => dispatch(createUser(payload)),\n editUser: (payload: IEditUser): AppDispatch => dispatch(editUser(payload)),\n getUserById: (payload: string): AppDispatch => dispatch(getUserById(payload)),\n clearUserErrors: (): AppDispatch => dispatch(clearUserErrors()),\n clearUser: (): AppDispatch => dispatch(clearUser()),\n getDefaultUserLanguages: (): AppDispatch => dispatch(getDefaultUserLanguages()),\n getProjectsByClientId: (payload: { clientUUID: string }): AppDispatch => dispatch(GetProjectsByClientId(payload)),\n getTemplates: (payload: XTMGetTemplatesDTO): AppDispatch => dispatch(xtmGetTemplates(payload)),\n});\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n clients: getAllClientsSelector(state),\n errors: getUserErrorsSelector(state),\n user: getUserSelector(state),\n authorizationId: getXtmAuthorizationIdSelector(state),\n currentUser: getUserDataSelector(state),\n defaultLanguages: getDefaultUserLanguagesSelector(state),\n spinner: getFetchSpinnerSelector(state),\n customers: getXtmCustomersSelector(state),\n templates: getXtmTemplatesSelector(state),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(AddUserContainer));\n","export const TableActionTypes = {\n setPaginationOptions: 'TABLE_SET_PAGINATION_OPTIONS',\n setPaginationOptionsNoEmit: 'TABLE_SET_PAGINATION_OPTIONS_NO_EMIT',\n clearPaginationOptions: 'TABLE_CLEAR_PAGINATION_OPTIONS',\n setPaginationSearch: 'TABLE_SET_PAGINATION_SEARCH',\n setPaginationAction: 'TABLE_SET_PAGINATION_ACTION',\n setPaginationSearchSpinner: 'TABLE_SET_SEARCH_SPINNER',\n};\n","import { ActionCreatorWithPayload, createAction } from '@reduxjs/toolkit';\nimport { IPaginationOptions } from 'types/api';\nimport { TableActionTypes } from './table.actions.types';\nimport { ITablePaginationOptions } from './table.interface';\n\nexport const setPaginationOptions = createAction(TableActionTypes.setPaginationOptions);\n\nexport const setPaginationOptionsNoEmit = createAction(\n TableActionTypes.setPaginationOptionsNoEmit,\n);\n\nexport const clearPaginationOptions = createAction(TableActionTypes.clearPaginationOptions);\n\nexport const setPaginationSearch = createAction(TableActionTypes.setPaginationSearch);\n\nexport const setPaginationAction = createAction | undefined>(\n TableActionTypes.setPaginationAction,\n);\n\nexport const setPaginationSearchSpinner = createAction(TableActionTypes.setPaginationSearchSpinner);\n","import { createSelector } from '@reduxjs/toolkit';\nimport { AppState } from 'store';\nimport { ITablePaginationOptions } from './table.interface';\n\nconst paginationOptionsSelector = (state: AppState): ITablePaginationOptions => state.table.paginationOptions;\n\nconst searchSpinnerSelector = (state: AppState): boolean => state.table.searchSpinner;\n\nexport const getPaginationOptionsSelector = createSelector(\n paginationOptionsSelector,\n (paginationOptions) => paginationOptions,\n);\n\nexport const getPaginationSearchSpinnerSelector = createSelector(\n searchSpinnerSelector,\n (searchSpinner) => searchSpinner,\n);\n","import moment from 'moment';\nimport { IDateFields } from 'types/api';\n\ninterface IResponsePayload {\n content: Content[];\n}\n\n/**\n * Returns object with parsed date fields\n *\n * @param content - Database entity object with createdAt and modifiedAt fields\n *\n * @returns - Database entity object with parsed date fields\n */\nexport function parseDate(content: Content): Content {\n const { createdAt, modifiedAt } = content;\n const createdAtParsed = moment(createdAt).format('LLL');\n const modifiedAtParsed = moment(modifiedAt).format('LLL');\n return {\n ...content,\n createdAt: createdAtParsed,\n modifiedAt: modifiedAtParsed,\n };\n}\n\n/**\n * Returns an array of objects with parsed date fields\n *\n * @param payload - Database entity object with \"content\" field containing an array of objects with createdAt and modifiedAt fields\n *\n * @returns - Database entity object array with parsed date fields\n */\nexport function parseDateBulk>(\n payload: Payload,\n): Payload {\n const { content } = payload;\n const contentParsed = content.map((element) => parseDate(element));\n return { ...payload, content: contentParsed };\n}\n","import { css } from '@emotion/core';\n\nexport const customTableStyle = {\n root: css`\n margin: 12px;\n overflow-x: unset !important;\n .sortLabel {\n svg {\n color: #10a4e4 !important;\n }\n }\n `,\n button: css`\n padding: 4px !important;\n `,\n container: css`\n max-height: 500px;\n `,\n iconContainer: css`\n display: flex;\n .MuiSvgIcon-root:hover {\n color: #10a4e4;\n }\n `,\n spinnerCell: css`\n display: flex !important;\n justify-content: center;\n width: 100%;\n `,\n spinner: css`\n margin: 24px;\n `,\n};\n","import styled from '@emotion/styled';\nimport { Select, TableRow } from '@material-ui/core';\n\nexport const CustomPaginationContainer = styled.td`\n padding: 6px 0;\n`;\n\nexport const CustomTableRow = styled(TableRow)`\n thead > & td {\n border-bottom: 1px solid rgba(224, 224, 224, 1);\n }\n`;\n\nexport const CustomPaginationActionsContainer = styled.div`\n display: flex;\n padding: 0 8px;\n align-items: center;\n\n .MuiPaginationItem-textSecondary.Mui-selected {\n background-color: #eff3f6;\n color: #10a4e4;\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.04);\n }\n }\n`;\n\nexport const CustomPaginationSelect = styled(Select)`\n .MuiSelect-root {\n padding: 0px 24px 0px 8px !important;\n }\n .MuiSelect-icon {\n right: 0 !important;\n }\n height: 23px !important;\n border-radius: 0 !important;\n margin: 0 8px;\n`;\n","import React, { Component } from 'react';\nimport { Trans } from 'react-i18next';\n\ninterface IProps {\n from: number;\n to: number;\n count: number;\n}\n\nclass PaginationTransLabel extends Component {\n render(): JSX.Element {\n const { from, to, count } = this.props;\n return (\n \n {count < 0 ? (\n \n ) : (\n \n )}\n \n );\n }\n}\n\nexport default PaginationTransLabel;\n","import { Box, MenuItem } from '@material-ui/core';\nimport { Pagination } from '@material-ui/lab';\nimport React, { PureComponent } from 'react';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport {\n CustomPaginationActionsContainer,\n CustomPaginationContainer,\n CustomPaginationSelect,\n CustomTableRow,\n} from './Pagination.styled';\nimport PaginationTransLabel from './PaginationTransLabel';\n\nexport interface IPaginationProps {\n onChangePage: (event: React.ChangeEvent, page: number) => void;\n onChangeRowsPerPage: (\n event: React.ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>,\n ) => void;\n page: number;\n rowsPerPage: number;\n columns: number;\n count: number;\n nativeSelect?: boolean;\n}\n\nclass CustomPagination extends PureComponent {\n getPaginationLabelDisplayedRows({ to, from, count }: { to: number; from: number; count: number }): JSX.Element {\n return ;\n }\n\n render(): JSX.Element {\n const { count, t, onChangePage, onChangeRowsPerPage, page, rowsPerPage, columns } = this.props;\n const pages = Math.ceil(count / rowsPerPage);\n return (\n \n \n \n \n \n {t('common.show')}\n \n \n {[5, 10, 25, 50].map((rowOption, index) => (\n \n {rowOption}\n \n ))}\n \n \n {t('common.items')}\n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default withTranslation()(CustomPagination);\n","import { css } from '@emotion/core';\n\nexport const tableEmptyStyles = {\n root: css`\n display: flex;\n align-items: center;\n flex-direction: column;\n background: #fff !important;\n padding: 20px;\n width: 100%;\n `,\n icon: css`\n font-size: 80px !important;\n `,\n text: css`\n color: grey;\n letter-spacing: 0.075em !important;\n `,\n};\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Typography } from '@material-ui/core';\nimport SpeakerNotesOffIcon from '@material-ui/icons/SpeakerNotesOff';\nimport { PureComponent } from 'react';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { tableEmptyStyles } from './TableEmpty.style';\n\nclass TableEmpty extends PureComponent {\n render(): JSX.Element {\n const { t } = this.props;\n return (\n
\n \n {t('table.tableEmpty')}\n
\n );\n }\n}\n\nexport default withTranslation()(TableEmpty);\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport {\n CircularProgress,\n IconButton,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableFooter,\n TableHead,\n TableRow,\n TableSortLabel,\n Tooltip,\n} from '@material-ui/core';\nimport EditIcon from '@material-ui/icons/Edit';\nimport PersonAddIcon from '@material-ui/icons/PersonAdd';\nimport { ActionCreatorWithPayload, Dispatch } from '@reduxjs/toolkit';\nimport { OrderDirection } from 'enums/filter';\nimport moment from 'moment';\nimport { ClassAttributes, Component, ComponentType, Fragment } from 'react';\nimport { withTranslation, WithTranslation, WithTranslationProps } from 'react-i18next';\nimport { connect, ConnectedComponent } from 'react-redux';\nimport { AppDispatch, AppState } from 'store';\nimport { getFetchSpinnerSelector } from 'store/spinner/spinner.selectors';\nimport { clearPaginationOptions, setPaginationAction, setPaginationOptions } from 'store/table/table.actions';\nimport { ITablePaginationOptions } from 'store/table/table.interface';\nimport { getPaginationOptionsSelector } from 'store/table/table.selectors';\nimport { IDateFields, IPaginationOptions } from 'types/api';\nimport { parseDateBulk } from 'utils/parseDate';\nimport { Page } from 'utils/restApplicationClient';\nimport { customTableStyle } from './CustomTable.style';\nimport Pagination, { IPaginationProps } from './Pagination';\nimport TableEmpty from './TableEmpty/TableEmpty';\n\ninterface IProps {\n headers: { id: string; label: string }[];\n onEdit: (row: T) => void;\n onDuplicate?: (row: T) => void;\n paginationAction: ActionCreatorWithPayload;\n pageable?: Page;\n search: string;\n nativeSelect?: boolean;\n fetchSpinnerOverride?: boolean;\n displayActionsLabel?: boolean;\n}\n\ninterface IState {\n page: number;\n rowsPerPage: number;\n orderBy: string;\n order: OrderDirection;\n}\n\ninterface IStateProps {\n paginationOptions: ITablePaginationOptions;\n fetchSpinner: boolean;\n}\n\ninterface IDispatchProps {\n setPaginationOptions: (payload: ITablePaginationOptions) => AppDispatch;\n setPaginationAction: (payload: ActionCreatorWithPayload | undefined) => AppDispatch;\n clearPaginationOptions: () => AppDispatch;\n}\n\ninterface IExtend extends IDateFields {\n id: string;\n}\n\nexport class CustomTable extends Component<\n IProps & WithTranslation & IStateProps & IDispatchProps,\n IState\n> {\n componentDidMount(): void {\n this.props.setPaginationAction(this.props.paginationAction);\n }\n\n componentWillUnmount(): void {\n this.props.setPaginationAction(undefined);\n this.props.clearPaginationOptions();\n }\n\n onChangePage = (event: React.ChangeEvent, page: number): void => {\n this.props.setPaginationOptions({ page: page - 1 });\n };\n onChangeRowsPerPage = ({\n target: { value },\n }: React.ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>): void => {\n this.props.setPaginationOptions({ size: Number(value) });\n };\n onChangeOrder = (property: string): (() => void) => {\n return (): void => {\n const { orderBy, order } = this.props.paginationOptions;\n const isAsc = orderBy === property && order === OrderDirection.ASC;\n this.props.setPaginationOptions({\n order: isAsc ? OrderDirection.DESC : OrderDirection.ASC,\n orderBy: property,\n });\n };\n };\n paginationProps = (): IPaginationProps => {\n const {\n pageable,\n paginationOptions: { page, size },\n } = this.props;\n return {\n onChangePage: this.onChangePage,\n onChangeRowsPerPage: this.onChangeRowsPerPage,\n page: page as number,\n rowsPerPage: size as number,\n count: pageable ? pageable.totalElements : 0,\n nativeSelect: this.props.nativeSelect,\n columns: this.props.headers.length,\n };\n };\n\n parseColumn = (row: T, key: keyof T): string => {\n if (key === 'name') {\n return String(row['kenticoProjectName' as keyof T]);\n }\n\n if (key === 'client.clientName') {\n return String(row['clientName' as keyof T]);\n }\n\n if (key === 'createdAt' || key === 'modifiedAt') {\n return moment(row[key]).format('DD.MM.YYYY HH:MM');\n }\n\n if (key !== 'status') {\n return String(row[key]);\n }\n\n const { t } = this.props;\n\n if (row[key]) {\n return t('common.active');\n }\n return t('common.inactive');\n };\n\n renderEmpty = (): JSX.Element => {\n const { fetchSpinner, fetchSpinnerOverride } = this.props;\n if (fetchSpinner && !fetchSpinnerOverride) {\n return ;\n }\n return ;\n };\n\n render(): JSX.Element {\n const {\n headers,\n pageable,\n onEdit,\n t,\n fetchSpinner,\n fetchSpinnerOverride,\n onDuplicate,\n displayActionsLabel,\n } = this.props;\n const { orderBy, order } = this.props.paginationOptions;\n return (\n \n \n \n \n {Boolean(pageable && pageable.content && pageable.content.length && !fetchSpinner) && (\n \n {headers.map((headCell, index) => (\n \n \n {t(headCell.label)}\n \n \n ))}\n {displayActionsLabel ? t('common.actions') : ''}\n \n )}\n \n \n {(pageable && pageable.content && !pageable.content.length) ||\n !pageable ||\n (fetchSpinner && !fetchSpinnerOverride) ? (\n \n \n {this.renderEmpty()}\n \n \n ) : (\n pageable &&\n pageable.content &&\n pageable.content.length &&\n parseDateBulk>(pageable).content.map((row, index) => (\n \n {headers.map((header) => (\n {this.parseColumn(row, header.id as keyof T)}\n ))}\n \n
\n \n onEdit(row)} css={customTableStyle.button}>\n \n \n \n {onDuplicate ? (\n {t('users.duplicate')} }>\n onDuplicate(row)}>\n \n \n \n ) : null}\n
\n
\n
\n ))\n )}\n
\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n paginationOptions: getPaginationOptionsSelector(state),\n fetchSpinner: getFetchSpinnerSelector(state),\n});\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n setPaginationOptions: (payload: ITablePaginationOptions): AppDispatch => dispatch(setPaginationOptions(payload)),\n setPaginationAction: (payload: ActionCreatorWithPayload | undefined): AppDispatch =>\n dispatch(setPaginationAction(payload)),\n clearPaginationOptions: (): AppDispatch => dispatch(clearPaginationOptions()),\n});\nexport default function CustomTableContainer(): ConnectedComponent<\n ComponentType<\n Pick<\n IProps & WithTranslation & IStateProps & IDispatchProps,\n | 'paginationOptions'\n | 'pageable'\n | 'headers'\n | 'onEdit'\n | 'paginationAction'\n | 'search'\n | 'setPaginationOptions'\n | 'setPaginationAction'\n | 'clearPaginationOptions'\n | 'onDuplicate'\n | 'fetchSpinner'\n | 'fetchSpinnerOverride'\n | 'displayActionsLabel'\n > &\n WithTranslationProps\n >,\n Pick<\n ClassAttributes> & IProps,\n | 'pageable'\n | 'ref'\n | 'key'\n | 'headers'\n | 'onEdit'\n | 'paginationAction'\n | 'search'\n | 'onDuplicate'\n | 'fetchSpinnerOverride'\n | 'displayActionsLabel'\n >\n> {\n return connect(\n mapStateToProps,\n mapDispatchToProps,\n )(withTranslation()(CustomTable as new (props: IProps & WithTranslation) => CustomTable));\n}\n","import { css } from '@emotion/core';\n\nexport const iconButtonLabelStyle = {\n button: css`\n text-transform: none !important;\n padding: 0px !important;\n color: #555555 !important;\n font-weight: 500 !important;\n `,\n};\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport { Button } from '@material-ui/core';\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\nimport { Component } from 'react';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { iconButtonLabelStyle } from './IconButtonLabel.style';\n\ninterface IProps {\n buttonLabelKey: string;\n onAdd: () => void;\n}\n\nconst Text = styled.span`\n letter-spacing: 0.075em;\n margin: 8px;\n font-size: 16px;\n`;\n\nclass IconButtonLabel extends Component {\n render(): JSX.Element {\n const { t, buttonLabelKey, onAdd } = this.props;\n return (\n
\n \n
\n );\n }\n}\n\nexport default withTranslation()(IconButtonLabel);\n","import { css } from '@emotion/core';\n\nexport const tableToolbarStyles = {\n root: css`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px 16px;\n margin-top: 8px;\n justify-content: space-between;\n `,\n input: css`\n background: #fff;\n width: 260px;\n `,\n};\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Box, CircularProgress, TextField } from '@material-ui/core';\nimport SearchIcon from '@material-ui/icons/Search';\nimport IconButtonLabel from 'components/IconButtonLabel/IconButtonLabel';\nimport { ChangeEvent, Component, Dispatch } from 'react';\nimport { connect } from 'react-redux';\nimport { AppDispatch, AppState } from 'store';\nimport { setPaginationSearch, setPaginationSearchSpinner } from 'store/table/table.actions';\nimport { getPaginationSearchSpinnerSelector } from 'store/table/table.selectors';\nimport { tableToolbarStyles } from './TableToolbar.style';\n\ninterface IProps {\n buttonLabelKey: string;\n onAdd: () => void;\n}\n\ninterface IStateProps {\n searchSpinner: boolean;\n}\n\ninterface IDispatchProps {\n setSearch: (payload: string) => void;\n setPaginationSearchSpinner: (payload: boolean) => void;\n}\nexport class TableToolbar extends Component {\n state = {\n searchValue: '',\n };\n\n debounceFn: Function | undefined;\n\n throttleFn: (() => void) | undefined;\n throttle(callbackFunc: Function, limit: number): () => void {\n let wait = false;\n return (): void => {\n if (!wait) {\n callbackFunc();\n wait = true;\n setTimeout(function () {\n wait = false;\n }, limit);\n }\n };\n }\n\n debounce(callbackFunc: Function, limit: number): () => void {\n let timeout: NodeJS.Timeout | null;\n return (): void => {\n const later = (): void => {\n timeout = null;\n callbackFunc();\n };\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(later, limit);\n };\n }\n\n onInputChange = (event: ChangeEvent): void => {\n event.persist();\n if (!this.throttleFn) {\n this.throttleFn = this.throttle(() => {\n this.props.setPaginationSearchSpinner(true);\n }, 500);\n this.throttleFn();\n } else {\n this.throttleFn();\n }\n\n if (!this.debounceFn) {\n this.debounceFn = this.debounce(() => {\n return this.props.setSearch(event.target.value);\n }, 500);\n this.debounceFn();\n } else {\n this.debounceFn();\n }\n };\n\n render(): JSX.Element {\n const { buttonLabelKey, onAdd } = this.props;\n return (\n
\n
\n \n \n {this.props.searchSpinner ? : }\n \n ),\n }}\n onChange={this.onInputChange}\n />\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n searchSpinner: getPaginationSearchSpinnerSelector(state),\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n setSearch: (payload: string): void => dispatch(setPaginationSearch(payload)),\n setPaginationSearchSpinner: (payload: boolean): void => dispatch(setPaginationSearchSpinner(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TableToolbar);\n","import CustomTableContainer from 'components/Table/CustomTable';\nimport TableToolbar from 'components/TableToolbar/TableToolbar';\nimport { OrderDirection } from 'enums/filter';\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { getAdministratorsPageable } from 'store/administrator/administrator.actions';\nimport { getAdministratorsPageableSelector } from 'store/administrator/administrator.selectors';\nimport { setPaginationOptions } from 'store/table/table.actions';\nimport { ITablePaginationOptions } from 'store/table/table.interface';\nimport { AdministratorDTO, Page } from 'utils/restApplicationClient';\n\ninterface IStateProps {\n administratorsPageable?: Page;\n fetchSpinnerOverride?: boolean;\n}\n\ninterface IDispatchProps {\n setPaginationOptions: (payload: ITablePaginationOptions) => AppDispatch;\n}\n\nconst TestTable = CustomTableContainer();\n\ntype IProps = IStateProps & RouteComponentProps & IDispatchProps;\n\nexport class AdministratorsContainer extends Component {\n headers = [\n { label: 'common.id', id: 'id' },\n { label: 'common.administratorEmail', id: 'email' },\n { label: 'common.client', id: 'client.clientName' },\n { label: 'common.status', id: 'status' },\n { label: 'common.creationDate', id: 'createdAt' },\n { label: 'common.modificationDate', id: 'modifiedAt' },\n ];\n onEdit = (row: AdministratorDTO): void => {\n this.props.history.push(`/administrator/edit/${row.id}`);\n };\n\n onAdd = (): void => {\n this.props.history.push(`/administrator/add`);\n };\n\n componentDidMount(): void {\n this.props.setPaginationOptions({\n order: OrderDirection.ASC,\n orderBy: 'email',\n });\n }\n\n render(): JSX.Element {\n const { administratorsPageable, fetchSpinnerOverride } = this.props;\n return (\n
\n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n administratorsPageable: getAdministratorsPageableSelector(state),\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n setPaginationOptions: (payload: ITablePaginationOptions): AppDispatch =>\n dispatch(setPaginationOptions(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(AdministratorsContainer));\n","import CustomTableContainer from 'components/Table/CustomTable';\nimport TableToolbar from 'components/TableToolbar/TableToolbar';\nimport { OrderDirection } from 'enums/filter';\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { getClientsPageable } from 'store/client/client.actions';\nimport { getClientsPageableSelector } from 'store/client/client.selectors';\nimport { setPaginationOptions } from 'store/table/table.actions';\nimport { ITablePaginationOptions } from 'store/table/table.interface';\nimport { ClientDTO, Page } from 'utils/restApplicationClient';\n\ninterface IStateProps {\n clientsPageable?: Page;\n fetchSpinnerOverride?: boolean;\n}\n\ninterface IDispatchProps {\n setPaginationOptions: (payload: ITablePaginationOptions) => AppDispatch;\n}\n\nconst TestTable = CustomTableContainer();\n\ntype IProps = IStateProps & RouteComponentProps & IDispatchProps;\n\nexport class ClientsContainer extends Component {\n headers = [\n { label: 'common.id', id: 'id' },\n { label: 'common.clientName', id: 'clientName' },\n { label: 'common.status', id: 'status' },\n { label: 'common.creationDate', id: 'createdAt' },\n { label: 'common.modificationDate', id: 'modifiedAt' },\n ];\n onEdit = (row: ClientDTO): void => {\n this.props.history.push(`client/edit/${row.id}`);\n };\n\n onAdd = (): void => {\n this.props.history.push('client/add');\n };\n\n componentDidMount(): void {\n this.props.setPaginationOptions({\n order: OrderDirection.ASC,\n orderBy: 'clientName',\n });\n }\n\n render(): JSX.Element {\n const { clientsPageable, fetchSpinnerOverride } = this.props;\n return (\n
\n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n clientsPageable: getClientsPageableSelector(state),\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n setPaginationOptions: (payload: ITablePaginationOptions): AppDispatch =>\n dispatch(setPaginationOptions(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(ClientsContainer));\n","import React from 'react';\n\nexport default function Kentico(): JSX.Element {\n return (\n \n \n \n \n \n );\n}\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Accordion, AccordionDetails, AccordionSummary, Box, CircularProgress, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { customInputStyles } from 'components/Form/Input/CustomInput.styled';\nimport { createForm, FormApi, Unsubscribe } from 'final-form';\nimport Kentico from 'icons/Kentico';\nimport { Component, Fragment } from 'react';\nimport { Field, FieldRenderProps, Form } from 'react-final-form';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { Dispatch } from 'redux';\nimport { subscribeActionAfter } from 'redux-subscribe-action';\nimport { AppDispatch, AppState } from 'store';\nimport { clearProjectFormAll, clearProjectErrors, connectToKentico, getApiKey } from 'store/project/project.actions';\nimport { ProjectActionTypes } from 'store/project/project.actions.types';\nimport { IConntectedProject, IProjectForm } from 'store/project/project.interface';\nimport { getProjectErrorsSelector, getProjectFormSelector } from 'store/project/project.selectors';\nimport { getKenticoConnectSpinnerSelector } from 'store/spinner/spinner.selectors';\nimport { composeValidators, fetchValidator, required } from 'utils/customValidators';\nimport { ApiKeysDTO } from 'utils/restApplicationClient';\nimport CustomField from '../../Input/CustomField';\nimport { AccordionButton, AccordionDiv, accordionStyles } from '../Accordion.style';\nimport AccordionIcon from '../AccordionIcon';\n\ninterface IDispatchProps {\n connectToKentico: (payload: IConntectedProject) => AppDispatch;\n clearProjectErrors: () => AppDispatch;\n clearProjectFormAll: () => AppDispatch;\n getApiKey: (payload: string) => AppDispatch;\n}\n\ninterface IState {\n formValues: IConntectedProject;\n isConnected: boolean;\n}\n\ninterface IStateProps {\n kenticoSpinner: boolean;\n errors: { [key: string]: string | undefined };\n clientForm: IProjectForm;\n}\n\ninterface IProps {\n kontentProjectId: string;\n onConnect: (kontentProjectId: string | undefined) => void;\n isProjectIdEditable: boolean;\n}\n\ntype PropType = FieldRenderProps & WithTranslation & IProps & IDispatchProps & IStateProps;\n\nexport class ProjectConnectAccordion extends Component {\n unsubscribe: (() => void)[] = [];\n unsubscribeForm: Unsubscribe;\n\n constructor(props: PropType) {\n super(props);\n this.state = {\n formValues: {\n kontentProjectId: '',\n managementApiKey: '',\n deliveryApiKey: '',\n },\n isConnected: false,\n };\n this.form = createForm({\n onSubmit: this.onSubmit,\n });\n this.unsubscribeForm = this.form.subscribe(\n () => {\n const { errors } = this.props;\n\n if (errors['kenticoConnect']) {\n this.props.clearProjectErrors();\n }\n },\n { values: true },\n );\n }\n\n componentDidMount(): void {\n const { connectToKentico } = this.props;\n const connectSubscription = subscribeActionAfter(ProjectActionTypes.ConnectToKenticoSuccess, () => {\n const kontentProjectId = this.form.getFieldState('kontentProjectId')?.value || '';\n\n this.setConnection(kontentProjectId);\n });\n const connectErrorSubscription = subscribeActionAfter(ProjectActionTypes.ConnectToKenticoError, () => {\n this.setConnection();\n });\n const apiKeySubscription = subscribeActionAfter(ProjectActionTypes.GetApiKeySuccess, (action) => {\n const { kontentProjectId } = this.props;\n const { managementApiKey, deliveryApiKey } = (action as PayloadAction).payload;\n const connectedData: IConntectedProject = { kontentProjectId, managementApiKey, deliveryApiKey };\n\n this.setState({ formValues: connectedData });\n connectToKentico(connectedData);\n });\n\n this.unsubscribe.push(connectSubscription, connectErrorSubscription, apiKeySubscription);\n }\n\n componentDidUpdate(previousProps: PropType): void {\n const { kontentProjectId, getApiKey, errors } = this.props;\n\n if (!!kontentProjectId && previousProps.kontentProjectId === undefined) {\n getApiKey(kontentProjectId);\n }\n\n if (errors['kontentProjectId'] && errors['kontentProjectId'] !== previousProps.errors['kontentProjectId']) {\n this.setConnection();\n }\n }\n\n componentWillUnmount(): void {\n this.unsubscribeForm();\n this.unsubscribe.forEach((unsubscribe) => unsubscribe());\n }\n\n setConnection(value?: string): void {\n const {\n input: { onChange },\n onConnect,\n } = this.props;\n\n this.setState({ isConnected: !!value });\n onChange(value);\n onConnect(value);\n }\n\n form: FormApi>>;\n\n onSubmit = (values: IConntectedProject): void => {\n this.setState({ formValues: values });\n this.props.input.onChange(values.kontentProjectId);\n this.props.onConnect(values.kontentProjectId);\n this.props.connectToKentico(values);\n };\n\n render(): JSX.Element {\n const { t, meta, kenticoSpinner, errors, isProjectIdEditable } = this.props;\n const { isConnected, formValues } = this.state;\n\n return (\n \n \n \n {t('projects.connectProject')}\n \n \n \n }>\n \n {isConnected ? t('users.connected') : t('users.disconnected')}\n \n \n {errors['kenticoConnect'] && (\n {t(errors['kenticoConnect'])}\n )}\n }\n render={({ handleSubmit, submitting, pristine }): JSX.Element => (\n \n \n \n \n\n \n {kenticoSpinner ? (\n \n ) : (\n \n \n {t('projects.connectProject')}\n \n )}\n \n \n )}\n />\n \n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n connectToKentico: (payload: IConntectedProject): AppDispatch => dispatch(connectToKentico(payload)),\n clearProjectErrors: (): AppDispatch => dispatch(clearProjectErrors()),\n getApiKey: (payload: string): AppDispatch => dispatch(getApiKey(payload)),\n clearProjectFormAll: (): AppDispatch => dispatch(clearProjectFormAll()),\n});\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n kenticoSpinner: getKenticoConnectSpinnerSelector(state),\n errors: getProjectErrorsSelector(state),\n clientForm: getProjectFormSelector(state),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation()(ProjectConnectAccordion));\n","import { Tooltip, TypographyProps } from '@material-ui/core';\nimport React, { Component, Fragment } from 'react';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { CustomTooltipTypography } from './CustomTooltip.styled';\n\ninterface IProps {\n text: string;\n width: number;\n maxLines: number;\n typographyProps?: TypographyProps;\n textColor?: string;\n}\n\ninterface IState {\n isOverflown: boolean;\n}\n\ntype PropType = IProps & WithTranslation;\n\nclass Name extends Component {\n state = {\n isOverflown: false,\n };\n\n componentDidMount(): void {\n this.checkIfOverflown();\n }\n\n componentDidUpdate(): void {\n this.checkIfOverflown();\n }\n\n checkIfOverflown(): void {\n const { element } = this;\n\n if (element) {\n const isOverflown = element.offsetHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth;\n\n if (this.state.isOverflown !== isOverflown) {\n this.setState({ isOverflown });\n }\n }\n }\n\n element: HTMLSpanElement | null = null;\n\n render(): JSX.Element {\n const { isOverflown } = this.state;\n const { text, width, t, typographyProps, maxLines, textColor } = this.props;\n const NameTypographyWidth = CustomTooltipTypography(`${width}px`, maxLines, textColor);\n\n return (\n \n {isOverflown ? (\n {t(text)}}>\n {\n this.element = element;\n }}\n >\n {t(text)}\n \n \n ) : (\n {\n this.element = element;\n }}\n >\n {t(text)}\n \n )}\n \n );\n }\n}\n\nexport default withTranslation()(Name);\n","import styled, { StyledComponent } from '@emotion/styled';\nimport { Typography, TypographyProps, TypographyStyle } from '@material-ui/core';\n\nexport const CustomTooltipTypography = (\n width: string,\n lines: number,\n textColor?: string,\n): StyledComponent => styled(Typography)`\n text-overflow: ellipsis !important;\n overflow: hidden !important;\n max-width: ${width} !important;\n display: -webkit-box;\n -webkit-line-clamp: ${lines};\n -webkit-box-orient: vertical;\n overflow: hidden;\n overflow-wrap: break-word;\n color: ${textColor ? `${textColor} !important` : `inherit !important`};\n`;\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Box, Chip, CircularProgress, Tooltip, Typography } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport ErrorIcon from '@material-ui/icons/Error';\nimport { Autocomplete, AutocompleteGetTagProps } from '@material-ui/lab';\nimport CustomTooltip from 'components/CustomTooltip/CustomTooltip';\nimport React, { ComponentType, Fragment, ReactNode } from 'react';\nimport { DragDropContext, Draggable, Droppable, OnDragEndResponder } from 'react-beautiful-dnd';\nimport { FieldRenderProps } from 'react-final-form';\nimport { withTranslation, WithTranslation } from 'react-i18next';\nimport { IAutocompleteField } from 'types/shared';\nimport {\n AutocompleteChipDefaultSpan,\n AutocompleteTextField,\n CustomAutocompleteTypography,\n CustomDraggableContainer,\n CustomEndAdornment,\n InputDiv,\n} from './CustomInput.styled';\n\ninterface IProps extends FieldRenderProps> {\n options: Array;\n onChange?: (event: React.ChangeEvent<{}>, value: IAutocompleteField | Array | null) => void;\n multi?: boolean;\n label: string;\n noOptionsText?: string;\n error?: string;\n spinner?: boolean;\n disabled?: boolean;\n column?: boolean;\n allowDragAndDrop?: boolean;\n placeholder?: string;\n}\n\ntype PropType = IProps & WithTranslation;\n\nexport class CustomAutocomplete extends React.Component {\n handleChange = (event: React.ChangeEvent<{}>, value: IAutocompleteField | Array | null): void => {\n const { onChange, input } = this.props;\n\n if (onChange) {\n onChange(event, value);\n }\n input.onChange(value);\n };\n\n onDragEnd: OnDragEndResponder = ({ destination, source }) => {\n const { input } = this.props;\n\n if (!destination) {\n return;\n }\n\n const filteredData = input.value as IAutocompleteField[];\n const [removed] = filteredData.splice(source.index, 1);\n\n filteredData.splice(destination.index, 0, removed);\n input.onChange(filteredData);\n };\n\n renderTags = (\n value: {\n label: string;\n value: string;\n }[],\n getTagProps: AutocompleteGetTagProps,\n ): JSX.Element => {\n return (\n \n {value.map((tag, index) => (\n }\n icon={}\n label={tag.label}\n />\n ))}\n \n );\n };\n\n renderCustomTags = (\n value: {\n label: string;\n value: string;\n }[],\n getTagProps: AutocompleteGetTagProps,\n ): JSX.Element => {\n const { t } = this.props;\n\n return (\n \n \n {(provided): JSX.Element => (\n \n {value.map((tag, index) => (\n \n {(provided): JSX.Element => (\n }\n icon={}\n label={\n
\n {tag.label}\n {index === 0 ? (\n {`(${t('common.default')})`}\n ) : (\n ''\n )}\n
\n }\n />\n )}\n
\n ))}\n
\n )}\n
\n
\n );\n };\n\n renderAdornment = (endAdornment: ReactNode): JSX.Element => {\n const { spinner, error, t } = this.props;\n\n if (spinner) {\n return (\n \n \n \n );\n }\n return (\n \n {error && (\n {t(error)}}>\n \n \n )}\n {endAdornment}\n \n );\n };\n\n render(): JSX.Element {\n const {\n options,\n multi,\n input,\n label,\n t,\n meta: { error, touched },\n spinner,\n disabled,\n noOptionsText,\n column,\n allowDragAndDrop,\n placeholder,\n } = this.props;\n\n return (\n \n {/* column as boolean throws type exception for some reason */}\n \n \n {t(label)}\n \n \n \n (option.label ? option.label : '')}\n onChange={this.handleChange}\n getOptionSelected={(option, value): boolean => value.label === option.label || !multi}\n value={input.value ? input.value : []}\n renderInput={(parameters): JSX.Element => (\n \n \n \n )}\n renderTags={allowDragAndDrop ? this.renderCustomTags : this.renderTags}\n renderOption={(option): JSX.Element => }\n size=\"small\"\n />\n {error && touched && (\n \n {t(error)}\n \n )}\n \n \n );\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default withTranslation()(CustomAutocomplete) as ComponentType>;\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { FormApi } from 'final-form';\nimport { Component, Fragment } from 'react';\nimport { Field } from 'react-final-form';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { IProjectFormData } from 'store/project/project.interface';\nimport { IAutocompleteField } from 'types/shared';\nimport CustomAutocomplete from '../Input/CustomAutocomplete';\nimport DraggableSelect from '../Input/DraggableSelect/DraggableSelect';\nimport {\n CustomLanguageMappingContainer,\n CustomLanguageMappingLegend,\n} from './LanguageMapping/LanguageMappingContainer.styled';\n\ninterface IProps {\n users: IAutocompleteField[];\n workflowSteps?: IAutocompleteField[];\n webhooks?: IAutocompleteField[];\n contentTypes?: IAutocompleteField[];\n contentElements?: IAutocompleteField[];\n kenticoSpinner?: boolean;\n fetchSpinner?: boolean;\n form: FormApi>;\n}\n\ntype PropType = IProps & WithTranslation;\n\nexport class ConnectedProjectFields extends Component {\n usersForWebhooksRef?: HTMLInputElement;\n\n render(): JSX.Element {\n const {\n users,\n webhooks,\n workflowSteps,\n contentTypes,\n contentElements,\n kenticoSpinner,\n fetchSpinner,\n t,\n } = this.props;\n\n return (\n \n \n \n \n \n \n {t('projects.webhooks')}\n \n \n \n \n \n );\n }\n}\n\nexport default withTranslation()(ConnectedProjectFields);\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Box } from '@material-ui/core';\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\nimport CloseIcon from '@material-ui/icons/Close';\nimport CustomAutocomplete from 'components/Form/Input/CustomAutocomplete';\nimport { FormApi } from 'final-form';\nimport { Component } from 'react';\nimport { Field } from 'react-final-form';\nimport { FieldArray, FieldArrayRenderProps } from 'react-final-form-arrays';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { IProjectFormData } from 'store/project/project.interface';\nimport { IAutocompleteField, ILanguageMappingField } from 'types/shared';\nimport { requiredAutocomplete } from 'utils/customValidators';\nimport {\n CustomLanguageMappingButton,\n CustomLanguageMappingContainer,\n CustomLanguageMappingFieldContainer,\n CustomLanguageMappingLegend,\n CustomLanguageMappingRemoveButton,\n} from './LanguageMappingContainer.styled';\n\ninterface IState {\n filteredLanguages: IAutocompleteField[][];\n}\n\ninterface IProps {\n form: FormApi;\n kenticoLanguages?: IAutocompleteField[];\n xtmLanguages?: IAutocompleteField[];\n}\n\ntype PropType = IProps & WithTranslation;\n\nexport class LanguageMappingContainer extends Component {\n constructor(props: PropType) {\n super(props);\n\n this.state = {\n filteredLanguages: [],\n };\n }\n\n componentDidUpdate(): void {\n const { form, kenticoLanguages } = this.props;\n const { filteredLanguages } = this.state;\n\n const languageMappingFields = form.getFieldState('languageMappingFields')?.value;\n\n if (languageMappingFields?.length && kenticoLanguages && !filteredLanguages?.length) {\n this.setFilteredLanguages();\n }\n }\n\n setFilteredLanguages(): void {\n const { form, kenticoLanguages } = this.props;\n\n setTimeout(() => {\n const languageMappingFields = form.getFieldState('languageMappingFields')?.value;\n\n let filteredLanguages: IAutocompleteField[][] = [];\n\n const choosedKenticoLanguages: string[] =\n languageMappingFields?.map(({ kenticoLanguage }) => kenticoLanguage?.value) || [];\n\n filteredLanguages =\n languageMappingFields?.map((language, index) =>\n (kenticoLanguages ? kenticoLanguages?.filter(\n ({ value }) =>\n !choosedKenticoLanguages.includes(value) || languageMappingFields[index].kenticoLanguage?.value === value,\n ) : [])\n ) || [];\n\n this.setState({\n filteredLanguages,\n });\n }, 1);\n }\n\n getKenticoLanguageValue(index: number): string | undefined {\n const { form } = this.props;\n const languageMappingField = form.getFieldState('languageMappingFields')?.value;\n\n return languageMappingField && languageMappingField[index].kenticoLanguage?.value;\n }\n\n handleAddLanguageMapping = (\n fields: FieldArrayRenderProps['fields'],\n ) => (): void => {\n fields.push({ xtmLanguage: { label: '', value: '' }, kenticoLanguage: { label: '', value: '' } });\n this.setFilteredLanguages();\n };\n\n handleRemoveLanguageMapping = (\n fields: FieldArrayRenderProps['fields'],\n index: number,\n ) => (): void => {\n fields.remove(index);\n this.setFilteredLanguages();\n };\n\n onKenticoLanguageChange = (index: number, fields: FieldArrayRenderProps['fields']) => (\n event: React.ChangeEvent<{}>,\n value: IAutocompleteField | Array | null,\n ): void => {\n if (!value) {\n fields.update(index, '');\n }\n\n this.setFilteredLanguages();\n };\n\n render(): JSX.Element {\n const { filteredLanguages } = this.state;\n const { t, kenticoLanguages, xtmLanguages } = this.props;\n\n return (\n \n {({ fields }): JSX.Element => (\n \n {t('projects.languageMapping')}\n {fields.map(\n (name, index: number): JSX.Element => (\n \n \n \n \n\n \n \n \n\n \n \n \n \n ),\n )}\n {kenticoLanguages?.length !== fields?.length && (\n \n \n \n )}\n \n )}\n \n );\n }\n}\n\nexport default withTranslation()(LanguageMappingContainer);\n","import { Box } from '@material-ui/core';\nimport { Dispatch, PayloadAction } from '@reduxjs/toolkit';\nimport ProjectConnectAccordion from 'components/Form/Accordion/ProjectConnectAccordion/ProjectConnectAccordion';\nimport ButtonContainer from 'components/Form/ButtonContainer/ButtonContainer';\nimport { EditData } from 'components/Form/CilentData/EditData';\nimport ConnectedProjectFields from 'components/Form/ConnectedFields/ConnectedProjectFields';\nimport LanguageMappingContainer from 'components/Form/ConnectedFields/LanguageMapping/LanguageMappingContainer';\nimport FormDiv from 'components/Form/Div/FormDiv';\nimport CustomAutocomplete from 'components/Form/Input/CustomAutocomplete';\nimport CustomCheckbox from 'components/Form/Input/CustomCheckbox';\nimport CustomField from 'components/Form/Input/CustomField';\nimport FormTitle from 'components/Form/Title/FormTitle';\nimport { createForm, FormApi } from 'final-form';\nimport arrayMutators from 'final-form-arrays';\nimport React, { Component } from 'react';\nimport { Field, Form } from 'react-final-form';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport { subscribeActionAfter } from 'redux-subscribe-action';\nimport { AppDispatch, AppState } from 'store';\nimport { getAllClients } from 'store/client/client.actions';\nimport { ClientActionTypes } from 'store/client/client.actions.types';\nimport { getAllActiveClientsSelector } from 'store/client/client.selectors';\nimport {\n addProject,\n clearProjectErrors,\n editProject,\n getContentElements,\n getContentTypes,\n getKenticoLanguages,\n getProjectById,\n getWebhooks,\n getWorkflowSteps,\n getXtmLanguages,\n clearProjectFormAll,\n updateFormProject,\n} from 'store/project/project.actions';\nimport { ProjectActionTypes } from 'store/project/project.actions.types';\nimport { ILanguageMap, IProjectForm, IProjectFormData } from 'store/project/project.interface';\nimport { getProjectErrorsSelector, getProjectFormSelector } from 'store/project/project.selectors';\nimport {\n getFetchSpinnerSelector,\n getKenticoDataSpinnerSelector,\n getProjectSpinnerSelector\n} from 'store/spinner/spinner.selectors';\nimport { getUsersByClientId } from 'store/user/user.actions';\nimport { UserActionTypes } from 'store/user/user.actions.types';\nimport { IAutocompleteField, ILanguageMappingField } from 'types/shared';\nimport {\n composeValidators,\n fetchValidator,\n required,\n requiredAutocomplete,\n requiredAutocompleteBasedOnField\n} from 'utils/customValidators';\nimport {\n ClientDTO,\n ContentElementType,\n CreateOrUpdateProjectDTO,\n KontentProjectDTO,\n UserOverviewDTO,\n} from 'utils/restApplicationClient';\n\ninterface IState {\n submitValues?: CreateOrUpdateProjectDTO;\n users: UserOverviewDTO[];\n kontentProjectId?: string;\n}\n\ninterface IDispatchProps {\n getAllClients: () => AppDispatch;\n getKenticoLanguages: (payload: string) => AppDispatch;\n getXtmLanguages: () => AppDispatch;\n getUsersByClientId: (payload: string) => AppDispatch;\n getWebhooks: () => AppDispatch;\n clearProjectErrors: () => AppDispatch;\n getWorkflowSteps: () => AppDispatch;\n getContentTypes: () => AppDispatch;\n getContentElements: () => AppDispatch;\n addProject: (payload: CreateOrUpdateProjectDTO) => AppDispatch;\n editProject: (projectId: string, projectData: CreateOrUpdateProjectDTO) => AppDispatch;\n getProjectById: (payload: string) => AppDispatch;\n updateFormProject: (payload: KontentProjectDTO) => AppDispatch;\n clearProjectFormAll: () => AppDispatch;\n}\n\ninterface IStateProps {\n clients: ClientDTO[];\n projectSpinner: boolean;\n kenticoSpinner: boolean;\n fetchSpinner: boolean;\n errors: { [key: string]: string | undefined };\n clientForm: IProjectForm;\n}\n\ninterface IProps {\n native?: boolean;\n}\n\ninterface IMatchParams {\n id?: string;\n}\n\ntype IPropType = RouteComponentProps & IProps & IStateProps & IDispatchProps & WithTranslation;\n\nclass ProjectFormContainer extends Component {\n private unsubscribe: (() => void)[] = [];\n\n constructor(props: IPropType) {\n super(props);\n this.state = {\n users: [],\n };\n }\n\n componentDidMount(): void {\n const {\n getAllClients,\n getWebhooks,\n getContentElements,\n getContentTypes,\n getWorkflowSteps,\n getKenticoLanguages,\n getUsersByClientId,\n clearProjectErrors,\n getProjectById,\n getXtmLanguages,\n match: {\n params: { id: projectId },\n },\n } = this.props;\n const clientsSubscription = subscribeActionAfter(ClientActionTypes.GetAllClientsSuccess, () => {\n if (projectId) {\n getProjectById(projectId);\n }\n });\n const usersSubscription = subscribeActionAfter(UserActionTypes.getUsersByClientIdSuccess, (action) =>\n this.setState({\n users: (action as PayloadAction).payload,\n }),\n );\n\n const kenticoConnectSubscription = subscribeActionAfter(ProjectActionTypes.ConnectToKenticoSuccess, (action) => {\n const clientId = this.form.getFieldState('assignedClient')?.value?.value || this.props?.clientForm.project?.clientUUID;\n\n if (clientId) {\n getUsersByClientId(clientId);\n }\n updateFormProject((action as PayloadAction).payload);\n getWebhooks();\n getWorkflowSteps();\n getContentElements();\n getContentTypes();\n getXtmLanguages();\n getKenticoLanguages((action as PayloadAction).payload);\n });\n\n getAllClients();\n clearProjectErrors();\n\n this.unsubscribe.push(\n clientsSubscription,\n usersSubscription,\n kenticoConnectSubscription,\n );\n }\n\n componentDidUpdate(_: IPropType, previousState: IState): void {\n const { project, kontentProjectId } = this.props.clientForm;\n const shouldClearDetails = project?.kontentProjectId !== kontentProjectId && project?.kontentProjectId !== undefined;\n\n if (shouldClearDetails && project && kontentProjectId) {\n this.props.updateFormProject({...project, kontentProjectId, contentTypeIds: [], contentElementTypes: [], handledWorkflowIds: [], translatedContentWorkflowStepId: '', webhookIds: [], usersForWebhooks: [], assignedUserIds: [], languageMapping: [] })\n }\n\n if(previousState.kontentProjectId !== kontentProjectId){\n project && this.form.initialize(this.parseFormData(project, shouldClearDetails));\n }\n }\n\n componentWillUnmount(): void {\n this.props.clearProjectErrors();\n this.props.clearProjectFormAll();\n this.unsubscribe.forEach((unsubscribe) => unsubscribe());\n }\n\n parseLanguageMappingFieldToForm(data: ILanguageMap[], translate?: boolean): ILanguageMappingField[] {\n const { t } = this.props;\n\n return data.map(({ xtmLanguage, kenticoLanguage }) => ({\n xtmLanguage: { value: xtmLanguage, label: translate ? t(`projects.fieldValue.${xtmLanguage}`) : xtmLanguage },\n kenticoLanguage: {\n value: kenticoLanguage,\n label: translate ? t(`projects.fieldValue.${kenticoLanguage}`) : kenticoLanguage,\n },\n }));\n }\n\n parseLanguageMappingFieldToSubmit(data: ILanguageMappingField[]): ILanguageMap[] {\n return data.map(({ xtmLanguage, kenticoLanguage }) => ({\n xtmLanguage: xtmLanguage.value,\n kenticoLanguage: kenticoLanguage.value,\n }));\n }\n\n parseAutocompleteFieldToValue(field: IAutocompleteField[]): string[] {\n return field.map((data) => data.value);\n }\n\n parseFormData(project: KontentProjectDTO, clearDetails?: boolean): Partial {\n const { users } = this.state;\n const { clients, clientForm: {contentTypes, contentElements, webhooks, workflowSteps}} = this.props\n const foundClient = clients?.find(({ id }) => id === project?.clientUUID);\n const workflowStep = workflowSteps?.find(({ id }) => id === project?.translatedContentWorkflowStepId);\n\n return {\n assignedClient: { label: foundClient?.clientName ?? 'unknown', value: foundClient?.id ?? 'unknown' },\n projectName: project?.name,\n active: project?.status,\n kontentProjectId: project?.kontentProjectId ?? '',\n ...(clearDetails ? {} : {contentElements:\n contentElements\n ?.filter(({ codeName }) => project?.contentElementTypes?.find((type) => type === codeName))\n .map(({ name, codeName }) => ({ label: name, value: codeName })) || [],\n contentTypes:\n contentTypes\n ?.filter(({ id }) => project?.contentTypeIds?.find((contentId) => contentId === id))\n .map(({ id, name }) => ({ label: name, value: id })) || [],\n workflowStep: workflowStep ? { label: workflowStep.name, value: workflowStep.id } : undefined,\n usersAssigned:\n users\n ?.filter(({ id }) => project?.assignedUserIds?.find((userId) => userId === id))\n .map(({ id, email }) => ({ label: email, value: id })) || [],\n workflowSteps:\n workflowSteps\n ?.filter(({ id }) => project?.handledWorkflowIds?.find((stepId) => stepId === id))\n .map(({ id, name }) => ({ label: name, value: id })) || [],\n webhooks:\n webhooks\n ?.filter(({ id }) => project?.webhookIds?.find((webhookId) => webhookId === id))\n .map(({ id, name }) => ({ label: name, value: id })) || [],\n usersForWebhooks: users\n ?.filter(({ id }) => project?.usersForWebhooks?.find(({ userUUID }) => userUUID === id))\n .map(({ id, email }) => ({ label: email, value: id })),\n languageMappingFields:\n project?.languageMapping?.map(\n ({ kontentLanguageName, kontentLanguageCode, xtmLanguageCode, xtmLanguageName }) => ({\n kenticoLanguage: { label: kontentLanguageName, value: kontentLanguageCode },\n xtmLanguage: { label: xtmLanguageCode, value: xtmLanguageName },\n }),\n ) || []})\n };\n }\n\n parseSubmitFormData(project: IProjectFormData): CreateOrUpdateProjectDTO {\n return {\n clientUUID: project?.assignedClient?.value,\n projectName: project?.projectName,\n status: project?.active,\n contentElementTypes: this.parseAutocompleteFieldToValue(project?.contentElements || []) as ContentElementType[],\n kontentProjectId: project?.kontentProjectId,\n contentTypeIds: this.parseAutocompleteFieldToValue(project?.contentTypes || []),\n translatedContentWorkflowStepId: project?.workflowStep?.value as string,\n assignedUsersUUID: this.parseAutocompleteFieldToValue(project?.usersAssigned || []),\n handledWorkflowStepIds: this.parseAutocompleteFieldToValue(project?.workflowSteps || []),\n webhookIds: this.parseAutocompleteFieldToValue(project?.webhooks || []),\n usersForWebhooks:\n project.usersForWebhooks?.map(({ value }, index) => ({ userUUID: value, orderNumber: index })) || [],\n languageMapping:\n project?.languageMappingFields?.map(({ kenticoLanguage, xtmLanguage }) => ({\n xtmLanguageCode: xtmLanguage.label,\n xtmLanguageName: xtmLanguage.value,\n kontentLanguageCode: kenticoLanguage.value,\n kontentLanguageName: kenticoLanguage.label,\n })) || [],\n };\n }\n\n onSubmit = (values: IProjectFormData): void => {\n const {\n addProject,\n editProject,\n clearProjectErrors,\n match: {\n params: { id: projectId },\n },\n } = this.props;\n const { project } = this.props.clientForm;\n const parsedData = this.parseSubmitFormData(values);\n\n clearProjectErrors();\n this.setState({ submitValues: parsedData });\n\n if (project && projectId) {\n editProject(projectId, parsedData);\n } else {\n addProject(parsedData);\n }\n };\n\n clientChanged = (event: React.ChangeEvent<{}>, value: IAutocompleteField | IAutocompleteField[] | null): void => {\n const { getUsersByClientId } = this.props;\n const { project, kontentProjectId } = this.props.clientForm;\n if (value && kontentProjectId) {\n getUsersByClientId((value as IAutocompleteField)?.value);\n } else {\n this.setState({ users: [] });\n\n if (project) {\n this.props.updateFormProject({...project, assignedUserIds: []})\n }\n }\n this.form.change('usersAssigned', undefined);\n this.form.change('usersForWebhooks', undefined);\n };\n\n setKontentProjectId = (kontentProjectId: string): void => {\n const { project } = this.props.clientForm\n if (project && kontentProjectId) {\n this.props.updateFormProject({...project, kontentProjectId})\n }\n };\n\n form: FormApi = createForm({\n onSubmit: this.onSubmit,\n initialValues: {\n active: true,\n },\n });\n\n render(): JSX.Element {\n const {\n match: {\n params: { id: projectId },\n },\n clients,\n projectSpinner,\n clientForm: {\n project,\n webhooks,\n workflowSteps,\n contentTypes,\n contentElements,\n kenticoLanguages,\n xtmLanguages,\n kontentProjectId\n },\n kenticoSpinner,\n errors,\n fetchSpinner,\n } = this.props;\n const {\n users,\n submitValues,\n } = this.state;\n\n return (\n \n \n (\n
\n \n ({ label: clientName, value: id }))}\n component={CustomAutocomplete}\n onChange={this.clientChanged}\n spinner={fetchSpinner}\n />\n \n \n \n\n {kontentProjectId && (\n ({ label: email, value: id }))}\n webhooks={webhooks?.map(({ name, id }) => ({ label: name, value: id }))}\n workflowSteps={workflowSteps?.map(({ name, id }) => ({ label: name, value: id }))}\n contentTypes={contentTypes?.map(({ name, id }) => ({ label: name, value: id }))}\n contentElements={contentElements?.map(({ name, codeName }) => ({ label: name, value: codeName }))}\n kenticoSpinner={kenticoSpinner}\n fetchSpinner={fetchSpinner}\n form={form}\n />\n )}\n {project && project.createdAt && project.modifiedAt && (\n \n )}\n {kontentProjectId && (\n ({\n label: name,\n value: codeName,\n }))}\n xtmLanguages={xtmLanguages?.map(({ xtmLanguageCode, xtmLanguageName }) => ({\n label: xtmLanguageCode,\n value: xtmLanguageName,\n }))}\n form={this.form}\n />\n )}\n \n \n
\n )}\n />\n
\n );\n }\n}\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n getAllClients: (): AppDispatch => dispatch(getAllClients()),\n getKenticoLanguages: (payload: string): AppDispatch => dispatch(getKenticoLanguages(payload)),\n getXtmLanguages: (): AppDispatch => dispatch(getXtmLanguages()),\n getUsersByClientId: (payload: string): AppDispatch => dispatch(getUsersByClientId(payload)),\n getWebhooks: (): AppDispatch => dispatch(getWebhooks()),\n getWorkflowSteps: (): AppDispatch => dispatch(getWorkflowSteps()),\n getContentTypes: (): AppDispatch => dispatch(getContentTypes()),\n getContentElements: (): AppDispatch => dispatch(getContentElements()),\n addProject: (payload: CreateOrUpdateProjectDTO): AppDispatch => dispatch(addProject(payload)),\n editProject: (projectId: string, projectData: CreateOrUpdateProjectDTO): AppDispatch =>\n dispatch(editProject({ projectId, projectData })),\n getProjectById: (payload: string): AppDispatch => dispatch(getProjectById(payload)),\n clearProjectErrors: (): AppDispatch => dispatch(clearProjectErrors()),\n updateFormProject: (payload: KontentProjectDTO): AppDispatch => dispatch(updateFormProject(payload)),\n clearProjectFormAll: (): AppDispatch => dispatch(clearProjectFormAll()),\n});\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n clients: getAllActiveClientsSelector(state),\n clientForm: getProjectFormSelector(state),\n projectSpinner: getProjectSpinnerSelector(state),\n kenticoSpinner: getKenticoDataSpinnerSelector(state),\n fetchSpinner: getFetchSpinnerSelector(state),\n errors: getProjectErrorsSelector(state),\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(withTranslation()(ProjectFormContainer)));\n","import CustomTableContainer from 'components/Table/CustomTable';\nimport TableToolbar from 'components/TableToolbar/TableToolbar';\nimport { OrderDirection } from 'enums/filter';\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { getProjectsPageable } from 'store/project/project.actions';\nimport { getProjectsPageableSelector } from 'store/project/project.selectors';\nimport { setPaginationOptions } from 'store/table/table.actions';\nimport { ITablePaginationOptions } from 'store/table/table.interface';\nimport { KontentProjectOverviewDTO, Page } from 'utils/restApplicationClient';\n\ninterface IStateProps {\n projects?: Page;\n}\n\ninterface IDispatchProps {\n setPaginationOptions: (payload: ITablePaginationOptions) => AppDispatch;\n}\n\nconst ProjectsTable = CustomTableContainer();\n\ntype IProps = IStateProps & RouteComponentProps & IDispatchProps;\n\nclass ProjectsContainer extends Component {\n headers = [\n { label: 'common.id', id: 'id' },\n { label: 'common.kenticoProjectName', id: 'name' },\n { label: 'common.clientName', id: 'client.clientName' },\n { label: 'common.status', id: 'status' },\n { label: 'common.creationDate', id: 'createdAt' },\n { label: 'common.modificationDate', id: 'modifiedAt' },\n ];\n\n onEdit = (row: KontentProjectOverviewDTO): void => {\n this.props.history.push(`project/edit/${row.id}`);\n };\n\n onAdd = (): void => {\n this.props.history.push('project/add');\n };\n\n componentDidMount(): void {\n this.props.setPaginationOptions({\n order: OrderDirection.ASC,\n orderBy: 'client.clientName',\n });\n }\n\n render(): JSX.Element {\n const { projects } = this.props;\n return (\n
\n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n projects: getProjectsPageableSelector(state),\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n setPaginationOptions: (payload: ITablePaginationOptions): AppDispatch =>\n dispatch(setPaginationOptions(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(ProjectsContainer));\n","import { createSelector } from '@reduxjs/toolkit';\nimport { UserOverviewDTO } from '../../../../xtm-kontent-app/src/utils/restApplicationClient';\nimport { Page, UserDTO } from '../../utils/restApplicationClient';\nimport { AppState } from '../index';\n\nconst usersPageableSelector = (state: AppState): Page | undefined => state.user.usersPageable;\n\nconst allUsersSelector = (state: AppState): UserDTO[] => state.user.users;\n\nconst userSelector = (state: AppState): UserDTO | undefined => state.user.user;\n\nexport const getUsersPageableSelector = createSelector(usersPageableSelector, (users) => users);\n\nexport const getAllUsersSelector = createSelector(allUsersSelector, (users) => users);\n\nexport const getUserSelector = createSelector(userSelector, (updateUser) => updateUser);\n","import CustomTableContainer from 'components/Table/CustomTable';\nimport TableToolbar from 'components/TableToolbar/TableToolbar';\nimport { OrderDirection } from 'enums/filter';\nimport { UserRouteParameterEnum } from 'enums/userRouteParameter';\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { setPaginationOptions } from 'store/table/table.actions';\nimport { ITablePaginationOptions } from 'store/table/table.interface';\nimport { usersPageable } from 'store/user/user.actions';\nimport { Page, UserOverviewDTO } from 'utils/restApplicationClient';\nimport { getUsersPageableSelector } from '../../store/user/users.selectors';\n\ninterface IStateProps {\n users?: Page;\n}\n\ninterface IDispatchProps {\n setPaginationOptions: (payload: ITablePaginationOptions) => AppDispatch;\n}\n\nconst UserTable = CustomTableContainer();\n\ntype IProps = IStateProps & RouteComponentProps & IDispatchProps;\n\nclass UsersContainer extends Component {\n headers = [\n { label: 'common.id', id: 'id' },\n { label: 'common.userEmail', id: 'email' },\n { label: 'common.client', id: 'client.clientName' },\n { label: 'common.status', id: 'status' },\n { label: 'common.creationDate', id: 'createdAt' },\n { label: 'common.modificationDate', id: 'modifiedAt' },\n ];\n onEdit = (row: UserOverviewDTO): void => {\n this.props.history.push(`user/${UserRouteParameterEnum.edit}/${row.id}`);\n };\n\n onDuplicate = (row: UserOverviewDTO): void => {\n this.props.history.push(`user/${UserRouteParameterEnum.duplicate}/${row.id}`);\n };\n\n onAdd = (): void => {\n this.props.history.push('user/add');\n };\n\n componentDidMount(): void {\n this.props.setPaginationOptions({\n order: OrderDirection.ASC,\n orderBy: 'email',\n });\n }\n\n render(): JSX.Element {\n const { users } = this.props;\n\n return (\n
\n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n users: getUsersPageableSelector(state),\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n setPaginationOptions: (payload: ITablePaginationOptions): AppDispatch =>\n dispatch(setPaginationOptions(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(UsersContainer));\n","import AddAdministratorContainer from 'containers/AddAdministrator/AddAdministratorContainer';\nimport AddClientContainer from 'containers/AddClientContainer/AddClientContainer';\nimport AddUserContainer from 'containers/AddUser/AddUserContainer';\nimport AdministratorsContainer from 'containers/Administrators/AdministratorsContainer';\nimport ClientsContainer from 'containers/Clients/ClientsContainer';\nimport ProjectFormContainer from 'containers/ProjectFormContainer/ProjectFormContainer';\nimport ProjectsContainer from 'containers/Projects/ProjectsContainer';\nimport UsersContainer from 'containers/Users/UsersContainer';\nimport { Roles } from 'enums/roles';\nimport { IRoute } from 'types/route';\n\nexport const mainRoutes: IRoute[] = [\n {\n pathname: '/clients',\n component: ClientsContainer,\n exact: true,\n roles: [Roles.ADMIN_XTM],\n navbar: true,\n routeTextKey: 'common.clients',\n },\n {\n pathname: '/administrators',\n component: AdministratorsContainer,\n exact: true,\n roles: [Roles.ADMIN_XTM],\n navbar: true,\n routeTextKey: 'common.administrators',\n },\n {\n pathname: '/users',\n component: UsersContainer,\n exact: true,\n roles: [Roles.ADMIN_CLIENT, Roles.ADMIN_XTM],\n navbar: true,\n routeTextKey: 'common.users',\n },\n {\n pathname: '/projects',\n component: ProjectsContainer,\n exact: true,\n roles: [Roles.ADMIN_CLIENT, Roles.ADMIN_XTM],\n navbar: true,\n routeTextKey: 'common.kenticoProjects',\n },\n {\n pathname: '/project/add',\n component: ProjectFormContainer,\n exact: true,\n roles: [Roles.ADMIN_XTM, Roles.ADMIN_CLIENT],\n },\n {\n pathname: '/project/edit/:id',\n component: ProjectFormContainer,\n exact: true,\n roles: [Roles.ADMIN_XTM, Roles.ADMIN_CLIENT],\n },\n {\n pathname: '/client/add',\n component: AddClientContainer,\n exact: true,\n roles: [Roles.ADMIN_XTM],\n },\n {\n pathname: '/client/edit/:id',\n component: AddClientContainer,\n exact: true,\n roles: [Roles.ADMIN_XTM],\n },\n {\n pathname: '/administrator/add',\n component: AddAdministratorContainer,\n exact: true,\n roles: [Roles.ADMIN_XTM],\n },\n {\n pathname: '/administrator/edit/:id',\n component: AddAdministratorContainer,\n exact: true,\n roles: [Roles.ADMIN_XTM],\n },\n {\n pathname: '/user/add',\n component: AddUserContainer,\n exact: true,\n roles: [Roles.ADMIN_CLIENT, Roles.ADMIN_XTM],\n },\n {\n pathname: '/user/:type/:id',\n component: AddUserContainer,\n exact: true,\n roles: [Roles.ADMIN_CLIENT, Roles.ADMIN_XTM],\n },\n];\n","import { css } from '@emotion/core';\n\nexport const navbarStyles = {\n root: css`\n display: flex;\n background: #fff;\n padding: 0 15px;\n border-bottom: 1px solid rgba(140, 140, 140, 0.4);\n `,\n};\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Tab, Tabs } from '@material-ui/core';\nimport { Roles } from 'enums/roles';\nimport { mainRoutes } from 'layouts/main/routes';\nimport { Component } from 'react';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport { AppState } from 'store';\nimport { getUserDataSelector } from 'store/user/user.selectors';\nimport { IRoute } from 'types/route';\nimport { checkRoles } from 'utils/checkRoles';\nimport { AuthenticationResult, RefreshTokenResult } from 'utils/restApplicationClient';\nimport { navbarStyles } from './Navbar.style';\n\ninterface IProps extends RouteComponentProps {\n pages: IRoute[];\n}\n\ninterface IStateProps {\n data: (AuthenticationResult & RefreshTokenResult) | undefined;\n}\n\nconst routeValues = mainRoutes.filter((route) => route.navbar);\n\nexport class Navbar extends Component {\n pagesToRender: IRoute[];\n\n constructor(props: IProps & WithTranslation & IStateProps) {\n super(props);\n this.pagesToRender = this.props.pages.filter((element) => {\n return element.navbar && element.routeTextKey && checkRoles(element.roles, this.props.data?.roles as Roles[]);\n });\n }\n\n setTabValue = (): string | boolean => {\n const value = this.pagesToRender.find((element) => this.props.location.pathname.startsWith(element.pathname));\n if (value && routeValues.includes(value)) {\n return value.pathname;\n }\n return false;\n };\n\n handleTabChange = (pathname: string) => (): void => {\n this.props.history.push(pathname);\n };\n\n render(): JSX.Element {\n const { t } = this.props;\n return (\n
\n \n {this.pagesToRender.map((element, index) => (\n \n ))}\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n data: getUserDataSelector(state),\n});\n\nexport default connect(mapStateToProps)(withTranslation()(withRouter(Navbar)));\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport CustomLink from 'components/CustomLink/CustomLink';\nimport LoginHeader from 'components/LoginHeader/LoginHeader';\nimport Navbar from 'components/Navbar/Navbar';\nimport { Roles } from 'enums/roles';\nimport { mainRoutes } from 'layouts/main/routes';\nimport { Component, Dispatch, Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport { Redirect, Route, RouteComponentProps, Switch } from 'react-router-dom';\nimport { AppDispatch, AppState } from 'store';\nimport { logoutUser } from 'store/user/user.actions';\nimport { getAuthSelector, getUserDataSelector } from 'store/user/user.selectors';\nimport { IRoute } from 'types/route';\nimport { checkRoles } from 'utils/checkRoles';\nimport { AuthenticationResult, RefreshTokenResult } from 'utils/restApplicationClient';\n\n// will change to user credentials later\ninterface IStateProps {\n isAuth: boolean;\n data: (AuthenticationResult & RefreshTokenResult) | undefined;\n}\n\ninterface IDispatchProps {\n logout: () => void;\n}\n\nexport class MainLayoutComponent extends Component {\n logout = (): void => {\n this.props.logout();\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n renderRoute(route: IRoute, props: RouteComponentProps): JSX.Element {\n const { component: Component, roles } = route;\n const isAllowed = checkRoles(roles, (this.props.data?.roles as Roles[]) || roles);\n return isAllowed ? : ;\n }\n\n render(): JSX.Element {\n return (\n \n \n \n \n \n \n {mainRoutes.map((route) => {\n return (\n this.renderRoute(route, props)}\n />\n );\n })}\n } />\n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n logout: (): void => dispatch(logoutUser()),\n});\n\nconst mapStateToProps = (state: AppState): IStateProps => ({\n isAuth: getAuthSelector(state),\n data: getUserDataSelector(state),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MainLayoutComponent);\n","import { createBrowserHistory } from 'history';\n\nexport default createBrowserHistory();\n","import { OptionsObject } from 'notistack';\n\nexport const NotificationActionTypes = {\n showError: 'SHOW_ERROR',\n closeAlert: 'CLOSE_ALERT',\n showSuccessful: 'SHOW_SUCCESSFUL',\n};\n\nexport interface IShowErrorPayload {\n message: string;\n options?: OptionsObject;\n}\n\nexport interface ICloseAlertPayload {\n key: number;\n}\n","import { createAction } from '@reduxjs/toolkit';\nimport { ICloseAlertPayload, IShowErrorPayload, NotificationActionTypes } from './notify.actions.types';\n\ntype ErrorAction = typeof NotificationActionTypes;\n\nexport const showError = createAction(NotificationActionTypes.showError);\nexport const showSuccessful = createAction(\n NotificationActionTypes.showSuccessful,\n);\nexport const closeAlert = createAction(\n NotificationActionTypes.closeAlert,\n);\n","// @flow\nimport { useSnackbar, withSnackbar } from 'notistack';\nimport React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Dispatch } from 'redux';\nimport { AppDispatch, AppState } from 'store';\nimport { closeAlert } from 'store/notify/notify.actions';\nimport { IErrorNofitication } from 'store/notify/notify.interface';\n\nlet displayed: number[] = [];\n\nexport function getDisplayedKeys(): number[] {\n return displayed;\n}\n\nconst NotifyAlert: React.FC = () => {\n const dispatch = useDispatch>();\n const notifications = useSelector((store) => store.notify.notifications);\n const { t } = useTranslation();\n\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n\n useEffect(() => {\n notifications.map(({ key, message, options = {} }) => {\n if (displayed.includes(key)) return;\n\n enqueueSnackbar(t(message), {\n key,\n ...options,\n onClose: (event, reason, myKey) => {\n if (options.onClose) {\n options.onClose(event, reason, myKey);\n }\n },\n onExited: (_event, myKey) => {\n dispatch(closeAlert({ key: Number(myKey) }));\n displayed = [...displayed.filter((dp) => dp !== key)];\n },\n });\n\n displayed = [...displayed, key];\n });\n }, [notifications, closeSnackbar, enqueueSnackbar, dispatch]);\n\n return null;\n};\n\nexport default withSnackbar(NotifyAlert);\n","/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport { Box, CircularProgress, IconButton } from '@material-ui/core';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport { appStyle } from 'App.style';\nimport SessionExpiredModal from 'components/SessionExpiredModal/SessionExpiredModal';\nimport LoginLayoutComponent from 'layouts/login';\nimport { loginRoutes } from 'layouts/login/routes';\nimport MainLayoutComponent from 'layouts/main';\nimport { ProviderContext, SnackbarProvider } from 'notistack';\nimport React, { RefObject, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Redirect, Route, Router, Switch } from 'react-router-dom';\nimport { Dispatch } from 'redux';\nimport { AppDispatch } from 'store';\nimport { verifyToken } from 'store/user/user.actions';\nimport { getAuthSelector, getVerifyFinishSelector } from 'store/user/user.selectors';\nimport browserHistory from 'utils/browserHistory';\nimport NotifyAlert from './components/NotifyAlert/NotifyAlert';\n\nconst notistackRef: RefObject = React.createRef();\nconst onClickDismiss = (key: string | number) => (): void => {\n if (notistackRef.current) {\n notistackRef.current.closeSnackbar(key);\n }\n};\n\nfunction App(): JSX.Element {\n const isAuth = useSelector(getAuthSelector);\n const verifyFinished = useSelector(getVerifyFinishSelector);\n const dispatch = useDispatch>();\n\n useEffect(() => {\n dispatch(verifyToken());\n }, []);\n\n const mainLayoutRoute = (): JSX.Element => {\n if (!isAuth && !verifyFinished) {\n return ;\n } else if (!isAuth && verifyFinished) {\n return ;\n }\n return ;\n };\n return (\n (\n \n \n \n \n \n )}\n >\n {verifyFinished && (\n
\n \n \n \n \n {loginRoutes.map((route) => {\n return (\n {\n return isAuth ? : ;\n }}\n />\n );\n })}\n \n \n \n
\n )}\n \n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import store from 'store';\nimport { getContentTypes, getWebhooks, getWorkflowSteps } from 'store/project/project.actions';\nimport { getUsersByClientId } from 'store/user/user.actions';\n\nexport enum ProjecValidationErrorEnum {\n CONTENT_TYPES = 'contentTypes',\n WORKFLOWS = 'workflows',\n WEBHOOKS = 'webhooks',\n USERS = 'users',\n}\n\n/**\n * Fetch new project fields data based on error message\n */\nexport function checkProjectValidation(errorArguments: string): void {\n const errorTypes = errorArguments?.split(',');\n\n // eslint-disable-next-line\n errorTypes?.map((argument) => {\n switch (argument) {\n case ProjecValidationErrorEnum.CONTENT_TYPES: {\n store.dispatch(getContentTypes());\n break;\n }\n case ProjecValidationErrorEnum.WORKFLOWS: {\n store.dispatch(getWorkflowSteps());\n break;\n }\n case ProjecValidationErrorEnum.WEBHOOKS: {\n store.dispatch(getWebhooks());\n break;\n }\n case ProjecValidationErrorEnum.USERS: {\n store.dispatch(getUsersByClientId(store.getState().project.selectedClientId ?? ''));\n break;\n }\n }\n });\n}\n","import { PayloadAction } from '@reduxjs/toolkit';\nimport { AxiosResponse } from 'axios';\nimport { combineEpics, Epic } from 'redux-observable';\nimport { EMPTY, of } from 'rxjs';\nimport { filter, switchMap } from 'rxjs/operators';\nimport {\n createAdministratorError,\n editAdministratorError,\n getAdministratorByIdError,\n getAdministratorsPageableError,\n} from 'store/administrator/administrator.actions';\nimport {\n createClientError,\n editClientError,\n getAllClientsError,\n getClientByIdError,\n getClientsPageableError,\n} from 'store/client/client.actions';\nimport { showError } from 'store/notify/notify.actions';\nimport {\n getProjectsPageableError,\n getContentTypesError,\n getContentElementsError,\n getWorkflowStepsError,\n getWebhooksError,\n getApiKeyError,\n addProjectError,\n editProjectError,\n getProjectByIdError,\n getKenticoLanguagesError,\n getXtmLanguagesError,\n GetProjectsByClientIdError,\n} from 'store/project/project.actions';\nimport {\n changePasswordError,\n changeUserPasswordError,\n createUserError,\n editUserError,\n getAllUsersError,\n getDefaultUserLanguagesError,\n getUserByIdError,\n getUsersByClientIdError,\n logoutUserError,\n resetPasswordError,\n resetUserPasswordError,\n sessionExpired,\n usersPageableError,\n verifyPassTokenError,\n verifyTokenError,\n xtmGetConnectDataError,\n xtmGetCustomersByIdError,\n xtmGetCustomersError,\n xtmGetTemplatesError,\n} from 'store/user/user.actions';\nimport { checkProjectValidation } from 'utils/checkProjectValidation';\nimport i18n from 'utils/initTranslation';\n\nexport enum ActionSourceType {\n ADMINISTRATOR = 'administrator',\n AUTH = 'auth',\n CLIENT = 'client',\n COMMON = 'common',\n PROJECTS = 'projects',\n TABLE = 'table',\n USERS = 'users',\n VALIDATOR = 'validator',\n}\n\nexport interface ErrorData {\n args: string[];\n errorMessage: string;\n errorCode: string;\n}\n\nexport interface ErrorPayload {\n error: AxiosResponse;\n type?: ActionSourceType;\n skipMessage?: boolean;\n}\n\nexport const AvailableErrorActionTypes = [\n createAdministratorError.type,\n getAdministratorsPageableError.type,\n getAdministratorByIdError.type,\n editAdministratorError.type,\n getAllClientsError.type,\n createClientError.type,\n getClientsPageableError.type,\n editClientError.type,\n getClientByIdError.type,\n getProjectsPageableError.type,\n getContentTypesError.type,\n getContentElementsError.type,\n getWorkflowStepsError.type,\n getWebhooksError.type,\n getApiKeyError.type,\n addProjectError.type,\n editProjectError.type,\n getProjectByIdError.type,\n getKenticoLanguagesError.type,\n getXtmLanguagesError.type,\n GetProjectsByClientIdError.type,\n verifyPassTokenError.type,\n changePasswordError.type,\n changeUserPasswordError.type,\n logoutUserError.type,\n getUsersByClientIdError.type,\n resetPasswordError.type,\n resetUserPasswordError.type,\n verifyTokenError.type,\n getAllUsersError.type,\n createUserError.type,\n usersPageableError.type,\n editUserError.type,\n getUserByIdError.type,\n xtmGetCustomersError.type,\n xtmGetTemplatesError.type,\n xtmGetCustomersByIdError.type,\n xtmGetConnectDataError.type,\n getDefaultUserLanguagesError.type,\n];\n\n/**\n * Epic for handling error actions.\n *\n * Messages are shown based on passed type. Default type is COMMON from ActionSourceType enum\n *\n * Only actions in AvailableErrorActionTypes table will be handled.\n *\n * You can pass these params to the error action.\n * - @param error: AxiosResponse;\n * - @param type?: ActionSourceType;\n * - @param skipMessage?: boolean;\n */\nexport const handleErrorEpic: Epic = (action$) =>\n action$.pipe(\n filter(\n ({ type }: PayloadAction) =>\n !!AvailableErrorActionTypes.find((actionType) => actionType === type),\n ),\n switchMap(({ payload: { error, type = ActionSourceType.COMMON, skipMessage } }) => {\n if (!error) {\n return of(showError({ message: 'common.errormessage.internalservererror' }));\n }\n\n const { data, status } = error;\n const errorData: ErrorData = Array.isArray(data) ? data[0] : data;\n const { errorCode } = errorData;\n\n if (status === 403) {\n return of(sessionExpired(true));\n }\n\n if (String(errorCode)?.includes('projectvalidationerror')) {\n checkProjectValidation(errorData?.args[0]);\n }\n\n const isTranslationAvailbable = i18n.t(`${type}.${errorCode}`) !== `${type}.${errorCode}`;\n const message = isTranslationAvailbable ? `${type}.${errorCode}` : `${type}.errormessage.internalservererror`;\n\n return skipMessage ? EMPTY : of(showError({ message }));\n }),\n );\n\nexport const errorEpics = combineEpics(handleErrorEpic);\n","import { combineEpics, Epic, ofType } from 'redux-observable';\nimport { from, of } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport store from 'store';\nimport { showSuccessful } from 'store/notify/notify.actions';\nimport { setPaginationSearchSpinner } from 'store/table/table.actions';\nimport { api } from 'utils/axiosInstance';\nimport {\n createAdministrator,\n createAdministratorError,\n createAdministratorSuccess,\n editAdministrator,\n editAdministratorSuccess,\n getAdministratorById,\n getAdministratorByIdError,\n getAdministratorByIdSuccess,\n getAdministratorsPageable,\n getAdministratorsPageableError,\n getAdministratorsPageableSuccess,\n} from './administrator.actions';\n\nexport const createAdministratorEpic: Epic = (action$, _, { browserHistory }) =>\n action$.pipe(\n ofType(createAdministrator.type),\n switchMap(({ payload }) =>\n from(api.createAdministrator(payload)).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: 'administrator.success.create' }));\n browserHistory.push('/administrators');\n return of(createAdministratorSuccess());\n }),\n catchError(({ response, response: { status } }) =>\n of(createAdministratorError({ error: response, skipMessage: status === 409 })),\n ),\n ),\n ),\n );\n\nexport const getAdministratorByIdEpic: Epic = (actions$, _, { browserHistory }) =>\n actions$.pipe(\n ofType(getAdministratorById.type),\n switchMap(({ payload }) =>\n from(api.getAdministrator(payload)).pipe(\n switchMap(({ data }) => of(getAdministratorByIdSuccess(data))),\n catchError(({ response }) => {\n browserHistory.push('/administrators');\n return of(getAdministratorByIdError({ error: response }));\n }),\n ),\n ),\n );\n\nexport const getAdministratorsPageableEpic: Epic = (action$) =>\n action$.pipe(\n ofType(getAdministratorsPageable.type),\n switchMap(({ payload }) =>\n from(api.getAllAdministrators(payload)).pipe(\n switchMap(({ data }) => {\n store.dispatch(setPaginationSearchSpinner(false));\n return of(getAdministratorsPageableSuccess(data));\n }),\n catchError(({ response }) =>\n of(getAdministratorsPageableError({ error: response }), setPaginationSearchSpinner(false)),\n ),\n ),\n ),\n );\n\nexport const editAdministratorEpic: Epic = (actions$, _, { browserHistory }) =>\n actions$.pipe(\n ofType(editAdministrator.type),\n switchMap(({ payload }) =>\n from(api.editAdministrator(payload.administratorId, payload.updateAdministrator)).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: 'administrator.success.edit' }));\n browserHistory.push('/administrators');\n return of(editAdministratorSuccess());\n }),\n catchError(({ response, response: { status } }) =>\n of(createAdministratorError({ error: response, skipMessage: status === 409 })),\n ),\n ),\n ),\n );\n\nexport const administratorEpics = combineEpics(\n createAdministratorEpic,\n getAdministratorsPageableEpic,\n getAdministratorByIdEpic,\n editAdministratorEpic,\n);\n","import { createReducer } from '@reduxjs/toolkit';\nimport {\n clearAdministrator,\n clearAdministratorErrors,\n createAdministratorError,\n getAdministratorByIdSuccess,\n getAdministratorsPageableSuccess,\n} from './administrator.actions';\nimport { IAdministratorState } from './administrator.interface';\n\nconst initState: IAdministratorState = {\n errors: {},\n administratorsPageable: undefined,\n administrator: undefined,\n};\n\nexport const administratorReducer = createReducer(initState, (builder) =>\n builder\n .addCase(\n createAdministratorError,\n (\n state,\n {\n payload: {\n error: { status },\n },\n },\n ) => {\n state.errors.email = status === 409 ? 'administrator.errors.duplicate' : undefined;\n },\n )\n .addCase(clearAdministratorErrors, (state) => {\n state.errors = {};\n })\n .addCase(getAdministratorsPageableSuccess, (state, action) => {\n state.administratorsPageable = action.payload;\n })\n .addCase(getAdministratorByIdSuccess, (state, action) => {\n state.administrator = action.payload;\n })\n .addCase(clearAdministrator, (state) => {\n state.administrator = undefined;\n }),\n);\n","import { combineEpics, Epic, ofType } from 'redux-observable';\nimport { from, of } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport store from 'store';\nimport { showSuccessful } from 'store/notify/notify.actions';\nimport { setPaginationSearchSpinner } from 'store/table/table.actions';\nimport { api } from 'utils/axiosInstance';\nimport {\n createClient,\n createClientError,\n createClientSuccess,\n editClient,\n editClientSuccess,\n getAllClients,\n getAllClientsError,\n getAllClientsSuccess,\n getClientById,\n getClientByIdError,\n getClientByIdSuccess,\n getClientsPageable,\n getClientsPageableError,\n getClientsPageableSuccess,\n} from './client.actions';\n\nexport const getAllClientsEpic: Epic = (action$) =>\n action$.pipe(\n ofType(getAllClients.type),\n switchMap(() =>\n from(api.getAllClients$GET$api_client()).pipe(\n switchMap(({ data }) => of(getAllClientsSuccess(data))),\n catchError(({ response }) => of(getAllClientsError({ error: response }))),\n ),\n ),\n );\n\nexport const createClientEpic: Epic = (action$, _, { browserHistory }) =>\n action$.pipe(\n ofType(createClient.type),\n switchMap(({ payload }) =>\n from(api.createClient(payload)).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: 'client.success.create' }));\n browserHistory.push('/clients');\n return of(createClientSuccess());\n }),\n catchError(({ response, response: { status } }) =>\n of(createClientError({ error: response, skipMessage: status === 409 })),\n ),\n ),\n ),\n );\n\nexport const getClientsPageableEpic: Epic = (action$) =>\n action$.pipe(\n ofType(getClientsPageable.type),\n switchMap(({ payload }) =>\n from(api.getAllClients$GET$api_client_pageable(payload)).pipe(\n switchMap(({ data }) => {\n store.dispatch(setPaginationSearchSpinner(false));\n return of(getClientsPageableSuccess(data));\n }),\n catchError(({ response }) => of(getClientsPageableError({ error: response }))),\n ),\n ),\n );\n\nexport const editClientEpic: Epic = (actions$, _, { browserHistory }) =>\n actions$.pipe(\n ofType(editClient.type),\n switchMap(({ payload }) =>\n from(api.editClient(payload.clientId, payload.updateClient)).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: 'client.success.edit' }));\n browserHistory.push('/clients');\n return of(editClientSuccess());\n }),\n catchError(({ response, response: { status } }) =>\n of(createClientError({ error: response, skipMessage: status === 409 })),\n ),\n ),\n ),\n );\n\nexport const getClientByIdEpic: Epic = (actions$, _, { browserHistory }) =>\n actions$.pipe(\n ofType(getClientById.type),\n switchMap(({ payload }) =>\n from(api.getClient(payload)).pipe(\n switchMap(({ data }) => of(getClientByIdSuccess(data))),\n catchError(({ response }) => {\n browserHistory.push('/clients');\n return of(getClientByIdError({ error: response }));\n }),\n ),\n ),\n );\n\nexport const clientEpics = combineEpics(\n getClientsPageableEpic,\n getAllClientsEpic,\n createClientEpic,\n editClientEpic,\n getClientByIdEpic,\n);\n","import { createReducer } from '@reduxjs/toolkit';\nimport {\n clearClient,\n clearClientErrors,\n createClientError,\n getAllClientsSuccess,\n getClientByIdSuccess,\n getClientsPageableSuccess,\n} from './client.actions';\nimport { IClientState } from './client.interface';\n\nconst initState: IClientState = {\n clients: [],\n errors: {},\n clientsPageable: undefined,\n client: undefined,\n};\n\nexport const clientReducer = createReducer(initState, (builder) =>\n builder\n .addCase(getAllClientsSuccess, (state, action) => {\n state.clients = action.payload;\n })\n .addCase(\n createClientError,\n (\n state,\n {\n payload: {\n error: { status },\n },\n },\n ) => {\n state.errors.clientName = status === 409 ? 'client.errors.duplicate' : undefined;\n },\n )\n .addCase(getClientsPageableSuccess, (state, action) => {\n state.clientsPageable = action.payload;\n })\n .addCase(clearClient, (state) => {\n state.client = undefined;\n })\n .addCase(getClientByIdSuccess, (state, action) => {\n state.client = action.payload;\n })\n .addCase(clearClientErrors, (state) => {\n state.errors = {};\n }),\n);\n","import { createReducer } from '@reduxjs/toolkit';\nimport { closeAlert, showError, showSuccessful } from './notify.actions';\nimport { INotifyState } from './notify.interface';\n\nconst initState: INotifyState = {\n notifications: [],\n};\n\nexport const notifyReducer = createReducer(initState, (builder) =>\n builder\n .addCase(showError, (state, action) => {\n state.notifications = [\n ...state.notifications,\n {\n key: new Date().getTime() + Math.floor(Math.random() * 1000),\n message: action.payload.message,\n options: {\n ...(action.payload.options as object),\n variant: 'error',\n },\n },\n ];\n })\n .addCase(showSuccessful, (state, action) => {\n state.notifications = [\n ...state.notifications,\n {\n key: new Date().getTime() + Math.floor(Math.random() * 1000),\n message: action.payload.message,\n options: {\n ...(action.payload.options as object),\n variant: 'success',\n },\n },\n ];\n })\n .addCase(closeAlert, (state, action) => {\n state.notifications = [...state.notifications.filter((notify) => notify.key !== action.payload.key)];\n }),\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { combineEpics, Epic, ofType } from 'redux-observable';\nimport { from, of, zip } from 'rxjs';\nimport { catchError, switchMap, mergeMap } from 'rxjs/operators';\nimport { AppState } from 'store';\nimport { showError, showSuccessful } from 'store/notify/notify.actions';\nimport { setPaginationSearchSpinner } from 'store/table/table.actions';\nimport { api } from 'utils/axiosInstance';\nimport { CreateOrUpdateProjectDTO, KontentContentElementTypeDTO, KontentContentTypeDTO, KontentLanguageDTO, KontentWebhookDTO, KontentWorkflowStepDTO, XTMLanguageDTO } from 'utils/restApplicationClient';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n addProject,\n addProjectError,\n addProjectSuccess,\n connectToKentico,\n connectToKenticoError,\n connectToKenticoSuccess,\n editProject,\n editProjectError,\n editProjectSuccess,\n getApiKey,\n getApiKeyError,\n getApiKeySuccess,\n getContentElements,\n getContentElementsError,\n getContentElementsSuccess,\n getContentTypes,\n getContentTypesError,\n getContentTypesSuccess,\n getKenticoLanguages,\n getKenticoLanguagesError,\n getKenticoLanguagesSuccess,\n getProjectById,\n getProjectByIdError,\n getProjectByIdSuccess,\n GetProjectsByClientId,\n GetProjectsByClientIdError,\n GetProjectsByClientIdSuccess,\n getProjectsPageable,\n getProjectsPageableError,\n getProjectsPageableSuccess,\n getWebhooks,\n getWebhooksError,\n getWebhooksSuccess,\n getWorkflowSteps,\n getWorkflowStepsError,\n getWorkflowStepsSuccess,\n getXtmLanguages,\n getXtmLanguagesError,\n getXtmLanguagesSuccess,\n allFormObservers,\n clearProjectFormAll,\n} from './project.actions';\n\nexport const getProjectsPageableEpic: Epic = (action$) =>\n action$.pipe(\n ofType(getProjectsPageable.type),\n switchMap(({ payload }) =>\n from(api.getAllProjects(payload)).pipe(\n switchMap(({ data }) => of(getProjectsPageableSuccess(data), setPaginationSearchSpinner(false))),\n catchError(({ response }) =>\n of(getProjectsPageableError({ error: response }), setPaginationSearchSpinner(false)),\n ),\n ),\n ),\n );\n\nexport const getWorkflowStepsEpic: Epic = (action$, state$) =>\n action$.pipe(\n ofType(getWorkflowSteps.type),\n switchMap(() =>\n from(api.getWorkflowStepList(state$.value.project.connectedProjectId)).pipe(\n switchMap(({ data }) => of(getWorkflowStepsSuccess(data))),\n catchError(({ response }) => of(getWorkflowStepsError({ error: response }))),\n ),\n ),\n );\n\nexport const getContentTypesEpic: Epic = (action$, state$) =>\n action$.pipe(\n ofType(getContentTypes.type),\n switchMap(() =>\n from(api.getContentTypesListByKontentProject(state$.value.project.connectedProjectId)).pipe(\n switchMap(({ data }) => of(getContentTypesSuccess(data))),\n catchError(({ response }) => of(getContentTypesError({ error: response }))),\n ),\n ),\n );\n\nexport const getContentElementsEpic: Epic = (action$) =>\n action$.pipe(\n ofType(getContentElements.type),\n switchMap(() =>\n from(api.getContentElementTypesList()).pipe(\n switchMap(({ data }) => of(getContentElementsSuccess(data))),\n catchError(({ response }) => of(getContentElementsError({ error: response }))),\n ),\n ),\n );\n\nexport const getWebhooksEpic: Epic = (action$, state$) =>\n action$.pipe(\n ofType(getWebhooks.type),\n switchMap(() =>\n from(api.getWebhookList(state$.value.project.connectedProjectId)).pipe(\n switchMap(({ data }) => of(getWebhooksSuccess(data))),\n catchError(({ response }) => of(getWebhooksError({ error: response }))),\n ),\n ),\n );\n\nexport const connectToKenticoEpic: Epic = (action$) =>\n action$.pipe(\n ofType(connectToKentico.type),\n switchMap(({ payload: { managementApiKey, deliveryApiKey, kontentProjectId } }) =>\n from(\n api.connectKontentProject({\n managementApiKey,\n deliveryApiKey,\n kontentProjectId,\n }),\n ).pipe(\n switchMap(() => of(connectToKenticoSuccess(kontentProjectId))),\n catchError(({ response }) => {\n if (response.status === 410) {\n return of(connectToKenticoError({ error: response }), clearProjectFormAll(), showError({ message: 'projects.errors.removed'}));\n }\n return of(connectToKenticoError({ error: response }));\n }),\n ),\n ),\n );\n\nexport const getApiKeyEpic: Epic = (action$) =>\n action$.pipe(\n ofType(getApiKey.type),\n switchMap(({ payload }) =>\n from(api.getApiKey(payload)).pipe(\n switchMap(({ data }) => of(getApiKeySuccess(data))),\n catchError(({ response }) => of(getApiKeyError({ error: response }))),\n ),\n ),\n );\n\nexport const addProjectEpic: Epic = (action$, _, { browserHistory }) =>\n action$.pipe(\n ofType(addProject.type),\n switchMap(({ payload }: { payload: CreateOrUpdateProjectDTO }) =>\n from(api.createProject(payload)).pipe(\n switchMap(() => {\n browserHistory.push('/projects');\n\n return of(addProjectSuccess(), showSuccessful({ message: 'projects.success.create' }));\n }),\n catchError(({ response, response: { status } }) =>\n of(addProjectError({ error: response, skipMessage: status === 409 })),\n ),\n ),\n ),\n );\n\nexport const editProjectEpic: Epic = (action$, _, { browserHistory }) =>\n action$.pipe(\n ofType(editProject.type),\n switchMap(({ payload: { projectId, projectData } }) =>\n from(api.updateProject(projectId, projectData)).pipe(\n switchMap(() => {\n browserHistory.push('/projects');\n\n return of(editProjectSuccess(), showSuccessful({ message: 'projects.success.update' }));\n }),\n catchError(({ response, response: { status } }) =>\n of(editProjectError({ error: response, skipMessage: status === 409 })),\n ),\n ),\n ),\n );\n\nexport const getProjectByIdEpic: Epic = (action$, _, { browserHistory }) =>\n action$.pipe(\n ofType(getProjectById.type),\n switchMap(({ payload }) =>\n from(api.getProject(payload)).pipe(\n switchMap(({ data }) => of(getProjectByIdSuccess(data))),\n catchError(({ response }) => {\n browserHistory.push('/projects');\n return of(getProjectByIdError({ error: response }));\n }),\n ),\n ),\n );\n\nexport const getKenticoLanguagesEpic: Epic = (action$) =>\n action$.pipe(\n ofType(getKenticoLanguages.type),\n switchMap(({ payload }) =>\n from(api.getProjectLanguageListByKontentProject(payload)).pipe(\n switchMap(({ data }) => of(getKenticoLanguagesSuccess(data))),\n catchError(({ response }) => {\n return of(getKenticoLanguagesError({ error: response }));\n }),\n ),\n ),\n );\n\n export const parseEntriesEpic: Epic = (action$) =>\n zip(\n action$.ofType(getWebhooksSuccess.type),\n action$.ofType(getWorkflowStepsSuccess.type),\n action$.ofType(getContentTypesSuccess.type),\n action$.ofType(getContentElementsSuccess.type),\n action$.ofType(getKenticoLanguagesSuccess.type),\n action$.ofType(getXtmLanguagesSuccess.type),\n ).pipe(\n mergeMap<\n [\n PayloadAction,\n PayloadAction,\n PayloadAction,\n PayloadAction,\n PayloadAction,\n PayloadAction,\n ],\n any\n >(\n ([\n {payload: webhooks},\n {payload: workflowSteps},\n {payload: contentTypes},\n {payload: contentElements},\n {payload: kenticoLanguages},\n {payload: xtmLanguages},\n ]) => {\n let observer = {\n webhooks,\n workflowSteps,\n contentTypes,\n contentElements,\n kenticoLanguages,\n xtmLanguages,\n }\n return of(allFormObservers(observer))\n }\n )\n );\n\nconst getXtmLanguagesEpic: Epic = (action$) =>\n action$.pipe(\n ofType(getXtmLanguages.type),\n switchMap(() =>\n from(api.getLanguages()).pipe(\n switchMap(({ data }) => {\n return of(getXtmLanguagesSuccess(data));\n }),\n catchError(({ response }) => of(getXtmLanguagesError({ error: response }))),\n ),\n ),\n );\n\nconst getProjectsByClientIdEpic: Epic = (action$) =>\n action$.pipe(\n ofType(GetProjectsByClientId.type),\n switchMap(({ payload: { clientUUID } }) =>\n from(api.getAllProjectsByClientId({ clientUUID })).pipe(\n switchMap(({ data }) => {\n return of(GetProjectsByClientIdSuccess(data));\n }),\n catchError(({ response }) => of(GetProjectsByClientIdError({ error: response }))),\n ),\n ),\n );\n\nexport const projectEpics = combineEpics(\n getProjectsPageableEpic,\n getWebhooksEpic,\n getWorkflowStepsEpic,\n connectToKenticoEpic,\n addProjectEpic,\n editProjectEpic,\n getContentTypesEpic,\n getContentElementsEpic,\n getKenticoLanguagesEpic,\n getXtmLanguagesEpic,\n getApiKeyEpic,\n getProjectByIdEpic,\n getProjectsByClientIdEpic,\n parseEntriesEpic,\n);\n","import { createReducer, isAnyOf } from '@reduxjs/toolkit';\nimport { clearUser, getUsersByClientId } from 'store/user/user.actions';\nimport {\n addProjectError,\n clearProjectErrors,\n connectToKentico,\n connectToKenticoError,\n editProjectError,\n GetProjectsByClientIdSuccess,\n getProjectsPageableSuccess,\n connectToKenticoSuccess,\n getProjectByIdSuccess,\n clearProjectFormAll,\n allFormObservers,\n updateFormProject,\n} from './project.actions';\nimport { IProjectState } from './project.interface';\n\nconst initState: IProjectState = {\n errors: {},\n projectsPageable: undefined,\n project: undefined,\n connectedProjectId: '',\n clientProjects: [],\n selectedClientId: '',\n form: {\n users: [],\n dataFetchedCount: 0,\n webhooks: [],\n workflowSteps: [],\n contentTypes: [],\n contentElements: [],\n xtmLanguages: [],\n kenticoLanguages: [],\n kontentProjectId: '',\n project: undefined,\n }\n};\n\nexport const projectReducer = createReducer(initState, (builder) =>\n builder\n .addCase(getProjectsPageableSuccess, (state, action) => {\n state.projectsPageable = action.payload;\n })\n .addCase(clearProjectErrors, (state) => {\n state.errors = {};\n })\n .addCase(getUsersByClientId, (state, { payload }) => {\n state.selectedClientId = payload;\n state.form.project && (state.form.project.clientUUID = payload)\n })\n .addCase(connectToKentico, (state, { payload: { kontentProjectId } }) => {\n state.connectedProjectId = kontentProjectId;\n })\n .addCase(connectToKenticoError, (state) => {\n state.errors.kenticoConnect = 'projects.errors.connect';\n state.connectedProjectId = '';\n state.form.kontentProjectId = '';\n })\n .addCase(GetProjectsByClientIdSuccess, (state, { payload }) => {\n state.clientProjects = payload;\n })\n .addCase(clearUser, (state) => {\n state.clientProjects = [];\n })\n .addCase(connectToKenticoSuccess, (state, { payload }) => {\n state.form.kontentProjectId = payload.toString() || ''\n })\n .addCase(getProjectByIdSuccess, (state, { payload }) => {\n state.form.project = payload;\n })\n .addCase(clearProjectFormAll, (state) => {\n state.form = initState.form\n })\n .addCase(updateFormProject, (state, { payload }) => {\n state.form.project = payload\n })\n .addCase(allFormObservers, (state, { payload }) => {\n state.form = {...state.form, ...payload}\n })\n .addMatcher(\n isAnyOf(addProjectError, editProjectError),\n (\n state,\n {\n payload: {\n error: { data, status },\n },\n },\n ) => {\n const { errorMessage, errorCode } = Array.isArray(data) ? data[0] : data;\n if (!(errorCode === 'errormessage.kontent.projectId')) {\n const isProjectIdError = errorMessage.includes('Kentico Kontent id') && status === 409;\n\n state.errors = isProjectIdError\n ? { kontentProjectId: 'projects.errors.duplicateId' }\n : { projectName: 'projects.errors.duplicateName' };\n }\n },\n ),\n);\n","export const SpinnerActionTypes = {\n setFetchSpinner: 'SPINNER_SET_LOADER',\n setTemplateSpinner: 'SPINNER_SET_TEMPLATE_LOADER',\n setCustomerSpinner: 'SPINNER_SET_CUSTOMER_LOADER',\n setConnectDataSpinner: 'SPINNER_SET_CONNECT_DATA_LOADER',\n setConnectToXtmSpinner: 'SPINNER_SET_CONNECT_TO_XTM',\n setConnectToCMSSpinner: 'SPINNER_SET_CONNECT_TO_CMS',\n setDefaultUserLanguagesSpinner: 'SPINNER_SET_DEFAULT_USER_LANGUAGES',\n setProjectSpinner: 'SET_PROJECT_SPINNER',\n setKenticoDataSpinner: 'SET_KENTICO_DATA_SPINNER',\n setKenticoConnectSpinner: 'SET_KENTICO_CONNECT_SPINNER',\n};\n","import { createAction } from '@reduxjs/toolkit';\nimport { SpinnerActionTypes } from './spinner.actions.types';\n\nexport const setFetchSpinner = createAction(SpinnerActionTypes.setFetchSpinner);\n\nexport const setTemplateSpinner = createAction(SpinnerActionTypes.setTemplateSpinner);\n\nexport const setCustomerSpinner = createAction(SpinnerActionTypes.setCustomerSpinner);\n\nexport const setConnectDataSpinner = createAction(SpinnerActionTypes.setConnectDataSpinner);\n\nexport const setConnectToXtmSpinner = createAction(SpinnerActionTypes.setConnectToXtmSpinner);\n\nexport const setConnectToCMSSpinner = createAction(SpinnerActionTypes.setConnectToCMSSpinner);\n\nexport const setDefaultUserLanguageSpinner = createAction(SpinnerActionTypes.setDefaultUserLanguagesSpinner);\n\nexport const setProjectSpinner = createAction(SpinnerActionTypes.setProjectSpinner);\n\nexport const setKenticoDataSpinner = createAction(SpinnerActionTypes.setKenticoDataSpinner);\n\nexport const setKenticoConnectSpinner = createAction(SpinnerActionTypes.setKenticoConnectSpinner);\n","import { combineEpics, Epic, ofType } from 'redux-observable';\nimport { of } from 'rxjs';\nimport { debounceTime, switchMap } from 'rxjs/operators';\nimport {\n createAdministrator,\n createAdministratorError,\n createAdministratorSuccess,\n getAdministratorById,\n getAdministratorByIdError,\n getAdministratorByIdSuccess,\n getAdministratorsPageable,\n getAdministratorsPageableError,\n getAdministratorsPageableSuccess,\n} from 'store/administrator/administrator.actions';\nimport {\n createClient,\n createClientError,\n createClientSuccess,\n editClient,\n editClientSuccess,\n getAllClients,\n getAllClientsError,\n getAllClientsSuccess,\n getClientById,\n getClientByIdError,\n getClientByIdSuccess,\n getClientsPageable,\n getClientsPageableError,\n getClientsPageableSuccess,\n} from 'store/client/client.actions';\nimport {\n addProject,\n addProjectError,\n addProjectSuccess,\n connectToKentico,\n connectToKenticoError,\n connectToKenticoSuccess,\n editProject,\n editProjectError,\n editProjectSuccess,\n getApiKey,\n getApiKeyError,\n getApiKeySuccess,\n getContentElements,\n getContentElementsError,\n getContentElementsSuccess,\n getContentTypes,\n getContentTypesError,\n getContentTypesSuccess,\n getProjectById,\n getProjectByIdError,\n getProjectByIdSuccess,\n GetProjectsByClientId,\n GetProjectsByClientIdError,\n GetProjectsByClientIdSuccess,\n getProjectsPageable,\n getProjectsPageableError,\n getProjectsPageableSuccess,\n getWebhooks,\n getWebhooksError,\n getWebhooksSuccess,\n getWorkflowSteps,\n getWorkflowStepsError,\n getWorkflowStepsSuccess,\n} from 'store/project/project.actions';\nimport {\n changePassword,\n changePasswordError,\n changePasswordSuccess,\n changeUserPassword,\n changeUserPasswordError,\n changeUserPasswordSuccess,\n createUser,\n createUserError,\n createUserSuccess,\n editUser,\n editUserSuccess,\n getDefaultUserLanguages,\n getDefaultUserLanguagesError,\n getDefaultUserLanguagesSuccess,\n getUserById,\n getUserByIdError,\n getUserByIdSuccess,\n getUsersByClientId,\n getUsersByClientIdError,\n getUsersByClientIdSuccess,\n loginUser,\n loginUserError,\n loginUserSuccess,\n resetPassword,\n resetPasswordError,\n resetPasswordSuccess,\n resetUserPassword,\n resetUserPasswordError,\n resetUserPasswordSuccess,\n usersPageable,\n usersPageableError,\n usersPageableSuccess,\n xtmConnect,\n xtmConnectError,\n xtmConnectSuccess,\n xtmConnectUser,\n xtmConnectUserError,\n xtmConnectUserSuccess,\n xtmGetConnectData,\n xtmGetConnectDataError,\n xtmGetConnectDataSuccess,\n xtmGetCustomers,\n xtmGetCustomersById,\n xtmGetCustomersByIdError,\n xtmGetCustomersByIdSuccess,\n xtmGetCustomersError,\n xtmGetCustomersSuccess,\n xtmGetTemplates,\n xtmGetTemplatesError,\n xtmGetTemplatesSuccess,\n} from 'store/user/user.actions';\nimport {\n setConnectDataSpinner,\n setConnectToXtmSpinner,\n setCustomerSpinner,\n setDefaultUserLanguageSpinner,\n setFetchSpinner,\n setKenticoConnectSpinner,\n setKenticoDataSpinner,\n setProjectSpinner,\n setTemplateSpinner,\n} from './spinner.actions';\n\nconst fetchSpinnerEpic: Epic = (action$) =>\n action$.pipe(\n ofType(\n createUser.type,\n createUserSuccess.type,\n createUserError.type,\n usersPageable.type,\n usersPageableSuccess.type,\n usersPageableError.type,\n editUser.type,\n editUserSuccess.type,\n getUserById.type,\n getUserByIdSuccess.type,\n getUserByIdError.type,\n createClient.type,\n createClientSuccess.type,\n createClientError.type,\n getClientsPageable.type,\n getClientsPageableError.type,\n getClientsPageableSuccess.type,\n editClient.type,\n editClientSuccess.type,\n getClientById.type,\n getClientByIdError.type,\n getClientByIdSuccess.type,\n getAllClients.type,\n getAllClientsError.type,\n getAllClientsSuccess.type,\n getUsersByClientIdError.type,\n getUsersByClientIdSuccess.type,\n getUsersByClientId.type,\n createAdministrator.type,\n createAdministratorSuccess.type,\n createAdministratorError.type,\n getAdministratorsPageable.type,\n getAdministratorsPageableSuccess.type,\n getAdministratorsPageableError.type,\n getAdministratorById.type,\n getAdministratorByIdSuccess.type,\n getAdministratorByIdError.type,\n loginUser.type,\n loginUserError.type,\n loginUserSuccess.type,\n resetPassword.type,\n resetPasswordError.type,\n resetPasswordSuccess.type,\n changePassword.type,\n changePasswordError.type,\n changePasswordSuccess.type,\n changeUserPassword.type,\n changeUserPasswordError.type,\n changeUserPasswordSuccess.type,\n resetUserPassword.type,\n resetUserPasswordError.type,\n resetUserPasswordSuccess.type,\n getProjectsPageable.type,\n getProjectsPageableSuccess.type,\n getProjectsPageableError.type,\n getContentElements.type,\n getContentElementsSuccess.type,\n getContentElementsError.type,\n ),\n debounceTime(500),\n switchMap(({ type }) => {\n if ((type as string).endsWith('SUCCESS') || (type as string).endsWith('ERROR')) {\n return of(setFetchSpinner(false));\n }\n return of(setFetchSpinner(true));\n }),\n );\n\nconst templateSpinnerEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(xtmGetTemplates.type, xtmGetTemplatesSuccess.type, xtmGetTemplatesError.type),\n debounceTime(500),\n switchMap(({ type }) => {\n if ((type as string).endsWith('SUCCESS') || (type as string).endsWith('ERROR')) {\n return of(setTemplateSpinner(false));\n }\n return of(setTemplateSpinner(true));\n }),\n );\n\nconst customerSpinnerEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(\n xtmGetCustomers.type,\n xtmGetCustomersSuccess.type,\n xtmGetCustomersError.type,\n xtmGetCustomersById.type,\n xtmGetCustomersByIdError.type,\n xtmGetCustomersByIdSuccess.type,\n ),\n debounceTime(500),\n switchMap(({ type }) => {\n if ((type as string).endsWith('SUCCESS') || (type as string).endsWith('ERROR')) {\n return of(setCustomerSpinner(false));\n }\n return of(setCustomerSpinner(true));\n }),\n );\n\nconst connectDataSpinnerEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(xtmGetConnectData.type, xtmGetConnectDataSuccess.type, xtmGetConnectDataError.type),\n debounceTime(500),\n switchMap(({ type }) => {\n if ((type as string).endsWith('SUCCESS') || (type as string).endsWith('ERROR')) {\n return of(setConnectDataSpinner(false));\n }\n return of(setConnectDataSpinner(true));\n }),\n );\n\nconst connectToXtmSpinnerEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(\n xtmConnect.type,\n xtmConnectError.type,\n xtmConnectSuccess.type,\n xtmConnectUser.type,\n xtmConnectUserError.type,\n xtmConnectUserSuccess.type,\n ),\n debounceTime(500),\n switchMap(({ type }) => {\n if ((type as string).endsWith('SUCCESS') || (type as string).endsWith('ERROR')) {\n return of(setConnectToXtmSpinner(false));\n }\n return of(setConnectToXtmSpinner(true));\n }),\n );\n\nconst defaultUserLanguagesSpinnerEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(getDefaultUserLanguages.type, getDefaultUserLanguagesSuccess.type, getDefaultUserLanguagesError.type),\n debounceTime(500),\n switchMap(({ type }) => {\n if ((type as string).endsWith('SUCCESS') || (type as string).endsWith('ERROR')) {\n return of(setDefaultUserLanguageSpinner(false));\n }\n return of(setDefaultUserLanguageSpinner(true));\n }),\n );\n\nconst projectSpinnerEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(\n addProject.type,\n addProjectSuccess.type,\n addProjectError.type,\n editProject.type,\n editProjectSuccess.type,\n editProjectError.type,\n GetProjectsByClientId.type,\n GetProjectsByClientIdSuccess.type,\n GetProjectsByClientIdError.type,\n ),\n debounceTime(500),\n switchMap(({ type }) => {\n if ((type as string).endsWith('SUCCESS') || (type as string).endsWith('ERROR')) {\n return of(setProjectSpinner(false));\n }\n return of(setProjectSpinner(true));\n }),\n );\n\nconst kenticoDataSpinnerEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(\n getWorkflowSteps.type,\n getWorkflowStepsError.type,\n getWorkflowStepsSuccess.type,\n getWebhooks.type,\n getWebhooksError.type,\n getWebhooksSuccess.type,\n getContentTypesSuccess.type,\n getContentTypesError.type,\n getContentTypes.type,\n getProjectById.type,\n getProjectByIdSuccess.type,\n getProjectByIdError.type,\n ),\n debounceTime(500),\n switchMap(({ type }) => {\n if ((type as string).endsWith('SUCCESS') || (type as string).endsWith('ERROR')) {\n return of(setKenticoDataSpinner(false));\n }\n return of(setKenticoDataSpinner(true));\n }),\n );\n\nconst kenticoConnectSpinnerEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(\n connectToKentico.type,\n connectToKenticoError.type,\n connectToKenticoSuccess.type,\n getApiKeySuccess.type,\n getApiKeyError.type,\n getApiKey.type,\n ),\n debounceTime(500),\n switchMap(({ type }) => {\n if ((type as string).endsWith('SUCCESS') || (type as string).endsWith('ERROR')) {\n return of(setKenticoConnectSpinner(false));\n }\n return of(setKenticoConnectSpinner(true));\n }),\n );\n\nexport const spinnerEpics = combineEpics(\n fetchSpinnerEpic,\n templateSpinnerEpic,\n connectDataSpinnerEpic,\n connectToXtmSpinnerEpic,\n customerSpinnerEpic,\n defaultUserLanguagesSpinnerEpic,\n kenticoDataSpinnerEpic,\n kenticoConnectSpinnerEpic,\n projectSpinnerEpic,\n);\n","import { createReducer } from '@reduxjs/toolkit';\nimport {\n setConnectDataSpinner,\n setConnectToCMSSpinner,\n setConnectToXtmSpinner,\n setCustomerSpinner,\n setDefaultUserLanguageSpinner,\n setFetchSpinner,\n setTemplateSpinner,\n setProjectSpinner,\n setKenticoDataSpinner,\n setKenticoConnectSpinner,\n} from './spinner.actions';\nimport { ISpinnerState } from './spinner.interface';\n\nconst initState: ISpinnerState = {\n fetchSpinner: false,\n templateSpinner: false,\n customerSpinner: false,\n connectDataSpinner: false,\n connectToXtmSpinner: false,\n connectToCMSSpinner: false,\n defaultUserLanguagesSpinner: false,\n projectSpinner: false,\n kenticoDataSpinner: false,\n kenticoConnectSpinner: false,\n};\n\nexport const spinnerReducer = createReducer(initState, (builder) =>\n builder\n .addCase(setFetchSpinner, (state, action) => {\n state.fetchSpinner = action.payload;\n })\n .addCase(setKenticoDataSpinner, (state, action) => {\n state.kenticoDataSpinner = action.payload;\n })\n .addCase(setKenticoConnectSpinner, (state, action) => {\n state.kenticoConnectSpinner = action.payload;\n })\n .addCase(setTemplateSpinner, (state, action) => {\n state.templateSpinner = action.payload;\n })\n .addCase(setCustomerSpinner, (state, action) => {\n state.customerSpinner = action.payload;\n })\n .addCase(setConnectDataSpinner, (state, action) => {\n state.connectDataSpinner = action.payload;\n })\n .addCase(setConnectToXtmSpinner, (state, action) => {\n state.connectToXtmSpinner = action.payload;\n })\n .addCase(setConnectToCMSSpinner, (state, action) => {\n state.connectToCMSSpinner = action.payload;\n })\n .addCase(setDefaultUserLanguageSpinner, (state, action) => {\n state.defaultUserLanguagesSpinner = action.payload;\n })\n .addCase(setProjectSpinner, (state, action) => {\n state.projectSpinner = action.payload;\n }),\n);\n","import { combineEpics, Epic, ofType } from 'redux-observable';\nimport { EMPTY } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport store from 'store';\nimport { setPaginationOptions, setPaginationSearch } from './table.actions';\n\nconst getRowsEpic: Epic = (action$, state$) =>\n action$.pipe(\n ofType(setPaginationOptions.type, setPaginationSearch.type),\n switchMap((action) => {\n const {\n dispatchAction,\n paginationOptions: { page, size, order, orderBy, search },\n } = state$.value.table;\n if (dispatchAction) {\n if (action.type !== setPaginationSearch.type) {\n store.dispatch(\n dispatchAction({\n page,\n size,\n search,\n sort: `${orderBy},${order}`,\n }),\n );\n } else {\n store.dispatch(\n setPaginationOptions({\n page: 0,\n size,\n search,\n orderBy,\n order,\n }),\n );\n }\n }\n return EMPTY;\n }),\n );\n\nexport const tableEpics = combineEpics(getRowsEpic);\n","import { createReducer } from '@reduxjs/toolkit';\nimport { OrderDirection } from 'enums/filter';\nimport {\n clearPaginationOptions,\n setPaginationAction,\n setPaginationOptions,\n setPaginationOptionsNoEmit,\n setPaginationSearch,\n setPaginationSearchSpinner\n} from './table.actions';\nimport { ITableState } from './table.interface';\n\nconst initState: ITableState = {\n paginationOptions: {\n page: 0,\n size: 10,\n order: OrderDirection.ASC,\n orderBy: '',\n search: '',\n },\n dispatchAction: undefined,\n searchSpinner: false,\n};\n\nexport const tableReducer = createReducer(initState, (builder) =>\n builder\n .addCase(setPaginationOptions, (state, action) => {\n state.paginationOptions = {\n ...state.paginationOptions,\n ...action.payload,\n };\n })\n .addCase(setPaginationOptionsNoEmit, (state, action) => {\n state.paginationOptions = {\n ...state.paginationOptions,\n ...action.payload,\n };\n })\n .addCase(setPaginationSearch, (state, action) => {\n state.paginationOptions = {\n ...state.paginationOptions,\n search: action.payload,\n };\n state.searchSpinner = true;\n })\n .addCase(setPaginationAction, (state, action) => {\n state.dispatchAction = action.payload;\n })\n .addCase(clearPaginationOptions, (state) => {\n state.paginationOptions = initState.paginationOptions;\n })\n .addCase(setPaginationSearchSpinner, (state, action) => {\n state.searchSpinner = action.payload;\n }),\n);\n","import { combineEpics, Epic, ofType } from 'redux-observable';\nimport { from, of, timer } from 'rxjs';\nimport { catchError, delayWhen, pluck, switchMap, tap } from 'rxjs/operators';\nimport store from 'store';\nimport { showSuccessful } from 'store/notify/notify.actions';\nimport { api, clearToken } from 'utils/axiosInstance';\nimport { AuthenticationResult } from 'utils/restApplicationClient';\nimport i18n from '../../utils/initTranslation';\nimport { setPaginationSearchSpinner } from '../table/table.actions';\nimport {\n changePassword,\n changePasswordError,\n changePasswordSuccess,\n changeUserPassword,\n createUser,\n createUserError,\n createUserSuccess,\n editUser,\n editUserSuccess,\n getDefaultUserLanguages,\n getDefaultUserLanguagesError,\n getDefaultUserLanguagesSuccess,\n getUserById,\n getUserByIdError,\n getUserByIdSuccess,\n getUsersByClientId,\n getUsersByClientIdError,\n getUsersByClientIdSuccess,\n loginUser,\n loginUserError,\n loginUserSuccess,\n logoutUser,\n logoutUserSuccess,\n refreshTokenSuccess,\n resetPassword,\n resetPasswordError,\n resetPasswordSuccess,\n resetUserPassword,\n resetUserPasswordError,\n resetUserPasswordSuccess,\n sessionExpired,\n showSessionExpired,\n usersPageable,\n usersPageableError,\n usersPageableSuccess,\n verifyPassToken,\n verifyPassTokenError,\n verifyPassTokenSuccess,\n verifyToken,\n verifyTokenError,\n xtmConnect,\n xtmConnectError,\n xtmConnectSuccess,\n xtmConnectUser,\n xtmConnectUserError,\n xtmConnectUserSuccess,\n xtmGetConnectData,\n xtmGetConnectDataError,\n xtmGetConnectDataSuccess,\n xtmGetCustomers,\n xtmGetCustomersById,\n xtmGetCustomersByIdError,\n xtmGetCustomersByIdSuccess,\n xtmGetCustomersError,\n xtmGetCustomersSuccess,\n xtmGetTemplates,\n xtmGetTemplatesError,\n xtmGetTemplatesSuccess,\n} from './user.actions';\n\nexport const loginEpic: Epic = (action$) =>\n action$.pipe(\n ofType(loginUser.type),\n switchMap(({ payload }) =>\n from(api.authenticateAdmin(payload)).pipe(\n switchMap(({ data }) => of(loginUserSuccess(data))),\n catchError(({ response }) => {\n return of(loginUserError({ error: response }));\n }),\n ),\n ),\n );\n\nexport const logoutEpic: Epic = (action$, _, { browserHistory }) =>\n action$.pipe(\n ofType(logoutUser.type, verifyTokenError.type),\n tap(() => clearToken()),\n switchMap(() => {\n if (\n browserHistory.location.pathname !== '/changePassword' &&\n !/\\/reset-password\\/.*/.test(browserHistory.location.pathname)\n ) {\n browserHistory.push('/login');\n }\n return of(logoutUserSuccess());\n }),\n );\n\nexport const refreshTokenEpic: Epic = (action$) =>\n action$.pipe(\n ofType(loginUserSuccess.type, refreshTokenSuccess.type),\n pluck('payload'),\n delayWhen(({ ttl = 890 }: AuthenticationResult) => timer((ttl - 10) * 1000)),\n switchMap(() =>\n from(api.refreshToken()).pipe(\n switchMap(({ data }) => {\n return of(refreshTokenSuccess(data));\n }),\n catchError(() => {\n return of(logoutUser());\n }),\n ),\n ),\n );\n\nexport const resetPasswordEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(resetPassword.type),\n switchMap(({ payload: { email } }) =>\n from(api.sendResetPasswordEmailForAdmin({ email, language: i18n.language })).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: 'auth.success.resetPasswordSent' }));\n return of(resetPasswordSuccess());\n }),\n catchError(({ response }) => {\n return of(resetPasswordError({ error: response }));\n }),\n ),\n ),\n );\n\nexport const resetUserPasswordEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(resetUserPassword.type),\n switchMap(({ payload: { email } }) =>\n from(api.sendResetPasswordEmail({ email, language: i18n.language })).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: 'auth.success.resetPasswordSent' }));\n return of(resetUserPasswordSuccess());\n }),\n catchError(({ response }) => {\n return of(resetUserPasswordError({ error: response }));\n }),\n ),\n ),\n );\n\nexport const verifyTokenEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(verifyToken.type),\n switchMap(() =>\n from(api.refreshToken()).pipe(\n switchMap(({ data }) => {\n return of(refreshTokenSuccess(data));\n }),\n catchError(() => {\n return of(logoutUser());\n }),\n ),\n ),\n );\n\nexport const changePassEpic: Epic = (action$, state$, { browserHistory }) =>\n action$.pipe(\n ofType(changePassword.type),\n switchMap(({ payload }) =>\n from(api.changePassword(payload)).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: 'auth.success.changePassword' }));\n browserHistory.push('/login');\n return of(changePasswordSuccess());\n }),\n catchError(({ response }) => of(changePasswordError({ error: response }))),\n ),\n ),\n );\n\nexport const changeUserPassEpic: Epic = (action$) =>\n action$.pipe(\n ofType(changeUserPassword.type),\n switchMap(({ payload }) =>\n from(api.changePassword(payload)).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: 'auth.success.changePassword' }));\n window.location.href = 'https://app.contentful.com/';\n return of(changePasswordSuccess());\n }),\n catchError(({ response }) => of(changePasswordError({ error: response }))),\n ),\n ),\n );\n\nexport const verifyResetPasswordTokenEpic: Epic = (actions$, state$, { browserHistory }) =>\n actions$.pipe(\n ofType(verifyPassToken.type),\n switchMap(({ payload: token }) =>\n from(api.verifyResetPasswordToken({ token })).pipe(\n switchMap(() => of(verifyPassTokenSuccess())),\n catchError(({ response }) => {\n browserHistory.push('/login');\n return of(verifyPassTokenError({ error: response }));\n }),\n ),\n ),\n );\n\nexport const addUserEpic: Epic = (action$, state$, { browserHistory }) =>\n action$.pipe(\n ofType(createUser.type),\n switchMap(({ payload }) =>\n from(api.createUser(payload)).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: i18n.t('users.success.create') }));\n browserHistory.push('/users');\n return of(createUserSuccess());\n }),\n catchError(({ response }) => of(createUserError({ error: response }))),\n ),\n ),\n );\n\nexport const getUsersPageableEpic: Epic = (action$) =>\n action$.pipe(\n ofType(usersPageable.type),\n switchMap(({ payload }) =>\n from(api.getAllUsers(payload)).pipe(\n switchMap(({ data }) => {\n store.dispatch(setPaginationSearchSpinner(false));\n return of(usersPageableSuccess(data));\n }),\n catchError(({ response }) => of(usersPageableError({ error: response }), setPaginationSearchSpinner(false))),\n ),\n ),\n );\n\nexport const editUserEpic: Epic = (actions$, state$, { browserHistory }) =>\n actions$.pipe(\n ofType(editUser.type),\n switchMap((res) => {\n return from(api.editUser(res.payload.userId, res.payload.updateUser)).pipe(\n switchMap(() => {\n store.dispatch(showSuccessful({ message: 'users.success.edit' }));\n browserHistory.push('/users');\n return of(editUserSuccess());\n }),\n catchError(({ response }) => of(createUserError({ error: response }))),\n );\n }),\n );\n\nexport const getUserEpic: Epic = (actions$, state$, { browserHistory }) =>\n actions$.pipe(\n ofType(getUserById.type),\n switchMap(({ payload }) => from(api.getUser(payload)).pipe(switchMap(({ data }) => of(getUserByIdSuccess(data))))),\n catchError(({ response }) => {\n browserHistory.push('/users');\n return of(getUserByIdError({ error: response }));\n }),\n );\n\nexport const connectXtmEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(xtmConnect.type),\n switchMap(({ payload }) =>\n from(api.connectToXtm(payload)).pipe(\n switchMap(({ data }) => of(xtmConnectSuccess(data))),\n catchError(({ response }) => of(xtmConnectError({ error: response }))),\n ),\n ),\n );\n\nexport const connectXtmUserEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(xtmConnectUser.type),\n switchMap(({ payload }) =>\n from(api.reconnectToXtm(payload.userId, payload.xtmParameters)).pipe(\n switchMap(({ data }) => {\n return of(xtmConnectUserSuccess(data));\n }),\n catchError(({ response }) => of(xtmConnectUserError({ error: response }))),\n ),\n ),\n );\n\nexport const getCustomersEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(xtmGetCustomers.type, xtmConnectSuccess.type, xtmConnectUserSuccess.type),\n switchMap(({ payload }) =>\n from(\n api.getXTMCustomers$GET$api_xtm_customers({\n xtmAuthId: payload.xtmAuthorizationId,\n }),\n ).pipe(\n switchMap(({ data }) => of(xtmGetCustomersSuccess(data))),\n catchError(({ response }) => of(xtmGetCustomersError({ error: response }))),\n ),\n ),\n );\n\nexport const getTemplatesEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(xtmGetTemplates.type),\n switchMap(({ payload }) =>\n from(api.getXTMTemplates(payload)).pipe(\n switchMap(({ data }) => of(xtmGetTemplatesSuccess(data))),\n catchError(({ response }) => of(xtmGetTemplatesError({ error: response }))),\n ),\n ),\n );\n\nexport const getCustomersByIdEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(xtmGetCustomersById.type),\n switchMap(({ payload }) =>\n from(api.getXTMCustomersForExistingUser(payload)).pipe(\n switchMap(({ data }) => of(xtmGetCustomersByIdSuccess(data))),\n catchError(({ response }) => of(xtmGetCustomersByIdError({ error: response }))),\n ),\n ),\n );\n\nexport const getConnectDataEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(xtmGetConnectData.type),\n switchMap(({ payload }) =>\n from(api.getXTMConnectionParameters(payload)).pipe(\n switchMap(({ data }) => of(xtmGetConnectDataSuccess(data))),\n catchError(({ response }) => of(xtmGetConnectDataError({ error: response }))),\n ),\n ),\n );\n\nexport const showSessionExpiredEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(sessionExpired.type),\n switchMap(() => of(showSessionExpired())),\n );\n\nexport const getUsersByClientIdEpic: Epic = (actions$) =>\n actions$.pipe(\n ofType(getUsersByClientId.type),\n switchMap(({ payload }) =>\n from(api.getAllUsersList({ clientUUID: payload })).pipe(\n switchMap(({ data }) => of(getUsersByClientIdSuccess(data))),\n catchError(({ response }) => of(getUsersByClientIdError({ error: response }))),\n ),\n ),\n );\n\nconst getDefaultUserLanguagesList: Epic = (actions$) =>\n actions$.pipe(\n ofType(getDefaultUserLanguages.type),\n switchMap(() =>\n from(api.getLanguages()).pipe(\n switchMap(({ data }) => of(getDefaultUserLanguagesSuccess(data))),\n catchError(({ response }) => {\n return of(getDefaultUserLanguagesError({ error: response }));\n }),\n ),\n ),\n );\n\nexport const userEpics = combineEpics(\n loginEpic,\n logoutEpic,\n resetPasswordEpic,\n refreshTokenEpic,\n verifyTokenEpic,\n verifyResetPasswordTokenEpic,\n changePassEpic,\n getUsersPageableEpic,\n addUserEpic,\n getUserEpic,\n editUserEpic,\n connectXtmEpic,\n getCustomersEpic,\n getTemplatesEpic,\n getCustomersByIdEpic,\n getConnectDataEpic,\n showSessionExpiredEpic,\n connectXtmUserEpic,\n resetUserPasswordEpic,\n changeUserPassEpic,\n getUsersByClientIdEpic,\n getDefaultUserLanguagesList,\n);\n","import { createReducer } from '@reduxjs/toolkit';\nimport {\n clearDefaultUserLanguages,\n clearUser,\n clearUserErrors,\n clearXtmTemplates,\n createUserError,\n getAllUsersSuccess,\n getDefaultUserLanguagesSuccess,\n getUserByIdSuccess,\n hideSessionExpired,\n loginUserError,\n loginUserSuccess,\n logoutUserSuccess,\n refreshTokenSuccess,\n showSessionExpired,\n usersPageableSuccess,\n verifyPassTokenError,\n verifyPassTokenSuccess,\n verifyTokenError,\n verifyTokenSuccess,\n xtmConnectError,\n xtmConnectSuccess,\n xtmConnectUserError,\n xtmConnectUserSuccess,\n xtmGetConnectDataSuccess,\n xtmGetCustomersByIdSuccess,\n xtmGetCustomersSuccess,\n xtmGetTemplatesSuccess,\n} from './user.actions';\nimport { IUserState } from './user.interface';\n\nconst initState: IUserState = {\n users: [],\n errors: {},\n auth: false,\n data: undefined,\n verifyFinished: false,\n verifyPassFinished: true,\n usersPageable: undefined,\n user: undefined,\n xtmAuthorizationId: undefined,\n customers: undefined,\n templates: undefined,\n connectData: undefined,\n defaultUserLanguages: undefined,\n sessionExpired: false,\n};\nexport const userReducer = createReducer(initState, (builder) =>\n builder\n .addCase(loginUserSuccess, (state, action) => {\n state.auth = true;\n state.data = action.payload;\n })\n .addCase(loginUserError, (state, action) => {\n if (action.payload) {\n state.errors = { login: 'auth.errors.login' };\n }\n })\n .addCase(verifyTokenSuccess, (state) => {\n state.auth = true;\n state.verifyFinished = true;\n })\n .addCase(verifyTokenError, (state) => {\n state.verifyFinished = true;\n state.auth = false;\n })\n .addCase(refreshTokenSuccess, (state, action) => {\n state.verifyFinished = true;\n state.auth = true;\n state.data = action.payload;\n })\n .addCase(logoutUserSuccess, (state) => {\n state.verifyFinished = true;\n state.auth = false;\n state.data = undefined;\n })\n .addCase(verifyPassTokenSuccess, (state) => {\n state.verifyPassFinished = true;\n })\n .addCase(verifyPassTokenError, (state) => {\n state.verifyPassFinished = true;\n })\n .addCase(getAllUsersSuccess, (state, action) => {\n state.users = action.payload;\n })\n .addCase(createUserError, (state, action) => {\n if (action.payload) {\n state.errors = { email: 'users.errors.duplicate' };\n }\n })\n .addCase(usersPageableSuccess, (state, action) => {\n state.usersPageable = action.payload;\n })\n .addCase(getUserByIdSuccess, (state, action) => {\n state.user = action.payload;\n })\n .addCase(clearUserErrors, (state) => {\n state.errors = {};\n })\n .addCase(clearUser, (state) => {\n state.user = undefined;\n state.xtmAuthorizationId = undefined;\n state.customers = undefined;\n state.templates = undefined;\n state.connectData = undefined;\n })\n .addCase(xtmConnectError, (state) => {\n state.errors.xtmConnect = 'users.errors.connect';\n state.xtmAuthorizationId = undefined;\n })\n .addCase(xtmConnectUserError, (state) => {\n state.errors.xtmConnect = 'users.errors.connect';\n state.xtmAuthorizationId = undefined;\n })\n .addCase(xtmConnectSuccess, (state, { payload: { xtmAuthorizationId } }) => {\n state.xtmAuthorizationId = xtmAuthorizationId;\n })\n .addCase(xtmConnectUserSuccess, (state, { payload: { xtmAuthorizationId } }) => {\n state.xtmAuthorizationId = xtmAuthorizationId;\n })\n .addCase(xtmGetCustomersSuccess, (state, action) => {\n state.customers = action.payload;\n })\n .addCase(xtmGetCustomersByIdSuccess, (state, action) => {\n state.customers = action.payload;\n })\n .addCase(xtmGetTemplatesSuccess, (state, action) => {\n state.templates = action.payload;\n })\n .addCase(xtmGetConnectDataSuccess, (state, action) => {\n state.connectData = action.payload;\n })\n .addCase(clearXtmTemplates, (state) => {\n state.templates = undefined;\n })\n .addCase(getDefaultUserLanguagesSuccess, (state, action) => {\n state.defaultUserLanguages = action.payload;\n })\n .addCase(showSessionExpired, (state) => {\n state.sessionExpired = true;\n })\n .addCase(hideSessionExpired, (state) => {\n state.sessionExpired = false;\n })\n .addCase(clearDefaultUserLanguages, (state) => {\n state.defaultUserLanguages = undefined;\n }),\n);\n","import { configureStore } from '@reduxjs/toolkit';\nimport { CombinedState, combineReducers, Reducer } from 'redux';\nimport { combineEpics, createEpicMiddleware } from 'redux-observable';\nimport { api } from 'utils/axiosInstance';\nimport browserHistory from 'utils/browserHistory';\nimport { administratorEpics } from './administrator/administrator.epics';\nimport { administratorReducer } from './administrator/administrator.reducer';\nimport { clientEpics } from './client/client.epics';\nimport { clientReducer } from './client/client.reducer';\nimport { notifyReducer } from './notify/notify.reducer';\nimport { projectEpics } from './project/project.epics';\nimport { projectReducer } from './project/project.reducer';\nimport { spinnerEpics } from './spinner/spinner.epics';\nimport { spinnerReducer } from './spinner/spinner.reducer';\nimport { tableEpics } from './table/table.epics';\nimport { tableReducer } from './table/table.reducer';\nimport { logoutUserSuccess } from './user/user.actions';\nimport { userEpics } from './user/user.epics';\nimport { userReducer } from './user/user.reducer';\nimport subscribeActionMiddleware from 'redux-subscribe-action';\nimport { IAdministratorState } from './administrator/administrator.interface';\nimport { IClientState } from './client/client.interface';\nimport { INotifyState } from './notify/notify.interface';\nimport { IProjectState } from './project/project.interface';\nimport { ISpinnerState } from './spinner/spinner.interface';\nimport { ITableState } from './table/table.interface';\nimport { IUserState } from './user/user.interface';\nimport { errorEpics } from './error/error.epic';\n\nconst appReducer = combineReducers({\n user: userReducer,\n notify: notifyReducer,\n client: clientReducer,\n project: projectReducer,\n table: tableReducer,\n administrator: administratorReducer,\n spinner: spinnerReducer,\n});\n\nconst rootReducer: Reducer<\n CombinedState<{\n user: IUserState;\n notify: INotifyState;\n client: IClientState;\n project: IProjectState;\n table: ITableState;\n administrator: IAdministratorState;\n spinner: ISpinnerState;\n }>\n> = (state, action) => {\n if (action.type === logoutUserSuccess().type) {\n state = undefined;\n }\n\n return appReducer(state, action);\n};\n\nconst epicMiddleware = createEpicMiddleware({\n dependencies: { browserHistory, api },\n});\n\nconst store = configureStore({\n reducer: rootReducer,\n middleware: [epicMiddleware, subscribeActionMiddleware],\n devTools: process.env.NODE_ENV !== 'production',\n});\n\nepicMiddleware.run(\n combineEpics(userEpics, clientEpics, tableEpics, administratorEpics, spinnerEpics, projectEpics, errorEpics),\n);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nif (process.env.NODE_ENV !== 'production' && module.hot) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n module.hot.accept('./', () => store.replaceReducer(rootReducer));\n}\n\nexport type AppState = ReturnType;\nexport type AppDispatch = ReturnType;\nexport default store;\n","/** @jsx jsx */\nimport { Global, jsx } from '@emotion/core';\nimport { ThemeProvider } from '@material-ui/core';\nimport * as Sentry from '@sentry/browser';\nimport { mainStyles } from 'main.style';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { theme } from 'theme';\nimport { checkVersion } from 'utils/checkVersion';\nimport { initTranslation } from 'utils/initTranslation';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport store from './store';\n\nSentry.init({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dsn: (window as any)?._env_?.REACT_APP_SENTRY_DSN || process.env.REACT_APP_SENTRY_DSN,\n environment: process.env.NODE_ENV,\n});\n\nasync function render(): Promise {\n await checkVersion();\n\n initTranslation();\n\n ReactDOM.render(\n \n \n \n \n \n \n \n ,\n document.getElementById('root'),\n );\n}\n\ndocument.addEventListener('DOMContentLoaded', render);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}