{"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","icons/icons.tsx","types/settingsTypes.ts","../../../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","components/mobile/OperationsMenuMobile.module.css","components/shared/SimpleInput.tsx","api/restApiService.ts","redux/actions/auth.ts","api/auth/index.ts","types/masterTypes.ts","redux/actions/master/fetchMasterDetails.ts","utils/date-time.ts","redux/actions/shared/fetchConfig.ts","utils/validate-schema.ts","redux/actions/shared/fetchSummary.ts","const/size.const.ts","types/investorTypes.ts","redux/actions/investor/fetchInvestors.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/shared/fetchProfit.ts","redux/actions/settings/periods.ts","redux/actions/settings/mtServers.ts","redux/actions/requests/fetchRequestsCount.ts","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","redux/actions/investor/attachInvestor.ts","redux/actions/investor/detachInvestor.ts","redux/actions/shared/createUser.ts","redux/actions/settings/admin.ts","redux/actions/settings/investor.ts","utils/object.ts","redux/actions/requests/fetchRequests.ts","redux/actions/master/fetchMasterPaymentPeriods.ts","redux/actions/settings/callbackAddresses.ts","redux/actions/settings/server.ts","redux/actions/master/fetchMasterInvestorsOrders.ts","redux/actions/investor/massAttachDetachInvestors.ts","redux/actions/investor/investorDetail.ts","redux/actions/master/fetchVolume.ts","redux/actions/admin/fetchAdmins.ts","redux/actions/admin/fetchAdminDetails.ts","redux/actions/admin/editAdmin.ts","types/adminTypes.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/fetchLoadOrdersByTickets.ts","redux/actions/maintenance/fetchOrdersCompare.ts","redux/actions/maintenance/fetchOrdersRedistribute.ts","redux/actions/maintenance/fetchOrdersReload.ts","redux/actions/maintenance/fetchPerformanceFeeCharge.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","components/generalUser/GenUserNavbar.tsx","const/logo.const.ts","components/privateRoute/index.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","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","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","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","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","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","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","setTransitioningClass","DatePattern","this","Direction","FETCH_INVESTOR_DETAILS","FETCH_INVESTOR_DETAILS_FALSE","FETCH_INVESTOR_DETAILS_ATTACH_DETACH","fetchInvestorDetailsFalse","investor","investorDetails","fetchInvestorDetails","fetchInvestorDetailsFalseAsync","investorId","fetch","GET","finally","fetchInvestorDetailsAttachDetachAsync","admin","fetchInvestorDetailsAttachDetach","fetchInvestorDetailsAsync","module","exports","SimpleInput","state","valueKey","schema","placeholder","setState","labelTranslateKey","disabled","style","inputStyle","inline","acceptZero","validField","intl","useIntl","errorMessageBody","React","modified","setModified","isInvalid","wrapper","target","Number","newState","InputUtils","validateSchema","errors","map","index","Control","Feedback","desktopBody","Label","formatMessage","autoComplete","onChange","fontSize","mobileBody","xs","fontWeight","borderRight","borderLeft","borderTop","borderRadius","Group","tokenName","url","handleSuccess","handleError","Promise","reject","create","cancel","axios","CancelToken","source","token","headerAuth","Authorization","service","cancelToken","interceptors","use","get","path","params","post","put","delete","LOGIN","postLogin","RestAPI","LOGOUT","LOGIN_START","LOGIN_SUCCESS","LOGIN_RESET_STATE","loginUserAC","user","loginUserAsync","username","password","rememberMe","POST","Username","Password","Token","Date","now","ExpiresIn","toString","rememberURL","push","errorAuth","reload","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","CreateMaster","LoadHistoryMonthCount","Server","UseDefaultPaymentSettings","ByBalance","IDefaultSorting","RegisterMaster","Comment","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_CONFIG","FETCH_LANG_JSON","FETCH_CONFIG_SHARED","fetchLanguageJSONAsync","lang","langFile","fetchConfigAsync","flags","hideRegisterButton","showRequestTab","showMmRegistrator","customColors","customColorsGeneralUser","config","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","mobileWidth","phoneToTabletBreakPoint","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","performanceFeeEnabled","managementFeeEnabled","annualManagementFeeEnabled","perLotDealFeeEnabled","RegisterInvestor","FETCH_INVESTORS","RESET_DATA_INVESTORS","UPDATE_INVESTORS","SELECTED_LINKED_ACCOUNT","selectedLinkedAccountAC","isSelected","resetDataInvestorsAC","updateInvestorsAC","investors","fetchInvestorsAsync","linkToken","filter","mmId","limit","sortField","direction","queryString","Data","paginationInfo","FETCH_MASTERS","FETCH_MASTERS_DEFAULT","getInfoMastersThunkAC","getState","configReducer","userLS","userInfoAtLSJson","generateAccountOptions","generateFetchRoute","Admin","userData","updateUser","AccountInfo","fetchMastersAsync","showInactive","showTest","hideNegativeProfitMasters","returnAccountOptionsValues","mastersDefault","masters","fetchMasters","initialState","copyright","languages","loginPageDisclaimer","redirectRegistrationURL","welcomeMessage","defaultLanguage","defaultSorting","currency","requestTab","action","RequestTab","isAuthenticated","isLoading","authReducer","investorsReducer","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","arrayOfProfits","profitReducer","profitFortnight","FETCH_ARRAY_OF_PROFITS","arrayOfProfitsCopy","x","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","count","requestsReducer","FETCH_REQUESTS","FETCH_REQUESTS_COUNT","feeAccounts","feeAccountsReducer","FETCH_FEE_ACCOUNTS","showOpsMenu","showlinkedAccountsMenu","showLanguagesMenu","showConnectToMasterConfirmation","showDisconnectFromMasterConfirmation","mobileMenusStatusReducer","masterInvestorsOrdersReducer","FETCH_MASTER_INVESTORS_ORDERS","sendReport","loadOrders","ordersReload","ordersCompare","balanceOperation","ordersRedistribute","parametersAccounts","performanceFeeCharge","parameters","massAttach","reportReducer","FETCH_SEND_REPORT","FETCH_LOAD_ORDERS","FETCH_ORDERS_RELOAD","FETCH_ORDERS_COMPARE","FETCH_EDIT_BALANCE_OPERATION","FETCH_ORDERS_REDISTRIBUTE","FETCH_ACCOUNT_PARAMETERS","FETCH_PERFORMANCE_FEE_CHARGE","FETCH_MONITORING_ACTION","FETCH_MASS_ATTACH","rootReducer","combineReducers","settingsReducer","journalReducer","createStore","applyMiddleware","thunkMiddleware","mobileBodyWithNavbar","width","paddingTop","marginBottom","mobileBodyWithEllipsis","shadowBox","boxShadow","backgroundColor","margin","padding","pageButton","height","border","marginLeft","directionSwitchStyle","marginTop","paddingLeft","paddingRight","sortBySelectStyle","MozAppearance","WebkitAppearance","useWindowResize","useState","setSize","useLayoutEffect","updateSize","innerWidth","innerHeight","addEventListener","removeEventListener","fetchProfitAsync","isArray","fetchProfit","fetchArrayOfProfits","getActionConst","actionName","fetchPeriodsSettings","periodsType","editPeriodsSettingsAsync","Periods","fetchPeriodsSettingsAsync","keys","fetchMtServersSettings","editServerSettingsAsync","fetchMtServersSettingsAsync","fetchMtServersSettingsEnabled","fetchRequestsCountAsync","fetchRequestsCount","fetchOrdersAsync","mtServerGuid","delimiter","Open","Closed","fetchClosedOrders","updateMaster","updateInvestor","fetchBalanceOperationsAsync","userType","typeFilters","filtersStateObject","filters","entries","forEach","entry","getTypeFilters","fetchServersAsync","fetchServers","fetchCurrenciesAsync","fetchCurrencies","fetchMasterSettings","editMasterSettingsAsync","editMasterSettingsIdAsync","fetchMasterSettingsAsync","createRequestToAttachInvestor","isMobile","MmId","parseInt","AccountId","attachInvestor","createRequestToDetachInvestor","detachInvestor","createUserAsync","endpoint","createUser","toUpperCase","fetchAdminSettings","editAdminSettingsAsync","fetchAdminSettingsAsync","fetchInvestorSettings","editInvestorSettingsAsync","editInvestorSettingsIdAsync","fetchInvestorSettingsAsync","areAllPropsEQFalse","object","every","property","convertAllPropsToTrue","objectCopy","fetchRequestsAsync","createdFrom","createdTo","statusFilters","idSearch","mmChangeFeeAccountsRequestOff","verifiedTypeFilters","verifiedStatusFilters","round","getTime","replace","fetchMasterPaymentPeriodsAsync","fetchMasterPaymentPeriods","fetchCallbackAddresses","fetchCallbackAddressesAsync","editFetchCallbackAddressesAsync","fetchServerSettings","fetchServerSettingsAsync","fetchMasterInvestorsOrdersAsync","orderId","fetchMassAttach","massDetachInvestors","massAttachInvestors","resetDetailInvestorAC","fetchVolumeAsync","fetchAdminsAsync","fetchAdmins","fetchAdminDetailsAsync","adminId","fetchAdminDetails","editAdminAsync","editAdmin","AccountOptionsAdmin","Hide","ViewOnly","CreateAdmin","fetchLogsAsync","search","startDateTimestamp","endDateTimestamp","fetchFeeAccountsAsync","fetchMonitoringAsync","fetchMonitoringAction","fetchAccountsParametersAsync","parameter","account","fetchAccountsParameters","fetchEditBalanceOperationAsync","operationId","fetchEditBalanceOperation","fetchLoadOrdersByTicketsAsync","fetchLoadOrders","fetchOrdersCompareAsync","fetchOrdersCompare","fetchOrdersRedistributeAsync","fetchOrdersReloadAsync","fetchOrdersReload","fetchPerformanceFeeChargeAsync","fetchPerformanceFeeCharge","fetchSendReportAsync","fetchSendReport","InvestorEditModal","show","toggleVisibility","useDispatch","useSelector","userJSON","setUser","useEffect","editInvestorSchema","Yup","required","max","matches","test","val","length","nullable","transform","v","o","originalInvestor","editInvestorForm","setEditInvestorForm","handleCancel","isUpdateDisabled","shape","onHide","centered","scrollable","Header","closeButton","Title","Body","Footer","variant","onClick","handleSubmit","MasterEditModal","editMasterSchema","originalMaster","editMasterForm","setEditMasterForm","masterForTests","setMasterForTests","privateMaster","setPrivateMaster","invisibleMaster","setInvisibleMaster","controlId","as","handleInputChange","Check","label","checked","Test","Disabled","withRouter","signOutFunc","currentLang","onLangChange","requestsCount","linkedAccounts","showEditInvestorModal","setShowEditInvestorModal","showEditMasterModal","setShowEditMasterModal","linkedId","btnStyle","background","light","additionalText","marginRight","btnStyleActive","dark","linkStyleActive","borderBottom","toggleModalVisibility","languagesItems","Dropdown","Item","Navbar","zIndex","maxWidth","to","src","T4BLogo","alt","Button","includes","minWidth","Toggle","en","Menu","alignRight","active","APP_LOGO","logo","href","PrivateRoute","component","rest","render","lazy","InvestorsList","InvestorDetails","MastersList","MasterDetails","AdminDetails","Admins","Settings","CreateUser","Journal","AdminDashboard","RequestsList","FeeAccountsList","OrdersList","ResetPassword","Register","MaintenancePage","Monitoring","MassAttachDetach","LoginMobile","MasterDetailsMobile","MastersListMobile","RequestsListMobile","RequestsFiltersMobile","InvestorDetailsMobile","ProfileMobile","ChangeBalanceCreditMobile","CommissionsMobile","DownloadStatementMobile","HistoryMobile","OrderMobile","BalanceOperationMobile","BioMobile","SlTpMobile","RegisterUserMobile","RegisterUserSelectMobile","ConnectedInvestorsMobile","ConnectedInvestorDetailMobile","GenUserMastersList","GenUserRequestsList","InvestorDashboard","MasterDashboard","AppRoutes","signInFunc","showMobileVersion","setShowMobileVersion","routes","redirectAfterLogin","loginPage","fillRoutes","fallback","currentAddress","shouldDashboardButtonLightUp","onlyTwoButtonsActive","buttonStyle","display","justifyContent","alignItems","activeButtonStyle","textStyle","activeTextStyle","textDecoration","outline","fixed","paddingBottom","Col","random","menuHeight","onSwipe","onCancel","customColorsGenUser","showDisconnectFromThisMasterWarning","bottom","transition","iconStyle","onPointerMove","onPointerCancel","OperationsMenuMobileCss","link","styleRow","mb","LinkedAccountsMenuMobile","setSelectedLinkedAccountIndex","findIndex","linkedAccountsLinks","linkedAccount","Row","LanguagesMenuMobile","langLinks","ConfirmConnectToMasterMenu","useHistory","WebkitBoxShadow","getOperationsMenuHeight","accountOptions","Disconnect","ConfirmDisconnectFromMasterMenu","getLinkedAccountsMenuMobileHeight","App","useLocation","langJSON","setLang","languagesList","sidebarHidden","setSidebarHidden","tokenState","setTokenState","tokenExpired","isTokenExpired","setTimeout","langKey","exitButton","Nav","Link","data-testid","showModal","setShowModal","sidebarItems","translateKey","isExternal","IconItem","tooltipKey","faHandHoldingDollar","faUserTie","faPercent","faList","faBook","faUserPlus","faNetworkWired","faDesktop","licenceModal","Modal","genUserCopyrightBar","sidebarComponent","progressItems","currentLocation","onLicenceClick","isScrollable","showConfirmConnectToMasterMenu","showConfirmDisconnectFromMasterMenu","touches","handleSwipe","pageY","menu","shadow","overlayscrollbarsOptions","overflowBehavior","scrollbars","autoHide","autoHideDelay","locale","messages","showAdminNavbar","i18nLangs","currentLangKey","onSidebarHandlerClick","onPointerDown","options","ReactDOM","document","getElementById"],"mappings":"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","file":"static/js/main.4ca7efec.chunk.js","sourcesContent":["import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { createBrowserHistory } from 'history';\nimport { toast } from 'react-toastify';\nimport { AxiosError, 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 { RequestStatus, RequestType } from '../types/requestTypes';\nimport LocalStorageUtils from './local-storage';\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 ${LocalStorageUtils.getValueFromLocalStorage('jwt')}`\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}\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 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 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 ConfigFlags {\n hideRegisterButton: boolean;\n showMmRegistrator: boolean;\n // TODO PAMM-2341 showRequestTab: boolean;\n RequestTab: boolean;\n showOptionLockedWithdrawalsAndDisconnections: boolean;\n}\n\nexport enum BalanceOperationTypesMasters {\n Connect = 'Connect',\n Disconnect = 'Disconnect',\n Deposit = 'Deposit',\n Withdraw = 'Withdraw',\n Performance = 'Performance',\n ManagementFee = 'ManagementFee',\n AnnualManagementFee = 'AnnualManagementFee',\n Commission = 'Commission',\n DealCommission = 'DealCommission',\n Swap = 'Swap',\n BalanceCorrection = 'BalanceCorrection',\n Credit = 'Credit',\n ProfitCorrection = 'Profit Correction',\n CreditCorrection = 'Credit Correction'\n}\n\nexport enum BalanceOperationTypesInvestors {\n Deposit = 'Deposit',\n Withdraw = 'Withdraw',\n Performance = 'Performance',\n ManagementFee = 'ManagementFee',\n AnnualManagementFee = 'AnnualManagementFee',\n Commission = 'Commission',\n DealCommission = 'DealCommission',\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","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","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}\n\nexport class MetaTraderServerSettings {\n Guid = '';\n Name = '';\n Type = 0;\n TypeStr = '';\n FreeMarginCoef = 0.0;\n}\n\nexport interface EditMetaTraderServerRequest {\n ServerGuid: string;\n FreeMarginCoef: number;\n ServerName: string;\n Enabled: any;\n}\n\nexport class EditCallbackAddressesRequest {\n Callbacks = [''];\n}\n\nexport enum EditCallbackAddressesType {\n Add = 'Add',\n Delete = 'Delete',\n Edit = 'Edit'\n}\n","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 .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","// extracted by mini-css-extract-plugin\nmodule.exports = {\"styleRow\":\"OperationsMenuMobile_styleRow__1x2tj\",\"mb\":\"OperationsMenuMobile_mb__2LCzE\",\"link\":\"OperationsMenuMobile_link__70EnH\"};","/* 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}\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}: 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\n setState(newState);\n };\n if (modified) isInvalid = InputUtils.validateSchema(schema, state, valueKey);\n\n if (disabled) {\n errorMessageBody =
;\n } else if (isInvalid || validField) {\n\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 || 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 ? 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","/* eslint-disable @typescript-eslint/ban-types */\nimport axios, { AxiosError, AxiosResponse, AxiosInstance } from 'axios';\nimport LocalStorageUtils from '../utils/local-storage';\nimport Errors from '../shared/validation/errors';\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 headersBuilder, { Method } from '../../utils/request';\nimport LocalStorageUtils from '../../utils/local-storage';\nimport Errors from '../../shared/validation/errors';\nimport SERVICE_API from '../../api';\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 LocalStorageUtils.putValueToLocalStorage('jwt', user.Token);\n LocalStorageUtils.putValueToLocalStorage(\n 'exp',\n (Date.now() + user.ExpiresIn * 1000).toString()\n );\n LocalStorageUtils.putValueToLocalStorage('accountType', user.AccountType);\n LocalStorageUtils.putValueToLocalStorage('user', JSON.stringify(user));\n const rememberURL = LocalStorageUtils.getValueFromLocalStorage('rememberPage')\n dispatch(loginUserAC(user));\n return rememberURL\n })\n .then((rememberURL) => {\n const accountType = LocalStorageUtils.getValueFromLocalStorage('accountType')\n if(rememberURL && accountType === JSON.parse(rememberURL).accountType) {\n history.push(`${JSON.parse(rememberURL).page}`)\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 .then(() => {\n dispatch(logoutUserAC());\n LocalStorageUtils.removeValueFromLocalStorage('jwt');\n LocalStorageUtils.removeValueFromLocalStorage('accountType');\n LocalStorageUtils.removeValueFromLocalStorage('user');\n LocalStorageUtils.removeValueFromLocalStorage('linkedIdMobile');\n LocalStorageUtils.removeValueFromLocalStorage('masters');\n LocalStorageUtils.removeValueFromLocalStorage('investors');\n if (!errorAuth) {\n LocalStorageUtils.removeValueFromLocalStorage('rememberPage');\n }\n })\n .then(() => history.push('/login'))\n .then(() => window.location.reload())\n .catch((error: Error) => Errors.throwErrorMessage(error));\n };\n};\n\nexport { loginUserThunkAC, logoutUserAsync, loginUserAsync, loginResetStateAC };\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 { 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}\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","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 }\n dispatch(fetchMasterDetails(master))\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 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\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 '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 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 })\n .catch((error) => Errors.throwErrorMessage(error));\n };\n};\n\nexport default fetchConfigAsync;\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, timeConverter } 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","export const mobileWidth = 959;\nexport const phoneToTabletBreakPoint = 750;","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\nclass RegularPeriodSettings {\n PeriodType = PeriodTypes.None;\n PeriodDay = '';\n PeriodTime = '';\n ReversedDays = 'false';\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 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 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\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}\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 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 { 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 default fetchInvestorsAsync;\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';\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,\n query?: string,\n sortField?: string,\n direction?: string,\n returnAccountOptionsValues?: boolean | null\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\n fetch(`${api}/masters${queryString}`, headersBuilder(Method.GET))\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 } 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 customColors: Record;\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 requestTab: boolean;\n}\n\nconst initialState: ConfigState = {\n api: '',\n copyright: '',\n customColors: {},\n customColorsGeneralUser: {},\n languages: {},\n loginPageDisclaimer: '',\n redirectRegistrationURL: '',\n welcomeMessage: '',\n langFile: {},\n flags: {} as ConfigFlags,\n defaultLanguage: '',\n defaultSorting: {},\n currency: {},\n requestTab: false\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 customColors: action.config.customColors,\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 };\n case FETCH_LANG_JSON:\n return {\n ...state,\n langFile: action.langFile\n }\n case FETCH_CONFIG_SHARED:\n return {\n ...state, \n requestTab: action.config.RequestTab\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 LOGIN_ERROR\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 { Investor } from '../../../types/investorTypes';\nimport { PaginationInfo } from '../../../types/sharedTypes';\n// TODO delete a field isSelected\nexport interface InvestorsState {\n investors: Array;\n paginationInfo: PaginationInfo;\n isSelected: boolean;\n}\n\nconst initialState: InvestorsState = {\n investors: [],\n paginationInfo: new PaginationInfo(),\n isSelected: false,\n};\n\nconst investorsReducer = (\n state: InvestorsState = initialState,\n action: FetchInvestorsAction & selectedLinkedAccountAction\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 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\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 { BalanceOperation, 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;","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 } 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 arrayOfProfits: Array;\n}\n\nconst initialState: ProfitState = {\n profit: [],\n profitPerPeriod: [],\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_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;","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, IParametersToCheck, IParametersToFix, IPerformanceFeeCharge, ISendReport } 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 { 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_PERFORMANCE_FEE_CHARGE, PerformanceFeeChargeAction } from '../../actions/maintenance/fetchPerformanceFeeCharge';\nimport { FETCH_SEND_REPORT, SendReportAction } from '../../actions/maintenance/fetchSendReport';\n\nexport interface SendReportState {\n sendReport: ISendReport;\n loadOrders: ILoadOrders;\n ordersReload: IOrdersReload;\n ordersCompare: IOrdersCompare;\n balanceOperation: IBalanceOperation;\n ordersRedistribute: IOrdersRedistribute;\n parametersAccounts: IParametersToCheck | IParametersToFix;\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 ordersCompare: {} as IOrdersCompare,\n balanceOperation: {} as IBalanceOperation,\n ordersRedistribute: {} as IOrdersRedistribute,\n parametersAccounts: {} as IParametersToCheck | IParametersToFix,\n performanceFeeCharge: {} as IPerformanceFeeCharge,\n parameters: {} as IMonitoringResponse,\n massAttach: {} as IInvestorsMassAttach\n}\n\n\ntype RequestAction = SendReportAction\n & LoadOrdersAction\n & OrdersReloadAction\n & OrdersCompareAction\n & EditBalanceOperationAction\n & OrdersRedistributeAction\n & AccountParametersAction\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_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_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 React, { 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 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';\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 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) => {\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\n return (dispatch: Dispatch): void => {\n fetch(`${api}/summary/profit/${query}`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((data: any) => {\n if (calcMethod) {\n dispatch(fetchProfitPerPeriod(data));\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 { 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}s`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchPeriodsSettings(settings.Periods, 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","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 headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../setLoadingStatus';\nimport Errors from '../../../shared/validation/errors';\n\nexport const FETCH_REQUESTS_COUNT = 'FETCH_REQUESTS_COUNT';\n\nexport type FetchRequestsCountAction = {\n type: string;\n count: number;\n}\n\nexport const fetchRequestsCount = (count: number): FetchRequestsCountAction => {\n return {\n type: FETCH_REQUESTS_COUNT,\n count\n };\n};\n\nfunction fetchRequestsCountAsync(api: string) {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/requests/count?statusFilter=new`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((count: any) => dispatch(fetchRequestsCount(count as number)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n}\n\nexport default fetchRequestsCountAsync;\n","import { Dispatch } from 'redux';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { 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 from './fetchInvestorDetails';\n\nfunction updateInvestor(api: string, investorId: string, request: any) {\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(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 fetchMasterDetailsAsync, { 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 { History } from 'history';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport LocalStorageUtils from '../../../utils/local-storage';\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 ${LocalStorageUtils.getValueFromLocalStorage('jwt')}`,\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}/open-orders`);\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 (): void => {\n fetch(`${api}/requests/create/attachInvestor`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${LocalStorageUtils.getValueFromLocalStorage('jwt')}`,\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 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 { History } from 'history';\nimport Errors from '../../../shared/validation/errors';\nimport LocalStorageUtils from '../../../utils/local-storage';\nimport fetchInvestorDetailsAsync from './fetchInvestorDetails';\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 ${LocalStorageUtils.getValueFromLocalStorage('jwt')}`,\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 (): void => {\n fetch(`${api}/requests/create/detachInvestor`,{\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${LocalStorageUtils.getValueFromLocalStorage('jwt')}`,\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 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 { 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","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 { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\nimport { EditCallbackAddressesRequest, EditCallbackAddressesType } from '../../../types/settingsTypes';\n\nexport const FETCH_CALLBACK_ADDRESSES = 'FETCH_CALLBACK_ADDRESSES';\n\nexport type FetchCallbackAddressesAction = {\n type: string;\n addresses: string[];\n};\n\nconst fetchCallbackAddresses = (addresses: string[]): FetchCallbackAddressesAction => {\n return {\n type: FETCH_CALLBACK_ADDRESSES,\n addresses\n };\n};\n\nconst fetchCallbackAddressesAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/callbacks`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => dispatch(fetchCallbackAddresses(addresses)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editFetchCallbackAddressesAsync = (api: string, request: any) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/callbacks`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchCallbackAddresses(settings));\n toast.success('Callback addresses edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport const editCallbackAddresses = (api: string, request: EditCallbackAddressesRequest, requestType: EditCallbackAddressesType) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/callbacks`, headersBuilder(Method.POST, request))\n .then((response) => Errors.checkResponseForErrors(response, api))\n // eslint-disable-next-line no-alert\n .then(() => {\n let successMessage = '';\n\n switch (requestType) {\n case EditCallbackAddressesType.Add:\n successMessage = 'Callback address added successfully!';\n break;\n case EditCallbackAddressesType.Delete:\n successMessage = 'Callback address deleted successfully!';\n break;\n case EditCallbackAddressesType.Edit:\n successMessage = 'Callback addresses edited successfully!';\n break;\n default:\n break;\n }\n\n toast.success(successMessage, {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n dispatch(fetchCallbackAddressesAsync(api) as any);\n })\n .catch((error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchCallbackAddressesAsync;\n","import { Dispatch } from 'redux';\nimport { toast } from 'react-toastify';\nimport Errors from '../../../shared/validation/errors';\nimport headersBuilder, { Method } from '../../../utils/request';\nimport { ServerSettingsResponse, ServerSettingsRequest } from '../../../types/settingsTypes';\nimport setLoadingStatus from '../../actions/setLoadingStatus';\n\nexport const FETCH_SERVER_SETTINGS = 'FETCH_SERVER_SETTINGS';\n\nexport type FetchServerSettingsAction = {\n type: string;\n settings: ServerSettingsResponse;\n};\n\nconst fetchServerSettings = (settings: ServerSettingsResponse): FetchServerSettingsAction => {\n return {\n type: FETCH_SERVER_SETTINGS,\n settings\n };\n};\n\nconst fetchServerSettingsAsync = (api: string) => {\n return (dispatch: Dispatch): void => {\n dispatch(setLoadingStatus(true));\n\n fetch(`${api}/settings/common`, headersBuilder(Method.GET))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((addresses: any) => dispatch(fetchServerSettings(addresses)))\n .catch((error: Error) => Errors.throwErrorMessage(error))\n .finally(() => dispatch(setLoadingStatus(false)));\n }\n};\n\nexport const editServerSettingsAsync = (api: string, request: ServerSettingsRequest) => {\n return (dispatch: Dispatch): void => {\n fetch(`${api}/settings/common`, headersBuilder(Method.POST, request))\n .then((response: Response) => Errors.checkResponseForErrors(response, api))\n .then((settings: any) => {\n dispatch(fetchServerSettings(settings));\n toast.success('Server settings edited successfully!', {\n position: toast.POSITION.BOTTOM_RIGHT\n });\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n }\n};\n\nexport default fetchServerSettingsAsync;\n","import { Dispatch } from 'redux';\nimport 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;","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 { 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 { 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}`, 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 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`, 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;","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 { 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: EditAdminRequest, 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 history.push('/admins');\n })\n .catch((error: Error) => Errors.throwErrorMessage(error));\n };\n};\n\nexport default editAdminAsync;\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}\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}","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 { 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 { IOrdersCompare, 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","\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 { 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\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() // .matches(/^([0-9]+(\\.\\d{1,2})?)$/)\n }\n\n const originalInvestor: Investor = {\n ...investor,\n Password: ''\n };\n\n const [editInvestorForm, setEditInvestorForm] = React.useState(investor);\n\n React.useEffect(() => {\n setEditInvestorForm(investor);\n }, [investor]);\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 };\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\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 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 *\n \n */}\n \n
\n \n handleCancel()}\n >\n \n \n handleSubmit()}\n disabled={isUpdateDisabled}\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\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 return (\n \n \n \n \n \n \n \n
\n\n \n\n \n\n \n\n \n \n \n \n ) => handleInputChange(event, event.target.id)}\n >\n {/* TODO: i18n here */}\n \n \n \n \n\n \n\n {user?.AccountType === AccountType.Admin\n ? (\n <>\n setPrivateMaster(!privateMaster)}\n />\n\n setInvisibleMaster(!invisibleMaster)}\n />\n\n setMasterForTests(!masterForTests)}\n />\n \n ) : null}\n {/* \n *\n \n */}\n \n
\n \n \n \n \n handleSubmit()}\n disabled={isUpdateDisabled}\n >\n \n \n \n
\n );\n};\n\nexport default MasterEditModal;\n","module.exports = __webpack_public_path__ + \"assets/images/logo-light.png\";","/* eslint-disable no-nested-ternary */\nimport React from 'react';\nimport { Button, Dropdown, DropdownButton, 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';\n\nconst GenUserNavbar: React.FC = ({\n location,\n signOutFunc,\n currentLang,\n languages,\n onLangChange\n}): JSX.Element => {\n const dispatch = useDispatch();\n const showRequestTab = LocalStorageUtils.getValueFromLocalStorage('showRequestTab');\n\n const api: string = useSelector((state: PAMMState) => state.configReducer.api);\n const customColors: Record = useSelector(\n (state: PAMMState) => state.configReducer.customColorsGeneralUser\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(\n (state: PAMMState) => state.investorsReducer.investors\n );\n const isLinkedAccountSelected: boolean = useSelector(\n (state: PAMMState) => state.investorsReducer.isSelected\n );\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 toggleModalVisibility = (): void => {\n if (user?.AccountType === 'investor') {\n setShowEditInvestorModal(!showEditInvestorModal);\n }\n if (user?.AccountType === 'master') {\n setShowEditMasterModal(!showEditMasterModal);\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)}>\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 {(showRequestTab !== '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';\n\nexport const PrivateRoute = ({ component, ...rest }: any) => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(getInfoMastersThunkAC());\n }, []);\n\n const routeComponent = () =>\n rest.isAuthenticated ? component : ;\n return ;\n};\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';\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'));\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'));\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 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 // 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\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};\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 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';\nimport { ConfigFlags } from '../../types/sharedTypes';\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\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 showRequestTab: string = useSelector((state: PAMMState) => state.configReducer.requestTab.toString());\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' && showRequestTab === '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, showRequestTab]);\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: '#5DADE2',\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: '#5DADE2',\n textDecoration: 'none',\n outline: 'none',\n } as React.CSSProperties;\n\n return (\n \n \n \n \n {Icons.ChartAreaIcon(shouldDashboardButtonLightUp() ? '#5dade2' : '#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('/masters') || currentAddress.includes('/bio') ? '#5dade2' : '#343a40', '1x')}\n
\n
\n \n
\n \n \n ) : null}\n {showRequestTab !== 'false'\n ? (\n \n \n \n {Icons.ExchangeIcon(currentAddress.includes('/requests') ? '#5dade2' : '#343a40', '1x')}\n
\n
\n \n
\n \n \n ) : null}\n \n \n \n {Icons.CogIcon(currentAddress === '/profile' ? '#5dade2' : '#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 {/* 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 fetchInvestorDetailsAsync from '../../redux/actions/investor/fetchInvestorDetails';\nimport fetchInvestorsAsync from '../../redux/actions/investor/fetchInvestors';\nimport { setLinkedAccountsMenuStatus } from '../../redux/actions/setMobileMenusStatus';\nimport fetchOrdersAsync from '../../redux/actions/shared/fetchOrders';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\nimport { Investor } from '../../types/investorTypes';\nimport { OrderType } from '../../types/sharedTypes';\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 api: string = useSelector((state: PAMMState) => state.configReducer.api);\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 Icons from '../../icons/icons';\nimport { PAMMState } from '../../redux/reducers/rootReducer';\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 langLinks = Object.keys(languages).map((lang: string, index: number) => (\n
onLangChange(lang)}>\n
\n \n {languages[lang]}\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;","/* 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\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: '#5DADE2',\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;","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 } 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';\n\nconst ConfirmDisconnectFromMasterMenu: React.FC = ({\n menuHeight = 0,\n onSwipe,\n onCancel\n}): JSX.Element => {\n const dispatch = useDispatch();\n const history: History = useHistory();\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: '#5DADE2',\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(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
\n \n
\n \n );\n};\n\nexport default ConfirmDisconnectFromMasterMenu;","const getLinkedAccountsMenuMobileHeight = (height: number): number | string => {\n return 100 + (height * 78);\n};\n\nexport default getLinkedAccountsMenuMobileHeight;","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, faUser, faCogs, faUserPlus, faBook, faChartArea, faExchangeAlt, faList, faUserTie, faPercent, faHandHoldingDollar, faBullseye, faDesktop, faNetworkWired } from '@fortawesome/free-solid-svg-icons';\nimport GenUserNavbar from './components/generalUser/GenUserNavbar';\nimport { APP_LOGO } from './const/logo.const';\nimport { DEFAULT_APP_LANGS } from './const/langs.const';\nimport LocalStorageUtils from './utils/local-storage';\nimport { loginUserAsync, logoutUserAsync } from './redux/actions/auth';\nimport fetchConfigAsync, { fetchLanguageJSONAsync } from './redux/actions/shared/fetchConfig';\nimport AppRoutes from './components/routes/Routes';\n// import isTokenExpired from './utils/token';\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 { fetchInvestors } from './redux/actions/investor/fetchInvestors';\nimport getLinkedAccountsMenuMobileHeight from './utils/linkedAccountsMenuMobile';\nimport { shadowBox } from './styles/styles';\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('jwt');\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 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));\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 };\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: '/masters',\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: '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: '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: '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 version: 117

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