{"version":3,"sources":["shared/validation/errors.tsx","utils/request.ts","redux/actions/setLoadingStatus.ts","utils/local-storage.ts","types/toggles.ts","types/authTypes.ts","types/sharedTypes.ts","redux/actions/setMobileMenusStatus.ts","types/requestTypes.ts","api/restApiService.ts","redux/actions/auth.ts","api/auth/index.ts","icons/icons.tsx","components/mobile/OperationsMenuMobile.module.css","../../../src/components/app-accordion.tsx","../../../src/components/app-login-page.tsx","../../../src/components/app-navbar-user.tsx","../../../src/components/app-navbar-utils.tsx","../../../src/components/app-navbar.tsx","../../../src/components/app-pagination.tsx","../../../src/components/app-utils.tsx","../../../src/components/app-progress.tsx","../../../src/components/app-restore-account-page.tsx","../../../src/components/app-horizontal-line.tsx","../../../src/components/app-sidebar.tsx","../../../src/components/app-table.tsx","../../../src/components/app-simple-table.tsx","../../../src/utils/times.ts","../../../src/utils/tables.tsx","../../../src/entity/redux-action.ts","../../../src/entity/direction.ts","../../../src/entity/app-sidebar-item.ts","redux/actions/investor/fetchInvestorDetails.ts","types/settingsTypes.ts","components/shared/SimpleInput.tsx","types/masterTypes.ts","redux/actions/shared/fetchConfig.ts","components/administrator/investor/PasswordTooltip.module.css","redux/actions/master/fetchMasterDetails.ts","utils/date-time.ts","utils/validate-schema.ts","redux/actions/requests/fetchRequestsCount.ts","redux/actions/shared/fetchSummary.ts","utils/currency.ts","const/size.const.ts","components/shared/styles/StorePopupModal.module.css","utils/number.ts","types/investorTypes.ts","utils/value.ts","redux/actions/investor/fetchInvestors.ts","redux/actions/shared/fetchProfit.ts","redux/actions/master/fetchMasters.ts","redux/actions/settings/mtServers.ts","redux/reducers/configReducer.ts","redux/reducers/authReducer.ts","redux/reducers/investor/investorsReducer.ts","redux/reducers/investor/investorReducer.ts","redux/reducers/master/masterReducer.ts","redux/reducers/shared/ordersReducer.ts","redux/reducers/shared/balanceOperationsReducer.ts","redux/reducers/master/mastersReducer.ts","redux/reducers/shared/profitReducer.ts","redux/reducers/master/volumeReducer.ts","redux/reducers/shared/generalInfoReducer.ts","redux/reducers/shared/createUserReducer.ts","redux/reducers/settings/settingsReducer.ts","redux/reducers/admin/adminsReducer.ts","redux/reducers/admin/adminReducer.ts","redux/reducers/loadingStatusReducer.ts","redux/reducers/journalReducer.ts","redux/reducers/shared/summaryReducer.ts","redux/reducers/requests/requestsReducer.ts","redux/reducers/feeAccountsReducer.ts","redux/reducers/mobileMenusStatusReducer.ts","redux/reducers/master/masterInvestorsOrders.ts","redux/reducers/maintenance/reportReducer.ts","redux/reducers/rootReducer.ts","redux/store.ts","styles/styles.ts","hooks/useWindowSize.ts","common/validationSchems/accountModificationSchemas.ts","components/administrator/investor/PasswordTooltip.tsx","redux/actions/investor/massAttachDetachInvestors.ts","redux/actions/settings/periods.ts","icons/English.svg","icons/Deutsch.svg","icons/French.svg","icons/Portugal.svg","icons/Spanish.svg","icons/Russian.svg","icons/Arabian.svg","icons/Japan.svg","icons/Korean.svg","icons/Georgia.svg","icons/Chinese.svg","redux/actions/shared/fetchOrders.ts","types/maintenanceTypes.ts","redux/actions/master/updateMaster.ts","redux/actions/investor/updateInvestor.ts","redux/actions/shared/fetchBalanceOperations.ts","redux/actions/shared/fetchServers.ts","redux/actions/shared/fetchCurrencies.ts","redux/actions/settings/master.ts","types/adminTypes.ts","redux/actions/investor/attachInvestor.ts","redux/actions/settings/admin.ts","redux/actions/settings/investor.ts","redux/actions/admin/editAdmin.ts","redux/actions/investor/detachInvestor.ts","redux/actions/shared/createUser.ts","redux/actions/master/fetchMasterInvestorsOrders.ts","utils/object.ts","redux/actions/requests/fetchRequests.ts","redux/actions/master/fetchMasterPaymentPeriods.ts","redux/actions/master/fetchVolume.ts","redux/actions/settings/callbackAddresses.ts","redux/actions/settings/server.ts","components/administrator/investorsReport/fetchInvestorsReport.ts","redux/actions/investor/investorDetail.ts","redux/actions/admin/fetchAdmins.ts","redux/actions/admin/fetchAdminDetails.ts","redux/actions/fetchLogs.ts","redux/actions/feeAccounts/fetchFeeAccounts.tsx","components/administrator/monitoring/fetchMonitoring.ts","redux/actions/maintenance/fetchAccountsParameters.ts","redux/actions/maintenance/fetchEditBalanceOperation.ts","redux/actions/maintenance/fetchInvestorsCheck.ts","redux/actions/maintenance/fetchLoadOrdersByTickets.ts","redux/actions/maintenance/fetchOrdersCompare.ts","redux/actions/maintenance/fetchOrdersRedistribute.ts","redux/actions/maintenance/fetchOrdersReload.ts","redux/actions/maintenance/fetchOrdersReopen.ts","redux/actions/maintenance/fetchPerformanceFeeCharge.ts","redux/actions/maintenance/fetchPositionCheckFix.ts","redux/actions/maintenance/fetchSendReport.ts","logos/logo-dark.png","components/administrator/investor/modals/InvestorEditModal.tsx","components/administrator/master/modals/MasterEditModal.tsx","logo-light.png","icons/tfb-store-title.svg","icons/tfb-store-close.svg","components/generalUser/GenUserNavbar.tsx","const/logo.const.ts","components/privateRoute/index.tsx","components/mobile/SoMobile.tsx","components/routes/Routes.tsx","components/mobile/BottomBarMobile.tsx","components/mobile/OperationsMenuMobile.tsx","components/mobile/LinkedAccountsMenuMobile.tsx","components/mobile/LanguagesMenuMobile.tsx","components/mobile/ConfirmConnectToMasterMenuMobile.tsx","utils/operationsMenuMobile.ts","components/mobile/ConfirmDisconnectFromMasterMenuMobile.tsx","utils/linkedAccountsMenuMobile.tsx","components/shared/StorePopupModal.tsx","app.tsx","index.tsx"],"names":["history","createBrowserHistory","bottomRightToastPosition","position","toast","POSITION","BOTTOM_RIGHT","throwErrorMessage","e","error","id","message","Errors","throwSuccessMessage","values","success","checkResponseForErrors","response","api","isText","status","text","then","Error","JSON","parse","Code","Message","accountType","LocalStorageUtils","getValueFromLocalStorage","putValueToLocalStorage","stringify","page","window","location","pathname","store","dispatch","logoutUserAsync","catch","json","newCheckResponseForErrors","data","throwErrorMessageNew","Method","getRequestType","request","translationKey","Type","RequestType","ChangeBalance","Amount","ChangeCredit","ChangeFeeAccountsInfo","Attach","Detach","charAt","toLowerCase","slice","getRequestStatus","Status","RequestStatus","Approved","Canceled","Completed","Executing","New","Planned","Rejected","getBootstrapTextColor","type","headersBuilder","method","body","undefined","headers","getJwt","SET_LOADING_STATUS","CHECK_MT_SERVERS_UPDATE","SET_LOADING_STATUS_DOWNLOAD","SET_LOADING_STATUS_OPEN_ORDERS","SET_LOADING_STATUS_CLOSED_ORDERS","SET_LOADING_STATUS_BALANCE_OPERATIONS","SET_LOADING_STATUS_CONNECTED_INVESTORS","setLoadingStatus","setLoadingStatusDownload","checkMtServersUpdate","setLoadingStatusOpenOrders","setLoadingStatusClosedOrders","setLoadingStatusBalanceOperations","setLoadingStatusConnectedInvestors","putValuesToLocalStorage","key","localStorage","setItem","join","getValuesFromLocalStorage","searchResult","getItem","split","setValuesOnEvent","eventKey","onEvent","onstorage","event","value","removeValueFromLocalStorage","removeItem","localStorageKeyExists","VisibilityToggle","VisibilityToggleAdmin","VisibilityExtendedToggle","VisibilityExtendedToggleAdmin","StateToggle","StateToggleAdmin","StateRequestToggle","StateRequestToggleAdmin","BooleanToggle","AccountType","UserType","OrderType","ServerType","BalanceOperationType","Language","SummaryType","PaginationInfo","TotalRecords","TotalPages","CurrentPage","RecordsOnPage","GraphicsPeriodTypes","GraphicsPeriodTypesExt","AnnualManagementFeeMode","PerLotDealFeeMode","IncentiveAccount","Login","ServerName","IncentiveFee","ConnectionFee","ManagementFee","AnnualManagementFee","PerLotFee","PerDealFee","Mode","ByCurrentBalance","OrderMode","BalanceOperationTypesMasters","BalanceOperationTypesInvestors","FeeAccountSet","PerLotDealFee","PerDeal","Valid","SET_OPS_MENU_STATUS","SET_LINKED_ACCOUNTS_MENU_STATUS","SET_LANGUAGES_MENU_STATUS","SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS","SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS","setOpsMenuStatus","setLinkedAccountsMenuStatus","setLanguagesMenuStatus","setConnectToMasterConfirmationStatus","setDisconnectFromMasterConfirmationStatus","RequestPeriod","ChangeBalanceMethod","RequestSchedule","tokenName","url","handleSuccess","handleError","Promise","reject","create","cancel","axios","CancelToken","source","token","headerAuth","Authorization","service","cancelToken","interceptors","use","get","path","params","post","put","delete","this","cookies","postLogin","RestAPI","Cookies","removeJwt","remove","LOGIN","LOGOUT","LOGIN_START","LOGIN_SUCCESS","LOGIN_RESET_STATE","loginUserAC","user","loginUserAsync","username","password","rememberMe","MtServerId","attemptCount","loginRequest","mode","fetch","POST","Username","Password","set","Token","maxAge","ExpiresIn","Date","now","toString","rememberURL","reload","currentURL","push","includes","loginUserSSOAsync","errorAuth","Icons","DownloadIcon","color","size","icon","faDownload","LanguageIcon","faLanguage","FilterIcon","faFilter","DollarSignIcon","faDollarSign","PlusIcon","faPlus","FileAltIcon","faFileAlt","PencilIcon","faPencilAlt","UnlinkIcon","faUnlink","TrashIcon","faTrash","CogIcon","faCog","CogsIcon","faCogs","HistoryIcon","faHistory","RoundIcon","faCircle","SwitchIcon","enabled","faToggleOn","faToggleOff","OnIcon","OffIcon","PowerOnIcon","faPowerOff","TimesCircleIcon","faTimesCircle","RedoIcon","className","faRedo","SaveIcon","faSave","AlertIcon","faExclamationTriangle","LoadingCat","faCat","spin","LoadingSpinner","faCircleNotch","AngleDoubleDownIcon","faAngleDoubleDown","ArrowsAltH","faArrowsAltH","AngleDownIcon","faAngleDown","AngleDoubleUpIcon","faAngleDoubleUp","AngleUpIcon","faAngleUp","AngleLeftIcon","faAngleLeft","AngleRightIcon","faAngleRight","ArrowDown","faLongArrowAltDown","ArrowAltCircleLeft","faArrowAltCircleLeft","ArrowUp","faLongArrowAltUp","LinkIcon","faLink","TableIcon","faTable","CheckSquareIcon","faCheckSquare","SquareIcon","faSquare","EyeIcon","faEye","SearchIcon","faSearch","DropdownIcon","faSortDown","ArrowRight","faLongArrowAltRight","SignInIcon","faSignInAlt","UserIcon","faUser","UsersIcon","faUsers","EllipsisIcon","faEllipsisV","ChartAreaIcon","faChartArea","ExchangeIcon","faExchangeAlt","SlidersIcon","faSlidersH","SuitcaseIcon","faSuitcase","ClockIcon","faClock","BarsIcon","faBars","BellIcon","faBell","SignOutIcon","faSignOutAlt","CircleIcon","ArrowLeftIcon","faArrowLeft","ArrowRightIcon","faArrowRight","CalendarIcon","faCalendarAlt","module","exports","setTransitioningClass","DatePattern","Direction","FETCH_INVESTOR_DETAILS","FETCH_INVESTOR_DETAILS_FALSE","FETCH_INVESTOR_DETAILS_ATTACH_DETACH","fetchInvestorDetailsFalse","investor","investorDetails","fetchInvestorDetails","fetchInvestorDetailsFalseAsync","investorId","GET","fetchInvestorDetailsAsync","Number","finally","admin","fetchInvestorDetailsAttachDetachAsync","fetchInvestorDetailsAttachDetach","PeriodTypes","CommissionType","AllocationMode","WithdrawalMethod","OperationType","RequestAutoExecutionMode","CreditAutoExecutionMode","AttachAutoExecutionMode","ICallbackAddresses","Address","CallbackTypes","RegularPeriodSettings","PeriodType","Daily","PeriodDay","PeriodTime","ReversedDays","PaymentPeriodSettings","Performance","ReportPeriodSettings","IncludeAllOpenOrders","EditCallbackAddressesType","AdminSettings","EmailNotifications","Default","OrdersCommissions","MasterSettings","CalcMasterFeeButton","MmConnectedInvestors","LockedWithdrawalsAndDisconnections","InvestorSettings","InvestorStatementButton","MasterListButton","MasterList","CalcInvestorFeeButton","ChangeSlTpButton","InvestorOpenOrdersTab","InvestorHistoryTab","MasterOpenOrdersTab","MasterHistoryTab","InvestorWithdrawButton","InvestorMmDetails","InvestorMmBalanceDetails","DetachAction","DepositNotification","WithdrawalNotification","ConnectNotification","DisconnectNotification","PerformanceFeeNotification","MetaTraderServerSettings","Guid","Name","TypeStr","FreeMarginCoef","StatusStr","Id","SimpleInput","state","valueKey","schema","placeholder","setState","labelTranslateKey","disabled","style","inputStyle","inline","acceptZero","validField","setValidField","intl","useIntl","errorMessageBody","React","modified","setModified","isInvalid","wrapper","target","newState","InputUtils","validateSchema","errors","map","index","Control","Feedback","desktopBody","Label","formatMessage","autoComplete","onChange","mobileBody","xs","fontSize","fontWeight","borderRight","borderLeft","borderTop","borderRadius","Group","MasterMode","AllocationModes","FundsType","RegularPeriod","Monthly","PaymentPeriod","AccountOptionsMaster","ShowMmOwnFunds","MmChangeFeeAccountsRequest","ConnectDisconnectRequestsManaging","OwnFunds","Balance","Credit","Equity","EquityNoCredit","Profit","FreeMargin","FreeMarginNoCredit","AvailableFreeMargin","AvailableFreeMarginNoCredit","Master","MtServerType","Email","Currency","RegistrationDate","Private","Invisible","InvestorsCount","MinInvestment","IncentiveAccounts","Margin","MarginLevel","Normal","DisablingTime","TotalProfit","Info","Bio","TermsAndConditions","PaymentPeriods","StatementPeriods","UseDefaultStatementSettings","AccountOptions","MtServerStatus","MtServerStatusStr","So","SoMode","Off","MtMmAccountStatus","CreateMaster","LoadHistoryMonthCount","Server","UseDefaultPaymentSettings","ByBalance","IDefaultSorting","RegisterMaster","Comment","FETCH_CONFIG","FETCH_LANG_JSON","FETCH_CONFIG_SHARED","fetchSharedSettingsAsync","config","fetchLanguageJSONAsync","lang","langFile","gtag","lang_JSON","fetchConfigAsync","flags","hideRegisterButton","showMmRegistrator","enableGoogleAnalytics","customColors","customColorsGeneralUser","FETCH_MASTER_DETAILS","FETCH_MASTER_DETAILS_DEFAULT","RESET_MASTER_DETAILS","fetchMasterDetails","master","masterDetails","fetchMasterDetailsDefault","masterDetailsDefault","resetMasterDetailsAC","fetchMasterDetailsAsync","masterId","notAdmin","PAMMDateTime","dateTimeString","date","time","year","month","day","hours","minutes","substring","getDateEN","getTimeEN","getDateRU","getTimeRU","timeZone","Math","abs","dateObj","setUTCFullYear","setUTCMonth","setUTCDate","timeConverter","timestamp","fromJournal","a","getFullYear","getMonth","getDate","hour","getHours","min","getMinutes","sec","getSeconds","getDateFortnightAgo","setUTCHours","getSpecificDate","daysAgo","hoursAgo","getUTCHours","getUTCDate","isDateValid","Object","prototype","call","isWeekDay","getDay","isLeapYear","getFromDateForRequest","startDate","fromMonth","fromDay","getToDateForRequest","endDate","toMonth","toDay","getOneDayAhead","returnDateArray","leapYear","amountToIncrement","dayOfWeek","dateObject","getUnixDawnOfTime","getHourAgo","hourAgo","validateSync","FETCH_REQUESTS_COUNT","fetchRequestsCountAsync","count","fetchRequestsCount","FETCH_DEPOSITS","FETCH_INVESTMENTS","FETCH_PROFIT","FETCH_PROFIT_PER_PERIOD","FETCH_VOLUMES","FETCH_INVESTORS_SUMMARY","fetchSummaryAsync","period","summaryType","dateFrom","dateTo","calcMethod","base","query","dateTimeDateFrom","dateTimeDateTo","summary","fetchSummary","Deposits","Investments","Volumes","Investors","getSummaryActionType","getCurrencySymbol","currency","currenciesConfig","result","keys","mobileWidth","phoneToTabletBreakPoint","spaceSeparatedThousands","noDecimals","masterDetailsBox","toFixed","abbreviatedNumber","isNaN","x","x1","x2","length","rgx","test","replace","getEquityOverInvestments","InvestorMode","AccountOptionsInvestor","InvestorCreditButton","AnnualManagementFeeNotification","UpdateBalanceType","UpdateCreditType","IncentiveSummary","Investor","LinkToken","Country","Phone","Sl","Tp","SlPercent","TpPercent","SoPercent","EquityCallLevel","SlMode","TpMode","EquityCallLevelMode","MasterId","IsOwnFunds","LastChargeBalance","LastChargeTime","AttachTime","CreationTime","HighWaterMark","CurrentProfit","IncentiveAccountsServer","IsTestInvestor","MmName","DisconnectEquity","MmMtServerType","MmMtServer","MmMtLogin","CreateInvestor","UseDefaultMtServer","UpdateInvestor","LimitOrderTypes","CreateInvestorFeeSetFlags","connectionFeeEnabled","performanceFeeEnabled","managementFeeEnabled","annualManagementFeeEnabled","perLotDealFeeEnabled","RegisterInvestor","getEquityOverInvestmentsCredit","FETCH_INVESTORS","RESET_DATA_INVESTORS","UPDATE_INVESTORS","SELECTED_LINKED_ACCOUNT","selectedLinkedAccountAC","isSelected","resetDataInvestorsAC","updateInvestorsAC","investors","buildQueryString","queryString","limit","filter","sortField","direction","mmId","linkToken","initializeLocalStorage","fetchInvestorsData","Data","paginationInfo","fetchInvestorsListAdminAsync","showInactive","showTest","fetchInvestorsAsync","FETCH_ARRAY_OF_PROFITS","FETCH_PROFIT_OVERALL","fetchProfitAsync","isArray","isAuth","modeProfit","profitFortnight","fetchProfitOverall","fetchProfit","fetchArrayOfProfits","FETCH_MASTERS","FETCH_MASTERS_DEFAULT","getInfoMastersThunkAC","getState","configReducer","userLS","userInfoAtLSJson","generateAccountOptions","generateFetchRoute","Admin","userData","updateUser","AccountInfo","String","fetchMastersAsync","hideNegativeProfitMasters","returnAccountOptionsValues","mastersDefault","masters","fetchMasters","FETCH_CONNECTED_MT_SERVERS","FETCH_MT_SERVERS_DISABLED","FETCH_MT_SERVERS_ENABLED","FETCH_MT_SERVERS_SHARED","fetchMtServersSettings","settings","editServerSettingsAsync","fetchSharedMtServersSettingsAsync","fetchMtServersSettingsAsync","addresses","fetchMtServersSettingsEnabled","initialState","copyright","customColor","languages","loginPageDisclaimer","redirectRegistrationURL","welcomeMessage","defaultLanguage","defaultSorting","sharedConfig","iframePage","tfbStorePopupModal","enableAuthorizationViaMt","mtServersIdsForAuthorization","action","isAuthenticated","isLoading","authReducer","investorsReport","investorsReducer","FETCH_INVESTORS_REPORT","investorFalse","investorAttachDetachRequests","investorReducer","RESET_DETAIL_INVESTOR","masterDefault","paymentPeriods","masterReducer","FETCH_MASTER_PAYMENT_PERIODS","openOrders","orders","closedOrders","ordersReducer","FETCH_OPEN_ORDERS","FETCH_CLOSED_ORDERS","balanceOperations","operations","totalAccruedToBalance","totalAccruedToCredit","balanceOperationsReducer","FETCH_BALANCE_OPERATIONS","BalanceOperations","TotalAccruedToBalance","TotalAccruedToCredit","mastersReducer","profit","profitPerPeriod","profitOverall","arrayOfProfits","profitReducer","arrayOfProfitsCopy","volumePerPeriod","volumeReducer","FETCH_VOLUME","volumeFortnight","servers","currencies","generalInfoReducer","FETCH_SERVERS","FETCH_CURRENCIES","createdUser","createUserReducer","CREATE_USER","adminSettings","masterSettings","investorSettings","mtServersSettings","mtServersSettingsDisabled","mtServersSettingsEnabled","mtServersSettingsShared","callbackAddresses","statementPeriodsSettings","reportPeriodsSettings","paymentPeriodsSettings","serverSettings","FETCH_ADMIN_SETTINGS","FETCH_MASTER_SETTINGS","FETCH_INVESTOR_SETTINGS","FETCH_CALLBACK_ADDRESSES","FETCH_STATEMENT_PERIODS_SETTINGS","FETCH_REPORT_PERIODS_SETTINGS","FETCH_PAYMENT_PERIODS_SETTINGS","FETCH_SERVER_SETTINGS","admins","adminsReducer","FETCH_ADMINS","adminReducer","FETCH_ADMIN_DETAILS","adminDetails","EDIT_ADMIN","editedAdmin","isLoadingDownload","checkMtServers","isLoadingOpenOrders","isLoadingClosedOrders","isLoadingBalanceOperations","isLoadingConnectedInvestors","loadingStatusReducer","logs","JournalReducer","FETCH_LOGS","deposits","investments","volumes","summaryReducer","requests","requestsReducer","FETCH_REQUESTS","feeAccounts","feeAccountsReducer","FETCH_FEE_ACCOUNTS","showOpsMenu","showlinkedAccountsMenu","showLanguagesMenu","showConnectToMasterConfirmation","showDisconnectFromMasterConfirmation","mobileMenusStatusReducer","masterInvestorsOrdersReducer","FETCH_MASTER_INVESTORS_ORDERS","sendReport","loadOrders","ordersReload","orderReopen","ordersCompare","balanceOperation","ordersRedistribute","parametersAccounts","parametersInvestors","positionCheckFix","performanceFeeCharge","parameters","massAttach","massDetach","massDeactivation","reportReducer","FETCH_SEND_REPORT","FETCH_LOAD_ORDERS","FETCH_ORDERS_RELOAD","FETCH_ORDERS_REOPEN","FETCH_ORDERS_COMPARE","FETCH_EDIT_BALANCE_OPERATION","FETCH_ORDERS_REDISTRIBUTE","FETCH_ACCOUNT_PARAMETERS","FETCH_INVESTORS_CHECK_PARAMETERS","FETCH_POSITION_CHECK_FIX","FETCH_PERFORMANCE_FEE_CHARGE","FETCH_MONITORING_ACTION","FETCH_MASS_ATTACH","FETCH_MASS_DETACH","FETCH_MASS_DEACTIVATION","rootReducer","combineReducers","settingsReducer","journalReducer","createStore","applyMiddleware","thunkMiddleware","mobileBodyWithNavbar","paddingTop","marginBottom","mobileBodyWithEllipsis","shadowBox","boxShadow","backgroundColor","margin","padding","pageButton","height","width","border","marginLeft","directionSwitchStyle","marginTop","paddingLeft","paddingRight","sortBySelectStyle","MozAppearance","WebkitAppearance","useWindowResize","useState","setSize","useLayoutEffect","updateSize","innerWidth","innerHeight","addEventListener","removeEventListener","AccountModificationSchemas","_intl","Yup","required","VALIDATOR_REQUIRED_KEY","PASSWORD_MIN_LENGTH","max","PASSWORD_MAX_LENGTH","matches","PASSWORD_INVALID_SYMBOLS_REGEXP","PASSWORD_ONE_UPPERCASE_REGEXP","PASSWORD_ONE_LOWERCASE_REGEXP","PASSWORD_ONE_NUMBER_REGEXP","PASSWORD_ONE_SPECIAL_CHARACTER_REGEXP","valueIsEmpty","nullable","NAME_REGEXP","TEXT_FIELD_MAX_LENGTH","USERNAME_REGEXP","EMAIL_REGEXP","COUNTRY_REGEXP","transform","v","o","PHONE_REGEXP","LINK_TOKEN_REGEXP","LOGIN_REGEXP","HIGH_WATER_MARK_REGEXP","MIN_INVESTMENTS_MAX_LENGTH","INVESTMENTS_REGEXP","moreThan","typeError","integer","MT_USERNAME_REGEXP","PasswordTooltip","userType","top","useSelector","active","userTypeBoolean","styles","masterRegistration","adminRegistration","frame","passwordRequirements","requirementsList","req","requirementItem","ellipse","background","requirementText","specialCharacterRequirement","requirementSpecialCharacter","massDetachInvestors","fetchMassDetach","deactivateMassInvestors","fetchMassDeactivation","massAttachInvestors","fetchMassAttach","getActionConst","actionName","fetchPeriodsSettings","periodsType","editPeriodsSettingsAsync","fetchPeriodsSettingsAsync","fetchOrdersAsync","mtServerGuid","delimiter","Open","Closed","fetchClosedOrders","checkComponentsValues","ReallocationParametersValues","ParametersToCheckFixInvestors","ParametersToCheckFixMMs","ParametersToCheckInvestors","InvestorsCheckType","updateMaster","updateInvestor","soModal","fetchBalanceOperationsAsync","typeFilters","filtersStateObject","filters","entries","forEach","entry","getTypeFilters","fetchServersAsync","fetchServers","fetchCurrenciesAsync","fetchCurrencies","fetchMasterSettings","editMasterSettingsAsync","editMasterSettingsIdAsync","fetchMasterSettingsAsync","IAdminMode","AccountOptionsAdmin","Hide","ViewOnly","ModeCode","CreateAdmin","createRequestToAttachInvestor","isMobile","MmId","parseInt","AccountId","attachInvestor","fetchAdminSettings","editAdminSettingsAsync","fetchAdminSettingsAsync","fetchInvestorSettings","editInvestorSettingsAsync","editInvestorSettingsIdAsync","fetchInvestorSettingsAsync","editAdminAsync","editAdmin","createRequestToDetachInvestor","detachInvestor","createUserAsync","endpoint","createUser","toUpperCase","fetchMasterInvestorsOrdersAsync","orderId","areAllPropsEQFalse","object","every","property","convertAllPropsToTrue","objectCopy","fetchRequestsAsync","createdFrom","createdTo","statusFilters","idSearch","mmChangeFeeAccountsRequestOff","verifiedTypeFilters","verifiedStatusFilters","round","getTime","fetchMasterPaymentPeriodsAsync","fetchMasterPaymentPeriods","fetchVolumeAsync","fetchCallbackAddresses","fetchCallbackAddressesAsync","editFetchCallbackAddressesAsync","fetchServerSettings","fetchServerSettingsAsync","fetchInvestorsReportAsync","sortDirection","filtered","resetDetailInvestorAC","fetchAdminsAsync","fetchAdmins","fetchAdminDetailsAsync","adminId","fetchAdminDetails","fetchLogsAsync","search","startDateTimestamp","endDateTimestamp","fetchFeeAccountsAsync","fetchMonitoringAsync","fetchMonitoringAction","fetchAccountsParametersAsync","parameter","account","fetchAccountsParameters","fetchEditBalanceOperationAsync","operationId","fetchEditBalanceOperation","fetchInvestorsParametersAsync","checkType","route","Parameters","Positions","fetchInvestorsParameters","fetchLoadOrdersByTicketsAsync","fetchLoadOrders","fetchOrdersCompareAsync","fetchOrdersCompare","fetchOrdersRedistributeAsync","fetchOrdersReloadAsync","fetchOrdersReload","fetchOrderReopenAsync","fetchOrderReopen","fetchPerformanceFeeChargeAsync","fetchPerformanceFeeCharge","fetchPositionCheckFixAsync","fetchIPositionCheckFix","fetchSendReportAsync","fetchSendReport","InvestorEditModal","show","toggleVisibility","useDispatch","userJSON","setUser","useEffect","validation","passwordNotRequired","name","email","phone","country","highWaterMark","originalInvestor","editInvestorForm","setEditInvestorForm","investorForTests","setInvestorForTests","showTooltip","setShowTooltip","handleCancel","isUpdateDisabled","shape","btnStyle","borderColor","handleMouseEnter","handleMouseLeave","onHide","centered","scrollable","Header","closeButton","Title","Body","onMouseEnter","onMouseLeave","onBlur","onFocus","Check","label","checked","Footer","variant","onClick","handleSubmit","MasterEditModal","minInvestments","originalMaster","editMasterForm","setEditMasterForm","masterForTests","setMasterForTests","privateMaster","setPrivateMaster","invisibleMaster","setInvisibleMaster","controlId","as","handleInputChange","Test","Disabled","withRouter","signOutFunc","currentLang","onLangChange","requestsCount","linkedAccounts","showEditInvestorModal","setShowEditInvestorModal","showEditMasterModal","setShowEditMasterModal","linkedId","light","additionalText","marginRight","btnStyleActive","dark","linkStyleActive","borderBottom","toggleModalVisibility","getLanguagesFlags","englishIcon","deutschIcon","frenchIcon","portugalIcon","spanishIcon","georgiaIcon","arabianIcon","koreanIcon","russianIcon","japanIcon","chineseIcon","languagesItems","Dropdown","Item","src","alt","Navbar","zIndex","maxWidth","to","T4BLogo","maxHeight","Button","RequestTab","minWidth","Toggle","en","Menu","APP_LOGO","logo","href","PrivateRoute","component","rest","render","SoMobile","creditShow","CountCreditInRiskControl","bg","fixed","Show","OnlyProfit","Row","Col","orderType","getSoSlTpValue","lazy","InvestorsList","InvestorDetails","MastersList","MasterDetails","AdminDetails","Admins","Settings","CreateUser","Journal","AdminDashboard","RequestsList","FeeAccountsList","OrdersList","ResetPassword","Register","MaintenancePage","Monitoring","MassAttachDetach","InvestorsReport","LoginMobile","MasterDetailsMobile","MastersListMobile","RequestsListMobile","RequestsFiltersMobile","InvestorDetailsMobile","ProfileMobile","ChangeBalanceCreditMobile","CommissionsMobile","DownloadStatementMobile","HistoryMobile","OrderMobile","BalanceOperationMobile","BioMobile","SlTpMobile","RegisterUserMobile","RegisterUserSelectMobile","ConnectedInvestorsMobile","ConnectedInvestorDetailMobile","GenUserMastersList","GenUserRequestsList","InvestorDashboard","MasterDashboard","IframePage","AppRoutes","signInFunc","showMobileVersion","setShowMobileVersion","listen","routes","redirectAfterLogin","loginPage","fillRoutes","fallback","currentAddress","shouldDashboardButtonLightUp","onlyTwoButtonsActive","buttonStyle","display","justifyContent","alignItems","activeButtonStyle","textStyle","activeTextStyle","textDecoration","outline","paddingBottom","random","menuHeight","onSwipe","onCancel","customColorsGenUser","showDisconnectFromThisMasterWarning","bottom","transition","iconStyle","onPointerMove","onPointerCancel","OperationsMenuMobileCss","link","styleRow","mb","LinkedAccountsMenuMobile","setSelectedLinkedAccountIndex","findIndex","linkedAccountsLinks","linkedAccount","LanguagesMenuMobile","langLinks","ConfirmConnectToMasterMenu","useHistory","WebkitBoxShadow","getOperationsMenuHeight","accountOptions","Disconnect","ConfirmDisconnectFromMasterMenu","getLinkedAccountsMenuMobileHeight","StorePopupModal","redirectButton","modalRef","useRef","showTfbStorePopupModal","isOpen","setIsOpen","closeModal","handleClickOutside","current","contains","document","ref","tfbStoreTitle","tfbStoreClose","open","App","useLocation","langJSON","setLang","languagesList","sidebarHidden","setSidebarHidden","tokenState","setTokenState","closedStorePopupModal","tokenExpired","isTokenExpired","setTimeout","langKey","exitButton","Nav","Link","data-testid","showModal","setShowModal","sidebarItems","translateKey","isExternal","IconItem","tooltipKey","faHandHoldingDollar","faUserTie","faPercent","faUserPlus","faNetworkWired","faFileLines","faList","faBook","faDesktop","licenceModal","Modal","genUserCopyrightBar","sidebarComponent","progressItems","currentLocation","onLicenceClick","isScrollable","showConfirmConnectToMasterMenu","showConfirmDisconnectFromMasterMenu","touches","handleSwipe","pageY","menu","shadow","showAdminNavbar","overlayscrollbarsOptions","overflowBehavior","scrollbars","autoHide","autoHideDelay","locale","messages","i18nLangs","currentLangKey","onSidebarHandlerClick","onPointerDown","options","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.6fd4d005.chunk.js","sourcesContent":["import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { createBrowserHistory } from 'history';\nimport { toast } from 'react-toastify';\nimport { AxiosResponse } from 'axios';\nimport store from '../../redux/store';\nimport { logoutUserAsync } from '../../redux/actions/auth';\nimport LocalStorageUtils from '../../utils/local-storage';\n\nconst history = createBrowserHistory();\n\nconst bottomRightToastPosition = { position: toast.POSITION.BOTTOM_RIGHT };\n\ninterface IError {\n Message: string;\n Code: string;\n Type: string;\n}\n// TODO переделать все на новое\nconst throwErrorMessageNew = (error: IError): void => {\n toast.error(, bottomRightToastPosition);\n};\n\nfunction throwErrorMessage(e: Error): void {\n toast.error(, bottomRightToastPosition);\n}\n\nfunction throwSuccessMessage(message: string, values?: any): void {\n if (values) {\n toast.success(, bottomRightToastPosition);\n } else {\n toast.success(, bottomRightToastPosition);\n }\n}\n\nfunction checkResponseForErrors(response: Response, api: string, isText = false): Promise {\n switch (response?.status) {\n // Bad Request\n case 400: {\n // throw Error(`${response.status}: ${response.text()}`);\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n // Unauthorized\n case 401: {\n const accountType = LocalStorageUtils.getValueFromLocalStorage('accountType')\n LocalStorageUtils.putValueToLocalStorage('rememberPage', JSON.stringify({page: window.location.pathname, accountType: accountType || ''}));\n store.dispatch(logoutUserAsync(api, history, true));\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n // Forbidden\n case 403: {\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n // Not Found\n case 404: {\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n // Internal Server Error\n case 500: {\n return response.text().then((text) => {\n throw new Error(`${JSON.parse(text).Code}: ${JSON.parse(text).Message}`);\n });\n }\n default: {\n if (isText) {\n return response.text().catch(() => throwErrorMessage(Error('errors.text')));\n }\n return response.json().catch(() => throwErrorMessage(Error('errors.json')));\n }\n }\n}\n\n// TODO новая валидация для axios\nfunction newCheckResponseForErrors(response: AxiosResponse | undefined, api: string): void {\n switch (response?.status) {\n // Unauthorized\n case 401:\n store.dispatch(logoutUserAsync(api, history));\n break;\n\n default: {\n throw new Error(`${JSON.parse(response?.data?.Code)}: ${response?.data?.Message}`);\n }\n }\n}\n\nconst Errors = {\n throwErrorMessage,\n throwSuccessMessage,\n checkResponseForErrors,\n newCheckResponseForErrors,\n throwErrorMessageNew\n};\n\nexport default Errors;\n","import { getJwt } from '../redux/actions/auth';\nimport { RequestStatus, RequestType } from '../types/requestTypes';\n\nexport enum Method {\n GET = 'GET',\n POST = 'POST'\n}\n\nconst headersBuilder = (method: Method, body?: unknown): RequestInit => {\n return {\n method,\n body: body ? JSON.stringify(body) : undefined,\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${getJwt()}`\n }\n };\n};\n\nexport const getRequestType = (request: any, translationKey?: boolean): string => {\n switch (request.Type) {\n case RequestType.ChangeBalance:\n if (request.Amount < 0) {\n return translationKey ? 'requests.type.Withdrawal' : 'Withdrawal';\n }\n \n return translationKey ? 'requests.type.Deposit' : 'Deposit';\n case RequestType.ChangeCredit:\n if (request.Amount < 0) {\n return translationKey ? 'requests.type.CreditOut' : 'CreditOut';\n }\n\n return translationKey ? 'requests.type.CreditIn' : 'CreditIn';\n case RequestType.ChangeFeeAccountsInfo:\n return translationKey ? 'requests.type.EditFeeAccountsInfo' : 'Edit Fee Accounts Info';\n case RequestType.Attach:\n return translationKey ? 'requests.type.Connect' : 'Connect';\n case RequestType.Detach:\n return translationKey ? 'requests.type.Disconnect' : 'Disconnect';\n default:\n return translationKey ? `requests.filters.byType.${request.Type.charAt(0).toLowerCase() + request.Type.slice(1)}` : request.Type;\n }\n};\n\nexport const getRequestStatus = (request: any, translationKey?: boolean): string => {\n switch (request.Status) {\n case RequestStatus.Approved:\n return translationKey ? 'requests.status.approved' : 'Approved';\n case RequestStatus.Canceled:\n return translationKey ? 'requests.status.canceled' : 'Canceled';\n case RequestStatus.Completed:\n return translationKey ? 'requests.status.completed' : 'Completed';\n case RequestStatus.Error:\n return translationKey ? 'requests.status.error' : 'Error';\n case RequestStatus.Executing:\n return translationKey ? 'requests.status.executing' : 'Executing';\n case RequestStatus.New:\n return translationKey ? 'requests.status.new' : 'New';\n case RequestStatus.Planned:\n return translationKey ? 'requests.status.planned' : 'Planned';\n case RequestStatus.Rejected:\n return translationKey ? 'requests.status.rejected' : 'Rejected';\n default:\n return translationKey ? '' : '';\n }\n};\n\nexport const getBootstrapTextColor = (type: string): string => {\n switch (type) {\n case RequestStatus.Executing:\n case RequestStatus.Planned: {\n return 'text-warning'\n }\n case RequestStatus.Approved:\n case RequestStatus.Completed: {\n return 'text-success'\n }\n case RequestStatus.Rejected:\n case RequestStatus.Error:\n case RequestStatus.Canceled: {\n return 'text-danger'\n }\n default: {\n return 'text-dark';\n }\n }\n}\n\nexport default headersBuilder;\n","export const SET_LOADING_STATUS = 'SET_LOADING_STATUS ';\nexport const CHECK_MT_SERVERS_UPDATE = 'CHECK_MT_SERVERS_UPDATE';\nexport const SET_LOADING_STATUS_DOWNLOAD = 'SET_LOADING_STATUS_DOWNLOAD';\nexport const SET_LOADING_STATUS_OPEN_ORDERS = 'SET_LOADING_STATUS_OPEN_ORDERS';\nexport const SET_LOADING_STATUS_CLOSED_ORDERS = 'SET_LOADING_STATUS_CLOSED_ORDERS';\nexport const SET_LOADING_STATUS_BALANCE_OPERATIONS = 'SET_LOADING_STATUS_BALANCE_OPERATIONS';\nexport const SET_LOADING_STATUS_CONNECTED_INVESTORS = 'SET_LOADING_STATUS_CONNECTED_INVESTORS';\n\nexport type SetLoadingStatusAction = {\n type: string;\n status: boolean;\n}\n\nexport const setLoadingStatus = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS,\n status\n }\n};\n\nexport const setLoadingStatusDownload = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_DOWNLOAD,\n status\n }\n};\n\nexport const checkMtServersUpdate = (status: boolean): SetLoadingStatusAction => {\n return {\n type: CHECK_MT_SERVERS_UPDATE,\n status\n }\n};\n\nexport const setLoadingStatusOpenOrders = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_OPEN_ORDERS,\n status\n }\n};\n\nexport const setLoadingStatusClosedOrders = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_CLOSED_ORDERS,\n status\n }\n};\n\nexport const setLoadingStatusBalanceOperations = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_BALANCE_OPERATIONS,\n status\n }\n};\n\nexport const setLoadingStatusConnectedInvestors = (status: boolean): SetLoadingStatusAction => {\n return {\n type: SET_LOADING_STATUS_CONNECTED_INVESTORS,\n status\n }\n};\nexport default setLoadingStatus;\n","function putValuesToLocalStorage(key: string, values: string[]): void {\n localStorage.setItem(key, values.join(' '));\n}\n\nfunction putValueToLocalStorage(key: string, value: string): void {\n localStorage.setItem(key, value);\n}\n\nfunction getValueFromLocalStorage(key: string): string | null {\n return localStorage.getItem(key);\n}\n\nfunction getValuesFromLocalStorage(key: string): string[] | null {\n const searchResult = localStorage.getItem(key);\n return searchResult ? searchResult.split(' ') : null;\n}\n\nfunction removeValueFromLocalStorage(key: string): void {\n localStorage.removeItem(key);\n}\n\nfunction localStorageKeyExists(key: string): boolean {\n return localStorage.getItem(key) !== null;\n}\n\nfunction setValuesOnEvent(eventKey: string, onEvent: () => void): void {\n window.onstorage = (event: StorageEvent) => {\n if (event.key === eventKey) {\n onEvent();\n }\n };\n\n}\n\nconst LocalStorageUtils = {\n putValuesToLocalStorage,\n getValuesFromLocalStorage,\n setValuesOnEvent,\n putValueToLocalStorage,\n removeValueFromLocalStorage,\n localStorageKeyExists,\n getValueFromLocalStorage,\n};\n\nexport default LocalStorageUtils;\n","export enum VisibilityToggle {\n Show = 'Show',\n Hide = 'Hide',\n Default = 'Default'\n}\n\nexport enum VisibilityToggleAdmin {\n Show = 'Show',\n Hide = 'Hide'\n}\n\nexport enum VisibilityExtendedToggle {\n Show = 'Show',\n Hide = 'Hide',\n OnlyProfit = 'OnlyProfit',\n Default = 'Default'\n}\n\nexport enum VisibilityExtendedToggleAdmin {\n Show = 'Show',\n Hide = 'Hide',\n OnlyProfit = 'OnlyProfit'\n}\n\nexport enum StateToggle {\n On = 'On',\n Off = 'Off',\n Default = 'Default'\n}\n\nexport enum StateToggleAdmin {\n On = 'On',\n Off = 'Off'\n}\n\nexport enum StateRequestToggle {\n On = 'On',\n Off = 'Off',\n Request = 'Request',\n Default = 'Default'\n}\n\nexport enum StateRequestToggleAdmin {\n On = 'On',\n Off = 'Off',\n Request = 'Request'\n}\n\nexport enum BooleanToggle {\n True = 'true',\n False = 'false'\n}\n","export interface User {\n ViewOnly: boolean;\n TokenType: string;\n Token: string;\n ExpiresIn: number;\n Id: number;\n AccountType: AccountType;\n LinkToken: string;\n Name: string;\n Username: string;\n AccountOptions: any;\n AccountInfo: any;\n}\n\nexport enum AccountType {\n Admin = 'admin',\n Guest = 'guest',\n Investor = 'investor',\n Master = 'master'\n}","export enum UserType {\n Investor = 'Investor',\n Master = 'Master',\n Admin = 'Admin'\n}\n\nexport enum OrderType {\n Open = 'Open',\n Closed = 'Closed'\n}\n\nexport enum ServerType {\n MT4 = 0,\n MT5 = 1\n}\n\nexport class Server {\n Guid = '';\n Name = '';\n Type = ServerType.MT4;\n TypeStr = 'MT4';\n FreeMarginCoef = 0;\n Enabled = true;\n StatusStr = '';\n}\n\nexport enum BalanceOperationType {\n Connect = 'Connect',\n Disconnect = 'Disconnect',\n Deposit = 'Deposit',\n Withdraw = 'Withdraw',\n Performance = 'Performance',\n ManagementFee = 'ManagementFee',\n Commission = 'Commission',\n BalanceCorrection = 'BalanceCorrection',\n Swap = 'Swap',\n AnnualManagementFee = 'AnnualManagementFee'\n}\n\nexport class PaginationInfo {\n TotalRecords = 0;\n TotalPages = 0;\n CurrentPage = 0;\n RecordsOnPage = 0;\n}\n\nexport class BalanceOperation {\n MtOrderId = 0;\n Id = 0;\n Date = '';\n MasterId = 0;\n InvestorId = 0;\n Type = '';\n Amount = 0;\n Currency = 'USD';\n Comment = '';\n}\n\nexport enum Language {\n EN = 'en',\n RU = 'ru'\n}\n\nexport enum SummaryType {\n Deposits = 'deposits',\n Investments = 'investments',\n Profit = 'profit',\n Volumes = 'volumes',\n Investors = 'investors'\n}\n\nexport class Summary {\n PeriodStartDate = '';\n PeriodEndDate = '';\n Value = 0;\n}\n\nexport enum GraphicsPeriodTypes {\n // Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year'\n}\n\nexport enum GraphicsPeriodTypesExt {\n Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year',\n All = 'All'\n}\n\nexport enum AnnualManagementFeeMode {\n ByCurrentBalance = 'ByCurrentBalance',\n ByLastChargeBalance = 'ByLastChargeBalance'\n}\n\nexport class IncentiveAccount {\n Login = 0;\n ServerName? = '';\n IncentiveFee: any = 0;\n ConnectionFee: any = 0;\n ManagementFee: any = 0;\n AnnualManagementFee: any = 0;\n PerLotFee: any = 0;\n PerDealFee: any = 0;\n Mode: any = AnnualManagementFeeMode.ByCurrentBalance;\n}\n\nexport enum PerLotDealFeeMode {\n PerLot = 'PerLot',\n PerDeal = 'PerDeal'\n}\n\nexport class FeeAccountSet {\n [index: string]: any;\n\n Login = '';\n IncentiveFee = 0.0;\n ConnectionFee = 0.0;\n ManagementFee = 0.0;\n AnnualManagementFee = 0.0;\n AnnualManagementFeeMode = AnnualManagementFeeMode.ByCurrentBalance;\n PerLotDealFee = 0.0;\n PerLotDealFeeMode = PerLotDealFeeMode.PerDeal;\n Valid = true;\n}\n\nexport class ChangeAccountModeRequest {\n Mode = 0;\n}\n\nexport enum OrderMode {\n Off = 'Off',\n Percent = 'Percent',\n Money = 'Money',\n FromMM = 'FromMM',\n Default = 'Default'\n}\n\nexport interface ItfbStorePopupModal {\n redirectButton: string;\n showTfbStorePopupModal: boolean;\n}\n\nexport interface ConfigFlags {\n hideRegisterButton: boolean;\n showMmRegistrator: boolean;\n // TODO PAMM-2341 \n // showRequestTab: boolean;\n RequestTab: boolean;\n showOptionLockedWithdrawalsAndDisconnections: boolean;\n showMMsGraphsFromInvestors: boolean;\n showMmEmailToInvestor: boolean;\n showMmInvestorCount: boolean;\n}\n\nexport interface SharedConfig {\n CountCreditInAllocation: boolean;\n CountCreditInWithdrawal: boolean;\n CountCreditInRiskControl: boolean;\n RequestTab: boolean;\n}\n\nexport interface IframePage {\n customBackground: string;\n redirectConnectMoneyManagerURL: string;\n setGraphicsPeriodTypes: GraphicsPeriodTypes;\n setSpecificDate: string;\n hideNegativeProfitMasters: boolean;\n limit: string;\n}\n\nexport enum BalanceOperationTypesMasters {\n Connect = 'Connect',\n Disconnect = 'Disconnect',\n Deposit = 'Deposit',\n Withdraw = 'Withdraw',\n Performance = 'Performance',\n ConnectionFee = 'ConnectionFee',\n ManagementFee = 'ManagementFee',\n AnnualManagementFee = 'AnnualManagementFee',\n Commission = 'Commission',\n DealCommission = 'DealCommission',\n DealTax = 'DealTax',\n Swap = 'Swap',\n BalanceCorrection = 'BalanceCorrection',\n Credit = 'Credit',\n ProfitCorrection = 'Profit Correction',\n CreditCorrection = 'Credit Correction',\n CreditConnect = 'Credit Connect',\n CreditDisconnect = 'Credit Disconnect'\n\n}\n\nexport enum BalanceOperationTypesInvestors {\n Deposit = 'Deposit',\n Withdraw = 'Withdraw',\n Performance = 'Performance',\n ConnectionFee = 'ConnectionFee',\n ManagementFee = 'ManagementFee',\n AnnualManagementFee = 'AnnualManagementFee',\n Commission = 'Commission',\n DealCommission = 'DealCommission',\n DealTax= 'DealTax',\n Swap = 'Swap',\n BalanceCorrection = 'BalanceCorrection',\n Credit = 'Credit',\n ProfitCorrection = 'Profit Correction',\n CreditCorrection = 'Credit Correction'\n}\n","export const SET_OPS_MENU_STATUS = 'SET_OPS_MENU_STATUS ';\nexport const SET_LINKED_ACCOUNTS_MENU_STATUS = 'SET_LINKED_ACCOUNTS_MENU_STATUS';\nexport const SET_LANGUAGES_MENU_STATUS = 'SET_LANGUAGES_MENU_STATUS';\nexport const SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS = 'SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS';\nexport const SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS = 'SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS';\n\nexport type SetMobileMenusStatus = {\n type: string;\n status: boolean;\n}\n\nexport const setOpsMenuStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_OPS_MENU_STATUS,\n status\n }\n};\n\nexport const setLinkedAccountsMenuStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_LINKED_ACCOUNTS_MENU_STATUS,\n status\n }\n};\n\nexport const setLanguagesMenuStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_LANGUAGES_MENU_STATUS,\n status\n }\n};\n\nexport const setConnectToMasterConfirmationStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS,\n status\n }\n};\n\nexport const setDisconnectFromMasterConfirmationStatus = (status: boolean): SetMobileMenusStatus => {\n return {\n type: SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS,\n status\n }\n};\n","export enum RequestType {\n CreateInvestor = 'CreateInvestor',\n CreateMm = 'CreateMm',\n Attach = 'Attach',\n Detach = 'Detach',\n ChangeFeeAccountsInfo = 'ChangeFeeAccountsInfo',\n ChangeBalance = 'ChangeBalance',\n ChangeCredit = 'ChangeCredit',\n Deposit = 'Deposit',\n Withdrawal = 'Withdrawal'\n}\n\nexport enum RequestStatus {\n Approved = 'Approved',\n New = 'New',\n Planned = 'Planned',\n Executing = 'Executing',\n Completed = 'Completed',\n Rejected = 'Rejected',\n Canceled = 'Canceled',\n Error = 'Error'\n}\n\nexport class Request {\n MmId = 0;\n MmName = '';\n MmEmail = '';\n MmLogin = 0;\n MmServer = '';\n Id = 0;\n Type = RequestType.Attach;\n Status = RequestStatus.New;\n TypeCode = 0;\n StatusCode = 0;\n Comment = 0;\n AdminComment = 0;\n SystemComment = 0;\n Info = 0;\n CreatedById = 0;\n CreatedByName = '';\n CreatedByEmail = '';\n AccountId = 0;\n AccountName = '';\n AccountEmail = '';\n CreatedAt = 0;\n ExecutedAt = 0;\n CreatedAtStr = '';\n ExecutedAtStr = '';\n}\n\nexport enum RequestPeriod {\n Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year'\n}\n\nexport enum ChangeBalanceMethod {\n FreeMargin = 'FreeMargin',\n PartialClose = 'PartialClose'\n}\n\nexport enum RequestSchedule {\n Instant = 'Instant',\n Planned = 'Planned'\n}\n","/* eslint-disable @typescript-eslint/ban-types */\nimport axios, { AxiosError, AxiosResponse, AxiosInstance } from 'axios';\nimport LocalStorageUtils from '../utils/local-storage';\n\nclass RestAPI {\n url: string;\n\n tokenName: string;\n\n constructor(tokenName = 'jwt') {\n this.url = LocalStorageUtils.getValueFromLocalStorage('apiUrl') || '';\n this.tokenName = tokenName;\n }\n\n handleSuccess = (response: AxiosResponse): AxiosResponse => response;\n\n handleError = (error: AxiosError): Promise | void => {\n // Errors.newCheckResponseForErrors(error?.response, this.url);\n return Promise.reject(error);\n };\n\n create = (headers?: any): AxiosInstance => {\n const cancel = axios.CancelToken.source();\n const token = localStorage.getItem(this.tokenName);\n const headerAuth = token && { Authorization: `Bearer ${token}` };\n const service = axios.create({\n headers: {\n ...headers,\n ...headerAuth\n },\n cancelToken: cancel.token\n });\n service.interceptors.response.use(this.handleSuccess, this.handleError);\n return service;\n };\n\n get = (path = '', params?: object, headers?: any): Promise => {\n const service = this.create(headers);\n return service.request({\n method: 'GET',\n url: `${this.url}${path}`,\n params\n });\n };\n\n post = (path = '', data: object = {}, headers?: any): Promise => {\n const service = this.create(headers);\n return service.request({\n method: 'POST',\n url: `${this.url}${path}`,\n data\n });\n };\n\n put = (path = '', data: object = {}, headers?: any): Promise => {\n const service = this.create(headers);\n return service.request({\n method: 'PUT',\n url: `${this.url}${path}`,\n data\n });\n };\n\n delete = (path = '', params: object = {}, headers?: any): Promise => {\n const service = this.create(headers);\n return service.request({\n method: 'DELETE',\n url: `${this.url}${path}`,\n params\n });\n };\n}\n\nexport default new RestAPI();\n","/* eslint-disable no-shadow */\nimport { History } from 'history';\nimport { Dispatch } from 'redux';\nimport Cookies from 'universal-cookie';\nimport headersBuilder, { Method } from '../../utils/request';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport Errors from '../../shared/validation/errors';\nimport SERVICE_API from '../../api';\n \nconst cookies = new Cookies();\n\nexport function getJwt(): string | null {\n return cookies.get('jwt')\n}\n\nexport function removeJwt() {\n cookies.remove('jwt')\n}\n\nexport const LOGIN = 'LOGIN';\nexport const LOGOUT = 'LOGOUT';\nexport const LOGIN_START = 'LOGIN_START';\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\nexport const LOGIN_RESET_STATE = 'LOGIN_RESET_STATE';\nexport const LOGIN_ERROR = 'LOGIN_ERROR';\n\nexport type AuthAction = {\n type: string;\n user?: any;\n};\nconst loginUserAC = (user: any): AuthAction => ({ type: LOGIN, user });\n\nconst logoutUserAC = (): AuthAction => ({ type: LOGOUT });\n\nconst loginStartAC = (): AuthAction => ({ type: LOGIN_START });\n\nconst loginSuccessAC = (): AuthAction => ({ type: LOGIN_SUCCESS });\n\nconst loginResetStateAC = (): AuthAction => ({ type: LOGIN_RESET_STATE });\n\nconst loginUserAsync = (\n api: string,\n username: string,\n password: string,\n rememberMe: boolean,\n history: History,\n MtServerId?: number | null,\n Mode?: number | string,\n) => {\n return (dispatch: Dispatch): Promise => {\n const maxAttempts = 1;\n let attemptCount = 0;\n\n const loginRequest = (mode?: number | string): any => {\n\n return fetch(\n `${api}/auth/login`,\n headersBuilder(Method.POST, {\n Username: username,\n Password: password,\n rememberMe,\n MtServerId,\n Mode: mode\n }),\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((user: any) => {\n cookies.set('jwt', user.Token, { path: '/', maxAge: user.ExpiresIn * 1000 });\n LocalStorageUtils.putValueToLocalStorage(\n 'exp',\n (Date.now() + user.ExpiresIn * 1000).toString()\n );\n\n delete user.Token;\n LocalStorageUtils.putValueToLocalStorage('accountType', user.AccountType);\n LocalStorageUtils.putValueToLocalStorage('user', JSON.stringify(user));\n const rememberURL = LocalStorageUtils.getValueFromLocalStorage('rememberPage');\n dispatch(loginUserAC(user));\n LocalStorageUtils.putValueToLocalStorage('isAuthenticated', 'true');\n window.location.reload();\n return rememberURL;\n })\n .then((rememberURL) => {\n const currentURL = window.location.pathname;\n const accountType = LocalStorageUtils.getValueFromLocalStorage('accountType');\n\n if (rememberURL && accountType === JSON.parse(rememberURL).accountType && currentURL === '/login') {\n history.push(JSON.parse(rememberURL).page);\n } else if (currentURL !== '/login') {\n history.push(currentURL);\n } else {\n history.push('/dashboard');\n }\n })\n .catch((error: Error) => {\n if (error.message.includes('Authorization failed') && attemptCount < maxAttempts && !MtServerId) {\n attemptCount++;\n return loginRequest(undefined);\n }\n return Errors.throwErrorMessage(error);\n });\n };\n\n return loginRequest(Mode);\n };\n};\n\nconst loginUserSSOAsync = (\n api: string,\n token: string,\n history: History\n) => {\n return (dispatch: Dispatch): void => {\n fetch(\n `${api}/auth/sso/loginByToken`,\n headersBuilder(Method.POST, {\n Token: token\n })\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((user: any) => {\n cookies.set('jwt', user.Token, { path: '/', maxAge: user.ExpiresIn * 1000 })\n LocalStorageUtils.putValueToLocalStorage(\n 'exp',\n (Date.now() + user.ExpiresIn * 1000).toString()\n );\n delete user.Token;\n LocalStorageUtils.putValueToLocalStorage('accountType', user.AccountType);\n LocalStorageUtils.putValueToLocalStorage('user', JSON.stringify(user));\n const rememberURL = LocalStorageUtils.getValueFromLocalStorage('rememberPage')\n dispatch(loginUserAC(user));\n LocalStorageUtils.putValueToLocalStorage('isAuthenticated', 'true');\n return rememberURL\n })\n .then((rememberURL) => {\n const currentURL = window.location.pathname\n const accountType = LocalStorageUtils.getValueFromLocalStorage('accountType')\n if(rememberURL && accountType === JSON.parse(rememberURL).accountType && currentURL === '/login') {\n history.push(`${JSON.parse(rememberURL).page}`)\n\n } \n else if(currentURL !== '/login') {\n history.push(currentURL);\n }\n else {\n history.push('/dashboard');\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n };\n};\n\nconst loginUserThunkAC =\n (payload: { Username: string; Password: string }) =>\n async (dispatch: Dispatch): Promise => {\n try {\n await dispatch(loginStartAC());\n const res = await SERVICE_API.AuthAPI.postLogin(payload);\n await LocalStorageUtils.putValueToLocalStorage('jwt', res?.data.Token);\n await LocalStorageUtils.putValueToLocalStorage(\n 'exp',\n (Date.now() + res?.data.ExpiresIn * 1000).toString()\n );\n await LocalStorageUtils.putValueToLocalStorage('accountType', res?.data.AccountType);\n await LocalStorageUtils.putValueToLocalStorage('user', JSON.stringify(res?.data));\n await dispatch(loginUserAC(res?.data));\n await window.location.replace('/dashboard');\n await dispatch(loginSuccessAC());\n } catch ({ response }) {\n dispatch(loginResetStateAC());\n Errors.throwErrorMessageNew(response?.data);\n }\n };\n\nconst logoutUserAsync = (api: string, history: History, errorAuth?: boolean) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/auth/logout`, headersBuilder(Method.POST))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .then(() => {\n dispatch(logoutUserAC());\n LocalStorageUtils.removeValueFromLocalStorage('closedStorePopupModal');\n LocalStorageUtils.removeValueFromLocalStorage('accountType');\n LocalStorageUtils.removeValueFromLocalStorage('user');\n LocalStorageUtils.removeValueFromLocalStorage('investorToAttach');\n LocalStorageUtils.removeValueFromLocalStorage('linkedIdMobile');\n LocalStorageUtils.removeValueFromLocalStorage('masters');\n LocalStorageUtils.removeValueFromLocalStorage('investors');\n LocalStorageUtils.putValueToLocalStorage('isAuthenticated', 'false');\n if (!errorAuth) {\n LocalStorageUtils.removeValueFromLocalStorage('rememberPage');\n }\n history.push('/login')\n window.location.reload()\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n };\n};\n\nexport { loginUserThunkAC, logoutUserAsync, loginUserAsync, loginResetStateAC, loginUserSSOAsync };\n\nexport default loginUserAsync;\n","import RestAPI from '../restApiService';\n\nclass AuthAPI {\n postLogin = (data: { Username: string; Password: string }): Promise =>\n RestAPI.post('/auth/login', data);\n}\n\nexport default new AuthAPI();\n","import {SizeProp} from '@fortawesome/fontawesome-svg-core';\nimport {\n faAngleDoubleDown,\n faAngleDoubleUp,\n faAngleDown,\n faAngleRight,\n faAngleUp,\n faArrowAltCircleLeft,\n faArrowLeft,\n faArrowsAltH,\n faArrowRight,\n faBars,\n faBell,\n faCalendarAlt,\n faCat,\n faChartArea,\n faCheckSquare,\n faCircle,\n faCircleNotch,\n faClock,\n faCog,\n faCogs,\n faDollarSign,\n faDownload,\n faEllipsisV,\n faExchangeAlt,\n faExclamationTriangle,\n faEye,\n faFileAlt,\n faFilter,\n faHistory,\n faLanguage,\n faLink,\n faLongArrowAltDown,\n faLongArrowAltUp,\n faPencilAlt,\n faPlus,\n faPowerOff,\n faRedo,\n faSave, \n faSearch,\n faSignInAlt,\n faSignOutAlt,\n faSlidersH,\n faSortDown,\n faSquare,\n faSuitcase,\n faTable,\n faTimesCircle,\n faToggleOff,\n faToggleOn,\n faTrash,\n faUnlink,\n faUser,\n faUsers,\n faLongArrowAltRight,\n faAngleLeft\n} from '@fortawesome/free-solid-svg-icons';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\n\nconst defaultColor = '#8dabc4';\n\nconst DownloadIcon = (color?: string, size?: SizeProp) => ;\nconst LanguageIcon = (color?: string, size?: SizeProp) => ;\nconst FilterIcon = (color?: string, size?: SizeProp) => ;\nconst DollarSignIcon = (color?: string, size?: SizeProp) => ;\nconst DropdownIcon = (color?: string, size?: SizeProp) => ;\nconst FileAltIcon = (color?: string, size?: SizeProp) => ;\nconst PlusIcon = (color?: string) => ;\nconst PencilIcon = (color?: string) => ;\nconst UnlinkIcon = (color?: string) => ;\nconst LinkIcon = (color?: string) => ;\nconst TrashIcon = (color?: string) => ;\nconst PowerOnIcon = (color?: string) => ;\nconst TimesCircleIcon = (color?: string) => ;\nconst OnIcon = (color?: string) => ;\nconst OffIcon = (color?: string) => ;\nconst CogIcon = (color?: string, size?: SizeProp) => ;\nconst CogsIcon = (color?: string, size?: SizeProp) => ;\nconst HistoryIcon = (color?: string, size?: SizeProp) => ;\nconst RoundIcon = (color?: string) => ;\nconst SwitchIcon = (enabled: boolean) => ;\nconst RedoIcon = (color?: string, className?: string) => ;\nconst SaveIcon = (color?: string, className?: string) => ;\nconst AlertIcon = (color?: string, size?: SizeProp) => ;\nconst LoadingCat = (size?: SizeProp) => ;\nconst LoadingSpinner = (size?: SizeProp) => ;\nconst AngleDoubleDownIcon = (color?: string, size?: SizeProp) => ;\nconst AngleDownIcon = (color?: string, size?: SizeProp) => ;\nconst ArrowsAltH = (color?: string, size?: SizeProp) => ;\nconst AngleLeftIcon = (color?: string, size?: SizeProp) => ;\nconst AngleRightIcon = (color?: string, size?: SizeProp) => ;\nconst AngleDoubleUpIcon = (color?: string, size?: SizeProp) => ;\nconst AngleUpIcon = (color?: string, size?: SizeProp) => ;\nconst ArrowUp = (color?: string, size?: SizeProp) => ;\nconst ArrowDown = (color?: string, size?: SizeProp) => ;\nconst ArrowRight = (color?: string, size?: SizeProp) => ;\nconst ArrowAltCircleLeft = (color?: string, size?: SizeProp) => ;\nconst CheckSquareIcon = (color?: string, size?: SizeProp) => ;\nconst SquareIcon = (color?: string, size?: SizeProp) => ;\nconst EyeIcon = (color?: string, size?: SizeProp) => ;\nconst SearchIcon = (color?: string, size?: SizeProp) => ;\nconst SignInIcon = (color?: string, size?: SizeProp) => ;\nconst SignOutIcon = (color?: string, size?: SizeProp) => ;\nconst UserIcon = (color?: string, size?: SizeProp) => ;\nconst UsersIcon = (color?: string, size?: SizeProp) => ;\nconst EllipsisIcon = (color?: string, size?: SizeProp) => ;\nconst ChartAreaIcon = (color?: string, size?: SizeProp) => ;\nconst ExchangeIcon = (color?: string, size?: SizeProp) => ;\nconst SlidersIcon = (color?: string, size?: SizeProp) => ;\nconst SuitcaseIcon = (color?: string, size?: SizeProp) => ;\nconst ClockIcon = (color?: string, size?: SizeProp) => ;\nconst BarsIcon = (color?: string, size?: SizeProp) => ;\nconst BellIcon = (color?: string, size?: SizeProp) => ;\nconst CircleIcon = (color?: string, size?: SizeProp) => ;\nconst ArrowLeftIcon = (color?: string, size?: SizeProp) => ;\nconst ArrowRightIcon = (color?: string, size?: SizeProp) => ;\nconst CalendarIcon = (color?: string, size?: SizeProp) => ;\nconst TableIcon = ;\n\nconst Icons = {\n DownloadIcon,\n LanguageIcon,\n FilterIcon,\n DollarSignIcon,\n PlusIcon,\n FileAltIcon,\n PencilIcon,\n UnlinkIcon,\n TrashIcon,\n CogIcon,\n CogsIcon,\n HistoryIcon,\n RoundIcon,\n SwitchIcon,\n OnIcon,\n OffIcon,\n PowerOnIcon,\n TimesCircleIcon,\n RedoIcon,\n SaveIcon,\n AlertIcon,\n LoadingCat,\n LoadingSpinner,\n AngleDoubleDownIcon,\n ArrowsAltH,\n AngleDownIcon,\n AngleDoubleUpIcon,\n AngleUpIcon,\n AngleLeftIcon,\n AngleRightIcon,\n ArrowDown,\n ArrowAltCircleLeft,\n ArrowUp,\n LinkIcon,\n TableIcon,\n CheckSquareIcon,\n SquareIcon,\n EyeIcon,\n SearchIcon,\n DropdownIcon,\n ArrowRight,\n SignInIcon,\n UserIcon,\n UsersIcon,\n EllipsisIcon,\n ChartAreaIcon,\n ExchangeIcon,\n SlidersIcon,\n SuitcaseIcon,\n ClockIcon,\n BarsIcon,\n BellIcon,\n SignOutIcon,\n CircleIcon,\n ArrowLeftIcon,\n ArrowRightIcon,\n CalendarIcon\n};\n\nexport default Icons;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"styleRow\":\"OperationsMenuMobile_styleRow__1x2tj\",\"mb\":\"OperationsMenuMobile_mb__2LCzE\",\"link\":\"OperationsMenuMobile_link__70EnH\"};","import { faAngleRight } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { Card } from 'react-bootstrap';\nexport var AppAccordion = forwardRef(function (_a, ref) {\n var className = _a.className, style = _a.style, isHidden = _a.isHidden, item = _a.item;\n var _b = useState(isHidden === undefined ? true : isHidden), hidden = _b[0], setHidden = _b[1];\n var _c = useState(''), transitioningClass = _c[0], setTransitioningClass = _c[1];\n useImperativeHandle(ref, function () { return ({\n toggle: function () {\n handleClick();\n },\n open: function () {\n handleOpen();\n },\n close: function () {\n handleClose();\n }\n }); });\n var content = useRef(null);\n var handleClick = function () {\n setTransitioningClass('overflow-hidden');\n setHidden(!hidden);\n };\n var handleOpen = function () {\n setTransitioningClass('overflow-hidden');\n setHidden(false);\n };\n var handleClose = function () {\n setTransitioningClass('overflow-hidden');\n setHidden(true);\n };\n var handleTransitionEnd = function () {\n setTransitioningClass('');\n };\n var _d = useState('auto'), height = _d[0], setHeight = _d[1];\n var onWindowResize = function () {\n setHeight(content.current.scrollHeight);\n };\n useEffect(function () {\n setHeight(content.current.scrollHeight);\n window.addEventListener('resize', onWindowResize);\n return function () { return window.removeEventListener('resize', onWindowResize); };\n }, []);\n useEffect(function () {\n setHeight(content.current.scrollHeight);\n });\n var headerStyle = hidden ? { color: '#8dabc4', border: 'none', fontWeight: 500 } : { color: '#8dabc4', fontWeight: 500 };\n var iconClass = hidden ? 'icon' : 'icon icon-rotate';\n var hiddenClass = hidden ? 'accordion-hidden' : '';\n return (React.createElement(Card, { className: \"app-accordion \" + className + \" \" + hiddenClass, style: style },\n React.createElement(Card.Header, { className: 'accordion-header d-flex justify-content-between', onClick: handleClick, style: headerStyle },\n React.createElement(\"span\", null, item.title),\n React.createElement(FontAwesomeIcon, { icon: faAngleRight, className: iconClass })),\n React.createElement(\"div\", { onTransitionEnd: handleTransitionEnd, className: \"accordion \" + transitioningClass + \" \" + (hidden ? 'overflow-hidden' : ''), style: { height: hidden ? 0 : height } },\n React.createElement(Card.Body, { ref: content }, item.item))));\n});\n//# sourceMappingURL=app-accordion.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { useState } from 'react';\nimport { Button, Card, Form } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport * as Yup from 'yup';\nvar validationSchema = Yup.object({\n username: Yup.string().required(),\n password: Yup.string().required(),\n rememberMe: Yup.boolean()\n});\nexport var AppLoginPage = function (_a) {\n var canBeRestored = _a.canBeRestored, signInFunc = _a.signInFunc;\n var intl = useIntl();\n var _b = useState(''), username = _b[0], setUsername = _b[1];\n var _c = useState(''), password = _c[0], setPassword = _c[1];\n var _d = useState(false), rememberMe = _d[0], setRememberMe = _d[1];\n var initialFormErrorsState = { username: null, password: null };\n var _e = useState(initialFormErrorsState), formErrors = _e[0], setFormErrors = _e[1];\n var usernamePlaceholder = intl.formatMessage({\n id: 'login.form.username'\n });\n var passwordPlaceholder = intl.formatMessage({\n id: 'login.form.password'\n });\n var restoreLink = React.createElement(\"p\", { className: 'my-0' },\n React.createElement(Link, { to: \"/restore\" },\n React.createElement(FormattedMessage, { id: \"login.forgot.password\" })));\n var handleSetUsername = function (event) {\n var value = event.target.value;\n setUsername(value);\n try {\n Yup.reach(validationSchema, 'username').validateSync(value);\n var formErrorsNew = __assign({}, formErrors);\n formErrorsNew.username = null;\n setFormErrors(formErrorsNew);\n }\n catch (err) {\n var formErrorsNew = __assign({}, formErrors);\n formErrorsNew.username = err;\n setFormErrors(formErrorsNew);\n }\n };\n var handleSetPassword = function (event) {\n var value = event.target.value;\n setPassword(value);\n try {\n Yup.reach(validationSchema, 'password').validateSync(value);\n var formErrorsNew = __assign({}, formErrors);\n formErrorsNew.password = null;\n setFormErrors(formErrorsNew);\n }\n catch (err) {\n var formErrorsNew = __assign({}, formErrors);\n formErrorsNew.password = err;\n setFormErrors(formErrorsNew);\n }\n };\n var handleSetRememberMe = function (event) {\n setRememberMe(!!event.target.checked);\n };\n var handleSubmit = function (event) {\n event.preventDefault(); // does not allow to refresh page on submit\n try {\n validationSchema.validateSync({ username: username, password: password, rememberMe: rememberMe }, { abortEarly: false });\n signInFunc(username, password, rememberMe);\n }\n catch (err) {\n var formErrorsNew_1 = __assign({}, formErrors);\n err.inner.forEach(function (error) {\n if (error.path === 'username') {\n formErrorsNew_1.username = error;\n }\n if (error.path === 'password') {\n formErrorsNew_1.password = error;\n }\n });\n setFormErrors(formErrorsNew_1);\n }\n };\n return (React.createElement(\"div\", { className: 'app-login-page' },\n React.createElement(\"div\", { className: 'row h-75 justify-content-center align-items-center' },\n React.createElement(Form, { onSubmit: handleSubmit, \"data-testid\": 'submitFormLogin' },\n React.createElement(Card, null,\n React.createElement(Card.Header, null,\n React.createElement(FormattedMessage, { id: 'login.header' })),\n React.createElement(Card.Body, null,\n React.createElement(Card.Text, { as: 'div' },\n React.createElement(Form.Group, { controlId: 'userInput' },\n React.createElement(Form.Label, null,\n React.createElement(FormattedMessage, { id: 'login.form.username' })),\n React.createElement(Form.Control, { autoFocus: true, name: 'username', type: 'text', value: username, placeholder: usernamePlaceholder, onChange: handleSetUsername, isInvalid: !!formErrors.username }),\n React.createElement(Form.Control.Feedback, { type: 'invalid' },\n React.createElement(FormattedMessage, { id: 'login.form.username.invalid' }))),\n React.createElement(Form.Group, { controlId: 'pwdInput' },\n React.createElement(Form.Label, null,\n React.createElement(FormattedMessage, { id: \"login.form.password\" })),\n React.createElement(Form.Control, { type: 'password', name: 'password', value: password, placeholder: passwordPlaceholder, onChange: handleSetPassword, isInvalid: !!formErrors.password }),\n React.createElement(Form.Control.Feedback, { type: 'invalid' },\n React.createElement(FormattedMessage, { id: 'login.form.password.invalid' }))),\n React.createElement(Form.Group, null,\n React.createElement(Form.Check, { type: 'checkbox', checked: rememberMe, onChange: handleSetRememberMe, name: 'rememberMe', label: React.createElement(FormattedMessage, { id: 'login.remember.me' }), \"data-testid\": 'checkboxLogin' })),\n canBeRestored && restoreLink)),\n React.createElement(Card.Footer, null,\n React.createElement(Button, { variant: 'primary', type: 'submit' },\n React.createElement(FormattedMessage, { id: 'login.button' }))))))));\n};\n//# sourceMappingURL=app-login-page.js.map","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nexport var NavbarUser = function (_a) {\n var user = _a.user;\n var name = user.name, login = user.login, onSignOut = user.onSignOut, items = user.items, userLogo = user.userLogo;\n var dropdownItems = items.map(function (item, key) { return (React.createElement(Link, { key: key, className: 'dropdown-item', to: item.link, onClick: item.handleClick }, item.text)); });\n return (React.createElement(\"div\", { className: 'navbar-user d-flex mr-2 ml-4 text-light align-items-center' },\n React.createElement(Dropdown, { className: 'mr-3 cursor_pointer' },\n React.createElement(Dropdown.Toggle, { as: 'div', id: 'dropdown-basic', className: 'd-flex' },\n React.createElement(\"div\", null,\n React.createElement(\"div\", { className: 'text-light' }, name),\n React.createElement(\"div\", { className: 'text-muted' }, login))),\n React.createElement(Dropdown.Menu, null,\n dropdownItems,\n React.createElement(Dropdown.Divider, null),\n React.createElement(Link, { className: 'btn-sign-out dropdown-item', to: '/login', onClick: onSignOut }, \"Sign out\"))),\n React.createElement(\"img\", { height: 36, width: 36, src: userLogo, alt: 'user logo' })));\n};\n//# sourceMappingURL=app-navbar-user.js.map","import { faLanguage } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport { Navbar, NavDropdown } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nexport var nbsp = React.createElement(\"span\", null, \"\\u00A0\");\nexport function buildLogo(_a) {\n var href = _a.href, src = _a.src, width = _a.width, height = _a.height, className = _a.className, alt = _a.alt;\n return (React.createElement(Navbar.Brand, null,\n React.createElement(Link, { to: href },\n React.createElement(\"img\", { src: src, width: width, height: height, className: className, alt: alt }))));\n}\nfunction dropdownItemForLangs(i18nLangs, language, key, onLangChange) {\n function onButtonClick(lang) {\n return function () { return onLangChange(lang); };\n }\n return (React.createElement(NavDropdown.Item, { onClick: onButtonClick(language), key: key }, i18nLangs[language]));\n}\nexport function dropdownForLangs(i18nLangs, currentLangKey, onLangChange) {\n var title = React.createElement(\"span\", null,\n React.createElement(FontAwesomeIcon, { size: 'lg', icon: faLanguage }),\n nbsp,\n i18nLangs[currentLangKey]);\n return (React.createElement(NavDropdown, { alignRight: true, title: title, className: 'lang-dropdown d-flex align-items-center', id: 'lang-dropdown' }, Object.keys(i18nLangs).map(function (lang, key) { return dropdownItemForLangs(i18nLangs, lang, key, onLangChange); })));\n}\n//# sourceMappingURL=app-navbar-utils.js.map","import { faBars } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport { Nav, Navbar } from 'react-bootstrap';\nimport { NavbarUser } from './app-navbar-user';\nimport { buildLogo, dropdownForLangs } from './app-navbar-utils';\nexport var AppNavbar = function (_a) {\n var i18nLangs = _a.i18nLangs, exitButton = _a.exitButton, currentLangKey = _a.currentLangKey, onLangChange = _a.onLangChange, navbarItemsRight = _a.navbarItemsRight, isAuthenticated = _a.isAuthenticated, onSidebarHandlerClick = _a.onSidebarHandlerClick, user = _a.user, logo = _a.logo;\n var buildToggleButton = function (callback) {\n var handleClick = function () { return callback(); };\n return (React.createElement(\"div\", { className: 'd-flex navbar-border navbar-content-align', onClick: handleClick },\n React.createElement(FontAwesomeIcon, { icon: faBars, size: '2x', className: 'text-white' })));\n };\n return (React.createElement(Navbar, { bg: 'dark', variant: 'dark', expand: 'md', className: 'app-navbar' },\n isAuthenticated ? buildToggleButton(onSidebarHandlerClick) : null,\n React.createElement(\"div\", { style: { maxWidth: 260, marginLeft: '1rem', marginRight: '2rem', overflow: 'hidden' }, className: 'd-flex align-items-center navbar-border' }, buildLogo(logo)),\n React.createElement(Nav, { className: 'ml-auto' },\n isAuthenticated && navbarItemsRight ? navbarItemsRight.map(function (item) { return item; }) : null,\n isAuthenticated && user ? React.createElement(NavbarUser, { user: user }) : null,\n dropdownForLangs(i18nLangs, currentLangKey, onLangChange),\n isAuthenticated && exitButton ? exitButton : null)));\n};\n//# sourceMappingURL=app-navbar.js.map","import * as React from 'react';\nimport { Dropdown, DropdownButton, Pagination } from 'react-bootstrap';\nimport { useEffect } from 'react';\nexport var AppPagination = function (_a) {\n var page = _a.page, size = _a.size, pages = _a.pages, sizes = _a.sizes, onClick = _a.onClick;\n var _b = React.useState(size), sizeState = _b[0], setSize = _b[1];\n useEffect(function () {\n setSize(size);\n }, [size]);\n var handlePaginationClick = function (paginationPage, paginationSize) { return function () { return onClick(paginationPage, paginationSize); }; };\n var paginationBuilder = function (currentPage, amountOfPages) {\n var delta = 2;\n var range = [];\n var startFrom = Math.max(2, currentPage - delta);\n var ends = Math.min(amountOfPages - 1, currentPage + delta);\n for (var i = startFrom; i <= ends; i++) {\n range.push(React.createElement(Pagination.Item, { key: i, onClick: handlePaginationClick(i, sizeState), active: i === currentPage }, i));\n }\n if (currentPage - delta > 2) {\n range.unshift(React.createElement(Pagination.Ellipsis, { key: 'first' }));\n }\n if (currentPage + delta < amountOfPages - 1) {\n range.push(React.createElement(Pagination.Ellipsis, { key: 'last' }));\n }\n // first item\n range.unshift(React.createElement(Pagination.Item, { key: 1, onClick: handlePaginationClick(1, sizeState), active: currentPage === 1 }, 1));\n // last item\n if (amountOfPages > 1) {\n range.push(React.createElement(Pagination.Item, { key: amountOfPages, onClick: handlePaginationClick(amountOfPages, sizeState), active: currentPage === amountOfPages }, amountOfPages));\n }\n return range;\n };\n var setSizeWrapper = function (eventOrKey) {\n setSize(Number(eventOrKey));\n onClick(page, Number(eventOrKey));\n };\n var sizesDropdown = (React.createElement(DropdownButton, { id: 'dropdown-basic-button', onSelect: setSizeWrapper, className: 'pagination-pill', size: 'sm', title: sizeState }, sizes.map(function (item, key) { return React.createElement(Dropdown.Item, { key: key, eventKey: item.toString() }, item); })));\n return (React.createElement(\"div\", { className: 'd-flex pt-2 pl-2 flex-row-reverse' },\n sizesDropdown,\n React.createElement(Pagination, { size: 'sm', className: 'pr-1' },\n React.createElement(Pagination.First, { disabled: page === 1, onClick: handlePaginationClick(1, sizeState) }),\n React.createElement(Pagination.Prev, { disabled: page === 1, onClick: handlePaginationClick(page - 1, sizeState) }),\n paginationBuilder(page, pages),\n React.createElement(Pagination.Next, { disabled: page === pages, onClick: handlePaginationClick(page + 1, sizeState) }),\n React.createElement(Pagination.Last, { disabled: page === pages, onClick: handlePaginationClick(pages, sizeState) }))));\n};\n//# sourceMappingURL=app-pagination.js.map","import React from 'react';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nexport function withTooltip(item, toolTipText, key, where) {\n if (where === void 0) { where = 'top'; }\n var overlay = React.createElement(Tooltip, { id: \"tooltip-\" + key }, toolTipText);\n return (React.createElement(OverlayTrigger, { key: key, placement: where, overlay: overlay }, item));\n}\nexport function limitedString(text, limit) {\n if (limit === void 0) { limit = 5; }\n if (text.length > limit) {\n var croppedText = text.slice(0, limit) + '...';\n return withTooltip(React.createElement(\"span\", null, croppedText), text, text);\n }\n return text;\n}\n//# sourceMappingURL=app-utils.js.map","import React from 'react';\nimport { Nav, ProgressBar } from 'react-bootstrap';\nimport { withTooltip } from './app-utils';\nexport var Progress = function (_a) {\n var now = _a.now, description = _a.description, hidden = _a.hidden, className = _a.className;\n var tooltipStyles = hidden ? { width: '48px', height: '10px' } : { height: '10px' };\n return (React.createElement(Nav.Item, { className: 'd-flex mb-2' },\n React.createElement(\"div\", { className: 'd-flex flex-column m-auto w-90' },\n hidden ? null : React.createElement(\"p\", { className: 'text-white' }, description),\n React.createElement(\"div\", { className: 'd-flex' },\n withTooltip(React.createElement(ProgressBar, { now: now, className: className + \" \" + (hidden ? 'm-auto' : 'w-100'), style: tooltipStyles }), 'tooltip', '123'),\n hidden ? null : React.createElement(\"span\", { className: 'ml-2 text-muted' }, now)))));\n};\n//# sourceMappingURL=app-progress.js.map","import React, { useState } from 'react';\nimport { Button, Card, Form } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport * as Yup from 'yup';\nvar validationSchema = {\n username: Yup.string().required(),\n};\nexport var AppRestoreAccountPage = function (_a) {\n var onRestoreClick = _a.onRestoreClick, onBackClick = _a.onBackClick;\n var intl = useIntl();\n var _b = useState(''), username = _b[0], setUsername = _b[1];\n var _c = useState(false), isUsernameNotValid = _c[0], setUsernameValid = _c[1];\n var _d = useState(true), isSubmitButtonDisabled = _d[0], setSubmitButtonState = _d[1];\n var usernamePlaceholder = intl.formatMessage({\n id: 'restore.form.username'\n });\n var handleSubmit = function (event) {\n event.preventDefault();\n onRestoreClick(username);\n };\n var handleUsernameChange = function (event) {\n setUsername(event.currentTarget.value);\n try {\n var isValid = !validationSchema.username.validateSync(event.currentTarget.value);\n setUsernameValid(isValid);\n setSubmitButtonState(isValid);\n }\n catch (e) {\n setUsernameValid(true);\n setSubmitButtonState(true);\n }\n };\n return (React.createElement(\"div\", { className: 'app-login-page' },\n React.createElement(\"div\", { className: 'container' },\n React.createElement(\"div\", { className: 'row justify-content-center align-items-center' },\n React.createElement(Form, { onSubmit: handleSubmit, \"data-testid\": 'submitFormResetPwd' },\n React.createElement(Card, null,\n React.createElement(Card.Header, null,\n React.createElement(FormattedMessage, { id: 'restore.header' })),\n React.createElement(Card.Body, null,\n React.createElement(Card.Text, { as: 'div' },\n React.createElement(\"p\", null,\n React.createElement(FormattedMessage, { id: 'restore.form.text' })),\n React.createElement(Form.Group, { controlId: 'userInput' },\n React.createElement(Form.Label, null,\n React.createElement(FormattedMessage, { id: 'restore.form.username' })),\n React.createElement(Form.Control, { autoFocus: true, type: 'text', value: username, placeholder: usernamePlaceholder, onChange: handleUsernameChange, isInvalid: isUsernameNotValid }),\n React.createElement(Form.Control.Feedback, { type: 'invalid' },\n React.createElement(FormattedMessage, { id: 'restore.form.error' }))))),\n React.createElement(Card.Footer, null,\n React.createElement(\"div\", { className: 'd-flex' },\n React.createElement(Button, { disabled: isSubmitButtonDisabled, variant: 'primary', type: 'submit' },\n React.createElement(FormattedMessage, { id: 'restore.confirm' })),\n React.createElement(Button, { className: 'ml-auto', variant: 'secondary', onClick: onBackClick },\n React.createElement(FormattedMessage, { id: 'restore.backToLogin' }))))))))));\n};\n//# sourceMappingURL=app-restore-account-page.js.map","import React from 'react';\nexport var AppHorizontalLine = function (_a) {\n var className = _a.className;\n return (React.createElement(\"hr\", { className: \"horizontal-line \" + className }));\n};\n//# sourceMappingURL=app-horizontal-line.js.map","import { faInfo } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { OverlayScrollbarsComponent } from 'overlayscrollbars-react';\nimport React from 'react';\nimport { Nav } from 'react-bootstrap';\nimport { FormattedMessage } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { AppHorizontalLine } from './app-horizontal-line';\nimport { Progress } from './app-progress';\nimport { withTooltip } from './app-utils';\nexport var AppSideBar = function (_a) {\n var sidebarItems = _a.sidebarItems, sidebarHidden = _a.sidebarHidden, progressItems = _a.progressItems, currentLocation = _a.currentLocation, onLicenceClick = _a.onLicenceClick, onTransitionEndCallback = _a.onTransitionEndCallback, isScrollable = _a.isScrollable;\n var buildSideBarLink = function (item, key, location) {\n var translateKey = item.translateKey, translateKeyOptional = item.translateKeyOptional, icon = item.icon, link = item.link, tooltipKey = item.tooltipKey;\n var translateMessage = translateKey ? React.createElement(FormattedMessage, { id: translateKey }) : null;\n var translateMessageOptional = translateKeyOptional ? React.createElement(FormattedMessage, { id: translateKeyOptional }) : null;\n var classNameLink = sidebarHidden ? 'd-flex m-auto ml-navbar' : 'd-flex m-auto w-90 ml-navbar';\n var isLinkActive = link.split('/').filter(function (v) { return v !== ''; })[0] === (location.split('/')).filter(function (v) { return v !== ''; })[0];\n var navItemStyles = \"d-flex h-60px \" + (isLinkActive ? 'nav-item-styles' : '');\n var classNameHiddenBody = sidebarHidden ? 'app-sidebar-opacity-zero' : 'app-sidebar-opacity';\n var iconComponent = (React.createElement(\"div\", { style: { display: 'flex', width: icon.size, height: icon.size, borderRadius: icon.radius, backgroundColor: icon.color, flexShrink: 0, position: 'relative' } },\n React.createElement(FontAwesomeIcon, { icon: icon.icon, size: icon.iconSize, className: 'm-auto text-white' }),\n item.notification && withTooltip(React.createElement(\"div\", { style: {\n width: '12px',\n height: '12px',\n borderRadius: '50%',\n backgroundColor: 'red',\n position: 'absolute',\n bottom: '-3px',\n right: '-3px'\n } }), item.notification.text, Math.random(), 'bottom-start')));\n var messageBody = (React.createElement(\"div\", { className: \"d-flex flex-column justify-content-center \" + classNameHiddenBody, style: { width: sidebarHidden ? '0' : '200px', height: '48px', flexShrink: 0 } },\n React.createElement(\"span\", { className: 'text-light ml-3 message' }, translateMessage),\n React.createElement(\"span\", { className: 'text-muted ml-3 message-optional' }, translateMessageOptional)));\n var handleClick = function () {\n if (item.action) {\n item.action(currentLocation);\n }\n };\n var navLink = React.createElement(Link, { to: link, className: classNameLink },\n iconComponent,\n messageBody);\n var result = tooltipKey && sidebarHidden ? withTooltip(navLink, tooltipKey, tooltipKey, 'right') : navLink;\n return (React.createElement(Nav.Item, { key: key, className: navItemStyles, onClick: handleClick }, result));\n };\n var buildProgressBarItem = function (item, key) {\n return React.createElement(Progress, { key: key, hidden: sidebarHidden, now: item.now, description: item.description, className: item.colorClass + \" mt-auto mb-auto\" });\n };\n var navItem = (React.createElement(Nav.Item, { className: 'd-flex' },\n React.createElement(\"div\", { className: 'w-90 progress-title' }, progressItems.length ? React.createElement(\"span\", null,\n React.createElement(FormattedMessage, { id: 'progress' })) : null)));\n var sidebarItemComponents = sidebarItems.map(function (item, key) { return buildSideBarLink(item, key, currentLocation); });\n var progressBarItemComponents = progressItems.map(function (item, key) { return buildProgressBarItem(item, key); });\n var progressComponents = progressItems.length !== 0 &&\n (React.createElement(Nav, { className: 'flex-column pb-3' },\n !sidebarHidden && navItem,\n progressBarItemComponents));\n var licence = (React.createElement(\"div\", { className: 'd-flex h-60px' },\n React.createElement(\"div\", { className: \"licence \" + (sidebarHidden ? 'd-flex m-auto' : 'd-flex m-auto w-90'), onClick: onLicenceClick },\n React.createElement(FontAwesomeIcon, { icon: faInfo, size: \"1x\", className: 'text-white' }),\n sidebarHidden ? null : React.createElement(\"span\", { className: 'text-light ml-3' },\n React.createElement(FormattedMessage, { id: 'licence' })))));\n var handleOnTransitionEnd = function (event) {\n if (onTransitionEndCallback) {\n onTransitionEndCallback(event);\n }\n };\n if (isScrollable) {\n return (React.createElement(\"div\", { className: sidebarHidden ? 'app-sidebar app-sidebar-hidden' : 'app-sidebar', onTransitionEnd: handleOnTransitionEnd },\n React.createElement(OverlayScrollbarsComponent, { style: { height: 'calc(100vh - 58px)', width: '100%' }, options: { overflowBehavior: { x: 'visible-hidden', y: 'scroll' } } },\n React.createElement(\"div\", { className: 'd-flex flex-column justify-content-between h-100' },\n React.createElement(\"div\", null,\n React.createElement(AppHorizontalLine, { className: 'mb-3' }),\n React.createElement(Nav, { className: 'flex-column' }, sidebarItemComponents)),\n React.createElement(\"div\", null,\n progressComponents,\n React.createElement(AppHorizontalLine, null),\n licence)))));\n }\n return (React.createElement(\"div\", { className: sidebarHidden ? 'app-sidebar app-sidebar-hidden' : 'app-sidebar', onTransitionEnd: handleOnTransitionEnd },\n React.createElement(\"div\", null,\n React.createElement(AppHorizontalLine, { className: 'mb-3' }),\n React.createElement(Nav, { className: 'flex-column' }, sidebarItemComponents)),\n React.createElement(\"div\", null,\n progressComponents,\n React.createElement(AppHorizontalLine, null),\n licence)));\n};\n//# sourceMappingURL=app-sidebar.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { OverlayScrollbarsComponent } from 'overlayscrollbars-react';\nimport React from 'react';\nimport { Table } from 'react-bootstrap';\nimport { FormattedMessage } from 'react-intl';\nexport var AppTable = function (_a) {\n var scrollHeight = _a.scrollHeight, tableHeader = _a.tableHeader, tableData = _a.tableData, className = _a.className, settings = _a.settings, scrollOptions = _a.scrollOptions;\n var ths = tableHeader.map(function (item) { return item; });\n var data = tableData && tableData.length > 0 ? tableData :\n (React.createElement(\"tr\", null,\n React.createElement(\"td\", { className: 'text-center', colSpan: ths.length },\n React.createElement(FormattedMessage, { id: 'table.nodata' }))));\n var styles = scrollHeight ? { height: scrollHeight } : undefined;\n var scrollCustomOptions = scrollOptions ? { overflowBehavior: scrollOptions, paddingAbsolute: true } : undefined;\n return (React.createElement(OverlayScrollbarsComponent, { style: __assign(__assign({}, styles), { paddingBottom: '8px' }), options: scrollCustomOptions },\n React.createElement(Table, { className: \"app-table \" + (className || ''), hover: true },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", { className: 'table-tr_color' }, ths)),\n React.createElement(\"thead\", { className: 'thead-settings' }, settings),\n React.createElement(\"tbody\", null, data))));\n};\n//# sourceMappingURL=app-table.js.map","import React from 'react';\nimport { Table } from 'react-bootstrap';\nimport { FormattedMessage } from 'react-intl';\nexport var AppSimpleTable = function (_a) {\n var tableHeader = _a.tableHeader, tableData = _a.tableData, className = _a.className, settings = _a.settings;\n var ths = tableHeader.map(function (item) { return item; });\n var emptyDataMessage = (React.createElement(\"tr\", null,\n React.createElement(\"td\", { className: 'text-center', colSpan: ths.length },\n React.createElement(FormattedMessage, { id: 'table.nodata' }))));\n var data = tableData && tableData.length > 0 ? tableData : emptyDataMessage;\n var tableClassName = className ? className : '';\n return (React.createElement(Table, { className: \"app-table \" + tableClassName, hover: true },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", { className: 'table-tr_color' }, ths)),\n React.createElement(\"thead\", { className: 'thead-settings' }, settings),\n React.createElement(\"tbody\", null, data)));\n};\n//# sourceMappingURL=app-simple-table.js.map","export var DatePattern;\n(function (DatePattern) {\n DatePattern[DatePattern[\"YYYY_MM_DD\"] = 0] = \"YYYY_MM_DD\";\n DatePattern[DatePattern[\"YYYY_MM_DD_HH_mm_ss\"] = 1] = \"YYYY_MM_DD_HH_mm_ss\";\n DatePattern[DatePattern[\"DD_MM_YYYY\"] = 2] = \"DD_MM_YYYY\";\n DatePattern[DatePattern[\"DD_MM_YYYY_HH_mm_ss\"] = 3] = \"DD_MM_YYYY_HH_mm_ss\";\n DatePattern[DatePattern[\"yyyy-MM-dd_HH-mm-ss\"] = 4] = \"yyyy-MM-dd_HH-mm-ss\";\n DatePattern[DatePattern[\"HH_mm_ss\"] = 5] = \"HH_mm_ss\";\n})(DatePattern || (DatePattern = {}));\nexport var MonthNames = [\n 'Jan', 'Feb', 'Mar',\n 'Apr', 'May', 'June',\n 'July', 'Aug', 'Sept',\n 'Oct', 'Nov', 'Dec'\n];\nfunction convertDateForNumericPatterns(year, month, day, hour, minutes, seconds) {\n var y = year.toString();\n var m = (month + 1).toString();\n var d = day.toString();\n var h = hour.toString();\n var min = minutes.toString();\n var sec = seconds.toString();\n if (m.length < 2) {\n m = \"0\" + m;\n }\n if (d.length < 2) {\n d = \"0\" + d;\n }\n if (h.length < 2) {\n h = \"0\" + h;\n }\n if (min.length < 2) {\n min = \"0\" + min;\n }\n if (sec.length < 2) {\n sec = \"0\" + sec;\n }\n return { y: y, m: m, d: d, h: h, min: min, sec: sec };\n}\nfunction makeResultFromPattern(year, month, day, hour, minutes, seconds, pattern) {\n var _a = convertDateForNumericPatterns(year, month, day, hour, minutes, seconds), y = _a.y, m = _a.m, d = _a.d, h = _a.h, min = _a.min, sec = _a.sec;\n switch (pattern) {\n case DatePattern.YYYY_MM_DD: {\n return [y, m, d].join('/');\n }\n case DatePattern.DD_MM_YYYY: {\n return [d, m, y].join('/');\n }\n case DatePattern.HH_mm_ss: {\n return [h, min, sec].join(':');\n }\n case DatePattern.YYYY_MM_DD_HH_mm_ss: {\n return [y, m, d].join('/') + \" \" + [h, min, sec].join(':');\n }\n case DatePattern.DD_MM_YYYY_HH_mm_ss: {\n return [d, m, y].join('/') + \" \" + [h, min, sec].join(':');\n }\n case DatePattern['yyyy-MM-dd_HH-mm-ss']: {\n return [year, MonthNames[month], day].join(' ') + \" \" + [h, min, sec].join('-');\n }\n default: {\n return [year, month, day].join('/');\n }\n }\n}\nexport function formatUTCDate(date, pattern) {\n if (date === undefined) {\n return '';\n }\n var tempDate = typeof date === 'string' ? new Date(date) : date;\n var month = tempDate.getUTCMonth();\n var day = tempDate.getUTCDate();\n var year = tempDate.getUTCFullYear();\n var hour = tempDate.getUTCHours();\n var minutes = tempDate.getUTCMinutes();\n var seconds = tempDate.getUTCSeconds();\n return pattern ? makeResultFromPattern(year, month, day, hour, minutes, seconds, pattern) : tempDate.toUTCString();\n}\nexport function formatDate(date, pattern) {\n if (date === null) {\n return '';\n }\n var tempDate = typeof date === 'string' ? new Date(date) : date;\n var month = tempDate.getMonth();\n var day = tempDate.getDate();\n var year = tempDate.getFullYear();\n var hour = tempDate.getHours();\n var minutes = tempDate.getMinutes();\n var seconds = tempDate.getSeconds();\n return pattern ? makeResultFromPattern(year, month, day, hour, minutes, seconds, pattern) : tempDate.toString();\n}\nexport function getMonday(d, weeksAgo, hours, minutes, seconds) {\n if (weeksAgo === void 0) { weeksAgo = 0; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n var tempDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), hours, minutes, seconds, 0);\n var day = tempDate.getDay() + (weeksAgo > 0 ? 7 * weeksAgo : 0);\n var diff = tempDate.getDate() - day + (day === 0 ? -6 : 1);\n return new Date(tempDate.setDate(diff));\n}\nexport function getSunday(d, weeksAgo, hours, minutes, seconds) {\n if (weeksAgo === void 0) { weeksAgo = 0; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n var tempDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), hours, minutes, seconds, 0);\n var day = tempDate.getDay() + (weeksAgo > 0 ? 7 * weeksAgo : 0);\n var diff = (tempDate.getDate() - day + (day === 0 ? -6 : 1) + 6);\n return new Date(tempDate.setDate(diff));\n}\nexport function getMonthStartDate(d, monthAgo, hours, minutes, seconds) {\n if (monthAgo === void 0) { monthAgo = 1; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n return new Date(d.getFullYear(), d.getMonth() - monthAgo, 1, hours, minutes, seconds);\n}\nexport function getMonthEndDate(d, monthAgo, hours, minutes, seconds) {\n if (monthAgo === void 0) { monthAgo = 0; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n return new Date(d.getFullYear(), d.getMonth() - monthAgo, 0, hours, minutes, seconds);\n}\nexport function getYearStartDate(d, yearsAgo, hours, minutes, seconds) {\n if (yearsAgo === void 0) { yearsAgo = 1; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n return new Date(d.getFullYear() - yearsAgo, 0, 1, hours, minutes, seconds);\n}\nexport function getYearEndDate(d, yearsAgo, hours, minutes, seconds) {\n if (yearsAgo === void 0) { yearsAgo = 0; }\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n return new Date(d.getFullYear() - yearsAgo, 0, 0, hours, minutes, seconds);\n}\nexport function coordinateTimeZone(serverOffset) {\n var clientOffset = new Date().getTimezoneOffset();\n return serverOffset === 0 ? clientOffset * 60000 : (clientOffset - serverOffset) * 60000;\n}\nexport function convertOffsetToMs(serverOffset) {\n return serverOffset * 60000;\n}\n//# sourceMappingURL=times.js.map","import { faSearch, faSort, faSortDown, faSortUp, faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { AppTable } from '../components/app-table';\nimport { isExists } from './entity-utils';\nimport { AppSimpleTable } from '../components/app-simple-table';\nvar AppTh = function (_a) {\n var fieldToSort = _a.fieldToSort, sortBy = _a.sortBy, direction = _a.direction, onClick = _a.onClick, message = _a.message;\n var onClickWrapper = onClick && sortBy ? function () { return onClick(sortBy); } : undefined;\n return (React.createElement(\"th\", { className: 'position-relative', onClick: onClickWrapper },\n message,\n getSortIcon(fieldToSort, sortBy, direction)));\n};\nvar AppThWithSearch = function (_a) {\n var fieldToSort = _a.fieldToSort, sortBy = _a.sortBy, direction = _a.direction, searchCallback = _a.searchCallback, onClick = _a.onClick, message = _a.message;\n var _b = React.useState(''), inputState = _b[0], setInputState = _b[1];\n var _c = React.useState(faSearch), searchIcon = _c[0], setSearchIcon = _c[1];\n React.useEffect(function () {\n if (inputState) {\n setSearchIcon(faTimes);\n }\n else {\n setSearchIcon(faSearch);\n }\n searchCallback(inputState);\n }, [inputState, searchCallback]);\n var onInputChange = function (event) {\n setInputState(event.currentTarget.value);\n };\n var onClickWrapper = onClick && sortBy ? function () {\n onClick(sortBy);\n } : undefined;\n var cleanInput = function () { return setInputState(''); };\n return (React.createElement(\"th\", { className: 'position-relative' },\n React.createElement(\"input\", { type: \"text\", value: inputState, onChange: onInputChange, placeholder: message, className: 'search-input_style' }),\n React.createElement(FontAwesomeIcon, { style: { height: '10px', width: '11px' }, icon: searchIcon, onClick: inputState ? cleanInput : undefined }),\n getSortIcon(fieldToSort, sortBy, direction, onClickWrapper)));\n};\nvar AppThWrapper = function (_a) {\n var tableHeader = _a.tableHeader, onClick = _a.onClick, searchCallback = _a.searchCallback, fieldToSort = _a.fieldToSort, direction = _a.direction;\n var intl = useIntl();\n var rawString = tableHeader.rawString, translateId = tableHeader.translateId, translateValue = tableHeader.translateValue, sortBy = tableHeader.sortBy, searchable = tableHeader.searchable;\n var message = rawString;\n if (translateId) {\n message = translateValue ? React.createElement(FormattedMessage, { id: translateId, values: translateValue }) : React.createElement(FormattedMessage, { id: translateId });\n message = intl.formatMessage({ id: translateId }, translateValue);\n }\n if (searchable && searchCallback) {\n return (React.createElement(AppThWithSearch, { searchCallback: searchCallback, onClick: onClick, fieldToSort: fieldToSort, direction: direction, sortBy: sortBy, message: message }));\n }\n return (React.createElement(AppTh, { onClick: onClick, fieldToSort: fieldToSort, direction: direction, sortBy: sortBy, message: message }));\n};\nfunction buildTableHeaders(arr, onClick, fieldToSort, direction, searchCallback) {\n return arr.map(function (item, index) {\n if (item === null) {\n return (React.createElement(\"th\", { key: index, \"aria-label\": ' ', className: 'position-relative' }));\n }\n return React.createElement(AppThWrapper, { key: index, tableHeader: item, direction: direction, searchCallback: searchCallback, onClick: onClick, fieldToSort: fieldToSort });\n });\n}\nfunction getSortIcon(fieldToSort, currentField, direction, onClick) {\n if (currentField === fieldToSort && currentField) {\n switch (direction) {\n case 'asc':\n return React.createElement(FontAwesomeIcon, { onClick: onClick || undefined, icon: faSortUp, className: 'ml-1' });\n case 'desc':\n return React.createElement(FontAwesomeIcon, { onClick: onClick || undefined, icon: faSortDown, className: 'ml-1' });\n case 'none':\n return React.createElement(FontAwesomeIcon, { onClick: onClick || undefined, icon: faSort, className: 'ml-1' });\n default:\n return null;\n }\n }\n else if (currentField) {\n return React.createElement(FontAwesomeIcon, { onClick: onClick || undefined, icon: faSort, className: 'ml-1' });\n }\n return null;\n}\nexport function buildTable(headersArr, tableData, height, onClick, fieldToSort, direction, searchCallback) {\n var headers = buildTableHeaders(headersArr, onClick, fieldToSort, direction, searchCallback);\n return React.createElement(AppTable, { tableHeader: headers, tableData: tableData, scrollHeight: height, scrollOptions: { x: 'scroll', y: 'visible-hidden' } });\n}\nexport function buildSimpleTable(headersArr, tableData, onClick, fieldToSort, direction) {\n var headers = buildTableHeaders(headersArr, onClick, fieldToSort, direction);\n return React.createElement(AppSimpleTable, { tableHeader: headers, tableData: tableData });\n}\nexport function drawDashOrNot(data) {\n try {\n if (Array.isArray(data) && data.length < 1) {\n return React.createElement(\"span\", null, \"\\u2014\");\n }\n if (isExists(data, true)) {\n return data;\n }\n return React.createElement(\"span\", null, \"\\u2014\");\n }\n catch (e) {\n return React.createElement(\"span\", null, \"\\u2014\");\n }\n}\n//# sourceMappingURL=tables.js.map","var ReduxAction = /** @class */ (function () {\n function ReduxAction(type, payload) {\n this.type = type;\n this.payload = payload;\n }\n return ReduxAction;\n}());\nexport { ReduxAction };\n//# sourceMappingURL=redux-action.js.map","export var Direction;\n(function (Direction) {\n Direction[\"asc\"] = \"asc\";\n Direction[\"desc\"] = \"desc\";\n Direction[\"none\"] = \"none\";\n})(Direction || (Direction = {}));\n//# sourceMappingURL=direction.js.map","var IconItem = /** @class */ (function () {\n function IconItem(size, icon, iconSize, radius, color) {\n this.size = size;\n this.icon = icon;\n this.iconSize = iconSize;\n this.radius = radius;\n this.color = color;\n }\n return IconItem;\n}());\nexport { IconItem };\nvar AppSideBarItem = /** @class */ (function () {\n function AppSideBarItem(translateKey, translateKeyOptional, isExternal, link, specialElement, tooltipKey, icon, cssClass, action, notification) {\n if (isExternal === void 0) { isExternal = false; }\n if (link === void 0) { link = ''; }\n if (specialElement === void 0) { specialElement = null; }\n if (tooltipKey === void 0) { tooltipKey = null; }\n this.tooltipKey = tooltipKey;\n this.link = link;\n this.isExternal = isExternal;\n this.translateKey = translateKey;\n this.translateKeyOptional = translateKeyOptional;\n this.cssClass = cssClass;\n this.specialElement = specialElement;\n this.action = action;\n this.icon = icon;\n this.notification = notification;\n }\n return AppSideBarItem;\n}());\nexport { AppSideBarItem };\n//# sourceMappingURL=app-sidebar-item.js.map","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { Investor } from '../../../types/investorTypes';\n\nexport const FETCH_INVESTOR_DETAILS = 'FETCH_INVESTORS_DETAILS ';\nexport const FETCH_INVESTOR_DETAILS_FALSE = 'FETCH_INVESTOR_DETAILS_FALSE ';\nexport const FETCH_INVESTOR_DETAILS_ATTACH_DETACH = 'FETCH_INVESTOR_DETAILS_ATTACH_DETACH';\n\nexport type FetchInvestorDetailsAction = {\n type: string;\n investorDetails: Investor;\n};\n\nexport const fetchInvestorDetailsFalse = (investor: Investor): FetchInvestorDetailsAction => {\n return {\n type: FETCH_INVESTOR_DETAILS_FALSE,\n investorDetails: investor\n };\n};\n\nexport const fetchInvestorDetails = (investor: Investor): FetchInvestorDetailsAction => {\n return {\n type: FETCH_INVESTOR_DETAILS,\n investorDetails: investor\n };\n};\n\nexport const fetchInvestorDetailsAttachDetach = (investor: Investor): FetchInvestorDetailsAction => {\n return {\n type: FETCH_INVESTOR_DETAILS_ATTACH_DETACH,\n investorDetails: investor\n };\n};\n\nexport function fetchInvestorDetailsFalseAsync(api: string, investorId: number) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(\n `${api}/investors/${investorId}?returnAccountOptionsValue=false`,\n headersBuilder(Method.GET)\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((investor: any) => dispatch(fetchInvestorDetailsFalse(investor)))\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n .then(() => dispatch(fetchInvestorDetailsAsync(api, Number(investorId))))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n}\n\nfunction fetchInvestorDetailsAsync(api: string, investorId: number, admin?: boolean) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(\n `${api}/investors/${investorId}?returnAccountOptionsValue=${!admin}`,\n headersBuilder(Method.GET)\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((investor: any) => dispatch(fetchInvestorDetails(investor)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n}\n\nexport function fetchInvestorDetailsAttachDetachAsync(api: string, investorId: number, admin?: boolean) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(\n `${api}/investors/${investorId}?returnAccountOptionsValue=${!admin}`,\n headersBuilder(Method.GET)\n )\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((investor: any) => dispatch(fetchInvestorDetailsAttachDetach(investor)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n}\n\nexport default fetchInvestorDetailsAsync;\n","import { OrderMode } from './sharedTypes';\nimport { VisibilityToggle, StateToggle, StateRequestToggle, VisibilityExtendedToggle } from './toggles';\n\nexport enum PeriodTypes {\n None = 'None',\n Daily = 'Daily',\n Weekly = 'Weekly',\n Monthly = 'Monthly',\n Quarterly = 'Quarterly'\n}\n\nexport enum CommissionType {\n Performance = 'Performance',\n AnnualManagement = 'AnnualManagement'\n}\n\nexport class ICallbackAddresses {\n Address = '';\n CallbackTypes = ['Requests', 'Disconnect'];\n}\n\nexport class RegularPeriodSettings {\n PeriodType = PeriodTypes.Daily;\n PeriodDay = '';\n PeriodTime = '';\n ReversedDays = 'false';\n}\n\nexport class PaymentPeriodSettings extends RegularPeriodSettings {\n CommissionType = CommissionType.Performance\n}\n\nexport class ReportPeriodSettings extends RegularPeriodSettings {\n IncludeAllOpenOrders = true;\n}\n\nexport enum AllocationMode {\n ByBalance = 0,\n ByEquity = 1\n}\n\nexport enum WithdrawalMethod {\n PartialClose = 'PartialClose',\n FreeMargin = 'FreeMargin'\n}\nexport enum OperationType {\n Balance = 'Balance',\n BalanceCorrection = 'BalanceCorrection',\n ProfitCorrection = 'ProfitCorrection',\n Deposit = 'Deposit',\n Withdraw = 'Withdraw'\n}\n\nexport enum RequestAutoExecutionMode {\n Off = 'Off',\n Instant = 'Off',\n Planned = 'Off'\n}\n\nexport enum CreditAutoExecutionMode {\n Off = 'Off',\n Instant = 'Off',\n Planned = 'Off'\n}\n\nexport enum AttachAutoExecutionMode {\n Off = 'Off',\n Instant = 'Off',\n Planned = 'Off'\n}\n\nexport class AdminSettings {\n EmailNotifications = StateToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n}\n\nexport class MasterSettings {\n CalcMasterFeeButton = VisibilityToggle.Default;\n MmConnectedInvestors = VisibilityToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n EmailNotifications = StateToggle.Default;\n LockedWithdrawalsAndDisconnections = StateToggle.Default;\n}\n\nexport class InvestorSettings {\n InvestorStatementButton = VisibilityToggle.Default;\n MasterListButton = VisibilityToggle.Default;\n MasterList = VisibilityToggle.Default;\n CalcInvestorFeeButton = VisibilityToggle.Default;\n ChangeSlTpButton = VisibilityToggle.Default;\n InvestorOpenOrdersTab = VisibilityExtendedToggle.Default;\n InvestorHistoryTab = VisibilityExtendedToggle.Default;\n MasterOpenOrdersTab = VisibilityToggle.Default;\n MasterHistoryTab = VisibilityToggle.Default;\n InvestorWithdrawButton = VisibilityToggle.Default;\n InvestorMmDetails = VisibilityToggle.Default;\n InvestorMmBalanceDetails = VisibilityToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n DetachAction = StateRequestToggle.Default;\n EmailNotifications = StateToggle.Default;\n DepositNotification = StateToggle.Default;\n WithdrawalNotification = StateToggle.Default;\n ConnectNotification = StateToggle.Default;\n DisconnectNotification = StateToggle.Default;\n PerformanceFeeNotification = StateToggle.Default;\n}\n\nexport interface ServerSettingsResponse {\n TicksFilterPercent: string;\n TicksFilterCount: string;\n DefaultAllocationMode: number;\n DefaultAllocationModeStr: string;\n DefaultIncentiveFee: number;\n DefaultManagementFee: number;\n DefaultAnnualManagementFee: number;\n DefaultPerLotFee: number;\n DefaultPerDealFee: number;\n MaxAnnualManagementFee: number;\n MaxIncentiveFee: number;\n MaxManagementFee: number;\n DefaultMinInvestment: number;\n EquityCalcIntervalSeconds: number;\n SwapStorageIntervalSeconds: number;\n DetachIntervalSeconds: number;\n PlanAlertTime: string;\n PlanExecutionTime: string;\n DefaultWithdrawalMethodCode: number;\n RequestAutoExecutionModeCode: number;\n CreditAutoExecutionModeCode: number;\n AttachAutoExecutionModeCode: number;\n DefaultWithdrawalMethod: WithdrawalMethod;\n RequestAutoExecutionMode: RequestAutoExecutionMode;\n CreditAutoExecutionMode: CreditAutoExecutionMode;\n AttachAutoExecutionMode: AttachAutoExecutionMode;\n UseMtCommands: boolean;\n PammServerName: string;\n PammWebInterfaceAddress: string;\n InvestorsAutoCreation: boolean;\n InvestorsAutoCreationMtServer: string;\n EmptyStatementsSending: boolean;\n RequestTab: boolean;\n ChangeMtComment: boolean;\n ChargeCommissionsBeforeWithdrawal: boolean;\n PerformZeroFeeOperations: boolean;\n StatementDisclaimer: string;\n}\n\nexport interface ServerSettingsRequest {\n TicksFilterPercent?: string;\n TicksFilterCount?: string;\n TickFilterPercent: string;\n TickFilterCount: string;\n IncludePnlToPerformanceFee: boolean;\n DefaultAllocationMode: number;\n DefaultWithdrawalMethod: number;\n RequestAutoExecutionMode: number;\n CreditAutoExecutionMode: number;\n AttachAutoExecutionMode: number;\n DefaultIncentiveFee: number;\n MaxIncentiveFee: number;\n DefaultManagementFee: number;\n MaxManagementFee: number;\n DefaultAnnualManagementFee: number;\n MaxAnnualManagementFee: number;\n DefaultPerLotFee: number;\n DefaultPerDealFee: number;\n DefaultMinInvestment: number;\n DefaultSl: number;\n DefaultTp: number;\n DefaultSo: number;\n DefaultMtServer: string;\n MmSo: number;\n SlMode: OrderMode;\n TpMode: OrderMode;\n SoMode: OrderMode;\n EcMode?: OrderMode;\n MmSoMode: OrderMode;\n DefaultEquityCallLevel: number;\n EquityCallLevelMode: OrderMode;\n EquityCallNotificationPeriod?: number;\n PlanAlertTime: string;\n PlanExecutionTime: string;\n PammWebInterfaceAddress: string;\n PammServerName: string;\n InvestorsAutoCreation: boolean;\n EmptyStatementsSending: boolean;\n RequestTab: boolean;\n ChangeMtComment: boolean;\n ChargeCommissionsBeforeWithdrawal: boolean;\n PerformZeroFeeOperations: boolean;\n BalanceOperationDistributionMode: string;\n StatementDisclaimer: string;\n InvestorsAutoDetach: boolean;\n MmOwnFundsAutoDetach: boolean;\n InvestorVolumeStepMode: string;\n InvestorVolumeStepModeCode: number;\n // IncludeCreditInEquityAndMargin: boolean;\n PerformanceFeeCalcMode: string;\n CountCreditInAllocation: boolean;\n CountCreditInWithdrawal: boolean;\n CountCreditInRiskControl: boolean;\n EnableMmInfoSharing: boolean;\n}\n\nexport class MetaTraderServerSettings {\n Guid = '';\n Name = '';\n Type = 0;\n TypeStr = '';\n FreeMarginCoef = 0.0;\n StatusStr = '';\n Id = 1;\n}\n\nexport interface EditMetaTraderServerRequest {\n ServerGuid: string;\n FreeMarginCoef: number;\n ServerName: string;\n Enabled: any;\n EnableInvestorsMtLoginsSequence: boolean;\n FirstInvestorMtLoginInSequence: number;\n}\n\nexport class EditCallbackAddressesRequest {\n Callbacks = [''];\n}\n\nexport enum EditCallbackAddressesType {\n Add = 'Add',\n Delete = 'Delete',\n Edit = 'Edit'\n}\n","/* eslint-disable no-nested-ternary */\nimport * as React from 'react';\nimport { Col, Form, Row } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Schema } from 'yup';\nimport InputUtils from '../../utils/validate-schema';\n\ninterface IInputProps {\n state: any;\n valueKey: string | number;\n labelTranslateKey?: string;\n schema: Schema;\n type: 'text' | 'password' | 'number';\n placeholder: string;\n disabled?: boolean;\n className?: string;\n style?: any;\n size?: any;\n inputStyle?: any;\n inline?: boolean;\n acceptZero?: boolean;\n setState(newState: any): void;\n validField?: boolean;\n setValidField?(state: boolean): void;\n}\n\nconst SimpleInput: React.FC = ({\n state,\n valueKey,\n schema,\n type,\n placeholder,\n setState,\n labelTranslateKey,\n disabled,\n className,\n style,\n size,\n inputStyle,\n inline,\n acceptZero,\n validField,\n setValidField\n}: IInputProps) => {\n\n const intl = useIntl();\n\n let errorMessageBody: JSX.Element = <>;\n\n const [modified, setModified] = React.useState(false);\n let isInvalid: any = false;\n\n const wrapper = (event: React.ChangeEvent) => {\n if (!modified) setModified(true);\n\n const value = (type === 'number' && event.target.value !== '') ? Number(event.target.value) : event.target.value;\n const newState = { ...state, [valueKey]: value };\n setState(newState);\n if (setValidField) setValidField(false);\n };\n if (modified) {\n isInvalid = InputUtils.validateSchema(schema, state, valueKey);\n }\n\n if (disabled) {\n errorMessageBody =
;\n } else if (isInvalid || validField) {\n isInvalid = InputUtils.validateSchema(schema, state, valueKey);\n errorMessageBody = isInvalid.errors?.map((error: string, index: number) => (\n \n {error}\n \n ));\n }\n\n // const resultClassName = `flex-fill ${className || 'simple-input_min-width'}`;\n\n let value;\n\n if (state[valueKey] === 0) {\n value = 0;\n } else if (state[valueKey]) {\n value = state[valueKey];\n } else {\n value = '';\n }\n\n const inlineInputStyle = {\n borderRight: 'none',\n borderLeft: 'none',\n borderTop: 'none',\n borderRadius: 0,\n fontSize: 11\n } as React.CSSProperties;\n\n const desktopBody = (\n <>\n \n \n {( valueKey === 'Phone'\n || valueKey === 'LinkToken'\n || valueKey === 'Country'\n || valueKey === 'MinInvestment'\n || valueKey === 'Comment'\n || labelTranslateKey === 'investorDetails.modal.editInvestor.highwatermark.label'\n || labelTranslateKey === 'investorDetails.modal.editInvestor.email.label'\n || labelTranslateKey === 'investorDetails.modal.editInvestor.name.label'\n || labelTranslateKey === 'investorDetails.modal.editInvestor.username.label'\n || labelTranslateKey === 'masterDetails.modal.editMaster.username.label'\n || labelTranslateKey === 'masterDetails.modal.editMaster.name.label'\n || labelTranslateKey === 'masterDetails.modal.editMaster.email.label'\n || labelTranslateKey === 'masterDetails.modal.editMaster.minInvestment.label'\n || labelTranslateKey === 'createAccount.investor.synchronizationInformation.mtlogin.label'\n || labelTranslateKey === 'investorDetails.modal.editInvestor.password.label'\n || labelTranslateKey === 'editUser.admin.name.label'\n || labelTranslateKey === 'pammLogin'\n || labelTranslateKey === 'editUser.admin.email.label'\n || labelTranslateKey === 'editUser.admin.password.label')\n ? null\n : *}\n \n ) => wrapper(event)}\n isInvalid={disabled ? false : isInvalid}\n size={size || null}\n className={className}\n />\n {isInvalid ? errorMessageBody :
}\n \n );\n\n const mobileBody = (\n \n \n \n \n {(valueKey === 'Phone'\n || valueKey === 'LinkToken'\n || valueKey === 'Country'\n || valueKey === 'Investments'\n || valueKey === 'MinInvestment'\n || valueKey === 'Comment'\n || valueKey === 'Server'\n || valueKey === 'MinInvestment'\n || labelTranslateKey === 'registerUser.master.mtAccountInformation.login.label'\n )\n ? null\n : *}\n \n \n \n ) => wrapper(event)}\n isInvalid={disabled ? false : isInvalid}\n size=\"sm\"\n style={inline ? inlineInputStyle : {}}\n className={className}\n />\n {isInvalid ? errorMessageBody :
}\n \n \n );\n\n return (\n labelTranslateKey\n ? (inline ? mobileBody : desktopBody) : (\n \n ) => wrapper(event)}\n isInvalid={disabled ? false : isInvalid}\n size={size || null}\n style={inputStyle || null}\n className={className}\n />\n {(isInvalid || validField) ? errorMessageBody :
}\n \n )\n );\n};\n\nexport default SimpleInput;\n","import { VisibilityToggle, StateToggle } from './toggles';\nimport { IncentiveAccount, OrderMode, Summary } from './sharedTypes';\n\nexport enum PeriodTypes {\n None = 'None',\n Daily = 'Daily',\n Weekly = 'Weekly',\n Monthly = 'Monthly',\n Quarterly = 'Quarterly'\n}\n\nexport enum CommissionType {\n Performance = 'Performance',\n AnnualManagement = 'AnnualManagement'\n}\n\nexport enum MasterMode {\n Normal = 0,\n Disabled = 1,\n Test = 2\n}\n\nexport enum GraphicsPeriodTypes {\n // Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year'\n}\n\nexport enum AllocationModes {\n ByBalance = 0,\n ByEquity = 1\n}\n\nexport class RegularPeriod {\n [index: string]: any;\n \n PeriodType = PeriodTypes.Monthly;\n PeriodDay: number | string = 1;\n PeriodTime = '';\n ReversedDays = false;\n Valid? = true;\n}\n\nexport class PaymentPeriod extends RegularPeriod {\n CommissionType = CommissionType.Performance\n}\n\nexport interface IPaymentPeriod {\n CommissionType: CommissionType;\n PeriodType: PeriodTypes;\n PeriodDay: number | string;\n PeriodTime: string;\n ReversedDays: boolean;\n Valid: boolean;\n}\n\nexport class AccountOptionsMaster {\n CalcMasterFeeButton = VisibilityToggle.Default;\n MmConnectedInvestors = VisibilityToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n ShowMmOwnFunds = VisibilityToggle.Default;\n EmailNotifications = StateToggle.Default;\n LockedWithdrawalsAndDisconnections = StateToggle.Default;\n MmChangeFeeAccountsRequest = StateToggle.Default;\n ConnectDisconnectRequestsManaging = StateToggle.Default;\n}\n\nexport class OwnFunds {\n Id = 0;\n Balance = 0;\n Credit = 0;\n Equity = 0;\n EquityNoCredit = 0;\n Profit = 0;\n FreeMargin = 0;\n FreeMarginNoCredit = 0;\n AvailableFreeMargin = 0;\n AvailableFreeMarginNoCredit = 0;\n}\n\nexport class Master {\n Login = 0;\n ServerName = '';\n MtServerType = '';\n Id = 0;\n Name = '';\n Username = '';\n Password = '';\n Email = '';\n Currency = 'USD';\n RegistrationDate = '';\n Private = false;\n Invisible = false;\n InvestorsCount = 0;\n AllocationMode = 0;\n MinInvestment = 0;\n IncentiveAccounts: Array = [new IncentiveAccount()];\n Balance = 0;\n Credit = 0;\n Equity = 0;\n EquityNoCredit = 0;\n Profit = 0;\n Margin = 0;\n FreeMargin = 0;\n FreeMarginNoCredit = 0;\n MarginLevel = 0;\n Mode = MasterMode.Normal;\n DisablingTime = null;\n TotalProfit = 0;\n Info: string | null = '';\n Bio = '';\n TermsAndConditions = '';\n PaymentPeriods: Array = [];\n StatementPeriods: Array = [new RegularPeriod()];\n UseDefaultStatementSettings = false;\n AccountOptions = new AccountOptionsMaster();\n OwnFunds = new OwnFunds();\n MtServerStatus = 0;\n MtServerStatusStr = '';\n So = '';\n SoMode = OrderMode.Off;\n MtMmAccountStatus = '';\n}\n\nexport class CreateMaster {\n LoadHistoryMonthCount = 0;\n Server = '';\n Login = 0;\n IncentiveAccounts?: Array = [new IncentiveAccount()];\n PaymentPeriods?: Array = [new PaymentPeriod()];\n StatementPeriods?: Array = [new RegularPeriod()];\n // AccountOptions = new AccountOptionsMaster();\n UseDefaultPaymentSettings = true;\n UseDefaultStatementSettings = true;\n AllocationMode = AllocationModes.ByBalance;\n MinInvestment = '';\n Name = '';\n Username = '';\n Password = '';\n Email = '';\n}\n\nexport class UpdateMaster {\n Username? = '';\n Password? = '';\n Name? = '';\n Email? = '';\n AllocationMode? = 0;\n Mode? = MasterMode.Normal;\n MinInvestment? = 0;\n Private? = false;\n Invisible? = false;\n Bio? = '';\n TermsAndConditions? = '';\n So? = 0;\n SoMode? = '';\n}\n\nexport class Order {\n MtOrderId = 0;\n Id = 0;\n MtServer = '';\n MmId = 0;\n MmLogin = 0;\n Volume = 0;\n Type = '';\n Symbol = '';\n OpenTime = '';\n OpenPrice = '';\n CloseTime = '';\n ClosePrice = '';\n Commission = 0;\n Tax = 0;\n Swap = 0;\n Profit = 0;\n Comment = 0;\n}\n\nexport enum FundsType {\n TotalFunds = 'TotalFunds',\n // eslint-disable-next-line no-shadow\n OwnFunds = 'OwnFunds'\n}\n\nexport class RegisterMaster {\n AllocationMode = 0;\n MinInvestment = 0;\n Name = '';\n Username = '';\n Email = '';\n IncentiveAccounts = [new IncentiveAccount()];\n Server = '';\n Login = 0;\n Currency = 'USD';\n Comment = '';\n}\n\nexport interface InvestorOrder {\n MasterId: number;\n CloseTime: string;\n Comment: string;\n MasterOrderId: string;\n InvestorId: number;\n Id: string;\n MtOrderId: number;\n Volume: number;\n Symbol: string;\n Direction: number;\n OpenTime: string;\n OpenPrice: number;\n ClosePrice: number;\n Profit: number;\n Commission: number;\n Tax: number;\n Swap: number;\n RemainProfit?: number | any;\n}\n\nexport interface MasterProfit {\n masterId: number;\n profitFortnight: Array;\n}\n\nexport enum IDefaultSorting {\n login = 'login',\n id = 'id',\n popularity = 'popularity',\n profit = 'profit',\n incentive = 'incentive',\n mininvestment = 'mininvestment',\n name = 'name',\n}\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport headersBuilder, { Method } from '../../../utils/request';\n\nexport const FETCH_CONFIG = 'FETCH_CONFIG';\nexport const FETCH_LANG_JSON = 'FETCH_LANG_JSON';\nexport const FETCH_CONFIG_SHARED = 'FETCH_CONFIG_SHARED';\n\ndeclare global {\n interface Window {\n gtag: any;\n }\n}\n\nexport type FetchConfigAction = {\n type: string;\n config: any;\n};\n\nexport type FetchLanguageJSONAction = {\n type: string;\n langFile: any;\n};\n\nconst fetchConfig = (config: any): FetchConfigAction => {\n return {\n type: FETCH_CONFIG,\n config\n };\n};\n\nconst fetchConfigShared = (config: any): FetchConfigAction => {\n return {\n type: FETCH_CONFIG_SHARED,\n config\n };\n};\n\nconst fetchConfigAsync = () => {\n return (dispatch: Dispatch): void => {\n fetch('/conf.json').then((response) =>\n response\n .json()\n .then((json: any) => {\n LocalStorageUtils.putValueToLocalStorage('apiUrl', json?.api);\n LocalStorageUtils.putValueToLocalStorage(\n 'hideRegisterButton',\n json.flags.hideRegisterButton.toString()\n );\n // PAMM-2341 TODO\n // LocalStorageUtils.putValueToLocalStorage(\n // 'showRequestTab',\n // json.flags.showRequestTab.toString()\n // );\n LocalStorageUtils.putValueToLocalStorage(\n 'showMmRegistrator',\n json.flags.showMmRegistrator.toString()\n );\n LocalStorageUtils.putValueToLocalStorage(\n 'enableGoogleAnalytics',\n json.flags.enableGoogleAnalytics.toString()\n );\n LocalStorageUtils.putValueToLocalStorage(\n 'customColors',\n JSON.stringify(json.customColors)\n );\n LocalStorageUtils.putValueToLocalStorage(\n 'customColorsGeneralUser',\n JSON.stringify(json.customColorsGeneralUser)\n );\n\n dispatch(fetchConfig(json));\n })\n .catch((error) => Errors.throwErrorMessage(error))\n );\n };\n};\n\nconst fetchLanguageJSON = (langFile: any): FetchLanguageJSONAction => {\n return {\n type: FETCH_LANG_JSON,\n langFile\n };\n};\n\nexport const fetchSharedSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/common/shared`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((json: any) => {\n // PAMM-2341 TODO\n // LocalStorageUtils.putValueToLocalStorage(\n // 'showRequestTab',\n // json.RequestTab.toString()\n // );\n dispatch(fetchConfigShared(json));\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n}\n\nexport const fetchLanguageJSONAsync = (lang: string) => {\n return (dispatch: Dispatch): void => {\n fetch(`/i18n/${lang}.json`)\n .then((response) => response.json())\n .then((json: any) => {\n dispatch(fetchLanguageJSON(json));\n window.gtag('event', 'PAMM_custom', {\n lang_JSON: lang\n });\n })\n .catch((error) => Errors.throwErrorMessage(error));\n };\n};\n\nexport default fetchConfigAsync;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminRegistration\":\"PasswordTooltip_adminRegistration__2-OVk\",\"masterRegistration\":\"PasswordTooltip_masterRegistration__2U2cK\",\"frame\":\"PasswordTooltip_frame__3E63z\",\"passwordRequirements\":\"PasswordTooltip_passwordRequirements__2bsd_\",\"requirementsList\":\"PasswordTooltip_requirementsList__3Mf8K\",\"requirementItem\":\"PasswordTooltip_requirementItem__WbKqX\",\"ellipse\":\"PasswordTooltip_ellipse__1TA5C\",\"requirementText\":\"PasswordTooltip_requirementText__2VzB0\",\"requirementSpecialCharacter\":\"PasswordTooltip_requirementSpecialCharacter__3jcwd\",\"specialCharacterRequirement\":\"PasswordTooltip_specialCharacterRequirement__zbwG7\"};","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { Master } from '../../../types/masterTypes';\n\nexport const FETCH_MASTER_DETAILS = 'FETCH_MASTER_DETAILS ';\nexport const FETCH_MASTER_DETAILS_DEFAULT = 'FETCH_MASTER_DETAILS_DEFAULT ';\nexport const RESET_MASTER_DETAILS = 'RESET_MASTER_DETAILS';\n\n\nexport type FetchDetailsAction = {\n type: string;\n masterDetails: Master;\n}\nexport type FetchDetailsDefaultAction = {\n type: string;\n masterDetailsDefault: Master;\n}\n\nexport const fetchMasterDetails = (master: Master): FetchDetailsAction => {\n return {\n type: FETCH_MASTER_DETAILS,\n masterDetails: master\n }\n};\n\n\nexport const fetchMasterDetailsDefault = (master: Master): FetchDetailsDefaultAction => {\n return {\n type: FETCH_MASTER_DETAILS_DEFAULT,\n masterDetailsDefault: master\n }\n};\n\nexport const resetMasterDetailsAC = () => ({ type: RESET_MASTER_DETAILS });\n\n\nfunction fetchMasterDetailsAsync(api: string, masterId: number, notAdmin?: boolean) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/masters/${masterId}?returnAccountOptionsValues=${!!notAdmin}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((master: any) => {\n if (notAdmin === true) {\n dispatch(fetchMasterDetailsDefault(master))\n } else {\n dispatch(fetchMasterDetails(master))\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchMasterDetailsAsync;\n","// const getValuesFromDateTimeString = (dateTimeString: string): Array => {\n// // String with the format 2020-04-08T08:59:20+02:00\n// const date: Array = dateTimeString.substring(0, 10).split('-');\n// const time: Array = dateTimeString.substring(11, 16).split(':');\n\n// const year: string = date[0];\n// const month: string = date[1];\n// const day: string = date[2];\n\n// const hour: string = time[0];\n// const minute: string = time[1];\n\n// return [day, month, year, hour, minute];\n// };\n\nclass PAMMDateTime {\n private date: Array;\n private time: Array;\n\n public year: string;\n public month: string;\n public day: string;\n\n public hours: string;\n public minutes: string;\n\n constructor(dateTimeString: string) {\n this.date = dateTimeString?.substring(0, 10).split('-');\n this.time = dateTimeString?.substring(11, 16).split(':');\n\n [this.year, this.month, this.day] = this.date ?? [];\n [this.hours, this.minutes] = this.time ?? [];\n }\n\n public getDateTimeEN(): string {\n return `${this.getDateEN()} - ${this.getTimeEN()}`;\n }\n\n public getDateTimeRU(): string {\n return `${this.getDateRU()} - ${this.getTimeRU()}`;\n }\n\n public getDateTimeRuUTC(timeZone: number): string {\n return `${this.getDateRU()} - ${this.getTimeRU()} \n UTC${timeZone >= 0 ? '+' : '-'}${Math.abs(timeZone) < 10 ? `0${Math.abs(timeZone)}` : Math.abs(timeZone)}:00`;\n }\n\n public getDateEN(): string {\n return `${this.month}/${this.day}/${this.year}`;\n }\n\n public getDateRU(): string {\n return `${this.day}/${this.month}/${this.year}`;\n }\n\n public getTimeEN(): string {\n // return `${(+this.hours > 12) ? `0${+this.hours - 12}` : this.hours}:${this.minutes} ${+this.hours >= 12 ? 'PM' : 'AM'}`;\n if (+this.hours > 12) {\n\n if (+this.hours === 22 || +this.hours === 23) {\n return `${+this.hours - 12}:${this.minutes} ${'PM'}`\n }\n\n return `0${+this.hours - 12}:${this.minutes} ${'PM'}`\n }\n\n if (+this.hours === 12) {\n return `${+this.hours}:${this.minutes} ${'PM'}`\n }\n\n return `${this.hours}:${this.minutes} ${'AM'}`\n }\n\n public getTimeRU(): string {\n return `${this.hours}:${this.minutes}`;\n }\n\n public getYearMonthDayTime(): string {\n return `${this.year}/${this.month}/${this.day} - ${this.hours}:${this.minutes}`;\n }\n\n public getYearMonthDay(): string {\n return `${this.year}/${this.month}/${this.day}`;\n }\n\n public getDateObject(): Date {\n const dateObj = new Date();\n\n dateObj.setUTCFullYear(Number(this.year));\n dateObj.setUTCMonth(Number(this.month) - 1);\n dateObj.setUTCDate(Number(this.day));\n\n return dateObj;\n }\n}\n\nexport const timeConverter = (timestamp: number, fromJournal?: boolean): string => {\n const a = fromJournal ? new Date(timestamp * 1000) : new Date(timestamp / 1000);\n const year = a.getFullYear();\n const month = (a.getMonth() + 1) < 10 ? `0${a.getMonth() + 1}` : a.getMonth() + 1;\n const day = a.getDate() < 10 ? `0${a.getDate()}` : a.getDate();\n const hour = a.getHours() < 10 ? `0${a.getHours()}` : a.getHours();\n const min = a.getMinutes() < 10 ? `0${a.getMinutes()}` : a.getMinutes();\n const sec = a.getSeconds() < 10 ? `0${a.getSeconds()}` : a.getSeconds();\n\n const dateTime = `${year}-${month}-${day}T${hour}:${min}:${sec}%2b03:00`;\n\n return dateTime;\n}\n\nexport const getDateFortnightAgo = (): Date => {\n const date = new Date();\n\n date.setUTCHours(0, 0, 0);\n\n date.setUTCDate(date.getDate() - 14);\n\n return date;\n}\n\nexport const getSpecificDate = (daysAgo: number, hoursAgo?: number): Date => {\n const date = new Date();\n\n date.setUTCHours(hoursAgo ? date.getUTCHours() - hoursAgo : 0, 0, 0, 0);\n\n if (daysAgo) {\n date.setUTCDate(date.getUTCDate() - daysAgo);\n }\n\n return date;\n}\n\nexport const isDateValid = (date: any): boolean => {\n return Object.prototype.toString.call(date) === '[object Date]';\n}\n\nexport const isWeekDay = (date: Date): boolean => {\n const day = date.getDay();\n\n return day !== 0 && day !== 6;\n}\n\nexport function isLeapYear(year: number) {\n if (year % 4 === 0) {\n if (year % 100 !== 0) {\n if (year % 400 === 0) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport const getMonthLength = (date: Date): number => {\n const month = date.getMonth() + 1;\n const year = date.getFullYear();\n\n switch (month) {\n case 1:\n case 3:\n case 5:\n case 7:\n case 8:\n case 10:\n case 12:\n return 31;\n case 4:\n case 6:\n case 9:\n case 11:\n return 30;\n case 2:\n return isLeapYear(year) ? 29 : 28;\n default:\n return 0;\n }\n}\n\nexport const getFromDateForRequest = (startDate: Date): string => {\n let fromMonth: string;\n let fromDay: string;\n\n if (startDate.getMonth() + 1 < 10) {\n fromMonth = `0${startDate.getMonth() + 1}`;\n } else {\n fromMonth = (startDate.getMonth() + 1).toString();\n }\n\n if (startDate.getDate() < 10) {\n fromDay = `0${startDate.getDate()}`;\n } else {\n fromDay = (startDate.getDate()).toString();\n }\n\n return `${startDate.getFullYear()}-${fromMonth}-${fromDay}`;\n};\n\nexport const getToDateForRequest = (endDate: Date): string => {\n let toMonth: string;\n let toDay: string;\n\n if (endDate.getMonth() + 1 < 10) {\n toMonth = `0${endDate.getMonth() + 1}`;\n } else {\n toMonth = (endDate.getMonth() + 1).toString();\n }\n\n if (endDate.getDate() < 10) {\n toDay = `0${endDate.getDate()}`;\n } else {\n toDay = (endDate.getDate()).toString();\n }\n\n return `${endDate.getFullYear()}-${toMonth}-${toDay}`;\n};\n\nexport function getOneDayAhead(date: Date, returnDateArray?: boolean): any {\n let leapYear = false;\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const dayOfWeek = date.getDay();\n let amountToIncrement: number;\n\n leapYear = isLeapYear(year);\n\n switch (dayOfWeek) {\n case 5:\n amountToIncrement = 3;\n break;\n case 6:\n amountToIncrement = 2;\n break;\n default:\n amountToIncrement = 1;\n break;\n }\n\n const dateObject = {\n year,\n month,\n day\n };\n\n switch (month) {\n case 1:\n case 3:\n case 5:\n case 7:\n case 8:\n case 10:\n if ((day + amountToIncrement) > 31) {\n dateObject.day = day + amountToIncrement - 31;\n dateObject.month = month + 1;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n case 4:\n case 6:\n case 9:\n case 11:\n if ((day + amountToIncrement) > 30) {\n dateObject.day = day + amountToIncrement - 30;\n dateObject.month = month + 1;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n case 2:\n if (leapYear) {\n if ((day + amountToIncrement) > 29) {\n dateObject.day = day + amountToIncrement - 29;\n dateObject.month = month + 1;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n\n if ((day + amountToIncrement) > 28) {\n dateObject.day = day + amountToIncrement - 28;\n dateObject.month = month + 1;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n case 12:\n if ((day + amountToIncrement) > 31) {\n dateObject.day = day + amountToIncrement - 31;\n dateObject.month = 1;\n dateObject.year = year + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n dateObject.day = day + amountToIncrement;\n\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n default:\n return returnDateArray ? [dateObject.year, dateObject.month, dateObject.day] : dateObject;\n }\n}\n\nexport const getMonthByNumber = (number: number): string => {\n const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n return months[number - 1];\n}\n\nexport const getUnixDawnOfTime = (): Date => {\n return new Date(1970, 0, 1);\n}\n\nexport const getHourAgo = (): Date => {\n const hourAgo = new Date();\n hourAgo.setUTCHours(hourAgo.getUTCHours() - 1);\n\n return hourAgo;\n}\n\nexport default PAMMDateTime;\n","import { Schema } from 'yup';\n\nfunction validateSchema(schema: Schema, state: S, valueKey?: keyof S): any {\n if (valueKey) {\n try {\n schema.validateSync(state[valueKey]);\n } catch (e) {\n return e;\n }\n } else {\n try {\n schema.validateSync(state);\n } catch (e) {\n return e;\n }\n }\n\n return false;\n}\n\nconst InputUtils = {\n validateSchema\n};\n\nexport default InputUtils;\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\n\nexport const FETCH_REQUESTS_COUNT = 'FETCH_REQUESTS_COUNT';\n\nexport type FetchRequestsCountAction = {\n type: string;\n count: number;\n}\n\nexport const fetchRequestsCount = (count: number): FetchRequestsCountAction => {\n return {\n type: FETCH_REQUESTS_COUNT,\n count\n };\n};\n\nfunction fetchRequestsCountAsync(api: string) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/requests/count?statusFilter=new`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((count: any) => dispatch(fetchRequestsCount(count as number)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchRequestsCountAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { GraphicsPeriodTypes } from '../../../types/masterTypes';\nimport { Summary, SummaryType } from '../../../types/sharedTypes';\nimport { getFromDateForRequest, getToDateForRequest } from '../../../utils/date-time';\nimport { setLoadingStatus } from '../../actions/setLoadingStatus';\n\nexport const FETCH_DEPOSITS = 'FETCH_DEPOSIT';\nexport const FETCH_INVESTMENTS = 'FETCH_INVESTMENTS';\nexport const FETCH_PROFIT = 'FETCH_PROFIT';\nexport const FETCH_PROFIT_PER_PERIOD = 'FETCH_PROFIT_PER_PERIOD';\nexport const FETCH_VOLUMES = 'FETCH_VOLUMES';\nexport const FETCH_INVESTORS_SUMMARY = 'FETCH_INVESTORS_SUMMARY';\n\nconst getSummaryActionType = (summaryType: SummaryType): string => {\n switch (summaryType) {\n case SummaryType.Deposits:\n return FETCH_DEPOSITS;\n case SummaryType.Investments:\n return FETCH_INVESTMENTS;\n case SummaryType.Profit:\n return FETCH_PROFIT;\n case SummaryType.Volumes:\n return FETCH_VOLUMES;\n case SummaryType.Investors:\n return FETCH_INVESTORS_SUMMARY;\n default:\n return '';\n }\n}\n\nexport type FetchSummaryAction = {\n type: string;\n summary: Array;\n};\n\nconst fetchSummary = (summary: Array, summaryType: string): FetchSummaryAction => {\n return {\n type: summaryType,\n summary\n };\n};\n\nconst fetchSummaryAsync = (api: string, period: GraphicsPeriodTypes, summaryType: SummaryType, dateFrom: Date, dateTo: Date, id?: number, calcMethod?: string) => {\n let base = '';\n let query = '';\n\n // const dateTimeDateFrom = timeConverter(Math.round(dateFrom.getTime() * 1000));\n // const dateTimeDateTo = timeConverter(Math.round(dateTo.getTime() * 1000));\n const dateTimeDateFrom = getFromDateForRequest(dateFrom);\n const dateTimeDateTo = getToDateForRequest(dateTo);\n\n if (id) {\n base = `/${id}?period=${period}`;\n } else {\n base = `?period=${period}`;\n }\n\n if (dateFrom) query += `&from=${dateTimeDateFrom}`;\n if (dateTo) query += `&to=${dateTimeDateTo}`;\n if (calcMethod) query += `&calcMethod=${calcMethod}`;\n\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/summary/${summaryType}${base}${query}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchSummary(data, getSummaryActionType(summaryType))))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchSummaryAsync;\n","const getCurrencySymbol = (currency: any , currenciesConfig?: Record): string => {\n // switch (currency) {\n // case 'USD':\n // return '$';\n // case 'EUR':\n // return '€';\n // case 'GBP':\n // return '£';\n // case 'CHF':\n // return '₣';\n // case 'JPY':\n // return '¥';\n // default:\n // return '';\n // }\n let result = '';\n if (currenciesConfig) {\n const currenciesConfigArray = Object.keys(currenciesConfig)\n \n if (currenciesConfigArray.includes(currency)) {\n result = currenciesConfig[currency];\n }\n\n else result = currency\n \n }\n return result;\n};\n\nexport default getCurrencySymbol;\n","export const mobileWidth = 959;\nexport const phoneToTabletBreakPoint = 750;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal-overlay\":\"StorePopupModal_modal-overlay__11hNg\",\"modal-content\":\"StorePopupModal_modal-content__29aPR\",\"explore-button\":\"StorePopupModal_explore-button__HEnXm\",\"explore-href\":\"StorePopupModal_explore-href__1nsLY\",\"custom-title\":\"StorePopupModal_custom-title__2ka4W\",\"custom-body\":\"StorePopupModal_custom-body__3itGj\"};","import { Investor } from '../types/investorTypes';\n\nexport function abbreviatedNumber(value: number): string {\n if (value >= 1_000_000 && value < 1_000_000_000) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return `${spaceSeparatedThousands(+(value / 1_000_000).toFixed(2))} mln`;\n } \n if (value >= 1_000_000_000) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return `${spaceSeparatedThousands(+(value / 1_000_000_000).toFixed(2))} bln`;\n }\n\n return value.toString();\n}\n\nexport function spaceSeparatedThousands(value: number, noDecimals?: boolean, masterDetailsBox?: boolean): string {\n if (Math.abs(value) >= 1_000_000 && masterDetailsBox) {\n return abbreviatedNumber(Math.abs(value));\n }\n\n if (!value) return '0';\n\n if (Number.isNaN(value % 10)) {\n return '-';\n }\n\n const nStr = value.toString();\n const x = nStr.split('.');\n let x1 = x[0];\n\n // Change for showing either a dot or a comma\n const x2 = x.length > 1 ? `.${ x[1]}` : '.00';\n const rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n // eslint-disable-next-line no-useless-concat\n x1 = x1.replace(rgx, '$1' + ' ' + '$2');\n }\n return noDecimals ? x1 : (x1 + x2);\n}\n\nexport function getEquityOverInvestments(investor: Investor): number {\n if (!investor?.Investments) {\n return 0;\n }\n\n return Number(((investor.Equity - investor.Investments) / Math.abs(investor.Investments) * 100).toFixed(2));\n}\n\nexport const getSign = (value: number): string => {\n if (value > 0) {\n return '+';\n } if (value < 0) {\n return '-';\n }\n\n return '';\n};\n","import { RegularPeriod } from './masterTypes';\nimport { RequestSchedule } from './requestTypes';\nimport { OperationType } from './settingsTypes';\n\nimport { IncentiveAccount, OrderMode } from './sharedTypes';\nimport { VisibilityToggle, StateToggle, StateRequestToggle, VisibilityExtendedToggle } from './toggles';\n\nexport enum PeriodTypes {\n None = 'None',\n Daily = 'Daily',\n Weekly = 'Weekly',\n Monthly = 'Monthly',\n Quarterly = 'Quarterly'\n}\n\nexport enum GraphicsPeriodTypes {\n // Hour = 'Hour',\n Day = 'Day',\n Week = 'Week',\n Fortnight = 'Fortnight',\n Month = 'Month',\n Year = 'Year'\n}\n\nexport class AccountOptionsInvestor {\n InvestorStatementButton = VisibilityToggle.Default;\n MasterListButton = VisibilityToggle.Default;\n MasterList = VisibilityToggle.Default;\n CalcInvestorFeeButton = VisibilityToggle.Default;\n ChangeSlTpButton = VisibilityToggle.Default;\n InvestorOpenOrdersTab = VisibilityExtendedToggle.Default;\n InvestorHistoryTab = VisibilityExtendedToggle.Default;\n MasterOpenOrdersTab = VisibilityToggle.Default;\n MasterHistoryTab = VisibilityToggle.Default;\n InvestorWithdrawButton = VisibilityToggle.Default;\n InvestorCreditButton = VisibilityToggle.Default;\n InvestorMmDetails = VisibilityToggle.Default;\n InvestorMmBalanceDetails = VisibilityToggle.Default;\n OrdersCommissions = VisibilityToggle.Default;\n DetachAction = StateRequestToggle.Default;\n EmailNotifications = StateToggle.Default;\n DepositNotification = StateToggle.Default;\n WithdrawalNotification = StateToggle.Default;\n ConnectNotification = StateToggle.Default;\n DisconnectNotification = StateToggle.Default;\n PerformanceFeeNotification = StateToggle.Default;\n AnnualManagementFeeNotification = StateToggle.Default;\n}\n\nexport enum InvestorMode {\n Normal = 0,\n Suspended = 1,\n AttemptingDetach = 2,\n Disabled = 3\n}\n\nexport class IncentiveSummary {\n IncentiveFee = 0;\n ConnectionFee = 0;\n ManagementFee = 0;\n AnnualManagementFee = 0;\n PerLotFee = 0;\n PerDealFee = 0;\n}\n\nexport class Investor {\n Id = 0;\n Name = '';\n Username = '';\n LinkToken = '';\n Country = '';\n Phone = '';\n Email = '';\n Currency = 'USD';\n Sl = 0;\n Tp = 0;\n So = 0;\n SlPercent = 0;\n TpPercent = 0;\n SoPercent = 0;\n EquityCallLevel = 0;\n SlMode = OrderMode.Off;\n TpMode = OrderMode.Off;\n SoMode = OrderMode.Off;\n EquityCallLevelMode = OrderMode.Off;\n MasterId = 0;\n IsOwnFunds = false;\n Balance = 0;\n Investments = 0;\n Credit = 0;\n LastChargeBalance = 0;\n LastChargeTime = '';\n Equity = 0;\n EquityNoCredit = 0;\n Margin = 0;\n FreeMargin = 0;\n FreeMarginNoCredit = 0;\n MarginLevel = 0;\n AvailableFreeMargin = 0;\n AvailableFreeMarginNoCredit = 0;\n Mode = InvestorMode.Normal;\n DisablingTime = null;\n AttachTime = '';\n CreationTime = '';\n TotalProfit = 0;\n HighWaterMark = 0;\n CurrentProfit = 0;\n Profit = 0;\n IncentiveAccountsServer = '';\n IncentiveAccounts = [new IncentiveAccount()];\n IncentiveSummary = new IncentiveSummary();\n AccountOptions = new AccountOptionsInvestor();\n Server = '';\n MtServerType = '';\n StatementPeriods: Array = [new RegularPeriod()];\n IsTestInvestor = false;\n Login = 0;\n MmName = '';\n Password = '';\n UseDefaultStatementSettings = false;\n DisconnectEquity = 0;\n MmMtServerType = '';\n MmMtServer = '';\n MmMtLogin = 0;\n\n}\n\nexport interface IInvestorsReport {\n Name: string;\n MtServerGuid: string;\n MtLogin: number;\n Id: number;\n Mm: number;\n Balance: number;\n Equity: number;\n Credit: number;\n DisconnectEquity: number;\n Investments: number;\n Profit: number;\n TotalProfit: number;\n CreatedAt: number;\n}\n\nexport class CreateInvestor {\n Username = '';\n Password = '';\n Name = '';\n Email = '';\n Phone = '';\n Country = '';\n LinkToken = '';\n Currency = 'USD';\n UseDefaultMtServer = true;\n Server? = '';\n IncentiveAccountsServer = '';\n IncentiveAccounts?: Array = [new IncentiveAccount()];\n StatementPeriods?: Array = [new RegularPeriod()];\n UseDefaultStatementSettings = true;\n Login? = 0;\n}\n\nexport class UpdateInvestor {\n Username? = '';\n Name? = '';\n Password? = '';\n Email? = '';\n Country? = '';\n Phone? = '';\n LinkToken? = '';\n Mode? = InvestorMode.Normal;\n SlMode? = '';\n Sl? = 0;\n TpMode? = '';\n Tp? = 0;\n SoMode? = '';\n So? = 0;\n EquityCallLevelMode? = '';\n EquityCallLevel? = 0;\n HighWaterMark? = 0;\n MinInvestment? = 10000;\n IsTestInvestor? = false;\n Bio? = '';\n}\n\nexport class UpdateInvestorBalance {\n AccountId = 0;\n Amount = 0;\n Currency = '';\n Schedule? = RequestSchedule.Instant;\n Method? = '';\n Comment = '';\n CheckMargin? = true;\n OperationType? = OperationType.Balance;\n}\n\nexport class UpdateInvestorBalanceTransfer {\n FromInvestorId = 0;\n ToInvestorId = 0;\n Amount = 0;\n Currency = '';\n Method? = '';\n Comment? = '';\n\n}\n\nexport enum UpdateBalanceType {\n Deposit = 'Deposit',\n Withdrawal = 'Withdrawal'\n}\n\nexport enum UpdateCreditType {\n CreditIn = 'CreditIn',\n CreditOut = 'CreditOut'\n}\n\nexport class CreateInvestorFeeSetFlags {\n connectionFeeEnabled = false;\n performanceFeeEnabled = false;\n managementFeeEnabled = false;\n annualManagementFeeEnabled = false;\n perLotDealFeeEnabled = false;\n}\n\nexport class RegisterInvestor {\n Name = '';\n Username = '';\n Country = '';\n Phone = '';\n Email = '';\n Currency = 'USD';\n Investments = 0;\n Comment = '';\n}\n\nexport class UpdateInvestorCredit {\n AccountId = 0;\n Amount = 0;\n Currency = '';\n Schedule? = RequestSchedule.Instant;\n Comment = '';\n Expiration? = 0;\n}\n\nexport class CalcIncentiveFee {\n Ids = [0];\n}\n\nexport enum LimitOrderTypes {\n Sl = 'Sl',\n Tp = 'Tp',\n So = 'So',\n Ec = 'Ec'\n}\n\nexport interface IInvestorsMassAction {\n InvestorIds: Array;\n}\n\nexport interface IInvestorsMassAttach extends IInvestorsMassAction {\n MasterId: number;\n}\n\n","import { Investor } from '../types/investorTypes';\n\nexport const getEquityOverInvestments = (investor: Investor): number | string => {\n if (!investor?.Investments) {\n return 0;\n }\n const equityOverInvestments = Number(((investor?.EquityNoCredit - investor?.Investments) / Math.abs(investor?.Investments) * 100).toFixed(2));\n \n if (equityOverInvestments > 0) {\n return `+${Number(((investor?.EquityNoCredit - investor?.Investments) / Math.abs(investor?.Investments) * 100).toFixed(2))}`\n }\n\n return Number(((investor?.EquityNoCredit - investor?.Investments) / Math.abs(investor?.Investments) * 100).toFixed(2));\n}\n\nexport const getEquityOverInvestmentsCredit = (investor: Investor): number | string => {\n if (!investor?.Investments) {\n return 0;\n }\n const equityOverInvestments = Number(((investor?.Equity - investor?.Investments) / Math.abs(investor?.Investments) * 100).toFixed(2));\n \n if (equityOverInvestments > 0) {\n return `+${Number(((investor?.Equity - investor?.Investments) / Math.abs(investor?.Investments) * 100).toFixed(2))}`\n }\n\n return Number(((investor?.Equity - investor?.Investments) / Math.abs(investor?.Investments) * 100).toFixed(2));\n}\n","/* eslint-disable no-nested-ternary */\nimport { Dispatch } from 'redux';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport Errors from '../../../shared/validation/errors';\nimport setLoadingStatus, { setLoadingStatusConnectedInvestors } from '../setLoadingStatus';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Investor } from '../../../types/investorTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport const FETCH_INVESTORS = 'FETCH_INVESTORS';\nexport const RESET_DATA_INVESTORS = 'RESET_DATA_INVESTORS';\nexport const UPDATE_INVESTORS = 'UPDATE_INVESTORS';\nexport const SELECTED_LINKED_ACCOUNT = 'SELECTED_LINKED_ACCOUNT';\n\nexport type FetchInvestorsAction = {\n type: string;\n investors: Array;\n paginationInfo: PaginationInfo;\n};\n\nexport type selectedLinkedAccountAction = {\n type: string;\n isSelected: boolean;\n}\n\nexport const selectedLinkedAccountAC = (isSelected: boolean): selectedLinkedAccountAction => {\n return {\n type: SELECTED_LINKED_ACCOUNT,\n isSelected\n };\n};\n\nexport const fetchInvestors = (\n investors: Array,\n paginationInfo: PaginationInfo,\n): FetchInvestorsAction => {\n return {\n type: FETCH_INVESTORS,\n investors,\n paginationInfo,\n };\n};\n\n\nexport const resetDataInvestorsAC = () => ({ type: RESET_DATA_INVESTORS });\n\nexport const updateInvestorsAC = (investors: any) => ({ type: UPDATE_INVESTORS, investors });\n\nfunction buildQueryString(params: {\n page?: number;\n limit?: number;\n linkToken?: string;\n filter?: string;\n query?: string;\n sortField?: string;\n direction?: string;\n mmId?: number;\n}): string {\n let queryString = `?page=${params.page}`;\n\n if (params.limit) queryString += `&limit=${params.limit}`;\n if (params.filter) queryString += `&filter=${params.filter}`;\n if (params.query) queryString += `&query=${params.query}`;\n if (params.sortField) queryString += `&sortField=${params.sortField}`;\n if (params.direction) queryString += `&direction=${params.direction}`;\n if (params.mmId) queryString += `&masterId=${params.mmId}`;\n if (params.linkToken) queryString += `&linkToken=${params.linkToken}`;\n\n return queryString;\n}\n\nfunction initializeLocalStorage() {\n if (!LocalStorageUtils.localStorageKeyExists('investors')) {\n LocalStorageUtils.putValuesToLocalStorage('investors', [\n 'id=true',\n 'mtLogin=true',\n 'name=true',\n 'currency=true',\n 'balance=true',\n 'credit=true',\n 'equity=true',\n 'profit=true',\n 'margin=true',\n 'masterId=true',\n 'mmMtServerType=true',\n 'mmMtServer=true',\n 'mmMtLogin=true',\n 'masterName=true'\n ]);\n }\n}\n\nfunction fetchInvestorsData(api: string, queryString: string, dispatch: Dispatch) {\n dispatch(setLoadingStatus(true));\n dispatch(setLoadingStatusConnectedInvestors(true));\n\n fetch(`${api}/investors${queryString}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchInvestors(data.Data, data.PaginationInfo)))\n .catch((error: Error) => {\n Errors.throwErrorMessage(error);\n })\n .finally(() => {\n dispatch(setLoadingStatusConnectedInvestors(false));\n dispatch(setLoadingStatus(false));\n });\n}\n\nfunction fetchInvestorsAsync(\n api: string,\n linkToken?: string,\n filter?: boolean,\n mmId?: number,\n page?: number,\n limit?: number,\n query?: string,\n sortField?: string,\n direction?: string\n): (dispatch: Dispatch) => void {\n\n initializeLocalStorage();\n\n const queryString = buildQueryString({\n page,\n limit,\n linkToken,\n filter: filter ? 'disabled' : undefined,\n query,\n sortField,\n direction,\n mmId\n });\n\n return (dispatch: Dispatch) => {\n fetchInvestorsData(api, queryString, dispatch);\n };\n}\n\n\nexport function fetchInvestorsListAdminAsync(\n api: string,\n linkToken?: string,\n showInactive?: boolean,\n showTest?: boolean,\n mmId?: number,\n page?: number,\n limit?: number,\n query?: string,\n sortField?: string,\n direction?: string\n): (dispatch: Dispatch) => void {\n\n initializeLocalStorage();\n\n const queryString = buildQueryString({\n page,\n limit,\n linkToken,\n filter: showInactive ? 'disabled' : showTest ? 'test' : undefined,\n query,\n sortField,\n direction,\n mmId\n });\n\n return (dispatch: Dispatch) => {\n fetchInvestorsData(api, queryString, dispatch);\n };\n}\n\n\nexport default fetchInvestorsAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { GraphicsPeriodTypes } from '../../../types/masterTypes';\nimport { Summary } from '../../../types/sharedTypes';\nimport { getFromDateForRequest, getToDateForRequest } from '../../../utils/date-time';\n\nexport const FETCH_PROFIT = 'FETCH_PROFIT';\nexport const FETCH_PROFIT_PER_PERIOD = 'FETCH_PROFIT_PER_PERIOD';\nexport const FETCH_ARRAY_OF_PROFITS = 'FETCH_ARRAY_OF_PROFITS';\nexport const FETCH_PROFIT_OVERALL = 'FETCH_PROFIT_OVERALL';\n\nexport type FetchProfitAction = {\n type: string;\n profitFortnight: Array;\n};\n\nexport type FetchArrayOfProfitsAction = {\n type: string;\n masterId: number;\n profitFortnight: Array;\n};\n\nconst fetchProfit = (profitFortnight: Array): FetchProfitAction => {\n return {\n type: FETCH_PROFIT,\n profitFortnight\n };\n};\n\nconst fetchProfitPerPeriod = (profitFortnight: Array): FetchProfitAction => {\n return {\n type: FETCH_PROFIT_PER_PERIOD,\n profitFortnight\n };\n};\n\nconst fetchProfitOverall = (profitFortnight: Array): FetchProfitAction => {\n return {\n type: FETCH_PROFIT_OVERALL,\n profitFortnight\n };\n};\n\nconst fetchArrayOfProfits = (masterId: number, profitFortnight: Array): FetchArrayOfProfitsAction => {\n return {\n type: FETCH_ARRAY_OF_PROFITS,\n masterId,\n profitFortnight\n };\n};\n\nconst fetchProfitAsync = (api: string, id: number, period: GraphicsPeriodTypes, dateFrom: Date, dateTo: Date, calcMethod?: string, isArray?: boolean, isAuth?: boolean, modeProfit?: string) => {\n\n let query = `${id}?period=${period}`;\n\n const dateTimeDateFrom = getFromDateForRequest(dateFrom);\n const dateTimeDateTo = getToDateForRequest(dateTo);\n\n if (dateFrom) query += `&from=${dateTimeDateFrom}`;\n if (dateTo) query += `&to=${dateTimeDateTo}`;\n if (calcMethod) query += `&calcMethod=${calcMethod}`;\n if (modeProfit) query += `&mode=${modeProfit}`;\n\n\n return (dispatch: Dispatch): void => {\n // TODO fetch\n fetch(`${api}/summary/profit/${query}`, !isAuth ? headersBuilder(Method.GET) : {\n method: 'GET',\n body: undefined,\n headers: {\n 'Content-Type': 'application/json',\n }\n })\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => {\n if (calcMethod === 'running') {\n dispatch(fetchProfitPerPeriod(data));\n } \n else if (calcMethod === 'RunningWithPreviousValue') {\n dispatch(fetchProfitOverall(data));\n } \n else {\n dispatch(fetchProfit(data));\n }\n\n if (isArray) {\n dispatch(fetchArrayOfProfits(id, data));\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchProfitAsync;\n","import { Dispatch } from 'redux';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport Errors from '../../../shared/validation/errors';\nimport setLoadingStatus from '../setLoadingStatus';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Master } from '../../../types/masterTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport { PAMMState } from '../../reducers/rootReducer';\nimport { AccountType } from '../../../types/authTypes';\nimport { fetchMasterDetails } from './fetchMasterDetails';\n\nexport const FETCH_MASTERS = 'FETCH_MASTERS';\nexport const FETCH_MASTERS_DEFAULT = 'FETCH_MASTERS_DEFAULT';\n\nexport type FetchMastersAction = {\n type: string;\n masters: Array;\n paginationInfo: PaginationInfo;\n};\n\nexport const fetchMasters = (\n masters: Array,\n paginationInfo: PaginationInfo\n): FetchMastersAction => {\n return {\n type: FETCH_MASTERS,\n masters,\n paginationInfo\n };\n};\n\n// masters default details on investors pages\nexport type FetchMastersDefaultAction = {\n type: string;\n mastersDefault: Array;\n paginationInfo: PaginationInfo;\n};\n\nexport const fetchMastersDefault = (\n mastersDefault: Array,\n paginationInfo: PaginationInfo\n): FetchMastersDefaultAction => {\n return {\n type: FETCH_MASTERS_DEFAULT,\n mastersDefault,\n paginationInfo\n };\n};\n\n// TODO переделать получение инфы о пользователе\nexport const getInfoMastersThunkAC =\n () =>\n async (dispatch: Dispatch, getState: () => PAMMState): Promise => {\n const { api } = getState().configReducer;\n const userLS = LocalStorageUtils.getValueFromLocalStorage('user');\n const userInfoAtLSJson = userLS ? JSON.parse(userLS) : {};\n\n // TODO исправить бек на инвесторе Value на MM Values\n const generateAccountOptions = () => {\n switch (userInfoAtLSJson.AccountType) {\n case AccountType.Master:\n return 'returnAccountOptionsValues=true';\n\n case AccountType.Investor:\n return 'returnAccountOptionsValue=true';\n\n default:\n return '';\n }\n };\n\n const generateFetchRoute = () => {\n switch (userInfoAtLSJson.AccountType) {\n case AccountType.Master:\n return 'masters';\n\n case AccountType.Admin:\n return 'admins';\n\n case AccountType.Investor:\n return 'investors';\n\n default:\n return '';\n }\n };\n if (userInfoAtLSJson.AccountType !== AccountType.Admin) {\n try {\n await dispatch(setLoadingStatus(true));\n const response = await fetch(\n `${api}/${generateFetchRoute()}/${userInfoAtLSJson?.Id}?${generateAccountOptions()}`,\n headersBuilder(Method.GET)\n );\n const userData = await response.json();\n const updateUser = {\n ...userInfoAtLSJson,\n AccountInfo: userData\n };\n LocalStorageUtils.putValueToLocalStorage('user', JSON.stringify(updateUser));\n dispatch(setLoadingStatus(false));\n } catch (e) {\n if (e instanceof Error) {\n Errors.throwErrorMessage(e);\n } else {\n Errors.throwErrorMessage(new Error(String(e)));\n }\n }\n }\n };\n\nfunction fetchMastersAsync(\n api: string,\n showInactive: boolean,\n showTest: boolean,\n hideNegativeProfitMasters: boolean | null,\n page?: number,\n limit?: number | string,\n query?: string,\n sortField?: string,\n direction?: string,\n returnAccountOptionsValues?: boolean | null,\n isAuth?: boolean\n): any {\n let queryString = `?page=${page}`;\n\n if (hideNegativeProfitMasters) {\n queryString += '&hideNegativeProfitMasters=true';\n } else {\n queryString += '&hideNegativeProfitMasters=false';\n }\n if (limit) queryString += `&limit=${limit}`;\n if (query) queryString += `&query=${query}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (direction) queryString += `&direction=${direction}`;\n if (returnAccountOptionsValues) queryString += `&returnAccountOptionsValues=${returnAccountOptionsValues}`;\n if (showInactive && showTest) {\n queryString += '&filter=disabled,test';\n } else if (showInactive) {\n queryString += '&filter=disabled';\n } else if (showTest) {\n queryString += '&filter=test';\n }\n\n if (!LocalStorageUtils.localStorageKeyExists('masters')) {\n LocalStorageUtils.putValuesToLocalStorage('masters', [\n 'id=true',\n 'login=true',\n 'name=true',\n 'currency=true',\n 'balance=true',\n 'credit=true',\n 'equity=true',\n 'profit=true',\n 'margin=true',\n 'ownFunds=true',\n 'connect=true'\n ]);\n }\n\n if (!LocalStorageUtils.localStorageKeyExists('showInactiveMasters')) {\n LocalStorageUtils.putValueToLocalStorage('showInactiveMasters', 'false');\n }\n\n if (!LocalStorageUtils.localStorageKeyExists('showTestMasters')) {\n LocalStorageUtils.putValueToLocalStorage('showTestMasters', 'false');\n }\n\n if (!LocalStorageUtils.localStorageKeyExists('hideNegativeProfitMasters')) {\n LocalStorageUtils.putValueToLocalStorage('hideNegativeProfitMasters', 'false');\n }\n\n return (dispatch: Dispatch) => {\n dispatch(setLoadingStatus(true));\n// TODO fetch\n fetch(`${api}/masters${!isAuth ? '' : '/shared'}${queryString}`, !isAuth ? headersBuilder(Method.GET) : {\n method: 'GET',\n body: undefined,\n headers: {\n 'Content-Type': 'application/json',\n }\n })\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => {\n if (returnAccountOptionsValues) {\n dispatch(fetchMastersDefault(data.Data, data.PaginationInfo))\n } else {\n dispatch(fetchMasters(data.Data, data.PaginationInfo))\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n}\n\nexport default fetchMastersAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { MetaTraderServerSettings, EditMetaTraderServerRequest } from '../../../types/settingsTypes';\nimport setLoadingStatus, { checkMtServersUpdate } from '../setLoadingStatus';\n\nexport const FETCH_CONNECTED_MT_SERVERS = 'FETCH_CONNECTED_MT_SERVERS';\nexport const FETCH_MT_SERVERS_DISABLED = 'FETCH_MT_SERVERS_DISABLED';\nexport const FETCH_MT_SERVERS_ENABLED = 'FETCH_MT_SERVERS_ENABLED';\nexport const FETCH_MT_SERVERS_SHARED = 'FETCH_MT_SERVERS_SHARED';\n\nexport type FetchMtServersSettingsAction = {\n type: string;\n settings: Array;\n};\n\nconst fetchMtServersSettings = (settings: Array): FetchMtServersSettingsAction => {\n return {\n type: FETCH_CONNECTED_MT_SERVERS,\n settings\n };\n};\n\nconst fetchMtServersSettingsDisabled = (settings: Array): FetchMtServersSettingsAction => {\n return {\n type: FETCH_MT_SERVERS_DISABLED,\n settings\n };\n};\n\nconst fetchMtServersSettingsEnabled = (settings: Array): FetchMtServersSettingsAction => {\n return {\n type: FETCH_MT_SERVERS_ENABLED,\n settings\n };\n};\n\nconst fetchMtServersSettingsShared = (settings: Array): FetchMtServersSettingsAction => {\n return {\n type: FETCH_MT_SERVERS_SHARED,\n settings\n };\n};\n\nconst fetchMtServersSettingsAsync = (api: string, filter?: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n if (!filter) {\n fetch(`${api}/settings/mtServers`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => dispatch(fetchMtServersSettings(addresses)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n } else {\n fetch(`${api}/settings/mtServers?filter=${filter || ''}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => {\n if (filter === 'disabled') {\n dispatch(fetchMtServersSettingsDisabled(addresses))\n } \n if (filter === 'enabled') {\n dispatch(fetchMtServersSettingsEnabled(addresses))\n }\n if (filter === undefined) {\n dispatch(fetchMtServersSettings(addresses))\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n }\n};\n\nexport const editServerSettingsAsync = (api: string, request: EditMetaTraderServerRequest) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/mtServers`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then(() => {\n toast.success('Connected Meta Trader servers settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .then(() => dispatch(checkMtServersUpdate(true)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n }\n};\n\nexport const fetchSharedMtServersSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/settings/mtServers/shared`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((json: any) => {\n dispatch(fetchMtServersSettingsShared(json));\n })\n .catch((error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchMtServersSettingsAsync;\n","import { ConfigFlags, ItfbStorePopupModal, SharedConfig, IframePage } from '../../types/sharedTypes';\nimport { FETCH_CONFIG, FetchConfigAction, FETCH_LANG_JSON, FetchLanguageJSONAction, FETCH_CONFIG_SHARED } from '../actions/shared/fetchConfig';\n\nexport interface ConfigState {\n api: string;\n copyright: string;\n customColor: string;\n customColorsGeneralUser: Record;\n languages: Record;\n loginPageDisclaimer: string;\n redirectRegistrationURL: string;\n welcomeMessage: string;\n langFile: Record;\n flags: ConfigFlags;\n defaultLanguage: string;\n defaultSorting: Record;\n currency: Record;\n tfbStorePopupModal: ItfbStorePopupModal;\n sharedConfig: SharedConfig;\n iframePage: IframePage;\n enableAuthorizationViaMt: boolean;\n mtServersIdsForAuthorization: Array;\n}\n\nconst initialState: ConfigState = {\n api: '',\n copyright: '',\n customColor: '',\n customColorsGeneralUser: {},\n languages: {},\n loginPageDisclaimer: '',\n redirectRegistrationURL: '',\n welcomeMessage: '',\n langFile: {},\n flags: {} as ConfigFlags,\n defaultLanguage: '',\n defaultSorting: {},\n currency: {},\n sharedConfig: {} as SharedConfig,\n iframePage: {} as IframePage,\n tfbStorePopupModal: {} as ItfbStorePopupModal,\n enableAuthorizationViaMt: true,\n mtServersIdsForAuthorization: []\n};\n\nconst configReducer = (state: ConfigState = initialState, action: FetchConfigAction & FetchLanguageJSONAction): ConfigState => {\n switch (action.type) {\n case FETCH_CONFIG:\n return {\n ...state,\n api: action.config.api,\n copyright: action.config.copyright,\n customColor: action.config.customColor,\n customColorsGeneralUser: action.config.customColorsGeneralUser,\n languages: action.config.languages,\n loginPageDisclaimer: action.config.loginPageDisclaimer,\n redirectRegistrationURL: action.config.redirectRegistrationURL,\n welcomeMessage: action.config.welcomeMessage,\n flags: action.config.flags,\n defaultLanguage: action.config.defaultLanguage,\n defaultSorting: action.config.defaultSorting,\n currency: action.config.currency,\n iframePage: action.config.iframePage,\n tfbStorePopupModal: action.config.tfbStorePopupModal,\n enableAuthorizationViaMt: action.config.enableAuthorizationViaMt,\n mtServersIdsForAuthorization: action.config.mtServersIdsForAuthorization\n };\n case FETCH_LANG_JSON:\n return {\n ...state,\n langFile: action.langFile\n }\n case FETCH_CONFIG_SHARED:\n return {\n ...state, \n sharedConfig: action.config\n }\n default:\n return state;\n }\n}\n\nexport default configReducer;\n","import {\n LOGIN,\n LOGOUT,\n AuthAction,\n LOGIN_START,\n LOGIN_SUCCESS,\n LOGIN_RESET_STATE\n} from '../actions/auth';\n// import LocalStorageUtils from '../../utils/local-storage';\nimport { User } from '../../types/authTypes';\n\nexport interface AuthState {\n isAuthenticated: boolean;\n user: User;\n isLoading: boolean;\n success: boolean;\n}\n\nconst initialState: AuthState = {\n isAuthenticated: false,\n user: {} as User,\n isLoading: false,\n success: false\n};\n\nconst authReducer = (state: AuthState = initialState, action: AuthAction): AuthState => {\n switch (action.type) {\n case LOGIN:\n return {\n ...state,\n isAuthenticated: true,\n user: action.user\n };\n case LOGOUT:\n return {\n ...state,\n isAuthenticated: false,\n user: {} as User\n };\n\n case LOGIN_START:\n return {\n ...state,\n isLoading: true\n };\n\n case LOGIN_SUCCESS:\n return {\n ...state,\n isLoading: false,\n success: true\n };\n\n case LOGIN_RESET_STATE:\n return {\n ...state,\n isLoading: false,\n success: false\n };\n\n default:\n return state;\n }\n};\n\nexport default authReducer;\n","import {\n FETCH_INVESTORS,\n FetchInvestorsAction,\n RESET_DATA_INVESTORS,\n UPDATE_INVESTORS,\n SELECTED_LINKED_ACCOUNT,\n selectedLinkedAccountAction\n} from '../../actions/investor/fetchInvestors';\nimport { IInvestorsReport, Investor } from '../../../types/investorTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport { FetchInvestorsReportAction, FETCH_INVESTORS_REPORT } from '../../../components/administrator/investorsReport/fetchInvestorsReport';\n// TODO delete a field isSelected\nexport interface InvestorsState {\n investors: Array;\n investorsReport: Array;\n paginationInfo: PaginationInfo;\n isSelected: boolean;\n}\n\nconst initialState: InvestorsState = {\n investors: [],\n investorsReport: [],\n paginationInfo: new PaginationInfo(),\n isSelected: false,\n};\n\nconst investorsReducer = (\n state: InvestorsState = initialState,\n action: FetchInvestorsAction & selectedLinkedAccountAction & FetchInvestorsReportAction\n): InvestorsState => {\n switch (action.type) {\n case FETCH_INVESTORS:\n return {\n ...state,\n investors: action.investors,\n paginationInfo: action.paginationInfo\n };\n case RESET_DATA_INVESTORS:\n return {\n ...state,\n investors: [],\n paginationInfo: new PaginationInfo(),\n isSelected: false\n };\n case UPDATE_INVESTORS:\n return {\n ...state,\n investors: [...action.investors],\n };\n case SELECTED_LINKED_ACCOUNT:\n return {\n ...state,\n isSelected: action.isSelected,\n };\n case FETCH_INVESTORS_REPORT:\n return {\n ...state,\n investorsReport: action.investorsReport,\n paginationInfo: action.paginationInfo\n };\n\n // case INVESTORS_SORT_BY_EQUITY_UP:\n // return {\n // ...state,\n // investors: state.investors.sort((a, b) => )\n // }\n\n default:\n return state;\n }\n};\n\nexport default investorsReducer;\n","import {\n FETCH_INVESTOR_DETAILS,\n FetchInvestorDetailsAction,\n FETCH_INVESTOR_DETAILS_FALSE,\n FETCH_INVESTOR_DETAILS_ATTACH_DETACH\n} from '../../actions/investor/fetchInvestorDetails';\nimport { Investor } from '../../../types/investorTypes';\nimport { RESET_DETAIL_INVESTOR } from '../../actions/investor/investorDetail';\n\nexport interface InvestorDetailsState {\n investor: Investor;\n investorFalse: Investor;\n investorAttachDetachRequests: Investor;\n}\n\nconst initialState: InvestorDetailsState = {\n investor: new Investor(),\n investorFalse: new Investor(),\n investorAttachDetachRequests: new Investor()\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst investorReducer = (\n state: InvestorDetailsState = initialState,\n action: FetchInvestorDetailsAction\n): InvestorDetailsState => {\n switch (action.type) {\n case FETCH_INVESTOR_DETAILS:\n return {\n ...state,\n investor: action.investorDetails\n };\n\n case FETCH_INVESTOR_DETAILS_FALSE:\n return {\n ...state,\n investorFalse: action.investorDetails\n };\n \n case FETCH_INVESTOR_DETAILS_ATTACH_DETACH:\n return {\n ...state,\n investorAttachDetachRequests: action.investorDetails\n }\n\n case RESET_DETAIL_INVESTOR:\n return {\n ...state,\n investor: new Investor()\n };\n default:\n return state;\n }\n};\n\nexport default investorReducer;\n","\nimport { FETCH_MASTER_DETAILS, FetchDetailsAction, FetchDetailsDefaultAction, FETCH_MASTER_DETAILS_DEFAULT, RESET_MASTER_DETAILS } from '../../actions/master/fetchMasterDetails';\nimport { FETCH_MASTER_PAYMENT_PERIODS, FetchMasterPaymentPeriodsAction } from '../../actions/master/fetchMasterPaymentPeriods';\nimport { IPaymentPeriod, Master } from '../../../types/masterTypes';\n\nexport interface MasterDetailsState {\n master: Master;\n masterDefault: Master;\n paymentPeriods: Array;\n}\n\nconst initialState: MasterDetailsState = {\n master: new Master(),\n masterDefault: new Master(),\n paymentPeriods: []\n};\n\ntype FetchMasterDetailsAction = FetchDetailsAction & FetchMasterPaymentPeriodsAction & FetchDetailsDefaultAction;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst masterReducer = (state: MasterDetailsState = initialState, action: FetchMasterDetailsAction): MasterDetailsState => {\n switch (action.type) {\n case FETCH_MASTER_DETAILS:\n return {\n ...state,\n master: action.masterDetails\n };\n\n case FETCH_MASTER_PAYMENT_PERIODS:\n return {\n ...state,\n paymentPeriods: action.paymentPeriods\n }\n case FETCH_MASTER_DETAILS_DEFAULT:\n return {\n ...state,\n masterDefault: action.masterDetailsDefault\n };\n case RESET_MASTER_DETAILS:\n return {\n master: new Master(),\n masterDefault: new Master(),\n paymentPeriods: []\n }\n default:\n return state;\n }\n}\n\nexport default masterReducer;\n","import { FETCH_OPEN_ORDERS, FETCH_CLOSED_ORDERS, FetchOrdersAction } from '../../actions/shared/fetchOrders';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\n// TODO: properly type 'orders'\nexport interface OrdersState {\n openOrders: {\n orders: Array;\n paginationInfo: PaginationInfo;\n };\n closedOrders: {\n orders: Array;\n paginationInfo: PaginationInfo;\n };\n}\n\nconst initialState: OrdersState = {\n openOrders: {\n orders: [],\n paginationInfo: new PaginationInfo()\n },\n closedOrders: {\n orders: [],\n paginationInfo: new PaginationInfo()\n }\n};\n\nconst ordersReducer = (state: OrdersState = initialState, action: FetchOrdersAction): OrdersState => {\n switch (action.type) {\n case FETCH_OPEN_ORDERS:\n return {\n ...state,\n openOrders: {\n orders: action.orders,\n paginationInfo: action.paginationInfo\n }\n };\n case FETCH_CLOSED_ORDERS:\n return {\n ...state,\n closedOrders: {\n orders: action.orders,\n paginationInfo: action.paginationInfo\n }\n };\n default:\n return state;\n }\n}\n\nexport default ordersReducer;","import { FETCH_BALANCE_OPERATIONS, FetchBalanceOperationsAction } from '../../actions/shared/fetchBalanceOperations';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport interface BalanceOperationsState {\n balanceOperations: {\n operations: Array;\n paginationInfo: PaginationInfo;\n totalAccruedToBalance: number;\n totalAccruedToCredit: number;\n };\n}\n\nconst initialState: BalanceOperationsState = {\n balanceOperations: {\n operations: [],\n paginationInfo: new PaginationInfo(),\n totalAccruedToBalance: 0,\n totalAccruedToCredit: 0\n }\n};\n\nconst balanceOperationsReducer = (state: BalanceOperationsState = initialState, action: FetchBalanceOperationsAction): BalanceOperationsState => {\n switch (action.type) {\n case FETCH_BALANCE_OPERATIONS:\n return {\n ...state,\n balanceOperations: {\n operations: action.balanceOperations.BalanceOperations,\n paginationInfo: action.paginationInfo,\n totalAccruedToBalance: action.balanceOperations.TotalAccruedToBalance,\n totalAccruedToCredit: action.balanceOperations.TotalAccruedToCredit\n }\n };\n default:\n return state;\n }\n}\n\nexport default balanceOperationsReducer;\n","import { FETCH_MASTERS, FetchMastersAction, FETCH_MASTERS_DEFAULT, FetchMastersDefaultAction } from '../../actions/master/fetchMasters';\nimport { Master } from '../../../types/masterTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport interface MastersState {\n masters: Array;\n mastersDefault: Array;\n paginationInfo: PaginationInfo;\n}\n\nconst initialState: MastersState = {\n masters: [],\n mastersDefault: [],\n paginationInfo: new PaginationInfo(),\n};\n\ntype FetchMasters = FetchMastersAction & FetchMastersDefaultAction;\n\nconst mastersReducer = (state: MastersState = initialState, action: FetchMasters): MastersState => {\n switch (action.type) {\n case FETCH_MASTERS:\n return {\n ...state,\n masters: action.masters,\n paginationInfo: action.paginationInfo\n };\n case FETCH_MASTERS_DEFAULT:\n return {\n ...state,\n mastersDefault: action.mastersDefault\n }\n default:\n return state;\n }\n}\n\nexport default mastersReducer;\n","import { FETCH_PROFIT, FETCH_PROFIT_PER_PERIOD, FETCH_ARRAY_OF_PROFITS, FetchProfitAction, FetchArrayOfProfitsAction, FETCH_PROFIT_OVERALL } from '../../actions/shared/fetchProfit';\nimport { Summary } from '../../../types/sharedTypes';\nimport { MasterProfit } from '../../../types/masterTypes';\n\nexport interface ProfitState {\n profit: Array;\n profitPerPeriod: Array;\n profitOverall: Array;\n arrayOfProfits: Array;\n}\n\nconst initialState: ProfitState = {\n profit: [],\n profitPerPeriod: [],\n profitOverall: [],\n arrayOfProfits: []\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst profitReducer = (state: ProfitState = initialState, action: FetchProfitAction & FetchArrayOfProfitsAction): ProfitState => {\n switch (action.type) {\n case FETCH_PROFIT:\n return {\n ...state,\n profit: action.profitFortnight\n };\n case FETCH_PROFIT_PER_PERIOD:\n return {\n ...state,\n profitPerPeriod: action.profitFortnight\n };\n case FETCH_PROFIT_OVERALL:\n return {\n ...state,\n profitOverall: action.profitFortnight\n };\n case FETCH_ARRAY_OF_PROFITS:\n // eslint-disable-next-line no-case-declarations\n const arrayOfProfitsCopy = state.arrayOfProfits.map((x) => x);\n arrayOfProfitsCopy.push({\n masterId: action.masterId,\n profitFortnight: action.profitFortnight\n });\n\n return {\n ...state,\n arrayOfProfits: arrayOfProfitsCopy\n }\n default:\n return state;\n }\n}\n\nexport default profitReducer;\n","import { FETCH_VOLUME, FetchVolumeAction } from '../../actions/master/fetchVolume';\nimport { Summary } from '../../../types/sharedTypes';\n\nexport interface VolumeState {\n volumePerPeriod: Array;\n}\n\nconst initialState: VolumeState = {\n volumePerPeriod: [],\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst volumeReducer = (state: VolumeState = initialState, action: FetchVolumeAction): VolumeState => {\n switch (action.type) {\n case FETCH_VOLUME:\n return {\n ...state,\n volumePerPeriod: action.volumeFortnight\n };\n default:\n return state;\n }\n}\n\nexport default volumeReducer;","import { FETCH_SERVERS, FetchServersAction } from '../../actions/shared/fetchServers';\nimport { FETCH_CURRENCIES, FetchCurrenciesAction } from '../../actions/shared/fetchCurrencies';\nimport { Server } from '../../../types/sharedTypes';\n\nexport interface GeneralInfoState {\n servers: Array;\n currencies: Array;\n}\n\nconst initialState: GeneralInfoState = {\n servers: [],\n currencies: []\n};\n\ntype GeneralInfoAction = FetchServersAction & FetchCurrenciesAction;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst generalInfoReducer = (state: GeneralInfoState = initialState, action: GeneralInfoAction): GeneralInfoState => {\n switch (action.type) {\n case FETCH_SERVERS:\n return {\n ...state,\n servers: action.servers\n };\n case FETCH_CURRENCIES:\n return {\n ...state,\n currencies: action.currencies\n }\n default:\n return state;\n }\n}\n\nexport default generalInfoReducer;","import { CREATE_USER, CreateUserAction } from '../../actions/shared/createUser';\n\n// TODO: Find out how to type 'createdUser'\nexport interface CreateUserState {\n createdUser: any;\n}\n\nconst initialState: CreateUserState = {\n createdUser: {}\n};\n\nconst createUserReducer = (state: CreateUserState = initialState, action: CreateUserAction): CreateUserState => {\n switch (action.type) {\n case CREATE_USER:\n return {\n ...state,\n createdUser: action.createdUser\n };\n default:\n return state;\n }\n}\n\nexport default createUserReducer;","import { FETCH_ADMIN_SETTINGS } from '../../actions/settings/admin';\nimport { FETCH_MASTER_SETTINGS } from '../../actions/settings/master';\nimport { FETCH_INVESTOR_SETTINGS } from '../../actions/settings/investor';\nimport { FETCH_CALLBACK_ADDRESSES } from '../../actions/settings/callbackAddresses';\nimport {\n FETCH_STATEMENT_PERIODS_SETTINGS,\n FETCH_REPORT_PERIODS_SETTINGS,\n FETCH_PAYMENT_PERIODS_SETTINGS\n} from '../../actions/settings/periods';\nimport { FETCH_SERVER_SETTINGS } from '../../actions/settings/server';\nimport {\n AdminSettings,\n MasterSettings,\n InvestorSettings,\n MetaTraderServerSettings,\n RegularPeriodSettings,\n ServerSettingsResponse,\n PaymentPeriodSettings\n} from '../../../types/settingsTypes';\nimport { FETCH_CONNECTED_MT_SERVERS, FETCH_MT_SERVERS_DISABLED, FETCH_MT_SERVERS_ENABLED, FETCH_MT_SERVERS_SHARED } from '../../actions/settings/mtServers';\n\nexport interface SettingsState {\n adminSettings: AdminSettings;\n masterSettings: MasterSettings;\n investorSettings: InvestorSettings;\n mtServersSettings: Array;\n mtServersSettingsDisabled: Array;\n mtServersSettingsEnabled: Array;\n mtServersSettingsShared: Array;\n callbackAddresses: Array;\n statementPeriodsSettings: Array;\n reportPeriodsSettings: Array;\n paymentPeriodsSettings: Array;\n serverSettings: ServerSettingsResponse;\n}\n\nconst initialState: SettingsState = {\n adminSettings: new AdminSettings(),\n masterSettings: new MasterSettings(),\n investorSettings: new InvestorSettings(),\n mtServersSettings: [new MetaTraderServerSettings()],\n mtServersSettingsDisabled: [new MetaTraderServerSettings()],\n mtServersSettingsEnabled: [new MetaTraderServerSettings()],\n mtServersSettingsShared: [],\n callbackAddresses: [],\n statementPeriodsSettings: [new RegularPeriodSettings()],\n reportPeriodsSettings: [new RegularPeriodSettings()],\n paymentPeriodsSettings: [new PaymentPeriodSettings()],\n serverSettings: {} as ServerSettingsResponse\n};\n\n// type FetchSettingsAction = FetchAdminSettingsAction | FetchMasterSettingsAction | FetchMasterSettingsAction;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst investorsReducer = (state: SettingsState = initialState, action: any): SettingsState => {\n switch (action.type) {\n case FETCH_ADMIN_SETTINGS:\n return {\n ...state,\n adminSettings: action.settings\n };\n case FETCH_MASTER_SETTINGS:\n return {\n ...state,\n masterSettings: action.settings\n };\n case FETCH_INVESTOR_SETTINGS:\n return {\n ...state,\n investorSettings: action.settings\n };\n case FETCH_CONNECTED_MT_SERVERS:\n return {\n ...state,\n mtServersSettings: action.settings\n }\n case FETCH_MT_SERVERS_DISABLED:\n return {\n ...state,\n mtServersSettingsDisabled: action.settings\n }\n case FETCH_MT_SERVERS_ENABLED:\n return {\n ...state,\n mtServersSettingsEnabled: action.settings\n }\n case FETCH_MT_SERVERS_SHARED:\n return {\n ...state,\n mtServersSettingsShared: action.settings\n } \n case FETCH_CALLBACK_ADDRESSES:\n return {\n ...state,\n callbackAddresses: action.addresses\n }\n case FETCH_STATEMENT_PERIODS_SETTINGS:\n return {\n ...state,\n statementPeriodsSettings: action.settings\n }\n case FETCH_REPORT_PERIODS_SETTINGS:\n return {\n ...state,\n reportPeriodsSettings: action.settings\n }\n case FETCH_PAYMENT_PERIODS_SETTINGS:\n return {\n ...state,\n paymentPeriodsSettings: action.settings\n }\n case FETCH_SERVER_SETTINGS:\n return {\n ...state,\n serverSettings: action.settings\n }\n default:\n return state;\n }\n}\n\nexport default investorsReducer;\n","import { FETCH_ADMINS, FetchAdminsAction } from '../../actions/admin/fetchAdmins';\nimport { Admin } from '../../../types/adminTypes';\n\nexport interface AdminsState {\n admins: Array;\n}\n\nconst initialState: AdminsState = {\n admins: [],\n};\n\nconst adminsReducer = (state: AdminsState = initialState, action: FetchAdminsAction): AdminsState => {\n switch (action.type) {\n case FETCH_ADMINS:\n return {\n admins: action.admins,\n };\n default:\n return state;\n }\n}\n\nexport default adminsReducer;\n","import { FETCH_ADMIN_DETAILS, FetchAdminDetailsAction } from '../../actions/admin/fetchAdminDetails';\nimport { EDIT_ADMIN, EditAdminAction } from '../../actions/admin/editAdmin';\nimport { Admin } from '../../../types/adminTypes';\n\nexport interface AdminDetailsState {\n admin: Admin;\n}\n\nconst initialState: AdminDetailsState = {\n admin: new Admin()\n};\n\ntype AdminAction = FetchAdminDetailsAction & EditAdminAction;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst adminReducer = (state: AdminDetailsState = initialState, action: AdminAction): AdminDetailsState => {\n switch (action.type) {\n case FETCH_ADMIN_DETAILS:\n return {\n ...state,\n admin: action.adminDetails\n };\n case EDIT_ADMIN:\n return {\n ...state,\n admin: action.editedAdmin\n }\n default:\n return state;\n }\n}\n\nexport default adminReducer;","import { SET_LOADING_STATUS, SetLoadingStatusAction, CHECK_MT_SERVERS_UPDATE, SET_LOADING_STATUS_DOWNLOAD, SET_LOADING_STATUS_CONNECTED_INVESTORS, SET_LOADING_STATUS_BALANCE_OPERATIONS, SET_LOADING_STATUS_CLOSED_ORDERS, SET_LOADING_STATUS_OPEN_ORDERS } from '../actions/setLoadingStatus';\n\nexport interface LoadingStatusState {\n isLoading: boolean;\n isLoadingDownload: boolean;\n checkMtServers: boolean;\n isLoadingOpenOrders: boolean;\n isLoadingClosedOrders: boolean;\n isLoadingBalanceOperations: boolean;\n isLoadingConnectedInvestors: boolean;\n}\n\nconst initialState: LoadingStatusState = {\n isLoading: false,\n isLoadingDownload: false,\n checkMtServers: false,\n isLoadingOpenOrders: false,\n isLoadingClosedOrders: false,\n isLoadingBalanceOperations: false,\n isLoadingConnectedInvestors: false\n};\n\nfunction loadingStatusReducer(state: LoadingStatusState = initialState, action: SetLoadingStatusAction): LoadingStatusState {\n switch (action.type) {\n case SET_LOADING_STATUS: {\n return {\n ...state,\n isLoading: action.status\n };\n }\n\n case SET_LOADING_STATUS_DOWNLOAD: {\n return {\n ...state,\n isLoadingDownload: action.status\n };\n }\n case CHECK_MT_SERVERS_UPDATE: {\n return {\n ...state,\n checkMtServers: action.status\n };\n }\n case SET_LOADING_STATUS_OPEN_ORDERS: {\n return {\n ...state,\n isLoadingOpenOrders: action.status\n };\n }\n case SET_LOADING_STATUS_CLOSED_ORDERS: {\n return {\n ...state,\n isLoadingClosedOrders: action.status\n };\n }\n case SET_LOADING_STATUS_BALANCE_OPERATIONS: {\n return {\n ...state,\n isLoadingBalanceOperations: action.status\n };\n }\n case SET_LOADING_STATUS_CONNECTED_INVESTORS: {\n return {\n ...state,\n isLoadingConnectedInvestors: action.status\n };\n }\n default: {\n return state;\n }\n }\n}\n\nexport default loadingStatusReducer;\n","import { FETCH_LOGS, FetchLogsAction } from '../actions/fetchLogs';\nimport { Log } from '../../types/journalTypes';\nimport { PaginationInfo } from '../../types/sharedTypes';\n\nexport interface JournalState {\n logs: Array;\n paginationInfo: PaginationInfo;\n}\n\nconst initialState: JournalState = {\n logs: [],\n paginationInfo: new PaginationInfo()\n};\n\nconst JournalReducer = (state: JournalState = initialState, action: FetchLogsAction): JournalState => {\n switch (action.type) {\n case FETCH_LOGS:\n return {\n ...state,\n logs: action.logs,\n paginationInfo: action.paginationInfo\n };\n default:\n return state;\n }\n}\n\nexport default JournalReducer;\n","import { \n FETCH_DEPOSITS,\n FETCH_INVESTMENTS,\n FETCH_PROFIT,\n FETCH_PROFIT_PER_PERIOD,\n FETCH_VOLUMES,\n FETCH_INVESTORS_SUMMARY,\n FetchSummaryAction\n} from '../../actions/shared/fetchSummary';\nimport { Summary } from '../../../types/sharedTypes';\n\nexport interface SummaryState {\n deposits: Array;\n investments: Array;\n profit: Array;\n profitPerPeriod: Array;\n volumes: Array;\n investors: Array;\n}\n\nconst initialState: SummaryState = {\n deposits: [],\n investments: [],\n profit: [],\n profitPerPeriod: [],\n volumes: [],\n investors: []\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst summaryReducer = (state: SummaryState = initialState, action: FetchSummaryAction): SummaryState => {\n switch (action.type) {\n case FETCH_DEPOSITS:\n return {\n ...state,\n deposits: action.summary\n };\n case FETCH_INVESTMENTS:\n return {\n ...state,\n investments: action.summary\n };\n case FETCH_PROFIT:\n return {\n ...state,\n profit: action.summary\n };\n case FETCH_PROFIT_PER_PERIOD:\n return {\n ...state,\n profitPerPeriod: action.summary\n };\n case FETCH_VOLUMES:\n return {\n ...state,\n volumes: action.summary\n };\n case FETCH_INVESTORS_SUMMARY:\n return {\n ...state,\n investors: action.summary\n };\n default:\n return state;\n }\n}\n\nexport default summaryReducer;","import { FETCH_REQUESTS, FetchRequestsAction } from '../../actions/requests/fetchRequests';\nimport { FETCH_REQUESTS_COUNT, FetchRequestsCountAction } from '../../actions/requests/fetchRequestsCount';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport interface RequestsState {\n requests: Array;\n paginationInfo: PaginationInfo;\n count: number;\n}\n\nconst initialState: RequestsState = {\n requests: [],\n paginationInfo: new PaginationInfo(),\n count: 0\n};\n\ntype RequestsAction = FetchRequestsAction & FetchRequestsCountAction;\n\nconst requestsReducer = (state: RequestsState = initialState, action: RequestsAction): RequestsState => {\n switch (action.type) {\n case FETCH_REQUESTS:\n return {\n ...state,\n requests: action.requests,\n paginationInfo: action.paginationInfo\n };\n case FETCH_REQUESTS_COUNT:\n return {\n ...state,\n count: action.count\n }\n default:\n return state;\n }\n}\n\nexport default requestsReducer;\n","import { FETCH_FEE_ACCOUNTS, FetchFeeAccountsAction } from '../actions/feeAccounts/fetchFeeAccounts';\nimport { PaginationInfo } from '../../types/sharedTypes';\nimport { FeeAccount } from '../../types/feeAccountTypes';\n\nexport interface FeeAccountsState {\n feeAccounts: Array;\n paginationInfo: PaginationInfo;\n}\n\nconst initialState: FeeAccountsState = {\n feeAccounts: [],\n paginationInfo: new PaginationInfo()\n};\n\nconst feeAccountsReducer = (state: FeeAccountsState = initialState, action: FetchFeeAccountsAction): FeeAccountsState => {\n switch (action.type) {\n case FETCH_FEE_ACCOUNTS:\n return {\n ...state,\n feeAccounts: action.feeAccounts,\n paginationInfo: action.paginationInfo\n };\n default:\n return state;\n }\n}\n\nexport default feeAccountsReducer;\n","import {\n SET_OPS_MENU_STATUS,\n SET_LINKED_ACCOUNTS_MENU_STATUS,\n SET_LANGUAGES_MENU_STATUS,\n SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS,\n SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS,\n SetMobileMenusStatus\n} from '../actions/setMobileMenusStatus';\n\nexport interface MobileMenusStatusState {\n showOpsMenu: boolean;\n showlinkedAccountsMenu: boolean;\n showLanguagesMenu: boolean;\n showConnectToMasterConfirmation: boolean;\n showDisconnectFromMasterConfirmation: boolean;\n}\n\nconst initialState: MobileMenusStatusState = {\n showOpsMenu: false,\n showlinkedAccountsMenu: false,\n showLanguagesMenu: false,\n showConnectToMasterConfirmation: false,\n showDisconnectFromMasterConfirmation: false\n};\n\nfunction mobileMenusStatusReducer(state: MobileMenusStatusState = initialState, action: SetMobileMenusStatus): MobileMenusStatusState {\n switch (action.type) {\n case SET_OPS_MENU_STATUS: {\n return {\n ...state,\n showOpsMenu: action.status\n };\n }\n case SET_LINKED_ACCOUNTS_MENU_STATUS: {\n return {\n ...state,\n showlinkedAccountsMenu: action.status\n }\n }\n case SET_LANGUAGES_MENU_STATUS: {\n return {\n ...state,\n showLanguagesMenu: action.status\n }\n }\n case SET_CONNECT_TO_MASTER_CONFIRMATION_STATUS: {\n return {\n ...state,\n showConnectToMasterConfirmation: action.status\n }\n }\n case SET_DISCONNECT_FROM_MASTER_CONFIRMATION_STATUS: {\n return {\n ...state,\n showDisconnectFromMasterConfirmation: action.status\n }\n }\n default: {\n return state;\n }\n }\n}\n\nexport default mobileMenusStatusReducer;\n","import { InvestorOrder } from '../../../types/masterTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport { FETCH_MASTER_INVESTORS_ORDERS, FetchMasterInvestorsOrdersAction } from '../../actions/master/fetchMasterInvestorsOrders';\n\nexport interface MasterInvestorsOrdersState {\n orders: Array;\n paginationInfo: PaginationInfo;\n}\n\nconst initialState: MasterInvestorsOrdersState = {\n orders: [] as Array,\n paginationInfo: {} as PaginationInfo\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst masterInvestorsOrdersReducer = (state: MasterInvestorsOrdersState = initialState, action: FetchMasterInvestorsOrdersAction): MasterInvestorsOrdersState => {\n switch (action.type) {\n case FETCH_MASTER_INVESTORS_ORDERS:\n return {\n ...state,\n orders: action.orders,\n paginationInfo: action.paginationInfo\n }\n default:\n return state;\n }\n}\n\nexport default masterInvestorsOrdersReducer;","import { FETCH_MONITORING_ACTION, MonitoringAction } from '../../../components/administrator/monitoring/fetchMonitoring';\nimport { IInvestorsMassAction, IInvestorsMassAttach } from '../../../types/investorTypes';\nimport { IBalanceOperation, ILoadOrders, IMonitoringResponse, IOrdersCompare, IOrdersRedistribute, IOrdersReload, IOrderReopen, IParametersToCheck, IParametersToFix, IPerformanceFeeCharge, ISendReport, IPositionCheckFix, IInvestorsCheck } from '../../../types/maintenanceTypes';\nimport { FETCH_MASS_ATTACH, FETCH_MASS_DEACTIVATION, FETCH_MASS_DETACH, MassAtachAction, MassDeactivationAction, MassDetachAction } from '../../actions/investor/massAttachDetachInvestors';\nimport { AccountParametersAction, FETCH_ACCOUNT_PARAMETERS } from '../../actions/maintenance/fetchAccountsParameters';\nimport { EditBalanceOperationAction, FETCH_EDIT_BALANCE_OPERATION } from '../../actions/maintenance/fetchEditBalanceOperation';\nimport { InvestorsParametersAction, FETCH_INVESTORS_CHECK_PARAMETERS } from '../../actions/maintenance/fetchInvestorsCheck';\nimport { FETCH_LOAD_ORDERS, LoadOrdersAction } from '../../actions/maintenance/fetchLoadOrdersByTickets';\nimport { FETCH_ORDERS_COMPARE, OrdersCompareAction } from '../../actions/maintenance/fetchOrdersCompare';\nimport { FETCH_ORDERS_REDISTRIBUTE, OrdersRedistributeAction } from '../../actions/maintenance/fetchOrdersRedistribute';\nimport { FETCH_ORDERS_RELOAD, OrdersReloadAction } from '../../actions/maintenance/fetchOrdersReload';\nimport { FETCH_ORDERS_REOPEN, OrderReopenAction } from '../../actions/maintenance/fetchOrdersReopen';\nimport { FETCH_PERFORMANCE_FEE_CHARGE, PerformanceFeeChargeAction } from '../../actions/maintenance/fetchPerformanceFeeCharge';\nimport { FETCH_POSITION_CHECK_FIX, PositionCheckFixAction } from '../../actions/maintenance/fetchPositionCheckFix';\nimport { FETCH_SEND_REPORT, SendReportAction } from '../../actions/maintenance/fetchSendReport';\n\nexport interface SendReportState {\n sendReport: ISendReport;\n loadOrders: ILoadOrders;\n ordersReload: IOrdersReload;\n orderReopen: IOrderReopen;\n ordersCompare: IOrdersCompare;\n balanceOperation: IBalanceOperation;\n ordersRedistribute: IOrdersRedistribute;\n parametersAccounts: IParametersToCheck | IParametersToFix;\n parametersInvestors: IInvestorsCheck;\n positionCheckFix: IPositionCheckFix;\n performanceFeeCharge: IPerformanceFeeCharge;\n parameters: IMonitoringResponse;\n massAttach: IInvestorsMassAttach;\n massDetach: IInvestorsMassAction;\n massDeactivation: IInvestorsMassAction;\n}\n\nconst initialState: SendReportState = {\n sendReport: {} as ISendReport,\n loadOrders: {} as ILoadOrders,\n ordersReload: {} as IOrdersReload,\n orderReopen: {} as IOrderReopen,\n ordersCompare: {} as IOrdersCompare,\n balanceOperation: {} as IBalanceOperation,\n ordersRedistribute: {} as IOrdersRedistribute,\n parametersAccounts: {} as IParametersToCheck | IParametersToFix,\n parametersInvestors: {} as IInvestorsCheck,\n positionCheckFix: {} as IPositionCheckFix,\n performanceFeeCharge: {} as IPerformanceFeeCharge,\n parameters: {} as IMonitoringResponse,\n massAttach: {} as IInvestorsMassAttach,\n massDetach: {} as IInvestorsMassAction,\n massDeactivation: {} as IInvestorsMassAction\n}\n\n\ntype RequestAction = SendReportAction\n & LoadOrdersAction\n & OrdersReloadAction\n & OrderReopenAction\n & OrdersCompareAction\n & EditBalanceOperationAction\n & OrdersRedistributeAction\n & AccountParametersAction\n & InvestorsParametersAction\n & PositionCheckFixAction\n & PerformanceFeeChargeAction\n & MonitoringAction\n & MassAtachAction\n & MassDetachAction\n & MassDeactivationAction\n\nconst reportReducer = (\n state: SendReportState = initialState,\n action: RequestAction\n): SendReportState => {\n switch (action.type) {\n case FETCH_SEND_REPORT:\n return {\n ...state,\n sendReport: action.sendReport\n }\n case FETCH_LOAD_ORDERS:\n return {\n ...state,\n loadOrders: action.loadOrders\n };\n case FETCH_ORDERS_RELOAD:\n return {\n ...state,\n ordersReload: action.ordersReload\n };\n case FETCH_ORDERS_REOPEN:\n return {\n ...state,\n orderReopen: action.orderReopen\n };\n case FETCH_ORDERS_COMPARE:\n return {\n ...state,\n ordersCompare: action.ordersCompare\n };\n case FETCH_EDIT_BALANCE_OPERATION:\n return {\n ...state,\n balanceOperation: action.balanceOperation\n };\n case FETCH_ORDERS_REDISTRIBUTE:\n return {\n ...state,\n ordersRedistribute: action.ordersRedistribute\n };\n case FETCH_ACCOUNT_PARAMETERS:\n return {\n ...state,\n parametersAccounts: action.parametersAccounts\n };\n case FETCH_INVESTORS_CHECK_PARAMETERS:\n return {\n ...state,\n parametersInvestors: action.parametersInvestors\n };\n case FETCH_POSITION_CHECK_FIX:\n return {\n ...state,\n positionCheckFix: action.positionCheckFix\n };\n case FETCH_PERFORMANCE_FEE_CHARGE:\n return {\n ...state,\n performanceFeeCharge: action.performanceFeeCharge\n };\n case FETCH_MONITORING_ACTION:\n return {\n ...state,\n parameters: action.parameters\n };\n case FETCH_MASS_ATTACH:\n return {\n ...state,\n massAttach: action.massAttach\n };\n case FETCH_MASS_DETACH:\n return {\n ...state,\n massDetach: action.massDetach\n };\n case FETCH_MASS_DEACTIVATION:\n return {\n ...state,\n massDeactivation: action.massDeactivation\n };\n default:\n return state;\n }\n};\n\nexport default reportReducer;\n","import { combineReducers } from 'redux';\nimport configReducer from './configReducer';\nimport authReducer from './authReducer';\nimport investorsReducer from './investor/investorsReducer';\nimport investorReducer from './investor/investorReducer';\nimport masterReducer from './master/masterReducer';\nimport ordersReducer from './shared/ordersReducer';\nimport balanceOperationsReducer from './shared/balanceOperationsReducer';\nimport mastersReducer from './master/mastersReducer';\nimport profitReducer from './shared/profitReducer';\nimport volumeReducer from './master/volumeReducer';\nimport generalInfoReducer from './shared/generalInfoReducer';\nimport createUserReducer from './shared/createUserReducer';\nimport settingsReducer from './settings/settingsReducer';\nimport adminsReducer from './admin/adminsReducer';\nimport adminReducer from './admin/adminReducer';\nimport loadingStatusReducer from './loadingStatusReducer';\nimport journalReducer from './journalReducer';\nimport summaryReducer from './shared/summaryReducer';\nimport requestsReducer from './requests/requestsReducer';\nimport feeAccountsReducer from './feeAccountsReducer';\nimport mobileMenusStatusReducer from './mobileMenusStatusReducer';\nimport masterInvestorsOrdersReducer from './master/masterInvestorsOrders';\nimport reportReducer from './maintenance/reportReducer'\n\nconst rootReducer = combineReducers({\n configReducer,\n authReducer,\n investorReducer,\n masterReducer,\n investorsReducer,\n ordersReducer,\n balanceOperationsReducer,\n mastersReducer,\n profitReducer,\n volumeReducer,\n generalInfoReducer,\n createUserReducer,\n settingsReducer,\n adminsReducer,\n adminReducer,\n loadingStatusReducer,\n journalReducer,\n summaryReducer,\n requestsReducer,\n feeAccountsReducer,\n mobileMenusStatusReducer,\n masterInvestorsOrdersReducer,\n reportReducer,\n});\n\nexport default rootReducer;\n\nexport type PAMMState = ReturnType;\n","import { createStore, applyMiddleware } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport rootReducer from './reducers/rootReducer';\n\n// TODO убрать дев тулс перед продакшеном\n// @ts-ignore\n// eslint-disable-next-line no-underscore-dangle\n// const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst store = createStore(rootReducer, applyMiddleware(thunkMiddleware));\n\nexport default store;\n","import { CSSProperties } from 'react';\n\nexport const mobileBodyWithNavbar = {\n // width: '83vw',\n paddingTop: '3.5rem',\n marginBottom: '10rem'\n} as CSSProperties;\n\nexport const mobileBodyWithEllipsis = {\n ...mobileBodyWithNavbar,\n paddingTop: '1.2rem'\n} as CSSProperties;\n\nexport const shadowBox = {\n boxShadow: '0px 0px 10px 2px lightgrey',\n backgroundColor: 'white',\n margin: '1rem 1rem 0 1rem',\n padding: 0\n} as CSSProperties;\n\nexport const pageButton = {\n borderRadius: '50%',\n height: '1.5rem',\n width: '1.5rem',\n backgroundColor: 'white',\n border: 'none',\n padding: 0,\n fontSize: '1rem',\n marginLeft: '1rem'\n} as CSSProperties;\n\nexport const directionSwitchStyle = {\n backgroundColor: '#eee',\n height: 25,\n border: 0,\n borderRadius: 15,\n marginLeft: 5,\n marginTop: 7,\n padding: 0,\n paddingLeft: 10,\n paddingRight: 10\n} as CSSProperties;\n\nexport const sortBySelectStyle = {\n width: 'auto',\n backgroundColor: '#eee',\n border: 0,\n borderRadius: 15,\n MozAppearance: 'none',\n WebkitAppearance: 'none',\n height: 25,\n fontSize: 12,\n marginLeft: '1rem',\n marginTop: 2\n} as CSSProperties;\n","import { useLayoutEffect, useState } from 'react';\n\nconst useWindowResize = () => {\n const [size, setSize] = useState([0, 0]);\n\n useLayoutEffect(() => {\n function updateSize() {\n setSize([window.innerWidth, window.innerHeight]);\n }\n\n window.addEventListener('resize', updateSize);\n updateSize();\n\n return () => {\n window.removeEventListener('resize', updateSize);\n };\n }, []);\n\n return size;\n};\n\nexport default useWindowResize;","/* eslint-disable no-underscore-dangle */\nimport * as Yup from 'yup';\nimport { IntlShape } from 'react-intl';\n\nexport class AccountModificationSchemas {\n public static readonly VALIDATOR_REQUIRED_KEY = 'validators.error.cannotBeEmpty'\n\n public static readonly PASSWORD_MIN_LENGTH = 8\n public static readonly PASSWORD_MAX_LENGTH = 16\n public static readonly TEXT_FIELD_MAX_LENGTH = 100\n public static readonly MIN_INVESTMENTS_MAX_LENGTH = 10\n\n public static readonly PASSWORD_INVALID_SYMBOLS_REGEXP = /^[A-Za-z0-9!@#$*%`~^()\\-_=+{}[\\];:'\"\\\\|/?<>.,&]+$/\n public static readonly PASSWORD_ONE_UPPERCASE_REGEXP = /^(?=.*[A-Z]).+$/\n public static readonly PASSWORD_ONE_LOWERCASE_REGEXP = /^(?=.*[a-z]).+$/\n public static readonly PASSWORD_ONE_NUMBER_REGEXP = /^(?=.*[0-9]).+$/\n public static readonly PASSWORD_ONE_SPECIAL_CHARACTER_REGEXP = /^(?=.*[!@#$*%`~^()\\-_=+{}[\\];:'\"\\\\|/?<>.,&]).+$/\n\n public static readonly USERNAME_REGEXP = /^[A-Za-z0-9_.@-]+?$/\n public static readonly NAME_REGEXP = /^([\\p{L}\\p{N}\\p{P}\\p{S}]+ )+[\\p{L}\\p{N}\\p{P}\\p{S}]+$|^[\\p{L}\\p{N}\\p{P}\\p{S}]+$/u\n public static readonly EMAIL_REGEXP = /^[A-Za-zА-Яа-я0-9._%+-]+@[A-Za-zА-Яа-я0-9._%+-]+\\.[A-Za-zА-Яа-я0-9]{1,100}$/\n public static readonly COUNTRY_REGEXP = /^[A-Za-z- ]+$/\n public static readonly PHONE_REGEXP = /^[A-Za-zА-Яа-я0-9\\s()+-]*$/\n public static readonly LINK_TOKEN_REGEXP = /^[A-Za-zА-Яа-я0-9_-]+$/\n public static readonly LOGIN_REGEXP = /^[0-9]+$/\n public static readonly HIGH_WATER_MARK_REGEXP = /^([0-9-]+(\\.\\d{1,2})?)$/\n public static readonly INVESTMENTS_REGEXP = /^[0-9]*$/\n public static readonly MT_USERNAME_REGEXP = /^(?!0)\\d*$/\n\n private readonly _intl: IntlShape\n\n constructor(intl: IntlShape) {\n this._intl = intl\n }\n\n public get password() {\n return Yup.string()\n .required(this._intl.formatMessage({id: AccountModificationSchemas.VALIDATOR_REQUIRED_KEY}))\n .min(AccountModificationSchemas.PASSWORD_MIN_LENGTH, this._intl.formatMessage({id: 'validators.error.passwordMinLength'}))\n .max(AccountModificationSchemas.PASSWORD_MAX_LENGTH, this._intl.formatMessage({id: 'validators.error.passwordMaxLength'}))\n .matches(AccountModificationSchemas.PASSWORD_INVALID_SYMBOLS_REGEXP, this._intl.formatMessage({id: 'validators.error.passwordInvalidSymbols'}))\n .matches(AccountModificationSchemas.PASSWORD_ONE_UPPERCASE_REGEXP, this._intl.formatMessage({id: 'validators.error.passwordOneUppercaseCharacter'}))\n .matches(AccountModificationSchemas.PASSWORD_ONE_LOWERCASE_REGEXP, this._intl.formatMessage({id: 'validators.error.passwordOneLowercaseCharacter'}))\n .matches(AccountModificationSchemas.PASSWORD_ONE_NUMBER_REGEXP, this._intl.formatMessage({id: 'validators.error.passwordOneNumber'}))\n .matches(AccountModificationSchemas.PASSWORD_ONE_SPECIAL_CHARACTER_REGEXP, this._intl.formatMessage({id: 'validators.error.passwordOneSpecialCharacter'}))\n }\n\n public get passwordNotRequired() {\n const valueIsEmpty = (value: string) => !value || value.length === 0;\n\n return Yup.string()\n .nullable()\n .test('password-min-length', this._intl.formatMessage({id: 'validators.error.passwordMinLength'}),\n (value: string) => valueIsEmpty(value) || value.length >= AccountModificationSchemas.PASSWORD_MIN_LENGTH )\n .test('password-max-length', this._intl.formatMessage({id: 'validators.error.passwordMaxLength'}),\n (value: string) => valueIsEmpty(value) || value.length <= AccountModificationSchemas.PASSWORD_MAX_LENGTH )\n .test('password-invalid-symbols', this._intl.formatMessage({id: 'validators.error.passwordInvalidSymbols'}),\n (value: string) => valueIsEmpty(value) || AccountModificationSchemas.PASSWORD_INVALID_SYMBOLS_REGEXP.test(value))\n .test('password-one-uppercase-character', this._intl.formatMessage({id: 'validators.error.passwordOneUppercaseCharacter'}),\n (value: string) => valueIsEmpty(value) || AccountModificationSchemas.PASSWORD_ONE_UPPERCASE_REGEXP.test(value))\n .test('password-one-lowercase-character', this._intl.formatMessage({id: 'validators.error.passwordOneLowercaseCharacter'}),\n (value: string) => valueIsEmpty(value) || AccountModificationSchemas.PASSWORD_ONE_LOWERCASE_REGEXP.test(value))\n .test('password-one-digit', this._intl.formatMessage({id: 'validators.error.passwordOneNumber'}),\n (value: string) => valueIsEmpty(value) || AccountModificationSchemas.PASSWORD_ONE_NUMBER_REGEXP.test(value))\n .test('password-one-special-character', this._intl.formatMessage({id: 'validators.error.passwordOneSpecialCharacter'}),\n (value: string) => valueIsEmpty(value) || AccountModificationSchemas.PASSWORD_ONE_SPECIAL_CHARACTER_REGEXP.test(value))\n }\n\n public get name() {\n return Yup.string()\n .required(this._intl.formatMessage({id: AccountModificationSchemas.VALIDATOR_REQUIRED_KEY}))\n .matches(AccountModificationSchemas.NAME_REGEXP, this._intl.formatMessage({id: 'validators.error.invalidName'}))\n }\n\n public get username() {\n return Yup.string()\n .required(this._intl.formatMessage({id: AccountModificationSchemas.VALIDATOR_REQUIRED_KEY}))\n .max(AccountModificationSchemas.TEXT_FIELD_MAX_LENGTH, this._intl.formatMessage({id: 'validators.error.name'}))\n .matches(AccountModificationSchemas.USERNAME_REGEXP, this._intl.formatMessage({id: 'validators.error.username'}))\n }\n\n public get email() {\n return Yup.string()\n .required(this._intl.formatMessage({id: AccountModificationSchemas.VALIDATOR_REQUIRED_KEY}))\n .matches(AccountModificationSchemas.EMAIL_REGEXP, this._intl.formatMessage({id: 'validators.error.email'}))\n }\n\n public get country() {\n return Yup.string()\n .max(AccountModificationSchemas.TEXT_FIELD_MAX_LENGTH, this._intl.formatMessage({id: 'validators.error.maxLength'}))\n .matches(AccountModificationSchemas.COUNTRY_REGEXP, this._intl.formatMessage({id: 'validators.error.mustBeLetterDashSpace'}))\n .nullable()\n .transform((v, o) => (o === '' ? null : v))\n }\n\n public get phone() {\n return Yup.string()\n .max(AccountModificationSchemas.TEXT_FIELD_MAX_LENGTH, this._intl.formatMessage({id: 'validators.error.maxLength'}))\n .matches(AccountModificationSchemas.PHONE_REGEXP, this._intl.formatMessage({id: 'validators.error.mustBeLetterNumberDashPlus'}))\n .nullable()\n .transform((v, o) => (o === '' ? null : v))\n }\n\n public get linkToken() {\n return Yup.string()\n .matches(AccountModificationSchemas.LINK_TOKEN_REGEXP, this._intl.formatMessage({id: 'validators.error.mustBeLetterNumberDashUnderscore'}))\n .nullable()\n .transform((v, o) => (o === '' ? null : v))\n }\n\n public get login() {\n return Yup.string()\n .matches(AccountModificationSchemas.LOGIN_REGEXP, this._intl.formatMessage({id: 'validators.error.login'}))\n .nullable()\n .transform((v, o) => (o === '' ? null : v))\n }\n\n public get highWaterMark() {\n return Yup.string()\n .matches(AccountModificationSchemas.HIGH_WATER_MARK_REGEXP, this._intl.formatMessage({id: 'validators.error.mustBeLetterNumberDashUnderscore'}))\n .nullable()\n .transform((v, o) => (o === '' ? null : v))\n }\n\n public get minInvestments() {\n return Yup.string()\n .max(AccountModificationSchemas.MIN_INVESTMENTS_MAX_LENGTH, this._intl.formatMessage({id: 'validators.error.minInvestment'}))\n .matches(AccountModificationSchemas.INVESTMENTS_REGEXP, this._intl.formatMessage({id: 'validators.error.mustBeNumber'}))\n .nullable()\n .transform((v, o) => (o === '' ? null : v))\n }\n\n public get minInvestmentsPositiveNumber() {\n return Yup.number()\n .moreThan(-1, this._intl.formatMessage({ id: 'validators.error.mustBePositive' }))\n .typeError(this._intl.formatMessage({ id: 'validators.error.mustBeNumber' }))\n .nullable()\n .transform((v, o) => (o === '' ? null : v))\n }\n\n public get investments() {\n return Yup.string()\n .matches(AccountModificationSchemas.INVESTMENTS_REGEXP, this._intl.formatMessage({id: 'validators.error.mustBeNumber'}))\n .nullable()\n .transform((v, o) => (o === '' ? null : v))\n }\n\n public get loadHistoryMonthCount() {\n return Yup.number()\n .required(this._intl.formatMessage({id: AccountModificationSchemas.VALIDATOR_REQUIRED_KEY}))\n .typeError(this._intl.formatMessage({id: 'validators.error.loadHistoryMonth'}))\n .integer(this._intl.formatMessage({id: 'validators.error.loadHistoryMonth'}))\n .min(0, this._intl.formatMessage({id: 'validators.error.loadHistoryMonth'}))\n .max(100, this._intl.formatMessage({id: 'validators.error.loadHistoryMonth'}))\n }\n}\n","/* eslint-disable react/no-unescaped-entities */\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { PAMMState } from '../../../redux/reducers/rootReducer';\nimport styles from './PasswordTooltip.module.css'\n\n\ninterface PasswordTooltipProps {\n userType: string;\n accountType?: string;\n top?: string;\n}\n\nconst PasswordTooltip: React.FC = ({userType, accountType, top}): JSX.Element => {\n\n const customColors = useSelector((state: PAMMState) => state.configReducer.customColorsGeneralUser);\n\n const isAdmin = userType === 'Admin' || userType === 'admin';\n const color = isAdmin ? '#2C405A': customColors.active;\n const userTypeBoolean = userType === 'master' || userType === 'investor' || accountType === 'investor' || accountType === 'master';\n\n const requirements = [\n 'between',\n 'lettersNumbersCharacters',\n 'upperLowerCase',\n 'digit',\n ];\n\n const renderRequirement = (req: string, index: number) => (\n
\n
\n
\n \n
\n
\n )\n \n return (\n
\n
\n
:
\n
\n {requirements.map(renderRequirement)}\n
\n
\n
\n : \n \n ! @ # $ | * %
& ` ~ ^ * ( ) - _ = + { } [ ] ; : ' \" \\ | / ? < > . ,\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default PasswordTooltip;\n","import { toast } from 'react-toastify';\nimport { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport { IInvestorsMassAction, IInvestorsMassAttach } from '../../../types/investorTypes';\n\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_MASS_ATTACH = 'FETCH_MASS_ATTACH';\nexport const FETCH_MASS_DEACTIVATION = 'FETCH_MASS_DEACTIVATION';\nexport const FETCH_MASS_DETACH = 'FETCH_MASS_DETACH';\n\nexport type MassAtachAction = {\n type: string;\n massAttach: IInvestorsMassAttach;\n};\n\nexport type MassDetachAction = {\n type: string;\n massDetach: IInvestorsMassAction;\n};\n\nexport type MassDeactivationAction = {\n type: string;\n massDeactivation: IInvestorsMassAction;\n};\n\n\nconst fetchMassAttach = (massAttach: IInvestorsMassAttach): MassAtachAction => {\n return {\n type: FETCH_MASS_ATTACH,\n massAttach\n };\n};\n\nconst fetchMassDetach = (massDetach: IInvestorsMassAction): MassDetachAction => {\n return {\n type: FETCH_MASS_DETACH,\n massDetach\n };\n};\n\nconst fetchMassDeactivation = (massDeactivation: IInvestorsMassAction): MassDeactivationAction => {\n return {\n type: FETCH_MASS_DEACTIVATION,\n massDeactivation\n };\n};\n\nconst massAttachInvestors = (api: string, request: IInvestorsMassAttach) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/investors/attach`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n .then((massAttach: any) => {\n dispatch(fetchMassAttach(massAttach));\n toast.success('Request to server is sent successfully, check details of connection in response', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const massDetachInvestors = (api: string, request: IInvestorsMassAction) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/investors/detach`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n .then((massDetach: any) => {\n dispatch(fetchMassDetach(massDetach));\n toast.success('Request to server is sent successfully, check details of connection in response', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const deactivateMassInvestors = (api: string, request: {}) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/investors/deactivate`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n .then((massDeactivation: any) => {\n dispatch(fetchMassDeactivation(massDeactivation));\n toast.success('Request to server is sent successfully, check details of connection in response', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\n\n\n\nexport default massAttachInvestors;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\n\nexport const FETCH_STATEMENT_PERIODS_SETTINGS = 'FETCH_STATEMENT_PERIODS_SETTINGS';\nexport const FETCH_REPORT_PERIODS_SETTINGS = 'FETCH_REPORT_PERIODS_SETTINGS';\nexport const FETCH_PAYMENT_PERIODS_SETTINGS = 'FETCH_PAYMENT_PERIODS_SETTINGS';\n\nexport type FetchPeriodsSettings = {\n type: string;\n settings: string[];\n};\n\nconst getActionConst = (actionName: string): string => {\n switch (actionName) {\n case 'statementPeriods':\n return FETCH_STATEMENT_PERIODS_SETTINGS;\n case 'reportPeriods':\n return FETCH_REPORT_PERIODS_SETTINGS;\n case 'paymentPeriods':\n return FETCH_PAYMENT_PERIODS_SETTINGS;\n default:\n return 'unknown';\n }\n};\n\nconst fetchPeriodsSettings = (settings: string[], periodsType: string): FetchPeriodsSettings => {\n return {\n type: getActionConst(periodsType),\n settings\n };\n};\n\nconst fetchPeriodsSettingsAsync = (api: string, periodsType: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n \n fetch(`${api}/settings/${periodsType}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => dispatch(fetchPeriodsSettings(settings[Object.keys(settings)[0]], periodsType)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editPeriodsSettingsAsync = (api: string, request: any, periodsType: string) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/${periodsType}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchPeriodsSettings(settings[Object.keys(settings)[0]], periodsType));\n toast.success('Periods settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchPeriodsSettingsAsync;\n","module.exports = __webpack_public_path__ + \"assets/images/English.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Deutsch.svg\";","module.exports = __webpack_public_path__ + \"assets/images/French.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Portugal.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Spanish.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Russian.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Arabian.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Japan.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Korean.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Georgia.svg\";","module.exports = __webpack_public_path__ + \"assets/images/Chinese.svg\";","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { OrderType } from '../../../types/sharedTypes';\nimport { setLoadingStatusClosedOrders, setLoadingStatusOpenOrders } from '../setLoadingStatus';\n\nexport const FETCH_OPEN_ORDERS = 'FETCH_OPEN_ORDERS';\nexport const FETCH_CLOSED_ORDERS = 'FETCH_CLOSED_ORDERS';\n\nexport type FetchOrdersAction = {\n type: string;\n orders: any;\n paginationInfo: any;\n}\n\nconst fetchOpenOrders = (orders: any, paginationInfo: any): FetchOrdersAction => {\n return {\n type: FETCH_OPEN_ORDERS,\n orders,\n paginationInfo\n };\n};\n\nconst fetchClosedOrders = (orders: any, paginationInfo: any): FetchOrdersAction => {\n return {\n type: FETCH_CLOSED_ORDERS,\n orders,\n paginationInfo\n };\n};\n\nconst fetchOrdersAsync = (\n api: string,\n source: string,\n type: OrderType,\n id?: number,\n page?: number,\n query?: string,\n limit?: number,\n sortField?: string,\n direction?: string,\n mtServerGuid?: string | undefined,\n): any => {\n let queryString = `?page=${page}`;\n let delimiter: string;\n\n if (limit) queryString += `&limit=${limit}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (direction) queryString += `&direction=${direction}`;\n if (query) queryString += `&query=${query}`;\n if (mtServerGuid) queryString +=`&mtServerGuid=${mtServerGuid}`;\n\n if (id)\n delimiter = `${type === OrderType.Open ? OrderType.Open : OrderType.Closed}/${id}`;\n else\n delimiter = `${type === OrderType.Open ? OrderType.Open : OrderType.Closed}`\n\n return (dispatch: Dispatch): void => {\n if (type === OrderType.Open) {\n dispatch(setLoadingStatusOpenOrders(true));\n } else {\n dispatch(setLoadingStatusClosedOrders(true));\n }\n\n fetch(`${api}/${source === 'investors' ? 'investors' : 'masters'}/orders/${delimiter}${queryString}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => {\n if (type === OrderType.Open) {\n return dispatch(fetchOpenOrders(data.Data, data.PaginationInfo));\n }\n\n return dispatch(fetchClosedOrders(data.Data, data.PaginationInfo))\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => {\n if (type === OrderType.Open) {\n dispatch(setLoadingStatusOpenOrders(false));\n } else {\n dispatch(setLoadingStatusClosedOrders(false));\n }\n })\n }\n};\n\n\nexport default fetchOrdersAsync;\n","interface IStatistics {\n Connected: boolean;\n StartTime: string;\n CurrentTime: string;\n TimeZone: string;\n}\n\nexport enum checkComponentsValues {\n Statistics = 'Statistics',\n MT5Worker = 'MT5Worker',\n MT4Worker = 'MT4Worker',\n InvestorsTradeSync = 'InvestorsTradeSync'\n}\n\nexport interface IMonitoringResponse {\n InvestorsTradeSync: Array;\n MT4Worker: Array;\n MT5Worker: Array;\n Statistics: IStatistics;\n}\n\nexport interface ISendReport {\n From: number;\n To: number;\n IncludeAllOpenOrders: boolean;\n}\n\nexport interface ILoadOrders {\n ServerGuid: string;\n Tickets: Array;\n}\n\nexport interface IOrdersReload {\n ServerGuid: string;\n Orders: Array;\n}\n\nexport interface IOrderReopen {\n ServerGuid: string;\n Ticket: number | string;\n}\n\nexport interface IOrdersCompare {\n Orders: Array;\n}\n\nexport interface IBalanceOperation {\n OperationDate: number;\n Amount: number;\n FixBalance: boolean;\n OperationId?: number;\n}\n\nexport interface IPerformanceFeeCharge {\n Ids: any;\n CalcTime?: number;\n}\n\nexport interface IOrderTicket {\n Ticket: any;\n}\n\nexport interface IOrdersRedistribute {\n Mode: string;\n ReallocationParameters: Array;\n Orders: Array;\n}\n\nexport interface IParametersToCheck {\n ParametersToCheck: Array;\n CheckAll: boolean;\n AccountIds: Array;\n Account?: string;\n}\n\nexport interface IInvestorsCheck {\n ParametersToCheck?: Array;\n CheckAll: boolean;\n InvestorIds?: Array;\n ServerGuid?: string;\n}\n\nexport interface IParametersToFix {\n ParametersToFix: Array;\n FixAll: boolean;\n AccountIds: Array;\n Account?: string;\n}\n\nexport interface IPositionCheckFix {\n MmIds: Array;\n}\n\nexport enum ReallocationParametersValues {\n Volume = 'Volume',\n Profit = 'Profit',\n Commission = 'Commission',\n Tax = 'Tax',\n Swap = 'Swap'\n}\n\nexport enum ParametersToCheckFixInvestors {\n All = 'All',\n Balance = 'Balance',\n Credit = 'Credit',\n Investments = 'Investments',\n CurrentTradeProfit = 'CurrentTradeProfit',\n TotalTradeProfit = 'TotalTradeProfit',\n}\n\nexport enum ParametersToCheckFixMMs {\n All = 'All',\n Balance = 'Balance',\n Credit = 'Credit',\n TotalTradeProfit = 'TotalTradeProfit',\n}\n\nexport enum ParametersToCheckInvestors {\n Balance = 'Balance',\n Credit = 'Credit',\n}\n\nexport enum InvestorsCheckType {\n Parameters = 'Parameters',\n Positions = 'Positions'\n}\n","import { toast } from 'react-toastify';\nimport { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\n// import { UpdateMaster } from '../../../types/masterTypes';\nimport fetchMasterDetailsAsync from './fetchMasterDetails';\n\nfunction updateMaster(api: string, masterId: string, request: any) {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/masters/${masterId}`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n dispatch(fetchMasterDetailsAsync(api, Number(masterId)));\n toast.success('Master updated successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default updateMaster;\n","import { toast } from 'react-toastify';\nimport { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\n// import { UpdateInvestor } from '../../../types/investorTypes';\nimport fetchInvestorDetailsAsync, { fetchInvestorDetailsFalseAsync } from './fetchInvestorDetails';\n\nfunction updateInvestor(api: string, investorId: string, request: any, soModal?: boolean) {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/investors/${investorId}`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n dispatch(soModal ? fetchInvestorDetailsFalseAsync(api, Number(investorId)) : fetchInvestorDetailsAsync(api, Number(investorId)));\n toast.success('Investor updated successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default updateInvestor;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { BalanceOperation, PaginationInfo } from '../../../types/sharedTypes';\nimport { setLoadingStatusBalanceOperations } from '../setLoadingStatus';\n\nexport const FETCH_BALANCE_OPERATIONS = 'FETCH_BALANCE_OPERATIONS';\n\nexport type FetchBalanceOperationsAction = {\n type: string;\n balanceOperations: any;\n paginationInfo: PaginationInfo;\n};\n\nconst fetchBalanceOperations = (balanceOperations: Array, paginationInfo: PaginationInfo): FetchBalanceOperationsAction => {\n return {\n type: FETCH_BALANCE_OPERATIONS,\n balanceOperations,\n paginationInfo\n };\n};\n\nconst getTypeFilters = (filtersStateObject: Record): string => {\n let filters = '';\n\n Object.entries(filtersStateObject).forEach((entry) => {\n if (entry[1]) {\n filters += `&typeFilter=${entry[0]}`;\n }\n });\n\n return filters;\n};\n\nconst fetchBalanceOperationsAsync = (\n api: string, \n userType: string, \n id: string,\n typeFilters: Record,\n page?: number, \n limit?: number, \n sortField?: string, \n direction?: string,\n ) => {\n let queryString = `?page=${page}`;\n\n if (limit) queryString += `&limit=${limit}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (direction) queryString += `&direction=${direction}`;\n \n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatusBalanceOperations(true));\n\n fetch(`${api}/${userType === 'investor' ? 'investors' : 'masters'}/balance/operations/${id}${queryString}&from=1970-01-01${getTypeFilters(typeFilters)}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchBalanceOperations(data.Data, data.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatusBalanceOperations(false)));\n }\n};\n\nexport default fetchBalanceOperationsAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\nimport { Server } from '../../../types/sharedTypes';\n\nexport const FETCH_SERVERS = 'FETCH_SERVERS';\n\nexport type FetchServersAction = {\n type: string;\n servers: Array;\n};\n\nconst fetchServers = (servers: Array): FetchServersAction => {\n return {\n type: FETCH_SERVERS,\n servers\n };\n};\n\nconst fetchServersAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/mtServers`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((servers: any) => dispatch(fetchServers(servers)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchServersAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\n\nexport const FETCH_CURRENCIES = 'FETCH_CURRENCIES';\n\nexport type FetchCurrenciesAction = {\n type: string;\n currencies: Array;\n};\n\nconst fetchCurrencies = (currencies: Array): FetchCurrenciesAction => {\n return {\n type: FETCH_CURRENCIES,\n currencies\n };\n};\n\nconst fetchCurrenciesAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/auth/currency`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((currencies: any) => dispatch(fetchCurrencies(currencies)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchCurrenciesAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { MasterSettings } from '../../../types/settingsTypes';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\nimport { fetchMasterDetails, fetchMasterDetailsDefault } from '../../actions/master/fetchMasterDetails';\n\nexport const FETCH_MASTER_SETTINGS = 'FETCH_MASTER_SETTINGS';\n\nexport type FetchMasterSettingsAction = {\n type: string;\n settings: MasterSettings;\n};\n\nconst fetchMasterSettings = (settings: MasterSettings): FetchMasterSettingsAction => {\n return {\n type: FETCH_MASTER_SETTINGS,\n settings\n };\n};\n\nconst fetchMasterSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/account/master`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => dispatch(fetchMasterSettings(settings)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editMasterSettingsAsync = (api: string, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/account/master`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchMasterSettings(settings));\n toast.success('Masters settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const editMasterSettingsIdAsync = (api: string, id: number, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/masters/${id}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((master: any) => {\n dispatch(fetchMasterDetails(master));\n toast.success(`Master ID ${id} settings edited successfully!`, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n fetch(`${api}/masters/${id}?returnAccountOptionsValues=true`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((masterDefault: any) => {\n dispatch(fetchMasterDetailsDefault(masterDefault))\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n}\n\nexport default fetchMasterSettingsAsync;\n","import { StateToggle, VisibilityToggle } from './toggles';\n\nexport class AccountOptionsAdmin {\n EmailNotifications: StateToggle = StateToggle.Off;\n OrdersCommissions: VisibilityToggle = VisibilityToggle.Hide;\n}\n\nexport class Admin {\n Id = 0;\n Name = '';\n Username = '';\n Email = '';\n ViewOnly = 'false';\n AccountOptions = new AccountOptionsAdmin();\n Mode = '';\n ModeCode = 0;\n}\n\nexport class CreateAdmin {\n ViewOnly = false;\n Name = '';\n Username = '';\n Password = '';\n Email = '';\n // AccountOptions = new AccountOptionsAdmin();\n}\n\nexport class EditAdminRequest {\n Name = '';\n Username = '';\n Email = '';\n AccountOptions = new AccountOptionsAdmin();\n Password = '';\n}\n\nexport class EditAdminForm {\n Name = '';\n Username = '';\n Email = '';\n AccountOptions = new AccountOptionsAdmin();\n Password = '';\n ViewOnly = 'false';\n}\n\nexport enum IAdminMode {\n Normal = 0,\n Disabled = 1\n}\n","import { History } from 'history';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport { getJwt } from '../auth';\nimport fetchRequestsCountAsync from '../requests/fetchRequestsCount';\n\nexport type InvestorAttachedAction = {\n type: string;\n masterId: number;\n};\n\nconst attachInvestor = (api: string, investorId: string, masterId: string, history: History, isMobile?: boolean) => {\n return (): void => {\n fetch(`${api}/investors/attach/${investorId}`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${getJwt()}`,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ MasterId: parseInt(masterId, 10) })\n })\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n LocalStorageUtils.removeValueFromLocalStorage('investorToAttach');\n toast.success('Investor attached successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n history.push(`/investors/${investorId}/overall-profit/open-orders`);\n \n // TODO PAMM-2705\n // if (Array.isArray(history)) {\n // history.push(`/investors/${investorId}/overall-profit/open-orders`);\n // } else {\n // window.location.reload()\n // }\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const createRequestToAttachInvestor = (api: string, investorId: string, masterId: string, history: History, isMobile?: boolean) => {\n return (dispatch: any): void => {\n fetch(`${api}/requests/create/attachInvestor`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${getJwt()}`,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ MmId: parseInt(masterId, 10), AccountId: parseInt(investorId, 10) })\n })\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n LocalStorageUtils.putValueToLocalStorage('masterIdAttachRequestSent', masterId);\n toast.success('Request created successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n dispatch(fetchRequestsCountAsync(api));\n history.push('/dashboard');\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\n\nexport default attachInvestor;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { AdminSettings } from '../../../types/settingsTypes';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\n\nexport const FETCH_ADMIN_SETTINGS = 'FETCH_ADMIN_SETTINGS';\n\nexport type FetchAdminSettingsAction = {\n type: string;\n settings: AdminSettings;\n};\n\nconst fetchAdminSettings = (settings: AdminSettings): FetchAdminSettingsAction => {\n return {\n type: FETCH_ADMIN_SETTINGS,\n settings\n };\n};\n\nconst fetchAdminSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/account/admin`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => dispatch(fetchAdminSettings(settings)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editAdminSettingsAsync = (api: string, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/account/admin`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchAdminSettings(settings));\n toast.success('Admins settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchAdminSettingsAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { InvestorSettings } from '../../../types/settingsTypes';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\nimport { fetchInvestorDetails, fetchInvestorDetailsFalse } from '../investor/fetchInvestorDetails';\n\nexport const FETCH_INVESTOR_SETTINGS = 'FETCH_INVESTOR_SETTINGS';\n\nexport type FetchInvestorSettingsAction = {\n type: string;\n settings: InvestorSettings;\n};\n\nconst fetchInvestorSettings = (settings: InvestorSettings): FetchInvestorSettingsAction => {\n return {\n type: FETCH_INVESTOR_SETTINGS,\n settings\n };\n};\n\nconst fetchInvestorSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/account/investor`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => dispatch(fetchInvestorSettings(settings)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editInvestorSettingsAsync = (api: string, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/account/investor`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchInvestorSettings(settings));\n toast.success('Investors settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const editInvestorSettingsIdAsync = (api: string, id: number, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/investors/${id}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((investor: any) => {\n dispatch(fetchInvestorDetails(investor));\n dispatch(fetchInvestorDetailsFalse(investor));\n toast.success(`Investor ID ${id} settings edited successfully!`, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n}\n\nexport default fetchInvestorSettingsAsync;\n","import { Dispatch } from 'redux';\nimport { History } from 'history';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Admin, EditAdminRequest } from '../../../types/adminTypes';\n\nexport const EDIT_ADMIN = 'EDIT_ADMIN';\n\nexport type EditAdminAction = {\n type: string;\n editedAdmin: Admin;\n};\n\nconst editAdmin = (editedAdmin: Admin): EditAdminAction => {\n return {\n type: EDIT_ADMIN,\n editedAdmin\n };\n};\n\nconst editAdminAsync = (api: string, id: number, request: any, history?: History) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/admins/${id}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((editedAdmin: any) => {\n dispatch(editAdmin(editedAdmin));\n toast.success(`Admin ID ${id} edited successfully!`, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n if (history) {\n history.push('/admins');\n }\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n };\n};\n\nexport default editAdminAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport { History } from 'history';\nimport Errors from '../../../shared/validation/errors';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport fetchInvestorDetailsAsync from './fetchInvestorDetails';\nimport { getJwt } from '../auth';\nimport fetchRequestsCountAsync from '../requests/fetchRequestsCount';\n\nconst detachInvestor = (api: string, investorId: number) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/investors/detach/${investorId}`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${getJwt()}`,\n 'Content-Type': 'application/json'\n }\n })\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n toast.success('Investor detached successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n dispatch(fetchInvestorDetailsAsync(api, Number(investorId)) as any);\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const createRequestToDetachInvestor = (api: string, investorId: string, masterId: string, history: History, isMobile?: boolean) => {\n return (dispatch: any): void => {\n fetch(`${api}/requests/create/detachInvestor`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${getJwt()}`,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ AccountId: parseInt(investorId, 10) }) // TODO MmId: parseInt(masterId, 10),\n })\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n LocalStorageUtils.putValueToLocalStorage('masterIdDetachRequestSent', masterId);\n toast.success('Request created successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n dispatch(fetchRequestsCountAsync(api));\n history.push('/dashboard');\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default detachInvestor;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { CreateInvestor, Investor } from '../../../types/investorTypes';\nimport { CreateMaster, Master } from '../../../types/masterTypes';\nimport { CreateAdmin, Admin } from '../../../types/adminTypes';\nimport { UserType } from '../../../types/sharedTypes';\n\nexport const CREATE_USER = 'CREATE_USER';\n\ntype CreateUser = CreateInvestor | CreateMaster | CreateAdmin;\nexport type CreatedUser = Investor | Master | Admin;\n\nexport type CreateUserAction = {\n type: string;\n createdUser: CreatedUser;\n};\n\nconst createUser = (createdUser: CreatedUser): CreateUserAction => {\n return {\n type: CREATE_USER,\n createdUser\n };\n};\n\nconst createUserAsync = (api: string, request: CreateUser, userType: UserType) => {\n const endpoint = userType.toLowerCase();\n\n return (dispatch: Dispatch): void => {\n fetch(`${api}/${endpoint}s/create`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((createdUser: any) => {\n dispatch(createUser(createdUser));\n toast.success(`${userType.charAt(0).toUpperCase() + userType.slice(1)} created successfully!`, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n };\n};\n\nexport default createUserAsync;\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { InvestorOrder } from '../../../types/masterTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n\nexport const FETCH_MASTER_INVESTORS_ORDERS = 'FETCH_MASTER_INVESTORS_ORDERS ';\n\nexport type FetchMasterInvestorsOrdersAction = {\n type: string;\n orders: Array;\n paginationInfo: PaginationInfo;\n}\n\nexport const fetchMasterInvestorsOrders = (orders: Array, paginationInfo: PaginationInfo): FetchMasterInvestorsOrdersAction => {\n return {\n type: FETCH_MASTER_INVESTORS_ORDERS,\n orders,\n paginationInfo\n }\n};\n\nfunction fetchMasterInvestorsOrdersAsync(api: string, orderId: string, page: number) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/masters/orders/investors/${orderId}?page=${page}&limit=10`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchMasterInvestorsOrders(data.Data, data.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchMasterInvestorsOrdersAsync;","export const areAllPropsEQFalse = (object: Record): boolean => {\n return Object.keys(object).every((property) => object[property] === false);\n};\n\nexport const convertAllPropsToTrue = (object: Record): Record => {\n const objectCopy = JSON.parse(JSON.stringify(object));\n \n Object.keys(objectCopy).forEach((property) => {\n objectCopy[property] = true;\n });\n\n return objectCopy;\n};","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport setLoadingStatus from '../setLoadingStatus';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport { areAllPropsEQFalse, convertAllPropsToTrue } from '../../../utils/object';\n\nexport const FETCH_REQUESTS = 'FETCH_REQUESTS';\n\nexport type FetchRequestsAction = {\n type: string;\n requests: Array;\n paginationInfo: PaginationInfo;\n}\n\nexport const fetchRequests = (requests: Array, paginationInfo: PaginationInfo): FetchRequestsAction => {\n return {\n type: FETCH_REQUESTS,\n requests,\n paginationInfo\n };\n};\n\nfunction fetchRequestsAsync(\n api: string,\n createdFrom: Date,\n createdTo: Date,\n page?: number,\n limit?: number,\n typeFilters?: any,\n statusFilters?: any,\n idSearch?: string,\n mmChangeFeeAccountsRequestOff?: boolean\n) {\n let query = '';\n let verifiedTypeFilters: Record;\n let verifiedStatusFilters: Record;\n\n query += `page=${page}&`;\n query += `limit=${limit}&`;\n\n if (areAllPropsEQFalse(typeFilters)) {\n verifiedTypeFilters = convertAllPropsToTrue(typeFilters);\n } else {\n verifiedTypeFilters = typeFilters;\n }\n\n Object.keys(verifiedTypeFilters).forEach((filter) => {\n if (verifiedTypeFilters[filter]) {\n query += `typeFilter=${filter.toLowerCase()}&`\n }\n });\n\n if (areAllPropsEQFalse(statusFilters)) {\n verifiedStatusFilters = convertAllPropsToTrue(statusFilters);\n } else {\n verifiedStatusFilters = statusFilters;\n }\n\n Object.keys(verifiedStatusFilters).forEach((filter) => {\n if (verifiedStatusFilters[filter]) {\n query += `statusFilter=${filter.toLowerCase()}&`\n }\n });\n\n query += `createdFrom=${Math.round(createdFrom.getTime() / 1000)}&`;\n query += `createdTo=${Math.round(createdTo.getTime() / 1000)}`;\n\n if (idSearch) query += `&query=${idSearch}`;\n\n if (mmChangeFeeAccountsRequestOff) {\n query = query.replace('typeFilter=changefeeaccountsinfo&', '');\n }\n\n return (dispatch: Dispatch) => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/requests?${query}&sortField=id&direction=desc`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchRequests(data.Data, data.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchRequestsAsync;\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { IPaymentPeriod } from '../../../types/masterTypes';\n\nexport const FETCH_MASTER_PAYMENT_PERIODS = 'FETCH_MASTER_PAYMENT_PERIODS ';\n\nexport type FetchMasterPaymentPeriodsAction = {\n type: string;\n paymentPeriods: Array;\n}\n\nexport const fetchMasterPaymentPeriods = (paymentPeriods: Array): FetchMasterPaymentPeriodsAction => {\n return {\n type: FETCH_MASTER_PAYMENT_PERIODS,\n paymentPeriods\n }\n};\n\nfunction fetchMasterPaymentPeriodsAsync(api: string, masterId: number) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/masters/paymentPeriods/${masterId}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((paymentPeriods: any) => dispatch(fetchMasterPaymentPeriods(paymentPeriods)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchMasterPaymentPeriodsAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { GraphicsPeriodTypes } from '../../../types/masterTypes';\nimport { Summary } from '../../../types/sharedTypes';\nimport { getFromDateForRequest, getToDateForRequest } from '../../../utils/date-time';\n\nexport const FETCH_VOLUME = 'FETCH_VOLUME';\n\nexport type FetchVolumeAction = {\n type: string;\n volumeFortnight: Array;\n};\n\nconst fetchVolume = (volumeFortnight: Array): FetchVolumeAction => {\n return {\n type: FETCH_VOLUME,\n volumeFortnight\n };\n};\n\nconst fetchVolumeAsync = (api: string, id: number, period: GraphicsPeriodTypes, dateFrom: Date, dateTo: Date) => {\n let query = `${id}?period=${period}`;\n\n const dateTimeDateFrom = getFromDateForRequest(dateFrom);\n const dateTimeDateTo = getToDateForRequest(dateTo);\n\n if (dateFrom) query += `&from=${dateTimeDateFrom}`;\n if (dateTo) query += `&to=${dateTimeDateTo}`;\n\n return (dispatch: Dispatch): void => {\n fetch(`${api}/summary/volumes/${query}&calcMethod=RunningWithPreviousValue`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => {\n dispatch(fetchVolume(data));\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchVolumeAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\nimport { EditCallbackAddressesRequest, EditCallbackAddressesType } from '../../../types/settingsTypes';\n\nexport const FETCH_CALLBACK_ADDRESSES = 'FETCH_CALLBACK_ADDRESSES';\n\nexport type FetchCallbackAddressesAction = {\n type: string;\n addresses: string[];\n};\n\nconst fetchCallbackAddresses = (addresses: string[]): FetchCallbackAddressesAction => {\n return {\n type: FETCH_CALLBACK_ADDRESSES,\n addresses\n };\n};\n\nconst fetchCallbackAddressesAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/callbacks`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => dispatch(fetchCallbackAddresses(addresses)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editFetchCallbackAddressesAsync = (api: string, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/callbacks`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchCallbackAddresses(settings));\n toast.success('Callback addresses edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const editCallbackAddresses = (api: string, request: EditCallbackAddressesRequest, requestType: EditCallbackAddressesType) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/callbacks`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n let successMessage = '';\n\n switch (requestType) {\n case EditCallbackAddressesType.Add:\n successMessage = 'Callback address added successfully!';\n break;\n case EditCallbackAddressesType.Delete:\n successMessage = 'Callback address deleted successfully!';\n break;\n case EditCallbackAddressesType.Edit:\n successMessage = 'Callback addresses edited successfully!';\n break;\n default:\n break;\n }\n\n toast.success(successMessage, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n dispatch(fetchCallbackAddressesAsync(api) as any);\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchCallbackAddressesAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { ServerSettingsResponse, ServerSettingsRequest } from '../../../types/settingsTypes';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\n\nexport const FETCH_SERVER_SETTINGS = 'FETCH_SERVER_SETTINGS';\n\nexport type FetchServerSettingsAction = {\n type: string;\n settings: ServerSettingsResponse;\n};\n\nconst fetchServerSettings = (settings: ServerSettingsResponse): FetchServerSettingsAction => {\n return {\n type: FETCH_SERVER_SETTINGS,\n settings\n };\n};\n\nconst fetchServerSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/common`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => dispatch(fetchServerSettings(addresses)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editServerSettingsAsync = (api: string, request: ServerSettingsRequest) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/common`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchServerSettings(settings));\n toast.success('Server settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchServerSettingsAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport setLoadingStatus from '../../../redux/actions/setLoadingStatus';\n\nexport const FETCH_INVESTORS_REPORT = 'FETCH_INVESTORS_REPORT';\n\nexport type FetchInvestorsReportAction = {\n type: string;\n investorsReport: Array;\n paginationInfo: PaginationInfo;\n \n};\n\nconst fetchInvestorsReport = (investorsReport: Array, paginationInfo: PaginationInfo): FetchInvestorsReportAction => {\n return {\n type: FETCH_INVESTORS_REPORT,\n investorsReport,\n paginationInfo,\n };\n};\n\nconst fetchInvestorsReportAsync = (\n api: string,\n page?: number,\n limit?: number,\n sortField?: string,\n sortDirection?: string,\n filtered?: Array\n ) => {\n let queryString = `?page=${page}`;\n\n if (limit) queryString += `&limit=${limit}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (sortDirection) queryString += `&sortDirection=${sortDirection}`;\n // eslint-disable-next-line no-unused-expressions\n filtered?.forEach((filter: any): void => {\n if (filter.id === 'mtserver') queryString += `&investorMtServerFilter=${filter.value}`\n if (filter.id === 'mtlogin') queryString += `&investorMtLoginFilter=${filter.value}`\n if (filter.id === 'pammid') queryString += `&investorIdFilter=${filter.value}`\n if (filter.id === 'mmpammid') queryString += `&mmIdFilter=${filter.value}`\n if (filter.id === 'balancefrom') queryString += `&balanceFrom=${filter.value}`\n if (filter.id === 'balanceto') queryString += `&balanceTo=${filter.value}`\n if (filter.id === 'equityfrom') queryString += `&equityFrom=${filter.value}`\n if (filter.id === 'equityto') queryString += `&equityTo=${filter.value}`\n if (filter.id === 'investmentsfrom') queryString += `&investmentsFrom=${filter.value}`\n if (filter.id === 'investmentsto') queryString += `&investmentsTo=${filter.value}`\n if (filter.id === 'totalprofitfrom') queryString += `&totalProfitFrom=${filter.value}`\n if (filter.id === 'totalprofitto') queryString += `&totalProfitTo=${filter.value}`\n if (filter.id === 'createdfrom') queryString += `&createdFrom=${filter.value/1000}`\n if (filter.id === 'createdto') queryString += `&createdTo=${filter.value/1000}`\n })\n\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/investors/summary${queryString}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => dispatch(fetchInvestorsReport(data.Data, data.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchInvestorsReportAsync;\n","import { IActionType } from '../../../types/action';\n\nexport const RESET_DETAIL_INVESTOR = 'RESET_DETAIL_INVESTOR';\n\nexport const resetDetailInvestorAC = (): IActionType => ({ type: RESET_DETAIL_INVESTOR });\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Admin } from '../../../types/adminTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_ADMINS = 'FETCH_ADMINS';\n\nexport type FetchAdminsAction = {\n type: string;\n admins: Array;\n};\n\nconst fetchAdmins = (admins: Array): FetchAdminsAction => {\n return {\n type: FETCH_ADMINS,\n admins\n };\n};\n\nconst fetchAdminsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/admins?filter=All`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((admins: any) => dispatch(fetchAdmins(admins)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchAdminsAsync;\n","import { Dispatch } from 'redux';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { Admin } from '../../../types/adminTypes';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\n\nexport const FETCH_ADMIN_DETAILS = 'FETCH_ADMIN_DETAILS ';\n\nexport type FetchAdminDetailsAction = {\n type: string;\n adminDetails: Admin;\n}\n\nexport const fetchAdminDetails = (admin: Admin): FetchAdminDetailsAction => {\n return {\n type: FETCH_ADMIN_DETAILS,\n adminDetails: admin\n }\n};\n\nfunction fetchAdminDetailsAsync(api: string, adminId: number) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/admins/${adminId}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((admin: any) => dispatch(fetchAdminDetails(admin)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchAdminDetailsAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../utils/request';\nimport { Log } from '../../types/journalTypes';\nimport setLoadingStatus from './setLoadingStatus';\nimport { PaginationInfo } from '../../types/sharedTypes';\n\nexport const FETCH_LOGS = 'FETCH_LOGS';\n\nexport type FetchLogsAction = {\n type: string;\n logs: Array;\n paginationInfo: PaginationInfo;\n};\n\nconst fetchLogs = (logs: Array, paginationInfo: PaginationInfo): FetchLogsAction => {\n return {\n type: FETCH_LOGS,\n logs,\n paginationInfo\n };\n};\n\nconst fetchLogsAsync = (api: string, filters: any, startDate: Date, endDate: Date, page?: number, limit?: number, search?: string) => {\n let query = '';\n\n const startDateTimestamp = startDate.getTime() / 1000;\n const endDateTimestamp = endDate.getTime() / 1000;\n\n Object.keys(filters).forEach((filter) => {\n if (filters[filter]) {\n query += `filter=${filter}&`\n }\n });\n\n query += `from=${startDateTimestamp}&`;\n query += `to=${endDateTimestamp}&`;\n \n if (search) query +=`query=${search}&`;\n\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/admins/operations?${query}page=${page}&limit=${limit}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((json: any) => dispatch(fetchLogs(json.Data, json.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchLogsAsync;","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport { FeeAccount } from '../../../types/feeAccountTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_FEE_ACCOUNTS = 'FETCH_FEE_ACCOUNTS';\n\nexport type FetchFeeAccountsAction = {\n type: string;\n feeAccounts: Array;\n paginationInfo: PaginationInfo;\n};\n\nconst fetchFeeAccounts = (feeAccounts: Array, paginationInfo: PaginationInfo): FetchFeeAccountsAction => {\n return {\n type: FETCH_FEE_ACCOUNTS,\n feeAccounts,\n paginationInfo\n };\n};\n\nconst fetchFeeAccountsAsync = (api: string, page?: number, limit?: number, direction?: string, query?: string) => {\n let queryString = `?page=${page}&limit=${limit}&direction=${direction}`;\n\n if (query) queryString += `&query=${query}`;\n \n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/admins/feeAccounts${queryString}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((json: any) => dispatch(fetchFeeAccounts(json.Data, json.PaginationInfo)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport default fetchFeeAccountsAsync;","import { Dispatch } from 'redux';\nimport setLoadingStatus from '../../../redux/actions/setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\nimport { IMonitoringResponse } from '../../../types/maintenanceTypes';\nimport headersBuilder, { Method } from '../../../utils/request';\n\nexport const FETCH_MONITORING_ACTION = 'FETCH_MONITORING_ACTION';\n\nexport type MonitoringAction = {\n type: string;\n parameters: IMonitoringResponse;\n};\n\nconst fetchMonitoringAction = (parameters: IMonitoringResponse): MonitoringAction => {\n return {\n type: FETCH_MONITORING_ACTION,\n parameters\n };\n};\n\nconst fetchMonitoringAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/checkComponents`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((parameters: any) => {\n dispatch(fetchMonitoringAction(parameters));\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n }\n\nexport default fetchMonitoringAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IParametersToCheck, IParametersToFix } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ACCOUNT_PARAMETERS = 'FETCH_ACCOUNT_PARAMETERS';\n\nexport type AccountParametersAction = {\n type: string;\n parametersAccounts: IParametersToCheck | IParametersToFix;\n};\n\nconst fetchAccountsParameters = (parametersAccounts: IParametersToCheck | IParametersToFix): AccountParametersAction => {\n return {\n type: FETCH_ACCOUNT_PARAMETERS,\n parametersAccounts\n };\n};\n\nconst fetchAccountsParametersAsync = (api: string, request: IParametersToCheck | IParametersToFix, parameter: string, account: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/${parameter}/${account}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((parametersAccounts: any) => {\n dispatch(fetchAccountsParameters(parametersAccounts));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchAccountsParametersAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IBalanceOperation } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_EDIT_BALANCE_OPERATION = 'FETCH_EDIT_BALANCE_OPERATION';\n\nexport type EditBalanceOperationAction = {\n type: string;\n balanceOperation: IBalanceOperation;\n};\n\nconst fetchEditBalanceOperation = (balanceOperation: IBalanceOperation): EditBalanceOperationAction => {\n return {\n type: FETCH_EDIT_BALANCE_OPERATION,\n balanceOperation\n };\n};\n\nconst fetchEditBalanceOperationAsync = (api: string, request: IBalanceOperation, operationId: any) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/edit/balanceOperation/${operationId}`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((balanceOperation: any) => {\n dispatch(fetchEditBalanceOperation(balanceOperation));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchEditBalanceOperationAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport {IInvestorsCheck, InvestorsCheckType} from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_INVESTORS_CHECK_PARAMETERS = 'FETCH_INVESTORS_CHECK_PARAMETERS';\n\nexport type InvestorsParametersAction = {\n type: string;\n parametersInvestors: IInvestorsCheck;\n};\n\nconst fetchInvestorsParameters = (parametersInvestors: IInvestorsCheck): InvestorsParametersAction => {\n return {\n type: FETCH_INVESTORS_CHECK_PARAMETERS,\n parametersInvestors\n };\n};\n\nconst fetchInvestorsParametersAsync = (api: string, request: IInvestorsCheck, checkType: InvestorsCheckType) => {\n let route = `${api}/maintenance/its/`\n let message = ''\n\n switch (checkType) {\n case InvestorsCheckType.Parameters:\n route += 'checkInvestors'\n message = 'Investor parameters successfully checked!'\n break;\n case InvestorsCheckType.Positions:\n route += 'checkInvestorsPositions'\n message = 'Investor positions successfully checked!'\n break;\n }\n\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(route, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((parametersInvestors: any) => {\n dispatch(fetchInvestorsParameters(parametersInvestors));\n toast.success(message, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchInvestorsParametersAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { ILoadOrders } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_LOAD_ORDERS = 'FETCH_LOAD_ORDERS';\n\nexport type LoadOrdersAction = {\n type: string;\n loadOrders: ILoadOrders;\n};\n\nconst fetchLoadOrders = (loadOrders: ILoadOrders): LoadOrdersAction => {\n return {\n type: FETCH_LOAD_ORDERS,\n loadOrders\n };\n};\n\nconst fetchLoadOrdersByTicketsAsync = (api: string, request: ILoadOrders) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/its/loadOrders/byTickets`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((loadOrders: any) => {\n dispatch(fetchLoadOrders(loadOrders));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchLoadOrdersByTicketsAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IOrdersCompare } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ORDERS_COMPARE = 'FETCH_ORDERS_COMPARE';\n\nexport type OrdersCompareAction = {\n type: string;\n ordersCompare: IOrdersCompare;\n};\n\nconst fetchOrdersCompare = (ordersCompare: IOrdersCompare): OrdersCompareAction => {\n return {\n type: FETCH_ORDERS_COMPARE,\n ordersCompare\n };\n};\n\nconst fetchOrdersCompareAsync = (api: string, request: IOrdersCompare) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/orders/compare`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((ordersCompare: any) => {\n dispatch(fetchOrdersCompare(ordersCompare));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchOrdersCompareAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IOrdersRedistribute } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ORDERS_REDISTRIBUTE = 'FETCH_ORDERS_REDISTRIBUTE';\n\nexport type OrdersRedistributeAction = {\n type: string;\n ordersRedistribute: IOrdersRedistribute;\n};\n\nconst fetchOrdersCompare = (ordersRedistribute: IOrdersRedistribute): OrdersRedistributeAction => {\n return {\n type: FETCH_ORDERS_REDISTRIBUTE,\n ordersRedistribute\n };\n};\n\nconst fetchOrdersRedistributeAsync = (api: string, request: IOrdersRedistribute) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/orders/redistribute`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((ordersRedistribute: any) => {\n dispatch(fetchOrdersCompare(ordersRedistribute));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchOrdersRedistributeAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IOrdersReload } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ORDERS_RELOAD = 'FETCH_ORDERS_RELOAD';\n\nexport type OrdersReloadAction = {\n type: string;\n ordersReload: IOrdersReload;\n};\n\nconst fetchOrdersReload = (ordersReload: IOrdersReload): OrdersReloadAction => {\n return {\n type: FETCH_ORDERS_RELOAD,\n ordersReload\n };\n};\n\nconst fetchOrdersReloadAsync = (api: string, request: IOrdersReload) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/orders/reload`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((ordersReload: any) => {\n dispatch(fetchOrdersReload(ordersReload));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchOrdersReloadAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IOrderReopen } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_ORDERS_REOPEN = 'FETCH_ORDERS_REOPEN';\n\nexport type OrderReopenAction = {\n type: string;\n orderReopen: IOrderReopen;\n};\n\nconst fetchOrderReopen = (orderReopen: IOrderReopen): OrderReopenAction => {\n return {\n type: FETCH_ORDERS_REOPEN,\n orderReopen\n };\n};\n\nconst fetchOrderReopenAsync = (api: string, request: IOrderReopen) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/orders/reopen`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((orderReopen: any) => {\n dispatch(fetchOrderReopen(orderReopen));\n toast.success('Load Order successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchOrderReopenAsync;\n","\nimport { toast } from 'react-toastify';\nimport { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport { IPerformanceFeeCharge } from '../../../types/maintenanceTypes';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_PERFORMANCE_FEE_CHARGE = 'FETCH_PERFORMANCE_FEE_CHARGE';\n\nexport type PerformanceFeeChargeAction = {\n type: string;\n performanceFeeCharge: IPerformanceFeeCharge;\n};\n\nconst fetchPerformanceFeeCharge = (performanceFeeCharge: IPerformanceFeeCharge): PerformanceFeeChargeAction => {\n return {\n type: FETCH_PERFORMANCE_FEE_CHARGE,\n performanceFeeCharge\n };\n};\n\nconst fetchPerformanceFeeChargeAsync = (api: string, account: string, request: IPerformanceFeeCharge) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/${account}/calcIncentive`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((performanceFeeCharge: any) => {\n dispatch(fetchPerformanceFeeCharge(performanceFeeCharge));\n toast.success('Performance fee charge successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchPerformanceFeeChargeAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { IPositionCheckFix } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\n\nexport const FETCH_POSITION_CHECK_FIX = 'FETCH_POSITION_CHECK_FIX';\n\nexport type PositionCheckFixAction = {\n type: string;\n positionCheckFix: IPositionCheckFix;\n};\n\nconst fetchIPositionCheckFix = (positionCheckFix: IPositionCheckFix): PositionCheckFixAction => {\n return {\n type: FETCH_POSITION_CHECK_FIX,\n positionCheckFix\n };\n};\n\nconst fetchPositionCheckFixAsync = (api: string, request: IPositionCheckFix, parameter: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/${parameter}/positions`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((positionCheckFix: any) => {\n dispatch(fetchIPositionCheckFix(positionCheckFix));\n toast.success('Load Orders successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchPositionCheckFixAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { ISendReport } from '../../../types/maintenanceTypes';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_SEND_REPORT = 'FETCH_SEND_REPORT';\n\nexport type SendReportAction = {\n type: string;\n sendReport: ISendReport;\n};\n\nconst fetchSendReport = (sendReport: ISendReport): SendReportAction => {\n return {\n type: FETCH_SEND_REPORT,\n sendReport\n };\n};\n\nconst fetchSendReportAsync = (api: string, request: ISendReport) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/sendReport`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((sendReport: any) => {\n dispatch(fetchSendReport(sendReport));\n toast.success('Send report successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n };\n};\n\nexport default fetchSendReportAsync;\n","module.exports = __webpack_public_path__ + \"assets/images/logo-dark.png\";","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport * as Yup from 'yup';\nimport { Modal, Form, Button } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { UpdateInvestor, Investor, InvestorMode } from '../../../../types/investorTypes';\nimport updateInvestor from '../../../../redux/actions/investor/updateInvestor';\nimport { PAMMState } from '../../../../redux/reducers/rootReducer';\nimport SimpleInput from '../../../shared/SimpleInput';\nimport InputUtils from '../../../../utils/validate-schema';\nimport { AccountType } from '../../../../types/authTypes';\nimport LocalStorageUtils from '../../../../utils/local-storage';\nimport { AccountModificationSchemas } from '../../../../common/validationSchems/accountModificationSchemas';\nimport PasswordTooltip from '../PasswordTooltip';\n\ninterface InvestorEditModalProps {\n investor: Investor;\n show: boolean;\n toggleVisibility(modal: string): void;\n}\n\nconst InvestorEditModal: React.FC = ({ investor, show, toggleVisibility }): JSX.Element => {\n const inputStyle = {\n width: '15rem'\n };\n\n const dispatch = useDispatch();\n const intl = useIntl();\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const userJSON = LocalStorageUtils.getValueFromLocalStorage('user');\n const [user, setUser] = React.useState();\n\n React.useEffect(() => {\n if (typeof userJSON === 'string') {\n setUser(JSON.parse(userJSON));\n }\n }, [userJSON]);\n\n const validation = new AccountModificationSchemas(intl)\n const schema = {\n Username: validation.username,\n Password: validation.passwordNotRequired,\n Name: validation.name,\n Email: validation.email,\n Phone: validation.phone,\n Country: validation.country,\n LinkToken: validation.linkToken,\n HighWaterMark: validation.highWaterMark,\n }\n\n const originalInvestor: Investor = {\n ...investor,\n Password: ''\n };\n\n const [editInvestorForm, setEditInvestorForm] = React.useState(investor);\n const [investorForTests, setInvestorForTests] = React.useState(false);\n\n const [showTooltip, setShowTooltip] = React.useState(undefined);\n\n\n React.useEffect(() => {\n setEditInvestorForm(investor);\n }, [investor]);\n\n React.useEffect(() => {\n setInvestorForTests(investor.IsTestInvestor);\n }, [editInvestorForm, investor.IsTestInvestor]);\n\n const handleCancel = (): void => {\n setEditInvestorForm(originalInvestor);\n toggleVisibility('EditUser');\n };\n\n const handleSubmit = (): void => {\n const request: UpdateInvestor = {\n Username: editInvestorForm.Username,\n Name: editInvestorForm.Name,\n Password: editInvestorForm.Password,\n Email: editInvestorForm.Email,\n Country: editInvestorForm.Country,\n Phone: editInvestorForm.Phone,\n LinkToken: editInvestorForm.LinkToken,\n // Mode: InvestorMode.Normal,\n HighWaterMark: editInvestorForm.HighWaterMark,\n IsTestInvestor: investorForTests\n };\n\n if (user?.AccountType === AccountType.Investor || investor.Mode === Number(request.Mode)) {\n delete request.Mode;\n }\n if (investor.Username === request.Username) {\n delete request.Username;\n }\n if (investor.Name === request.Name) {\n delete request.Name;\n }\n if (investor.Password === request.Password) {\n delete request.Password;\n }\n if (investor.Email === request.Email) {\n delete request.Email;\n }\n if (investor.Country === request.Country) {\n delete request.Country;\n }\n if (investor.Phone === request.Phone) {\n delete request.Phone;\n }\n if (investor.LinkToken === request.LinkToken) {\n delete request.LinkToken;\n }\n if (investor.HighWaterMark === request.HighWaterMark) {\n delete request.HighWaterMark;\n }\n if (investor.IsTestInvestor === request.IsTestInvestor) {\n delete request.IsTestInvestor;\n }\n\n if (JSON.stringify(request)[2] === undefined) {\n return\n }\n\n dispatch(updateInvestor(api, editInvestorForm.Id.toString(), request));\n toggleVisibility('EditUser');\n };\n\n const isUpdateDisabled = InputUtils.validateSchema(Yup.object().shape(schema), editInvestorForm);\n\n const btnStyle = {\n backgroundColor: customColor,\n borderColor: customColor\n } as React.CSSProperties;\n\n const isInvalidPassword = InputUtils.validateSchema(schema.Password, editInvestorForm, 'Password');\n\n const handleMouseEnter = () => {\n setShowTooltip(true);\n };\n\n const handleMouseLeave = () => {\n setShowTooltip(false);\n };\n \n return (\n \n \n \n \n \n \n \n
\n \n\n
\n \n
\n\n \n \n
\n {showTooltip && }\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n {/* {user?.AccountType === AccountType.Admin\n ? (\n
\n \n
\n ) : null} */}\n\n {/* {user?.AccountType === AccountType.Admin\n ? (\n
\n \n
\n ) : null} */}\n\n {user?.AccountType === AccountType.Admin\n ? (\n
\n setInvestorForTests(!investorForTests)}\n />\n
\n ) : null}\n {/* \n *\n \n */}\n \n \n \n handleCancel()}\n >\n \n \n handleSubmit()}\n disabled={isUpdateDisabled}\n style={user?.AccountType === AccountType.Admin ? {} : btnStyle}\n >\n \n \n \n \n );\n};\n\nexport default InvestorEditModal;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport * as Yup from 'yup';\nimport { Modal, Form, Button } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { UpdateMaster, Master, MasterMode } from '../../../../types/masterTypes';\nimport updateMaster from '../../../../redux/actions/master/updateMaster';\nimport { PAMMState } from '../../../../redux/reducers/rootReducer';\nimport SimpleInput from '../../../shared/SimpleInput';\nimport InputUtils from '../../../../utils/validate-schema';\nimport LocalStorageUtils from '../../../../utils/local-storage';\nimport { AccountType, User } from '../../../../types/authTypes';\nimport { AccountModificationSchemas } from '../../../../common/validationSchems/accountModificationSchemas';\nimport PasswordTooltip from '../../investor/PasswordTooltip';\n\ninterface MasterEditModalProps {\n master: Master;\n show: boolean;\n toggleVisibility(modal: string): void;\n}\n\nconst MasterEditModal: React.FC = ({ master, show, toggleVisibility }): JSX.Element => {\n const inputStyle = {\n width: '15rem'\n };\n\n const dispatch = useDispatch();\n const intl = useIntl();\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const validation = new AccountModificationSchemas(intl)\n const schema = {\n Username: validation.username,\n Password: validation.passwordNotRequired,\n Name: validation.name,\n Email: validation.email,\n MinInvestment: validation.minInvestments,\n };\n\n const originalMaster: Master = master;\n\n const [editMasterForm, setEditMasterForm] = React.useState(master);\n const [masterForTests, setMasterForTests] = React.useState(false);\n const [privateMaster, setPrivateMaster] = React.useState(false);\n const [invisibleMaster, setInvisibleMaster] = React.useState(false);\n const userJSON = LocalStorageUtils.getValueFromLocalStorage('user');\n const [user, setUser] = React.useState({} as User);\n\n const [showTooltip, setShowTooltip] = React.useState(undefined);\n\n React.useEffect(() => {\n if (typeof userJSON === 'string') {\n setUser(JSON.parse(userJSON));\n }\n }, [userJSON]);\n\n React.useEffect(() => {\n setEditMasterForm(master);\n }, [master]);\n\n React.useEffect(() => {\n setMasterForTests(master.Mode === 2);\n setPrivateMaster(master.Private);\n setInvisibleMaster(master.Invisible);\n }, [editMasterForm, master.Mode, master.Private, master.Invisible]);\n\n const handleInputChange = (event: React.ChangeEvent, property: string): void => {\n setEditMasterForm({\n ...editMasterForm,\n [property]: event.target.value\n });\n };\n\n const handleCancel = (): void => {\n setEditMasterForm(originalMaster);\n toggleVisibility('EditUser');\n };\n\n const handleSubmit = (): void => {\n const request: UpdateMaster = {\n Username: editMasterForm.Username,\n Password: editMasterForm.Password,\n Name: editMasterForm.Name,\n Email: editMasterForm.Email,\n AllocationMode: Number(editMasterForm.AllocationMode),\n Mode: masterForTests ? MasterMode.Test : MasterMode.Normal,\n MinInvestment: editMasterForm.MinInvestment,\n Private: privateMaster,\n Invisible: invisibleMaster,\n Bio: editMasterForm.Bio\n };\n\n if (!masterForTests && editMasterForm.Mode === MasterMode.Disabled) {\n delete request.Mode\n }\n\n if (master.Username === request.Username) {\n delete request.Username;\n }\n if (master.Name === request.Name) {\n delete request.Name;\n }\n if (master.Email === request.Email) {\n delete request.Email;\n }\n if (master.AllocationMode === request.AllocationMode) {\n delete request.AllocationMode;\n }\n if (master.Mode === request.Mode) {\n delete request.Mode;\n }\n if (master.MinInvestment === request.MinInvestment) {\n delete request.MinInvestment;\n }\n if (master.Private === request.Private) {\n delete request.Private;\n }\n if (master.Invisible === request.Invisible) {\n delete request.Invisible;\n }\n if (master.Bio === request.Bio) {\n delete request.Bio\n }\n\n if (JSON.stringify(request)[2] === undefined) {\n return\n }\n\n dispatch(updateMaster(api, editMasterForm.Id.toString(), request));\n toggleVisibility('EditUser');\n };\n\n const isUpdateDisabled = InputUtils.validateSchema(Yup.object().shape(schema), editMasterForm);\n\n const handleMouseEnter = () => {\n setShowTooltip(true);\n };\n\n const handleMouseLeave = () => {\n setShowTooltip(false);\n };\n\n const btnStyle = {\n backgroundColor: customColor,\n borderColor: customColor\n } as React.CSSProperties;\n\n return (\n \n \n \n \n \n \n \n
\n\n \n\n \n \n
\n\n {showTooltip && }\n \n\n \n\n \n {user.AccountType === 'admin' ? (\n \n \n \n \n ) => handleInputChange(event, event.target.id)}\n >\n {/* TODO: i18n here */}\n \n \n \n \n ) : null}\n\n \n\n {user?.AccountType === AccountType.Master && (\n <>\n \n \n \n setEditMasterForm({...editMasterForm, Bio: e.target.value})}\n />\n \n )}\n\n {user?.AccountType === AccountType.Admin\n ? (\n <>\n setPrivateMaster(!privateMaster)}\n />\n\n setInvisibleMaster(!invisibleMaster)}\n />\n\n setMasterForTests(!masterForTests)}\n />\n \n ) : null}\n {/* \n *\n \n */}\n \n \n \n \n \n \n handleSubmit()}\n disabled={isUpdateDisabled}\n style={user?.AccountType === AccountType.Admin ? {} : btnStyle}\n >\n \n \n \n \n );\n};\n\nexport default MasterEditModal;\n","module.exports = __webpack_public_path__ + \"assets/images/logo-light.png\";","module.exports = __webpack_public_path__ + \"assets/images/tfb-store-title.svg\";","module.exports = __webpack_public_path__ + \"assets/images/tfb-store-close.svg\";","/* eslint-disable no-nested-ternary */\nimport React from 'react';\nimport { Button, Dropdown, Navbar } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSignOutAlt } from '@fortawesome/free-solid-svg-icons';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { withRouter, Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport { shadowBox } from '../../styles/styles';\nimport T4BLogo from '../../logos/logo-dark.png';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport fetchRequestsCountAsync from '../../redux/actions/requests/fetchRequestsCount';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport { AccountType, User } from '../../types/authTypes';\nimport InvestorEditModal from '../administrator/investor/modals/InvestorEditModal';\nimport { Investor } from '../../types/investorTypes';\nimport { Master } from '../../types/masterTypes';\nimport MasterEditModal from '../administrator/master/modals/MasterEditModal';\nimport Icons from '../../icons/icons';\nimport fetchInvestorDetailsAsync from '../../redux/actions/investor/fetchInvestorDetails';\nimport fetchMasterDetailsAsync from '../../redux/actions/master/fetchMasterDetails';\nimport { fetchSharedSettingsAsync } from '../../redux/actions/shared/fetchConfig';\nimport englishIcon from '../../icons/English.svg';\nimport deutschIcon from '../../icons/Deutsch.svg';\nimport frenchIcon from '../../icons/French.svg';\nimport portugalIcon from '../../icons/Portugal.svg';\nimport spanishIcon from '../../icons/Spanish.svg';\nimport russianIcon from '../../icons/Russian.svg';\nimport arabianIcon from '../../icons/Arabian.svg';\nimport japanIcon from '../../icons/Japan.svg';\nimport koreanIcon from '../../icons/Korean.svg';\nimport georgiaIcon from '../../icons/Georgia.svg';\nimport chineseIcon from '../../icons/Chinese.svg';\n\n\n\nconst GenUserNavbar: React.FC = ({\n location,\n signOutFunc,\n currentLang,\n languages,\n onLangChange\n}): JSX.Element => {\n const dispatch = useDispatch();\n // PAMM-2341 TODO\n // const showRequestTab = LocalStorageUtils.getValueFromLocalStorage('showRequestTab');\n const sharedConfig = useSelector((state: PAMMState) => state.configReducer.sharedConfig);\n \n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const customColors: Record = useSelector((state: PAMMState) => state.configReducer.customColorsGeneralUser);\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const requestsCount: number = useSelector((state: PAMMState) => state.requestsReducer.count);\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const linkedAccounts: Array = useSelector((state: PAMMState) => state.investorsReducer.investors);\n const master: Master = useSelector((state: PAMMState) => state.masterReducer.master);\n const userJSON = LocalStorageUtils.getValueFromLocalStorage('user');\n const [user, setUser] = React.useState({} as User);\n const [showEditInvestorModal, setShowEditInvestorModal] = React.useState(false);\n const [showEditMasterModal, setShowEditMasterModal] = React.useState(false);\n \n const linkedId = LocalStorageUtils.getValueFromLocalStorage('linkedIdMobile') || user.Id;\n\n React.useEffect(() => {\n if (typeof userJSON === 'string') {\n setUser(JSON.parse(userJSON));\n }\n }, [userJSON]);\n\n // PAMM-2341 TODO\n React.useEffect(() => {\n dispatch(fetchSharedSettingsAsync(api));\n }, [dispatch, api]);\n\n React.useEffect(() => {\n if (user?.AccountType === AccountType.Master) {\n dispatch(\n fetchMasterDetailsAsync(\n api,\n user?.Id\n )\n );\n }\n }, [dispatch, api, user]);\n\n React.useEffect(() => {\n dispatch(fetchRequestsCountAsync(api));\n }, [dispatch, api]);\n\n React.useEffect(() => {\n\n if (user?.Id && user?.AccountType === AccountType.Investor) {\n let investorId = 0;\n \n if (user?.AccountType === AccountType.Investor) {\n if (user?.AccountInfo?.LinkToken) {\n investorId = Number(linkedId);\n }\n else {\n investorId = user?.Id;\n }\n }\n\n dispatch(fetchInvestorDetailsAsync(api, investorId));\n }\n }, [dispatch, api, user.Id, linkedId]);\n\n const btnStyle = {\n background: customColors.light,\n border: 'none',\n color: customColors.additionalText,\n padding: 0,\n marginLeft: '1rem',\n marginRight: '1rem',\n borderRadius: 0,\n fontSize: 16\n } as React.CSSProperties;\n\n const btnStyleActive = {\n background: customColors.light,\n border: 'none',\n padding: 0,\n marginLeft: '1rem',\n marginRight: '1rem',\n color: customColors.dark,\n borderRadius: 0,\n fontSize: 16\n } as React.CSSProperties;\n\n const linkStyleActive = {\n borderBottom: `2px solid ${customColors.dark}`\n } as React.CSSProperties;\n\n const logOutBtn = {\n border: 'none',\n backgroundColor: 'white',\n padding: 0\n } as React.CSSProperties;\n\n const langDropdownStyle = {\n backgroundColor: 'white',\n border: 'none',\n color: 'gray',\n fontSize: 14\n } as React.CSSProperties;\n\n const imageStyles = {\n maxWidth: '260px',\n maxHeight: '66px',\n } as React.CSSProperties;\n\n const toggleModalVisibility = (): void => {\n if (user?.AccountType === 'investor') {\n setShowEditInvestorModal(!showEditInvestorModal);\n }\n if (user?.AccountType === 'master') {\n setShowEditMasterModal(!showEditMasterModal);\n }\n };\n\n const getLanguagesFlags = (value: any): string => {\n \n switch (value) {\n case 'English':\n return englishIcon;\n case 'Deutsch':\n return deutschIcon;\n case 'Français':\n return frenchIcon;\n case 'Português':\n return portugalIcon;\n case 'Español':\n return spanishIcon;\n case 'ქართული':\n return georgiaIcon;\n case 'العربية':\n return arabianIcon;\n case '한국어':\n return koreanIcon;\n case 'Русский':\n return russianIcon;\n case '日本語':\n return japanIcon;\n case '中文':\n return chineseIcon;\n default:\n return '';\n }\n };\n \n const languagesItems = Object.keys(languages)\n .filter((lang: string) => lang !== currentLang)\n .map((lang: string, index: number) => {\n return (\n onLangChange(lang)} className='pt-2 pb-2' style={{paddingLeft: 14}}>\n \n {languages[lang]}\n \n );\n });\n\n return (\n <>\n \n
\n \n \n \n
\n\n\n \n \n \n\n {user?.AccountType === AccountType.Master &&\n user?.AccountOptions?.ShowMmOwnFunds === 'Show' ? (\n \n \n \n ) : null}\n\n {user?.AccountType === AccountType.Investor &&\n investor?.AccountOptions?.MasterList === 'Show' ? (\n \n \n \n ) : null}\n {(sharedConfig?.RequestTab?.toString() !== 'false') && (\n \n \n \n )}\n\n
\n \n \n {languages[currentLang] || languages.en}\n {Icons.DropdownIcon('gray', '1x')}\n \n\n {languagesItems}\n \n \n \n
\n \n \n \n \n );\n};\n\nexport default withRouter(GenUserNavbar);\n","import logo from '../logo-light.png';\n\nexport const APP_LOGO = {\n src: logo,\n // height: 48,\n // width: 215,\n className: 'mr-3',\n alt: 'PAMM',\n href: '/'\n};\n","import * as React from 'react';\nimport { useEffect } from 'react';\nimport { Redirect, Route } from 'react-router';\nimport { useDispatch } from 'react-redux';\nimport { getInfoMastersThunkAC } from '../../redux/actions/master/fetchMasters';\nimport LocalStorageUtils from '../../utils/local-storage';\n\nexport const PrivateRoute = ({ component, ...rest }: any) => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(getInfoMastersThunkAC());\n }, []);\n\n const routeComponent = () => {\n\n if (rest.isAuthenticated) {\n return component\n }\n\n if (window.location.pathname !== '/login') {\n const accountType = LocalStorageUtils.getValueFromLocalStorage('accountType')\n LocalStorageUtils.putValueToLocalStorage('rememberPage', JSON.stringify({page: window.location.pathname, accountType: accountType || ''}));\n }\n \n return ;\n\n }\n\n return ;\n};\n","import React from 'react';\nimport { Navbar, Row, Col } from 'react-bootstrap';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport Icons from '../../icons/icons';\nimport { Investor } from '../../types/investorTypes';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport getCurrencySymbol from '../../utils/currency';\nimport { spaceSeparatedThousands } from '../../utils/number';\nimport { getEquityOverInvestments, getEquityOverInvestmentsCredit } from '../../utils/value';\nimport { VisibilityExtendedToggle } from \"../../types/toggles\";\n\nconst SoMobile: React.FC = (): JSX.Element => {\n const intl = useIntl();\n\n const currenciesConfig: Record = useSelector((state: PAMMState) => state.configReducer.currency);\n const sharedConfig = useSelector((state: PAMMState) => state.configReducer.sharedConfig);\n\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n\n const currency = getCurrencySymbol(investor?.Currency, currenciesConfig);\n\n const getSoSlTpValue = (orderType: string): string | number => {\n switch (orderType) {\n case 'so':\n if (investor?.SoMode === 'Off') {\n return intl.formatMessage({ id: 'investorDetails.soSlTpInformation.disabled' });\n } if (investor?.SoMode === 'Money') {\n return `${currency} ${spaceSeparatedThousands(investor?.So)} (${investor?.SoPercent}%)`\n } if (investor?.SoMode === 'Percent') {\n return `${investor?.SoPercent}% (${currency}${spaceSeparatedThousands(investor?.So)})`;\n } if (investor?.SoMode === 'FromMM') {\n return intl.formatMessage({ id: 'investorDetails.soSlTpInformation.fromMM' });\n }\n break;\n default:\n break;\n }\n\n return intl.formatMessage({ id: 'investorDetails.soSlTpInformation.disabled' });\n };\n\n\n const creditShow = sharedConfig.CountCreditInRiskControl ? : \n\n return (\n <>\n {/* Top bar */}\n \n
\n \n \n {Icons.ArrowLeftIcon('black', 'sm')}\n \n \n \n \n \n
\n \n\n
\n {/* Stop Out */}\n {(investor?.AccountOptions?.InvestorOpenOrdersTab === VisibilityExtendedToggle.Show\n || investor?.AccountOptions?.InvestorOpenOrdersTab === VisibilityExtendedToggle.OnlyProfit) && (\n \n \n \n \n \n \n\n \n {getSoSlTpValue('so')}\n \n \n )}\n {/* Investments */}\n \n \n \n \n \n \n\n \n {`${investor.Investments} ${getCurrencySymbol(investor.Currency, currenciesConfig)}`}\n \n \n\n {/* Equity */}\n {(investor?.AccountOptions?.InvestorOpenOrdersTab === VisibilityExtendedToggle.Show\n || investor?.AccountOptions?.InvestorOpenOrdersTab === VisibilityExtendedToggle.OnlyProfit) && (\n \n \n \n \n {' '}\n {creditShow}:\n \n\n \n \n {`${investor.EquityNoCredit} ${getCurrencySymbol(investor.Currency, currenciesConfig)}`}\n \n\n \n {`(${sharedConfig.CountCreditInRiskControl ? getEquityOverInvestmentsCredit(investor) : getEquityOverInvestments(investor)} %)`}\n \n \n \n )}\n
\n \n );\n};\n\nexport default SoMobile;\n","import React, { Suspense } from 'react';\nimport { Route, Switch, Redirect } from 'react-router-dom';\nimport { History } from 'history';\nimport { useSelector } from 'react-redux';\nimport { PrivateRoute } from '../privateRoute';\nimport useWindowResize from '../../hooks/useWindowSize';\nimport { mobileWidth } from '../../const/size.const';\nimport { AccountType } from '../../types/authTypes';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport SoMobile from '../mobile/SoMobile';\n\n// Desktop components\nconst Login = React.lazy(() => import('../auth/login/Login'));\nconst InvestorsList = React.lazy(() => import('../administrator/investor/InvestorsList'));\nconst InvestorDetails = React.lazy(() => import('../administrator/investor/InvestorDetails'));\nconst MastersList = React.lazy(() => import('../administrator/master/MastersList'));\nconst MasterDetails = React.lazy(() => import('../administrator/master/MasterDetails'));\nconst AdminDetails = React.lazy(() => import('../administrator/admin/AdminDetails'));\nconst Admins = React.lazy(() => import('../administrator/admin/AdminsList'));\nconst Settings = React.lazy(() => import('../administrator/settings/Settings'));\nconst CreateUser = React.lazy(() => import('../CreateUser'));\nconst Journal = React.lazy(() => import('../administrator/journal/Journal'));\nconst AdminDashboard = React.lazy(() => import('../administrator/admin/AdminDashboard'));\nconst RequestsList = React.lazy(() => import('../administrator/requests/RequestsList'));\nconst FeeAccountsList = React.lazy(() => import('../administrator/feeAccounts/FeeAccountsList'));\nconst OrdersList = React.lazy(() => import('../administrator/orders/OrdersList'));\nconst ResetPassword = React.lazy(() => import('../resetPassword/ResetPassword'));\nconst RegisterUser = React.lazy(() => import('../register/RegisterUser'));\nconst Register = React.lazy(() => import('../auth/register/Register'));\nconst MaintenancePage = React.lazy(() => import('../administrator/maintenance/MaintenancePage'));\nconst Monitoring = React.lazy(() => import('../administrator/monitoring/MonitoringDetails'));\nconst MassAttachDetach = React.lazy(() => import('../administrator/massAttachDettach/MassAttachDetach'));\nconst InvestorsReport = React.lazy(() => import('../administrator/investorsReport/InvestorsReport'))\n\n// Mobile components\nconst LoginMobile = React.lazy(() => import('../mobile/LoginMobile'));\nconst MasterDetailsMobile = React.lazy(() => import('../mobile/MasterDetailsMobile'));\nconst MastersListMobile = React.lazy(() => import('../mobile/MastersListMobile'));\nconst RequestsListMobile = React.lazy(\n () => import('../administrator/requests/mobile/RequestsListMobile')\n);\nconst RequestsFiltersMobile = React.lazy(\n () => import('../administrator/requests/mobile/RequestsFiltersMobile')\n);\nconst InvestorDetailsMobile = React.lazy(() => import('../mobile/InvestorDetailsMobile'));\nconst ProfileMobile = React.lazy(() => import('../mobile/ProfileMobile'));\nconst ChangeBalanceCreditMobile = React.lazy(() => import('../mobile/ChangeBalanceCreditMobile'));\nconst CommissionsMobile = React.lazy(() => import('../mobile/CommissionsMobile'));\nconst DownloadStatementMobile = React.lazy(() => import('../mobile/DownloadStatementMobile'));\nconst HistoryMobile = React.lazy(() => import('../mobile/HistoryMobile'));\nconst OrderMobile = React.lazy(() => import('../mobile/OrderMobile'));\nconst BalanceOperationMobile = React.lazy(() => import('../mobile/BalanceOperationMobile'));\nconst BioMobile = React.lazy(() => import('../mobile/BioMobile'));\nconst SlTpMobile = React.lazy(() => import('../mobile/SlTpMobile'));\nconst RegisterUserMobile = React.lazy(() => import('../mobile/RegisterUserMobile'));\nconst RegisterUserSelectMobile = React.lazy(() => import('../mobile/RegisterUserSelectMobile'));\nconst ConnectedInvestorsMobile = React.lazy(() => import('../mobile/ConnectedInvestors'));\nconst ConnectedInvestorDetailMobile = React.lazy(() => import('../mobile/ConnectedInvestorDetail'));\n\n// New interface components\nconst GenUserMastersList = React.lazy(() => import('../generalUser/master/MastersList'));\nconst GenUserRequestsList = React.lazy(() => import('../generalUser/requests/RequestsList'));\nconst InvestorDashboard = React.lazy(() => import('../generalUser/investor/InvestorDashboard'));\nconst MasterDashboard = React.lazy(() => import('../generalUser/master/MasterDashboard'));\nconst IframePage = React.lazy(() => import('../iframePage/IframePage'));\n\ninterface IAppRoutesProps {\n isAuthenticated: boolean;\n signInFunc: any;\n history: History;\n currentLang?: string;\n}\n\nconst fillRoutes = (\n routes: Array,\n isAuthenticated: boolean,\n signInFunc: any,\n history: History,\n showMobileVersion: boolean,\n user: any,\n investor: Investor,\n currentLang?: string\n) => {\n let redirectAfterLogin: JSX.Element;\n\n if (user) {\n switch (user.AccountType) {\n case AccountType.Admin:\n redirectAfterLogin = ;\n break;\n case AccountType.Investor:\n redirectAfterLogin = ;\n break;\n case AccountType.Master:\n redirectAfterLogin = ;\n break;\n default:\n break;\n }\n }\n\n const loginPage = () =>\n isAuthenticated ? (\n redirectAfterLogin\n ) : (\n
\n {/* {showMobileVersion ? : } */}\n {showMobileVersion ? : }\n
\n );\n\n if (user) {\n // ADMINISTRATOR (OLD INTERFACE (desktop only))\n if (user.AccountType === AccountType.Admin) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n // showMobileVersion ? (\n // }\n // />\n // ) : (\n }\n />\n // )\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n // showMobileVersion ? (\n // }\n // />\n // ) : (\n }\n />\n // )\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n }\n\n // INVESTOR (NEW DESKTOP INTERFACE)\n if (user.AccountType === AccountType.Investor && !showMobileVersion) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n }\n // MASTER (NEW DESKTOP INTERFACE)\n if (user.AccountType === AccountType.Master && !showMobileVersion) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n }\n\n // INVESTOR or MASTER (MOBILE/TABLET INTERFACE))\n if (showMobileVersion) {\n if (user.AccountType === AccountType.Investor || user.AccountType === AccountType.Master) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n\n if (\n user.AccountType === AccountType.Investor &&\n investor.AccountOptions.InvestorMmDetails === 'Show'\n ) {\n routes.push(\n }\n />\n );\n }\n\n routes.push(\n }\n />\n );\n // routes.push(} />);\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n routes.push(\n \n ) : (\n \n )\n }\n />\n );\n routes.push(\n }\n />\n );\n }\n }\n }\n\n if (showMobileVersion) {\n routes.push(\n }\n />\n );\n routes.push(\n }\n />\n );\n } else {\n routes.push( } />);\n }\n routes.push(\n } />\n );\n routes.push( } />);\n routes.push();\n routes.push();\n};\n\nconst AppRoutes: React.FC = ({\n isAuthenticated,\n signInFunc,\n history,\n currentLang\n}: IAppRoutesProps): JSX.Element => {\n const [width, height] = useWindowResize();\n\n const [showMobileVersion, setShowMobileVersion] = React.useState(width < mobileWidth);\n const userJSON = LocalStorageUtils.getValueFromLocalStorage('user');\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n\n let user: any;\n\n if (typeof userJSON === 'string') {\n user = JSON.parse(userJSON);\n }\n\n React.useEffect(() => {\n setShowMobileVersion(width < mobileWidth);\n }, [width, height]);\n\n React.useEffect(() => {\n return history.listen((location) => {\n if (!location.pathname.includes('money_managers')) {\n LocalStorageUtils.removeValueFromLocalStorage('investorToAttach');\n }\n });\n }, [history]);\n\n const routes: Array = [];\n\n fillRoutes(routes, isAuthenticated, signInFunc, history, showMobileVersion, user, investor, currentLang);\n\n return (\n \n {routes}\n \n );\n};\n\nexport default AppRoutes;\n","import React from 'react';\nimport { Link, withRouter } from 'react-router-dom';\nimport { Navbar, Col } from 'react-bootstrap';\nimport { FormattedMessage } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Icons from '../../icons/icons';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport fetchInvestorDetailsAsync from '../../redux/actions/investor/fetchInvestorDetails';\nimport { AccountType } from '../../types/authTypes';\nimport { fetchSharedSettingsAsync } from '../../redux/actions/shared/fetchConfig';\n\nconst BottomBarMobile: React.FC = ({ user, location }): JSX.Element => {\n const dispatch = useDispatch();\n\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n // PAMM-2341 TODO\n // const showRequestTab = LocalStorageUtils.getValueFromLocalStorage('showRequestTab');\n const currentAddress = location.pathname;\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n // PAMM-2341 TODO\n const sharedConfig = useSelector((state: PAMMState) => state.configReducer.sharedConfig);\n\n const shouldDashboardButtonLightUp = (): boolean => {\n return currentAddress.includes('dashboard') ||\n currentAddress.includes('commissions') ||\n currentAddress.includes('closed-order') ||\n currentAddress.includes('history') ||\n currentAddress.includes('change-balance') ||\n currentAddress.includes('change-credit') ||\n currentAddress.includes('balance-operation');\n };\n\n const onlyTwoButtonsActive = user.AccountOptions.MasterList === 'Hide' && sharedConfig?.RequestTab?.toString() === 'false';\n\n const linkedId = LocalStorageUtils.getValueFromLocalStorage('linkedIdMobile') || user.Id;\n\n React.useEffect(() => {\n\n if (user?.Id && user?.AccountType === AccountType.Investor) {\n let investorId = 0;\n\n if (user?.AccountType === AccountType.Investor) {\n if (user?.AccountInfo?.LinkToken) {\n investorId = Number(linkedId);\n }\n else {\n investorId = user?.Id;\n }\n }\n\n dispatch(fetchInvestorDetailsAsync(api, investorId));\n }\n }, [dispatch, api, user.Id, linkedId]);\n\n // PAMM-2341 TODO\n React.useEffect(() => {\n dispatch(fetchSharedSettingsAsync(api));\n }, [dispatch, api, sharedConfig?.RequestTab]);\n\n const buttonStyle = {\n display: 'flex',\n width: '2.5rem',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: '.3rem',\n marginTop: '.3rem',\n } as React.CSSProperties;\n\n const activeButtonStyle = {\n ...buttonStyle,\n color: customColor,\n } as React.CSSProperties;\n \n const textStyle = {\n color: 'black',\n fontSize: 12,\n } as React.CSSProperties;\n\n const activeTextStyle = {\n ...textStyle,\n color: customColor,\n textDecoration: 'none',\n outline: 'none',\n } as React.CSSProperties;\n\n return (\n \n \n \n \n {Icons.ChartAreaIcon(shouldDashboardButtonLightUp() ? customColor : '#343a40', '1x')}\n
\n
\n \n
\n \n \n {/* \n \n
\n {Icons.UserIcon('#343a40', '1x')}\n
\n
\n \n
\n \n */}\n {investor.AccountOptions.MasterList === 'Show' && user.AccountType === 'investor'\n ? (\n \n \n \n {Icons.UsersIcon(currentAddress.includes('/money_managers') || currentAddress.includes('/bio') ? customColor : '#343a40', '1x')}\n
\n
\n \n
\n \n \n ) : null}\n {sharedConfig?.RequestTab?.toString() !== 'false'\n ? (\n \n \n \n {Icons.ExchangeIcon(currentAddress.includes('/requests') ? customColor : '#343a40', '1x')}\n
\n
\n \n
\n \n \n ) : null}\n \n \n \n {Icons.CogIcon(currentAddress === '/profile' ? customColor : '#343a40', '1x')}\n
\n
\n \n
\n \n \n \n );\n};\n\nexport default withRouter(BottomBarMobile);\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Link, withRouter } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSignOutAlt } from '@fortawesome/free-solid-svg-icons';\nimport OperationsMenuMobileCss from './OperationsMenuMobile.module.css'\nimport Icons from '../../icons/icons';\nimport { setDisconnectFromMasterConfirmationStatus, setLanguagesMenuStatus, setOpsMenuStatus } from '../../redux/actions/setMobileMenusStatus';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { AccountType } from '../../types/authTypes';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport { Investor } from '../../types/investorTypes';\n\nconst OperationsMenuMobile: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel,\n location,\n currentLang\n}): JSX.Element => {\n const dispatch = useDispatch();\n\n const languages: Record = useSelector((state: PAMMState) => state.configReducer.languages);\n const customColorsGenUser = useSelector((state: PAMMState) => state.configReducer.customColorsGeneralUser);\n const userJSON: string | null = LocalStorageUtils.getValueFromLocalStorage('user');\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const customColors: Record = useSelector(\n (state: PAMMState) => state.configReducer.customColorsGeneralUser\n );\n \n let user: any;\n\n if (typeof userJSON === 'string') {\n user = JSON.parse(userJSON);\n }\n\n const linkedId = LocalStorageUtils.getValueFromLocalStorage('linkedIdMobile') || user?.Id;\n\n const showDisconnectFromThisMasterWarning =\n investor.MasterId !== 0 && investor?.AccountOptions?.DetachAction !== 'Off';\n\n React.useEffect(() => {\n dispatch(setOpsMenuStatus(false));\n }, [dispatch, location]);\n\n const handleShowLanguagesMenu = (): void => {\n dispatch(setOpsMenuStatus(false));\n dispatch(setLanguagesMenuStatus(true));\n };\n\n const handleDetachInvestor = (): void => {\n dispatch(setDisconnectFromMasterConfirmationStatus(true));\n dispatch(setOpsMenuStatus(false));\n };\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem',\n paddingTop: '32px'\n } as React.CSSProperties;\n\n const iconStyle = {\n borderRadius: '50%',\n backgroundColor: '#E9E9E9',\n width: '2.5rem',\n height: '2.5rem',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n } as React.CSSProperties;\n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('operationsMenu')}\n >\n {/* INVESTOR: Deposit or Deposit/Withdrawal */}\n {user?.AccountType === AccountType.Investor && investor?.AccountOptions?.InvestorWithdrawButton === 'Show'\n ? (\n \n
\n \n {Icons.ArrowsAltH(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : null}\n\n {/* MASTER: Deposit/Withdrawal */}\n {/* It should use the Master's OwnFunds ID, instead of the Master's own ID */}\n {/* {user?.AccountType === AccountType.Master && user?.AccountInfo?.AccountOptions?.ShowMmOwnFunds === 'Show'\n ? (\n \n
\n \n {Icons.ArrowsAltH(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : null} */}\n\n {/* INVESTOR: Credit In/Out */}\n {user?.AccountType === AccountType.Investor && investor?.AccountOptions?.InvestorCreditButton === 'Show'\n ? (\n \n
\n \n {Icons.ArrowsAltH(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : null}\n\n {/* INVESTOR: DISCONNECT */}\n {user?.AccountType === AccountType.Investor && showDisconnectFromThisMasterWarning\n ? (\n \n
\n \n \n \n \n \n \n
\n \n ) : null}\n\n {/* INVESTOR: AUTO DISCONNECT */}\n {user?.AccountType === AccountType.Investor && investor?.AccountOptions?.ChangeSlTpButton === 'Show'\n ? (\n \n
\n \n \n \n \n \n \n
\n \n ) : null}\n\n\n {/* An empty space, if user IS Investor, but can't see their Credit button */}\n {/* {user?.AccountType === AccountType.Investor && investor?.AccountOptions?.InvestorCreditButton === 'Hide'\n ? (\n
\n {/* space */}\n {/*
*/}\n {/* ) : null} */}\n\n {/* MASTER: Credit In/Out */}\n {/* {user?.AccountType === AccountType.Master && user?.AccountInfo?.AccountOptions?.ShowMmOwnFunds === 'Show'\n ? (\n \n
\n \n {Icons.ArrowsAltH(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : null} */}\n {/* An empty space, if user IS Master, but can't see their OwnFunds account */}\n {/* {user?.AccountType === AccountType.Master && user?.AccountInfo?.AccountOptions?.ShowMmOwnFunds === 'Hide'\n ? (\n
\n {/* space */}\n {/*
*/}\n {/* ) : null} */}\n\n {/* MASTER and INVESTOR: Orders Commissions */}\n\n \n
\n \n {Icons.DollarSignIcon(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n\n\n {/* MASTER: Connected Investors */}\n {user?.AccountType === AccountType.Master && user?.AccountInfo?.AccountOptions?.MmConnectedInvestors === 'Show'\n ? (\n \n
\n \n {Icons.UsersIcon(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : (\n
\n {/* space */}\n
\n )}\n\n\n {/* History: Always show for INVESTOR and MASTER */}\n \n
\n \n {Icons.HistoryIcon(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n\n {/* Statements: Condition for INVESTOR, but always show for MASTER */}\n {investor?.AccountOptions?.InvestorStatementButton === 'Show' || user?.AccountType === AccountType.Master\n ? (\n \n
\n \n {Icons.FileAltIcon(customColorsGenUser.dark, 'sm')}\n \n \n \n \n
\n \n ) : (\n
\n {/* space */}\n
\n )}\n\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n \n \n {Icons.LanguageIcon(customColorsGenUser.dark, 'sm')}\n \n \n {languages[currentLang] || languages.en}\n \n \n \n );\n};\n\nexport default withRouter(OperationsMenuMobile);\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from 'react';\nimport { Button, Row } from 'react-bootstrap';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Icons from '../../icons/icons';\nimport { setLinkedAccountsMenuStatus } from '../../redux/actions/setMobileMenusStatus';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport LocalStorageUtils from '../../utils/local-storage';\n\nconst LinkedAccountsMenuMobile: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel\n}): JSX.Element => {\n const dispatch = useDispatch();\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem'\n } as React.CSSProperties;\n\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const linkedAccounts: Array = useSelector((state: PAMMState) => state.investorsReducer.investors);\n const [selectedLinkedAccountIndex, setSelectedLinkedAccountIndex] = React.useState(investor.Id);\n\n // TODO\n // React.useEffect(() => {\n // if (investor.LinkToken)\n // dispatch(fetchInvestorsAsync(api, investor.LinkToken, undefined, undefined, 1));\n // }, [dispatch, api, investor.Id]);\n\n React.useEffect(() => {\n setSelectedLinkedAccountIndex(linkedAccounts.findIndex((account: Investor) => account?.Id === investor?.Id));\n }, [investor, linkedAccounts]);\n\n const handleSelectLinkedAccount = (id: number): void => {\n // dispatch(fetchInvestorDetailsAsync(api, id));\n dispatch(setLinkedAccountsMenuStatus(false));\n // TODO\n // dispatch(\n // fetchOrdersAsync(\n // api,\n // 'investors',\n // OrderType.Open,\n // id,\n // undefined,\n // undefined,\n // 20,\n // 'mtorderid',\n // 'asc'\n // )\n // );\n LocalStorageUtils.putValueToLocalStorage('linkedIdMobile', id.toString());\n };\n\n const btnStyle = {\n backgroundColor: 'white',\n color: 'inherit',\n border: 'none',\n fontSize: '1.3rem',\n padding: 0,\n margin: 0,\n width: '100%'\n } as React.CSSProperties;\n\n const linkedAccountsLinks = linkedAccounts.map((linkedAccount: any, index: number) => {\n if (linkedAccount?.Id !== investor.Id) {\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <>\n \n handleSelectLinkedAccount(linkedAccount?.Id)}\n style={btnStyle}\n >\n
\n \n {Icons.CircleIcon('lightgrey', '2x')}\n \n \n {linkedAccount?.Name}\n \n
\n \n
\n\n {index !== linkedAccounts?.length - 1 ?
: null}\n \n );\n }\n\n return true;\n })\n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('LinkedAccountsMenu')}\n >\n {linkedAccountsLinks}\n \n );\n};\n\nexport default LinkedAccountsMenuMobile;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport englishIcon from '../../icons/English.svg';\nimport deutschIcon from '../../icons/Deutsch.svg';\nimport frenchIcon from '../../icons/French.svg';\nimport portugalIcon from '../../icons/Portugal.svg';\nimport spanishIcon from '../../icons/Spanish.svg';\nimport russianIcon from '../../icons/Russian.svg';\nimport arabianIcon from '../../icons/Arabian.svg';\nimport japanIcon from '../../icons/Japan.svg';\nimport koreanIcon from '../../icons/Korean.svg';\nimport georgiaIcon from '../../icons/Georgia.svg';\nimport chineseIcon from '../../icons/Chinese.svg';\n\nconst LanguagesMenuMobile: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel,\n onLangChange\n}): JSX.Element => {\n const languages: Record = useSelector((state: PAMMState) => state.configReducer.languages);\n\n const getLanguagesFlags = (value: any): string => {\n \n switch (value) {\n case 'English':\n return englishIcon;\n case 'Deutsch':\n return deutschIcon;\n case 'Français':\n return frenchIcon;\n case 'Português':\n return portugalIcon;\n case 'Español':\n return spanishIcon;\n case 'ქართული':\n return georgiaIcon;\n case 'العربية':\n return arabianIcon;\n case '한국어':\n return koreanIcon;\n case 'Русский':\n return russianIcon;\n case '日本語':\n return japanIcon;\n case '中文':\n return chineseIcon;\n default:\n return '';\n }\n };\n\n const langLinks = Object.keys(languages).map((lang: string, index: number) => (\n
onLangChange(lang)}>\n
\n \n \n \n {languages[lang]}\n \n \n
\n\n {index === Object.keys(languages).length\n ?
\n : null}\n
\n ));\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem'\n } as React.CSSProperties; \n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('languagesMenu')}\n >\n {langLinks}\n \n );\n};\n\nexport default LanguagesMenuMobile;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from 'react';\nimport { Button } from 'react-bootstrap';\nimport { useHistory } from 'react-router-dom';\nimport { History } from 'history';\nimport { FormattedMessage } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { createRequestToAttachInvestor } from '../../redux/actions/investor/attachInvestor';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport { Master } from '../../types/masterTypes';\nimport { setConnectToMasterConfirmationStatus } from '../../redux/actions/setMobileMenusStatus';\n\nconst ConfirmConnectToMasterMenu: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel\n}): JSX.Element => {\n const dispatch = useDispatch();\n const history: History = useHistory();\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem'\n } as React.CSSProperties;\n\n const buttonStyle = {\n backgroundColor: customColor,\n color: 'white',\n border: 0,\n borderRadius: 10,\n fontSize: 13,\n paddingBottom: 7,\n WebkitBoxShadow: '0px 0px 7px 2px rgba(0,0,0,0.1)',\n boxShadow: '0px 0px 7px 2px rgba(0,0,0,0.1)',\n width: '70%'\n } as React.CSSProperties;\n\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const master: Master = useSelector((state: PAMMState) => state.masterReducer.master);\n\n const handleAttach = (): void => {\n dispatch(createRequestToAttachInvestor(api, investor.Id.toString(), master.Id.toString(), history));\n dispatch(setConnectToMasterConfirmationStatus(false));\n };\n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('confirmConnectToMasterMenu')}\n >\n
\n ?\n
\n
\n \n
\n \n );\n};\n\nexport default ConfirmConnectToMasterMenu;\n","export const getOperationsMenuHeight = (userType: string, accountOptions: any): any => {\n const regularButton = 59.5; // Height in pixels WITH bottom margin\n const separationButton = 91.5; // Height in pixels WITHOUT bottom margin\n\n let height = 0;\n\n if (userType === 'investor') {\n // Deposit/Withdrawal\n if (accountOptions.InvestorWithdrawButton === 'Show' && accountOptions.InvestorCreditButton === 'Show') {\n height += regularButton;\n }\n if (accountOptions.InvestorWithdrawButton === 'Show' && accountOptions.InvestorCreditButton === 'Hide') {\n height += separationButton;\n }\n\n if (accountOptions.InvestorCreditButton === 'Show' && accountOptions.InvestorWithdrawButton === 'Show') {\n height += regularButton;\n }\n if (accountOptions.InvestorCreditButton === 'Show' && accountOptions.InvestorWithdrawButton === 'Hide') {\n height += separationButton;\n }\n\n // Disconnect button\n if (accountOptions.Disconnect !== 'Off') {\n height += regularButton;\n }\n\n // Commissions button\n if (accountOptions.OrdersCommissions === 'Show') {\n height += separationButton;\n }\n\n // History button\n height += regularButton;\n\n // Statements button\n if (accountOptions.InvestorStatementButton === 'Show') {\n height += separationButton;\n } else {\n // History becomes a separationButton\n height -= regularButton;\n height += separationButton;\n }\n\n // Language button\n height += regularButton;\n\n // Padding top and bottom\n height += 100;\n }\n\n if (userType === 'master') {\n // Deposit button\n height += regularButton;\n\n // Withdrawal button\n height += separationButton;\n\n // Commissions button\n if (accountOptions.OrdersCommissions === 'Show') {\n height += separationButton;\n }\n\n // Connected Investors button\n if (accountOptions.MmConnectedInvestors === 'Show') {\n height += regularButton;\n }\n\n // History button\n height += regularButton;\n\n // Statements button\n height += separationButton;\n\n // Language button\n height += regularButton;\n }\n\n // Padding top and bottom\n height += 110;\n\n return height;\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from 'react';\nimport { Button } from 'react-bootstrap';\nimport { useHistory } from 'react-router-dom';\nimport { History } from 'history';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { createRequestToDetachInvestor } from '../../redux/actions/investor/detachInvestor';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport { Master } from '../../types/masterTypes';\nimport { setDisconnectFromMasterConfirmationStatus } from '../../redux/actions/setMobileMenusStatus';\nimport { spaceSeparatedThousands } from '../../utils/number';\nimport { getEquityOverInvestmentsCredit } from '../../utils/value';\nimport getCurrencySymbol from '../../utils/currency';\nimport { VisibilityExtendedToggle } from \"../../types/toggles\";\n\nconst ConfirmDisconnectFromMasterMenu: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel\n}): JSX.Element => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const history: History = useHistory();\n const customColor = useSelector((state: PAMMState) => state.configReducer.customColor);\n\n const style = {\n width: '100%',\n height: menuHeight,\n position: 'fixed',\n zIndex: 9999,\n bottom: '-5rem',\n backgroundColor: 'white',\n transition: '0.5s',\n padding: '1.5rem',\n fontSize: '1.3rem'\n } as React.CSSProperties;\n\n const buttonStyle = {\n backgroundColor: customColor,\n color: 'white',\n border: 0,\n borderRadius: 10,\n fontSize: 13,\n paddingBottom: 7,\n WebkitBoxShadow: '0px 0px 7px 2px rgba(0,0,0,0.1)',\n boxShadow: '0px 0px 7px 2px rgba(0,0,0,0.1)',\n width: '70%'\n } as React.CSSProperties;\n\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n const master: Master = useSelector((state: PAMMState) => state.masterReducer.master);\n\n const currenciesConfig: Record = useSelector((state: PAMMState) => state.configReducer.currency);\n const currency = getCurrencySymbol(investor?.Currency, currenciesConfig);\n\n\n const handleAttach = (): void => {\n dispatch(createRequestToDetachInvestor(api, investor.Id.toString(), master.Id.toString(), history));\n dispatch(setDisconnectFromMasterConfirmationStatus(false));\n };\n\n return (\n onSwipe(event)}\n onPointerCancel={() => onCancel('confirmDisconnectFromMasterMenu')}\n >\n
\n ?\n
\n {(investor?.AccountOptions?.InvestorOpenOrdersTab === VisibilityExtendedToggle.Show\n || investor?.AccountOptions?.InvestorOpenOrdersTab === VisibilityExtendedToggle.OnlyProfit) && (\n
\n \n {`${intl.formatMessage({id: 'investorDetails.balanceIndicators.equity'})}: ${currency}${spaceSeparatedThousands(investor?.Equity)} (${getEquityOverInvestmentsCredit(investor)} %)`}\n \n {/* \n {`${intl.formatMessage({id: 'investorDetails.balanceIndicators.disconnectEquity'})}: ${currency}${spaceSeparatedThousands(investor?.DisconnectEquity)}`}\n */}\n
\n )}\n
\n \n
\n\n \n );\n};\n\nexport default ConfirmDisconnectFromMasterMenu;\n","const getLinkedAccountsMenuMobileHeight = (height: number): number | string => {\n return 100 + (height * 78);\n};\n\nexport default getLinkedAccountsMenuMobileHeight;","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable react/button-has-type */\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport tfbStoreTitle from '../../icons/tfb-store-title.svg'\nimport tfbStoreClose from '../../icons/tfb-store-close.svg'\nimport styles from './styles/StorePopupModal.module.css'\nimport { PAMMState } from '../../redux/reducers/rootReducer';\n\nconst StorePopupModal = () => {\n\n const redirectButton: string | undefined = useSelector((state: PAMMState) => state.configReducer?.tfbStorePopupModal?.redirectButton);\n\n const modalRef = React.useRef(null);\n\n const showTfbStorePopupModal: boolean = useSelector((state: PAMMState) => state.configReducer.tfbStorePopupModal.showTfbStorePopupModal);\n\n const [isOpen, setIsOpen] = React.useState(showTfbStorePopupModal);\n\n const closeModal = () => {\n localStorage.setItem('closedStorePopupModal', 'closed')\n setIsOpen(false);\n };\n\n const handleRedirect = (url: string) => {\n if (url) {\n window.open(url, '_blank', 'noopener,noreferrer');\n closeModal();\n }\n };\n\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (modalRef.current && !((modalRef.current as unknown) as HTMLElement).contains(event.target as Node)) {\n closeModal();\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n return (\n
\n {isOpen && (\n
\n
\n
\n \"store-title\"\n \"store-close\"\n
\n
\n \n
\n
\n \n
\n handleRedirect(redirectButton)}\n >\n \n \n
\n
\n )}\n
\n );\n};\n\nexport default StorePopupModal;\n","import React from 'react';\nimport { IntlProvider, FormattedMessage } from 'react-intl';\nimport { AppNavbar, AppSideBar, IconItem } from '@t4b/core';\nimport { ToastContainer } from 'react-toastify';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { History, Location } from 'history';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { OverlayScrollbarsComponent } from 'overlayscrollbars-react';\nimport { Nav, Modal, Row } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSignOutAlt, faBars, faUsers, faCogs, faUserPlus, faBook, faChartArea, faExchangeAlt, faList, faUserTie, faPercent, faHandHoldingDollar, faDesktop, faNetworkWired, faFileLines} from '@fortawesome/free-solid-svg-icons';\nimport GenUserNavbar from './components/generalUser/GenUserNavbar';\nimport { APP_LOGO } from './const/logo.const';\nimport LocalStorageUtils from './utils/local-storage';\nimport { loginUserAsync, logoutUserAsync, removeJwt } from './redux/actions/auth';\nimport fetchConfigAsync, { fetchLanguageJSONAsync } from './redux/actions/shared/fetchConfig';\nimport AppRoutes from './components/routes/Routes';\nimport useWindowResize from './hooks/useWindowSize';\nimport { mobileWidth } from './const/size.const';\nimport BottomBarMobile from './components/mobile/BottomBarMobile';\nimport { PAMMState } from './redux/reducers/rootReducer';\nimport OperationsMenuMobile from './components/mobile/OperationsMenuMobile';\nimport LinkedAccountsMenu from './components/mobile/LinkedAccountsMenuMobile';\nimport LanguagesMenu from './components/mobile/LanguagesMenuMobile';\nimport ConfirmConnectToMasterMenu from './components/mobile/ConfirmConnectToMasterMenuMobile';\nimport { setOpsMenuStatus, setLinkedAccountsMenuStatus, setLanguagesMenuStatus, setConnectToMasterConfirmationStatus, setDisconnectFromMasterConfirmationStatus } from './redux/actions/setMobileMenusStatus';\nimport { Investor } from './types/investorTypes';\nimport { AccountType } from './types/authTypes';\nimport { getOperationsMenuHeight } from './utils/operationsMenuMobile';\nimport ConfirmDisconnectFromMasterMenu from './components/mobile/ConfirmDisconnectFromMasterMenuMobile';\nimport getLinkedAccountsMenuMobileHeight from './utils/linkedAccountsMenuMobile';\nimport { shadowBox } from './styles/styles';\nimport StorePopupModal from './components/shared/StorePopupModal';\n\nconst App: React.FC = () => {\n const dispatch: any = useDispatch();\n const history: History = useHistory();\n const location: Location = useLocation();\n const [width, height] = useWindowResize();\n\n const langJSON = useSelector((state: PAMMState) => state.configReducer.langFile);\n\n // START \"AppNavbar\" related\n const api = useSelector((state: PAMMState) => state.configReducer.api);\n const [currentLang, setLang] = React.useState(LocalStorageUtils.getValueFromLocalStorage('lang') as string);\n const languagesList = useSelector((state: PAMMState) => state.configReducer.languages);\n const copyright: string = useSelector((state: PAMMState) => state.configReducer.copyright);\n const defaultLanguage: string = useSelector((state: PAMMState) => state.configReducer.defaultLanguage);\n \n const [sidebarHidden, setSidebarHidden] = React.useState(true);\n // const { isLoading } = useSelector((state: any) => state.loadingStatusReducer);\n // const isAuthenticated = useSelector((store: any) => store.authReducer.isAuthenticated);\n const isAuthenticated = LocalStorageUtils.getValueFromLocalStorage('isAuthenticated') === 'true';\n\n const [tokenState, setTokenState] = React.useState(false);\n // const tokenExpired: boolean = isTokenExpired();\n const handleSidebarClick = () => setSidebarHidden(!sidebarHidden);\n const [showMobileVersion, setShowMobileVersion] = React.useState(width < mobileWidth);\n const userJSON: string | null = LocalStorageUtils.getValueFromLocalStorage('user');\n\n // this shouldn't be like this\n const investors: Array = useSelector((state: PAMMState) => state.investorsReducer.investors);\n const investor: Investor = useSelector((state: PAMMState) => state.investorReducer.investor);\n\n const closedStorePopupModal = localStorage.getItem('closedStorePopupModal');\n\n let user: any;\n\n if (typeof userJSON === 'string') {\n user = JSON.parse(userJSON);\n }\n\n React.useEffect(() => {\n if(defaultLanguage) {\n dispatch(fetchLanguageJSONAsync(currentLang || defaultLanguage));\n }\n }, [currentLang, defaultLanguage]);\n\n React.useEffect(() => {\n setShowMobileVersion(width < mobileWidth);\n }, [width, height]);\n\n const isTokenExpired = (): any => {\n if (Number(LocalStorageUtils.getValueFromLocalStorage('exp')) < Date.now()) {\n setTimeout(() =>{\n setTokenState(true);\n isTokenExpired();\n }, 360000)\n return true;\n }\n\n setTimeout(() =>{\n setTokenState(false);\n isTokenExpired();\n }, 360000)\n return false;\n }\n\n const tokenExpired: boolean = isTokenExpired();\n React.useEffect(() => {\n if (isAuthenticated && tokenExpired) {\n dispatch(logoutUserAsync(api, history, true));\n }\n }, [tokenState]);\n\n React.useEffect(() => {\n dispatch(fetchConfigAsync());\n }, [dispatch]);\n\n const onLangChange = (langKey: string): void => {\n setLang(langKey);\n LocalStorageUtils.putValueToLocalStorage('lang', langKey);\n dispatch(fetchLanguageJSONAsync(langKey));\n\n if (showMobileVersion) {\n dispatch(setLanguagesMenuStatus(false));\n }\n };\n\n const signOutFunc = () => {\n dispatch(logoutUserAsync(api, history));\n removeJwt();\n };\n\n const exitButton: JSX.Element = (\n \n \n \n );\n // END\n\n // START \"AppLoginPage\" related\n const signInFunc = (username: string, password: string, rememberMe: boolean) => {\n dispatch(loginUserAsync(api, username, password, rememberMe, history));\n };\n // END\n\n // START \"AppSideBar\" related\n const [showModal, setShowModal] = React.useState(false);\n\n const sidebarItems = [\n {\n translateKey: 'dashboard',\n isExternal: false,\n link: '/dashboard',\n icon: new IconItem('48px', faChartArea, 'lg', '10px', '#43A09A'),\n tooltipKey: \n },\n {\n translateKey: 'investors.title',\n isExternal: false,\n link: '/investors',\n icon: new IconItem('48px', faUsers, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'masters.title',\n isExternal: false,\n link: '/money_managers',\n icon: new IconItem('48px', faHandHoldingDollar, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'admins',\n isExternal: false,\n link: '/admins',\n icon: new IconItem('48px', faUserTie, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'feeAccounts.title',\n isExternal: false,\n link: '/fee-accounts',\n icon: new IconItem('48px', faPercent, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'create',\n isExternal: false,\n link: '/create/investor',\n icon: new IconItem('48px', faUserPlus, 'lg', '10px', '#70BBD0'),\n tooltipKey: \n },\n {\n translateKey: 'investorsAttachDetach',\n isExternal: false,\n link: '/mass-attach/investors',\n icon: new IconItem('48px', faNetworkWired, 'lg', '10px', '#70BBD0'),\n tooltipKey: \n },\n {\n translateKey: 'investors.report',\n isExternal: false,\n link: '/investorsReport',\n icon: new IconItem('48px', faFileLines, 'lg', '10px', '#2C869E'),\n tooltipKey: \n },\n {\n translateKey: 'orders.title',\n isExternal: false,\n link: '/orders',\n icon: new IconItem('48px', faList, 'lg', '10px', '#2C869E'),\n tooltipKey: \n },\n {\n translateKey: 'journal',\n isExternal: false,\n link: '/journal',\n icon: new IconItem('48px', faBook, 'lg', '10px', '#2C869E'),\n tooltipKey: \n },\n {\n translateKey: 'requestsNomPlur',\n isExternal: false,\n link: '/requests',\n icon: new IconItem('48px', faExchangeAlt, 'lg', '10px', '#2C869E'),\n tooltipKey: \n },\n {\n translateKey: 'administrator.monitoring',\n isExternal: false,\n link: '/monitoring',\n icon: new IconItem('48px', faDesktop, 'lg', '10px', '#FFFFFF'),\n tooltipKey: \n },\n {\n translateKey: 'settings',\n isExternal: false,\n link: '/settings/common',\n icon: new IconItem('48px', faCogs, 'lg', '10px', '#43A09A'),\n tooltipKey: \n }\n ];\n\n const handleShowModal = () => setShowModal(true);\n\n const handleCloseModal = () => setShowModal(false);\n\n const licenceModal = (\n \n \n \n \n \n \n \n

PAMM.Frontend.2.190

\n

\n {copyright}\n

\n
\n
\n );\n\n const genUserCopyrightBar = (\n \n \n {copyright}\n \n \n );\n\n const sidebarComponent = isAuthenticated && !tokenExpired ? (\n \n ) : null;\n // END\n\n const showOpsMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showOpsMenu);\n const showlinkedAccountsMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showlinkedAccountsMenu);\n const showLanguagesMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showLanguagesMenu);\n const showConfirmConnectToMasterMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showConnectToMasterConfirmation);\n const showConfirmDisconnectFromMasterMenu = useSelector((state: PAMMState) => state.mobileMenusStatusReducer.showDisconnectFromMasterConfirmation);\n\n let touches: any = [];\n\n const handleSwipe = (event: any) => {\n touches.push(event.pageY);\n }\n\n const handleCancel = (menu: string): void => {\n if (touches[0] < touches[touches.length - 1]) {\n if (menu === 'operationsMenu') {\n dispatch(setOpsMenuStatus(false));\n } else if (menu === 'linkedAccountsMenu') {\n dispatch(setLinkedAccountsMenuStatus(false));\n } else if (menu === 'languagesMenu') {\n dispatch(setLanguagesMenuStatus(false));\n } else if (menu === 'confirmConnectToMasterMenu') {\n dispatch(setConnectToMasterConfirmationStatus(false));\n } else if (menu === 'confirmDisconnectFromMasterMenu') {\n dispatch(setDisconnectFromMasterConfirmationStatus(false));\n }\n }\n\n touches = [];\n }\n\n const handleCancelSingleTouch = (): void => {\n if (showOpsMenu) {\n dispatch(setOpsMenuStatus(false));\n } else if (showlinkedAccountsMenu) {\n dispatch(setLinkedAccountsMenuStatus(false));\n } else if (showLanguagesMenu) {\n dispatch(setLanguagesMenuStatus(false));\n } else if (showConfirmConnectToMasterMenu) {\n dispatch(setConnectToMasterConfirmationStatus(false));\n } else if (showConfirmDisconnectFromMasterMenu) {\n dispatch(setDisconnectFromMasterConfirmationStatus(false));\n }\n }\n\n const shadow = (\n // eslint-disable-next-line react/self-closing-comp\n
\n
\n );\n\n const showSidebar = (): boolean => {\n if (user && isAuthenticated && !tokenExpired) {\n if (user.AccountType !== AccountType.Admin) {\n return false;\n }\n\n return true;\n }\n\n return false;\n };\n\n const showAdminNavbar = (): boolean => {\n if (user && isAuthenticated && !tokenExpired) {\n if (!showMobileVersion && user.AccountType === AccountType.Admin) {\n return true;\n }\n if (showMobileVersion && user.AccountType === AccountType.Admin) {\n return true;\n }\n }\n\n return false;\n };\n\n const showGeneralUserNavbar = (): boolean => {\n if (user && isAuthenticated && !tokenExpired) {\n if (!showMobileVersion && user.AccountType !== AccountType.Admin) {\n return true;\n }\n }\n\n return false;\n };\n\n const showBottomBar = (): boolean => {\n if (user && isAuthenticated && !tokenExpired) {\n if (showMobileVersion && user.AccountType !== AccountType.Admin) {\n return true;\n }\n }\n\n return false;\n };\n\n const getAppStyle = (): string => {\n if ((user && user.AccountType === AccountType.Admin) || !user) {\n return 'm-4 p-2 mt-1';\n }\n\n return '';\n };\n\n const overlayscrollbarsOptions = {\n overflowBehavior: {\n x: 'hidden'\n },\n scrollbars: {\n autoHide: 'scroll',\n autoHideDelay: 1000\n }\n } as OverlayScrollbars.Options;\n\n return api && (Object.keys(langJSON).length !== 0) && defaultLanguage ? (\n \n {showAdminNavbar()\n ? (\n \n ) : null}\n {showBottomBar() ? : null}\n \n {showAdminNavbar() && closedStorePopupModal !== 'closed' ? : null}\n {licenceModal}\n {showSidebar() ? sidebarComponent : null}\n {/* eslint-disable-next-line no-nested-ternary */}\n {(showMobileVersion && !user) || (showMobileVersion && user?.AccountType === 'investor') || (showMobileVersion && user?.AccountType === 'master')\n ? (\n <>\n \n
\n \n
\n \n {(showOpsMenu ||\n showlinkedAccountsMenu ||\n showLanguagesMenu ||\n showConfirmConnectToMasterMenu ||\n showConfirmDisconnectFromMasterMenu) ? shadow : null}\n \n ) : user?.AccountType === 'admin' ? (\n \n
\n \n
\n
\n ) : (\n
\n {showGeneralUserNavbar()\n ? (\n \n ) : null}\n \n \n\n {(isAuthenticated && !tokenExpired ? genUserCopyrightBar : null)}\n \n
\n )}\n \n \n \n {investors?.length > 0\n ? (\n \n ) : null}\n \n \n \n
\n ) : null;\n};\n\nexport default App;\n","import '@t4b/core/lib/index.css';\nimport 'bootstrap/dist/css/bootstrap.css';\nimport 'overlayscrollbars/css/OverlayScrollbars.css';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { BrowserRouter } from 'react-router-dom';\nimport store from './redux/store';\nimport 'react-toastify/dist/ReactToastify.css';\nimport App from './app';\nimport './app.scss';\n\nReactDOM.render(\n \n \n \n \n , \n document.getElementById('root'));\n"],"sourceRoot":""}