{"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","types/masterTypes.ts","components/shared/SimpleInput.tsx","redux/actions/shared/fetchConfig.ts","redux/actions/master/fetchMasterDetails.ts","utils/date-time.ts","redux/actions/requests/fetchRequestsCount.ts","utils/validate-schema.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/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","redux/actions/settings/mtServers.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","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","redux/actions/investor/massAttachDetachInvestors.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","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","fetch","POST","Username","Password","set","Token","maxAge","ExpiresIn","Date","now","toString","rememberURL","reload","currentURL","push","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","MasterMode","AllocationModes","FundsType","RegularPeriod","Monthly","PaymentPeriod","AccountOptionsMaster","ShowMmOwnFunds","MmChangeFeeAccountsRequest","ConnectDisconnectRequestsManaging","OwnFunds","Id","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","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","fontSize","mobileBody","xs","fontWeight","borderRight","borderLeft","borderTop","borderRadius","Group","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","FETCH_REQUESTS_COUNT","fetchRequestsCountAsync","count","fetchRequestsCount","validateSync","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","includes","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","CreateInvestor","UpdateInvestor","LimitOrderTypes","CreateInvestorFeeSetFlags","connectionFeeEnabled","performanceFeeEnabled","managementFeeEnabled","annualManagementFeeEnabled","perLotDealFeeEnabled","RegisterInvestor","getEquityOverInvestmentsCredit","FETCH_INVESTORS","RESET_DATA_INVESTORS","UPDATE_INVESTORS","SELECTED_LINKED_ACCOUNT","selectedLinkedAccountAC","isSelected","fetchInvestors","investors","paginationInfo","resetDataInvestorsAC","updateInvestorsAC","fetchInvestorsListAdminAsync","linkToken","showInactive","showTest","mmId","limit","sortField","direction","queryString","Data","fetchInvestorsAsync","filter","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","fetchMastersAsync","hideNegativeProfitMasters","returnAccountOptionsValues","mastersDefault","masters","fetchMasters","initialState","copyright","customColor","languages","loginPageDisclaimer","redirectRegistrationURL","welcomeMessage","defaultLanguage","defaultSorting","sharedConfig","iframePage","tfbStorePopupModal","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","callbackAddresses","statementPeriodsSettings","reportPeriodsSettings","paymentPeriodsSettings","serverSettings","FETCH_ADMIN_SETTINGS","settings","FETCH_MASTER_SETTINGS","FETCH_INVESTOR_SETTINGS","FETCH_CONNECTED_MT_SERVERS","FETCH_MT_SERVERS_DISABLED","FETCH_MT_SERVERS_ENABLED","FETCH_CALLBACK_ADDRESSES","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","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","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","fetchMtServersSettings","editServerSettingsAsync","fetchMtServersSettingsAsync","fetchMtServersSettingsEnabled","getActionConst","actionName","fetchPeriodsSettings","periodsType","editPeriodsSettingsAsync","fetchPeriodsSettingsAsync","fetchOrdersAsync","mtServerGuid","delimiter","Open","Closed","fetchClosedOrders","updateMaster","updateInvestor","soModal","fetchBalanceOperationsAsync","userType","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","fetchMassAttach","massDetachInvestors","massAttachInvestors","fetchInvestorsReportAsync","sortDirection","filtered","resetDetailInvestorAC","fetchAdminsAsync","fetchAdmins","fetchAdminDetailsAsync","adminId","fetchAdminDetails","fetchLogsAsync","search","startDateTimestamp","endDateTimestamp","fetchFeeAccountsAsync","fetchMonitoringAsync","fetchMonitoringAction","fetchAccountsParametersAsync","parameter","account","fetchAccountsParameters","fetchEditBalanceOperationAsync","operationId","fetchEditBalanceOperation","fetchInvestorsParametersAsync","fetchInvestorsParameters","fetchLoadOrdersByTicketsAsync","fetchLoadOrders","fetchOrdersCompareAsync","fetchOrdersCompare","fetchOrdersRedistributeAsync","fetchOrdersReloadAsync","fetchOrdersReload","fetchOrderReopenAsync","fetchOrderReopen","fetchPerformanceFeeChargeAsync","fetchPerformanceFeeCharge","fetchPositionCheckFixAsync","fetchIPositionCheckFix","fetchSendReportAsync","fetchSendReport","InvestorEditModal","show","toggleVisibility","useDispatch","useSelector","userJSON","setUser","useEffect","editInvestorSchema","Yup","required","max","matches","val","nullable","transform","v","o","originalInvestor","editInvestorForm","setEditInvestorForm","investorForTests","setInvestorForTests","handleCancel","isUpdateDisabled","shape","btnStyle","borderColor","onHide","centered","scrollable","Header","closeButton","Title","Body","Check","label","checked","Footer","variant","onClick","handleSubmit","MasterEditModal","editMasterSchema","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","background","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","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","styles","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.7af49713.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 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}","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","import { 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) => {\n return (dispatch: Dispatch): void => {\n fetch(\n `${api}/auth/login`,\n headersBuilder(Method.POST, {\n Username: username,\n Password: password,\n rememberMe\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 window.location.reload()\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 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 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 } 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 = VisibilityToggle.Default;\n InvestorHistoryTab = VisibilityToggle.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 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 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 InvestorsAutoCreationMtServer: string;\n EmptyStatementsSending: boolean;\n RequestTab: boolean;\n ChangeMtComment: boolean;\n ChargeCommissionsBeforeWithdrawal: 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}\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","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 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 Email = '';\n}\n\nexport class UpdateMaster {\n Username? = '';\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","/* 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 === 'editUser.admin.login.label'\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\n ? errorMessageBody\n : (\n (valueKey === 'Password')\n ? (\n
\n {intl.formatMessage({ id: 'createAccount.combination.password' })}\n
\n )\n :
)}\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 { 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","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 { 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 { 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 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 } 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 = VisibilityToggle.Default;\n InvestorHistoryTab = VisibilityToggle.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\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 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}\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 IInvestorsMassAttach { \n MasterId: number;\n InvestorIds: Array;\n}\n\nexport interface IInvestorsMassDetach { \n InvestorIds: Array;\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","import { 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 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): any {\n let queryString = `?page=${page}`;\n\n if (limit) queryString += `&limit=${limit}`;\n if (filter) queryString += '&filter=disabled';\n if (query) queryString += `&query=${query}`;\n if (sortField) queryString += `&sortField=${sortField}`;\n if (direction) queryString += `&direction=${direction}`;\n if (mmId) queryString += `&masterId=${mmId}`;\n if (linkToken) queryString += `&linkToken=${linkToken}`;\n\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 // 'disconnectEquity=true',\n 'profit=true',\n 'margin=true',\n 'masterId=true',\n 'masterName=true'\n ]);\n }\n\n return (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) => Errors.throwErrorMessage(error))\n .finally(() => {\n dispatch(setLoadingStatusConnectedInvestors(false));\n dispatch(setLoadingStatus(false));\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): any {\n let queryString = `?page=${page}`;\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 (mmId) queryString += `&masterId=${mmId}`;\n if (linkToken) queryString += `&linkToken=${linkToken}`;\n\n if (showInactive) queryString += '&filter=disabled';\n if (showTest) queryString += '&filter=test';\n\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 'masterName=true'\n ]);\n }\n\n return (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) => Errors.throwErrorMessage(error))\n .finally(() => {\n dispatch(setLoadingStatusConnectedInvestors(false));\n dispatch(setLoadingStatus(false));\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 Errors.throwErrorMessage(e);\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 { 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}\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};\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\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 } 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 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 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_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 { 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, MassAtachAction } 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}\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}\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\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 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;","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';\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 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 default fetchMtServersSettingsAsync;\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","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 { toast } from 'react-toastify';\nimport { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport { IInvestorsMassAttach, IInvestorsMassDetach } from '../../../types/investorTypes';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\n\nexport const FETCH_MASS_ATTACH = 'FETCH_MASS_ATTACH';\n\nexport type MassAtachAction = {\n type: string;\n massAttach: IInvestorsMassAttach;\n};\n\nconst fetchMassAttach = (massAttach: IInvestorsMassAttach): MassAtachAction => {\n return {\n type: FETCH_MASS_ATTACH,\n massAttach\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: IInvestorsMassDetach) => {\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((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\n\n\n\nexport default massAttachInvestors;\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 } 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) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n fetch(`${api}/maintenance/its/checkInvestors`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((parametersInvestors: any) => {\n dispatch(fetchInvestorsParameters(parametersInvestors));\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 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';\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 validatorRequiredKey = 'validators.error.required';\n const editInvestorSchema = {\n Username: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).max(100, intl.formatMessage({ id: 'validators.error.name' })).matches(/^[A-Za-z0-9_.@-]+?$/, intl.formatMessage({ id: 'validators.error.username' })),\n Password: Yup.string().test('len', intl.formatMessage({ id: 'validators.error.password' }), val => !val || val.length === 0 || val.length >= 6),\n Name: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).matches(/^([\\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, intl.formatMessage({ id: 'validators.error.invalidName' })),\n Email: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).matches(/^[A-Za-zА-Яа-я0-9._%+-]+@[A-Za-zА-Яа-я0-9._%+-]+\\.[A-Za-zА-Яа-я0-9]{1,100}$/, intl.formatMessage({ id: 'validators.error.email' })),\n Phone: Yup.string()\n .max(100, intl.formatMessage({ id: 'validators.error.maxLength' }))\n .matches(\n /^[A-Za-zА-Яа-я0-9\\s()+-]*$/,\n intl.formatMessage({ id: 'validators.error.mustBeLetterNumberDashPlus' })\n )\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\n Country: Yup.string()\n .max(100, intl.formatMessage({ id: 'validators.error.maxLength' }))\n .matches(\n /^[A-Za-z- ]+$/,\n intl.formatMessage({ id: 'validators.error.mustBeLetterDashSpace' })\n )\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\n LinkToken: Yup.string()\n .matches(\n /^[A-Za-zА-Яа-я0-9_-]+$/,\n intl.formatMessage({ id: 'validators.error.mustBeLetterNumberDashUnderscore' })\n )\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\n HighWaterMark: Yup.string()\n .matches(/^([0-9-]+(\\.\\d{1,2})?)$/, intl.formatMessage({ id: 'validators.error.mustBeLetterNumberDashUnderscore' }))\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\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\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(editInvestorSchema), editInvestorForm);\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 \n
\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';\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 validatorRequiredKey = 'validators.error.required';\n const editMasterSchema = {\n Username: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).max(100, intl.formatMessage({ id: 'validators.error.name' })).matches(/^[A-Za-z0-9_.@-]+?$/, intl.formatMessage({ id: 'validators.error.username' })),\n Name: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).matches(/^([\\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, intl.formatMessage({ id: 'validators.error.invalidName' })),\n Email: Yup.string().required(intl.formatMessage({ id: validatorRequiredKey })).matches(/^[A-Za-zА-Яа-я0-9._%+-]+@[A-Za-zА-Яа-я0-9._%+-]+\\.[A-Za-zА-Яа-я0-9]{1,100}$/, intl.formatMessage({ id: 'validators.error.email' })),\n MinInvestment: Yup.string()\n // .required(intl.formatMessage({ id: validatorRequiredKey }))\n .max(10, intl.formatMessage({ id: 'validators.error.minInvestment' }))\n .matches(/^[0-9]*$/, intl.formatMessage({ id: 'validators.error.mustBeNumber' }))\n .nullable()\n .transform((v, o) => (o === '' ? null : v)),\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 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 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 };\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\n if (JSON.stringify(request)[2] === undefined) {\n return\n }\n\n\n dispatch(updateMaster(api, editMasterForm.Id.toString(), request));\n toggleVisibility('EditUser');\n };\n\n const isUpdateDisabled = InputUtils.validateSchema(Yup.object().shape(editMasterSchema), editMasterForm);\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 {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.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';\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 === 'Show' && (\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 === 'Show' && (\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';\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 && investor?.AccountOptions?.InvestorOpenOrdersTab === 'Show') && (\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.183

\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":""}