{"version":3,"sources":["../public sync /^/.*_logo2/.jpg$","../public/ERSTE_logo2.jpg","../public/ILIRIK_logo2.jpg","../public/M&V_logo2.jpg","data/models.ts","data/snackbar/snackbarDataSlice.ts","data/auth/authDataSlice.ts","data/initialData/initialDataReducer.ts","data/domestic/orders/orderBookDataSlice.ts","core/localization/types.ts","data/domestic/trades/tradesDataSlice.ts","data/domestic/mainBoard/marketsDataSlice.ts","data/domestic/portfolio/portfolioDataSlice.ts","data/domestic/domesticDataReducer.ts","data/reports/cashBalList/cashBalListDataSlice.ts","data/reports/reportsDataRecucer.ts","data/settings/securityaccounts/securityAccountsDataSlice.ts","data/settings/moneyaccounts/moneyAccountsDataSlice.ts","data/settings/passwordchange/settingsDataSlice.ts","data/settings/otherSettings/otherSettingsDataSlice.ts","data/foreign/mainBoard/marketsDataSlice.ts","data/foreign/ticker/tickerDataSlice.ts","data/foreign/foreignDataReducer.ts","data/support/supportDataSlice.ts","data/dataReducer.ts","data/auth/authUXSlice.ts","data/localization/localizationUXSlice.ts","data/domestic/orders/orderBookUXSlice.ts","data/domestic/trades/tradesUXSlice.ts","data/domestic/mainBoard/marketUXSlice.ts","data/domestic/portfolio/portfolioUXSlice.ts","data/domestic/domesticUXReducer.ts","data/settings/securityaccounts/securityAccountsUXSlice.ts","data/settings/moneyaccounts/moneyAccountsUXSlice.ts","data/foreign/mainBoard/marketUXSlice.ts","data/foreign/foreignUXReducer.ts","data/uxReducer.ts","core/store/reducers.ts","core/config/config.ts","core/store/store.ts","core/store/StoreProvider.tsx","data/localization/hooks.ts","core/localization/srTranslation.ts","core/localization/srErrors.ts","core/localization/enTranslations.ts","core/localization/enErrors.ts","core/localization/Localization.tsx","core/localization/translations.ts","core/util/functions.ts","core/util/hooks.ts","layout/MainBarStyles.ts","core/http/axiosInstance.ts","core/http/types.ts","core/http/httpThunks.ts","data/auth/api/firstLogin.ts","data/auth/api/login.ts","data/auth/thunks.ts","core/navigation/types.ts","data/auth/hooks.ts","layout/UserAvatarStyle.ts","core/notifications/ConnectionManager.ts","core/notifications/NotificationContext.tsx","core/notifications/hooks.ts","layout/UserAvatar.tsx","layout/MainBar.tsx","core/navigation/menuItemsStyles.ts","core/navigation/hooks.ts","core/navigation/MenuItemComponents.tsx","views/components/common/Table.tsx","views/components/common/useMaterialTableLocalization.ts","views/components/common/ControledTable.tsx","views/components/common/PagginationTable.tsx","views/domestic/orders/DisplayOrderMainAttributes.tsx","data/domestic/orders/api/getOrder.ts","data/domestic/orders/thunks/loadOrderBook.ts","data/domestic/orders/hooks/useDisplayOrderBook.ts","layout/DisplayDrawerContext.ts","views/useDisplaySingleEmementStyles.tsx","views/components/common/DisplayBoolNumber.tsx","data/domestic/orders/hooks/useOrderSideOptions.ts","data/domestic/orders/types.ts","data/domestic/orders/api/printOrder.ts","data/domestic/orders/hooks/useOrderPrinter.ts","data/domestic/orders/thunks/printOrderThunk.ts","views/components/common/CustomTooltip.tsx","views/domestic/orders/DisplayOrder.tsx","data/domestic/orders/api/cancelOrder.ts","data/domestic/orders/thunks/cancelOrderThunk.ts","views/domestic/orders/CancelOrder.tsx","data/domestic/orders/hooks/useOrderCancel.ts","views/domestic/orders/Locations.ts","views/domestic/orders/useOrderBookActions.tsx","views/domestic/orders/useOrderRowColor.tsx","views/domestic/orders/OrderBookTable.tsx","views/domestic/orders/useOrderBookColumns.tsx","views/pageStyles.tsx","views/components/common/PageTitle.tsx","data/domestic/orders/api/getOrders.ts","data/domestic/orders/thunks/getOrdersThunk.ts","data/domestic/orders/hooks/useOrderBookData.ts","data/domestic/orders/thunks/loadAllOrderBook.ts","data/domestic/orders/hooks/useOrderBookIndex.ts","data/domestic/orders/hooks/useOrderBookFilter.ts","views/domestic/orders/OrderSideSelect.tsx","views/components/common/DateInput.tsx","data/initialData/hooks/useOrderStatuses.ts","views/components/common/AutocompleteSelect.tsx","views/components/common/OrderStatusSelect.tsx","views/domestic/orders/EditOrderFilter.tsx","data/initialData/api/getSecurityForSelect.ts","data/initialData/hooks/useSecuritySelectData.ts","data/initialData/thunks/loadSecurityForSelect.ts","views/components/tables/SecuritySelect.tsx","views/domestic/orders/OrderFilterChips.tsx","views/domestic/orders/OrderBookFilter.tsx","data/domestic/orders/api/getOrderListReport.ts","data/domestic/orders/hooks/useOrderBookReportDownloader.ts","data/domestic/orders/thunks/downloadReport.ts","data/domestic/orders/api/getOrderListExcel.ts","data/domestic/orders/hooks/useOrderBookExcelDownloader.ts","data/domestic/orders/thunks/downloadReportExcel.ts","views/domestic/orders/DownloadButton.tsx","views/domestic/orders/OrderBook.tsx","data/domestic/orders/hooks/useOrderValidator.ts","data/domestic/orders/api/createOrder.ts","data/domestic/orders/api/updateOrder.ts","data/domestic/orders/thunks/upsertOrder.ts","views/components/common/FabSave.tsx","views/components/common/BoolInput.tsx","views/components/common/CustomDialog.tsx","views/components/common/LeavePrompt.tsx","views/components/common/StringInput.tsx","views/components/common/NumberInput.tsx","data/initialData/hooks/useSecurityAccounts.ts","views/components/common/SecurityAccountsSelect.tsx","data/initialData/hooks/useMoneyAccounts.ts","views/components/common/MoneyAccountsSelect.tsx","data/initialData/hooks/useOrderTypes.ts","views/components/common/OrderTypesSelect.tsx","data/initialData/hooks/useTifList.ts","views/components/common/TifListSelect.tsx","data/initialData/hooks/useSecurityAccountsDomDefault.ts","data/initialData/hooks/useMoneyAccountsDomDefault.ts","views/domestic/orders/EditOrderBasicInfoPage.tsx","data/domestic/orders/hooks/useOrderUpsert.ts","data/domestic/orders/hooks/useEditOrderState.ts","data/domestic/orders/hooks/useOrderForEdit.ts","views/domestic/orders/navigationComponents.ts","views/domestic/orders/EditOrderPage.tsx","data/domestic/trades/api/getTrade.ts","data/domestic/trades/thunks/loadTrade.ts","data/domestic/trades/hooks/useDisplayTrades.ts","views/domestic/trades/DisplayTradeMainAttributes.tsx","data/domestic/trades/api/printTrades.ts","data/domestic/trades/hooks/useTradesPrinter.ts","data/domestic/trades/thunks/printTradesThunk.ts","views/domestic/trades/DisplayTrade.tsx","views/domestic/trades/useTradeActions.tsx","views/domestic/trades/useTradeColumns.tsx","views/domestic/trades/TradesTable.tsx","data/domestic/trades/api/getTrades.ts","data/domestic/trades/thunks/getTradesThunk.ts","data/domestic/trades/thunks/loadTrades.ts","data/domestic/trades/hooks/useTradesIndex.ts","views/domestic/trades/TradesFilterChips.tsx","views/domestic/trades/TradesFilterEditor.tsx","views/domestic/trades/TradesFilter.tsx","data/domestic/trades/hooks/useTradesFilter.ts","data/domestic/trades/api/getTradeListReport.ts","data/domestic/trades/hooks/useTradeBookReportDownloader.ts","data/domestic/trades/thunks/downloadReport.ts","data/domestic/trades/api/getTradeListExcel.ts","data/domestic/trades/hooks/useTradeBookExcelDownloader.ts","data/domestic/trades/thunks/downloadReportExcel.ts","views/domestic/trades/DownloadButton.tsx","views/domestic/trades/TradesPage.tsx","views/domestic/trades/navigationComponents.ts","data/domestic/trades/hooks/useTradesData.ts","views/domestic/trades/Locations.ts","data/domestic/mainBoard/api/getMarketData.ts","data/domestic/mainBoard/thunks/loadMarketData.ts","data/domestic/mainBoard/hooks/useMarketData.ts","data/domestic/mainBoard/thunks/loadMarketAllData.ts","views/domestic/mainBoard/useMarketSecurityActions.tsx","data/domestic/mainBoard/hooks/useMarketSecurityData.ts","data/domestic/mainBoard/hooks/useMarketDataIndex.ts","views/foreign/orders/DisplayOrderMainAttributes.tsx","views/domestic/mainBoard/MarketDataTable.tsx","views/domestic/mainBoard/useMarketDataColumns.tsx","views/domestic/mainBoard/MarketDepthDataTable.tsx","views/domestic/mainBoard/useMarketDepthColumns.tsx","views/domestic/mainBoard/MarketTradeDataTable.tsx","views/domestic/mainBoard/useMarketTradeColumns.tsx","data/domestic/orders/api/addSecurity.ts","data/domestic/orders/hooks/useMarketDataAddSecurity.ts","data/domestic/orders/thunks/loadAddSecurity.ts","data/domestic/orders/api/removeSecurity.ts","data/domestic/orders/hooks/useMarketDataRemoveSecurity.ts","data/domestic/orders/thunks/loadRemoveSecurity.ts","views/domestic/mainBoard/EditMainBoardFilter.tsx","data/domestic/mainBoard/hooks/useMarketDataFilter.ts","views/domestic/mainBoard/MainBoardSecurity.tsx","views/domestic/mainBoard/MainBoard.tsx","views/domestic/mainBoard/navigationComponents.ts","views/domestic/mainBoard/Locations.ts","views/domestic/portfolio/PortfolioReportTable.tsx","views/domestic/portfolio/usePortfolioReportColumns.tsx","data/domestic/portfolio/hooks/usePortfolioFilter.ts","data/initialData/hooks/useOnExchangeOption.ts","data/initialData/hooks/useCurrencies.ts","views/components/common/CurrencySelect.tsx","views/components/common/OnExchangeSelect.tsx","views/domestic/portfolio/EditPortfolioFilter.tsx","views/domestic/portfolio/PortfolioFilterChips.tsx","views/domestic/portfolio/PortfolioReportFilter.tsx","data/domestic/portfolio/api/getPortfolioData.ts","data/domestic/portfolio/thunks/getPortfolioThunk.ts","data/domestic/portfolio/hooks/usePortfolioData.ts","data/domestic/portfolio/thunks/loadPortfolioData.ts","data/domestic/portfolio/hooks/usePortfolioIndex.ts","data/domestic/portfolio/api/getPortfolioReport.ts","data/domestic/portfolio/hooks/usePortfolioReportDownloader.ts","data/domestic/portfolio/thunks/downloadReport.ts","data/domestic/portfolio/api/getPortfolioExcel.ts","data/domestic/portfolio/hooks/usePortfolioExcelDownloader.ts","data/domestic/portfolio/thunks/downloadReportExcel.ts","views/domestic/portfolio/DownloadButton.tsx","views/domestic/portfolio/PortfolioReport.tsx","views/domestic/portfolio/navigationComponents.ts","views/domestic/portfolio/Locations.ts","views/domestic/domesticNavigationItems.ts","data/foreign/orders/api/getOrder.ts","data/foreign/orders/thunks/loadOrderBook.ts","data/foreign/orders/hooks/useDisplayOrderBook.ts","data/foreign/orders/hooks/useOrderSideOptions.ts","views/foreign/orders/Locations.ts","data/foreign/orders/api/printOrder.ts","data/foreign/orders/hooks/useOrderPrinter.ts","data/foreign/orders/thunks/printOrderThunk.ts","views/foreign/orders/DisplayOrder.tsx","views/foreign/orders/CancelOrder.tsx","data/foreign/orders/hooks/useOrderCancel.ts","views/foreign/orders/useOrderBookActions.tsx","data/foreign/orders/api/setOrderStatus.ts","data/foreign/orders/hooks/useSetOrderStatus.ts","data/foreign/orders/thunks/loadSetOrderStatus.ts","views/foreign/orders/useOrderBookActionsBroker.tsx","views/foreign/orders/EditOrderFilter.tsx","views/foreign/orders/useOrderRowColor.tsx","views/foreign/orders/OrderBookTable.tsx","views/foreign/orders/useOrderBookColumns.tsx","views/foreign/orders/useOrderBookColumnsBroker.tsx","data/foreign/orders/api/getOrders.ts","data/foreign/orders/thunks/getOrdersThunk.ts","data/foreign/orders/hooks/useOrderBookData.ts","data/foreign/orders/thunks/loadAllOrderBook.ts","data/foreign/orders/hooks/useOrderBookIndex.ts","data/foreign/orders/hooks/useOrderBookFilter.ts","views/foreign/orders/OrderSideSelect.tsx","data/initialData/api/getSecurityFForSelect.ts","data/initialData/hooks/useSecurityFSelectData.ts","data/initialData/thunks/loadSecurityFForSelect.ts","views/components/tables/SecurityForeignSelect.tsx","data/initialData/hooks/useExchanges.ts","views/components/common/ExchangeSelect.tsx","views/foreign/orders/OrderFilterChips.tsx","views/foreign/orders/OrderBookFilter.tsx","data/foreign/orders/api/getOrderListReport.ts","data/foreign/orders/hooks/useOrderBookReportDownloader.ts","data/foreign/orders/thunks/downloadReport.ts","data/foreign/orders/api/getOrderListExcel.ts","data/foreign/orders/hooks/useOrderBookExcelDownloader.ts","data/foreign/orders/thunks/downloadReportExcel.ts","views/foreign/orders/DownloadButton.tsx","views/foreign/orders/OrderBook.tsx","data/foreign/orders/hooks/useOrderValidator.ts","data/initialData/hooks/useSecurityAccountsForeign.ts","views/components/common/SecurityAccountsSelectForeign.tsx","data/initialData/hooks/useMoneyAccountsForeign.ts","views/components/common/MoneyAccountsSelectForeign.tsx","data/initialData/hooks/useSecurityAccountsForDefault.ts","data/initialData/hooks/useMoneyAccountsForDefault.ts","views/foreign/orders/EditOrderBasicInfoPage.tsx","data/foreign/orders/hooks/useOrderUpsert.ts","data/foreign/orders/hooks/useEditOrderState.ts","data/foreign/orders/hooks/useOrderForEdit.ts","views/foreign/orders/navigationComponents.ts","views/foreign/orders/EditOrderPage.tsx","views/foreign/portfolio/PortfolioReportTable.tsx","views/foreign/portfolio/usePortfolioReportColumns.tsx","data/foreign/portfolio/hooks/usePortfolioFilter.ts","views/foreign/portfolio/EditPortfolioFilter.tsx","views/foreign/portfolio/PortfolioFilterChips.tsx","views/foreign/portfolio/PortfolioReportFilter.tsx","data/foreign/portfolio/api/getPortfolioData.ts","data/foreign/portfolio/thunks/getPortfolioThunk.ts","data/foreign/portfolio/hooks/usePortfolioData.ts","data/foreign/portfolio/thunks/loadPortfolioData.ts","data/foreign/portfolio/hooks/usePortfolioIndex.ts","data/foreign/portfolio/api/getPortfolioReport.ts","data/foreign/portfolio/hooks/usePortfolioReportDownloader.ts","data/foreign/portfolio/thunks/downloadReport.ts","data/foreign/portfolio/api/getPortfolioExcel.ts","data/foreign/portfolio/hooks/usePortfolioExcelDownloader.ts","data/foreign/portfolio/thunks/downloadReportExcel.ts","views/foreign/portfolio/DownloadButton.tsx","views/foreign/portfolio/PortfolioReport.tsx","views/foreign/portfolio/navigationComponents.ts","views/foreign/portfolio/Locations.ts","data/foreign/trades/api/getTrade.ts","data/foreign/trades/thunks/loadTrade.ts","data/foreign/trades/hooks/useDisplayTrades.ts","views/foreign/trades/DisplayTradeMainAttributes.tsx","data/foreign/trades/api/printTrades.ts","data/foreign/trades/hooks/useTradesPrinter.ts","data/foreign/trades/thunks/printTradesThunk.ts","views/foreign/trades/DisplayTrade.tsx","views/foreign/trades/useTradeActions.tsx","views/foreign/trades/useTradeColumns.tsx","views/foreign/trades/TradesTable.tsx","data/foreign/trades/api/getTrades.ts","data/foreign/trades/thunks/getTradesThunk.ts","data/foreign/trades/thunks/loadTrades.ts","data/foreign/trades/hooks/useTradesIndex.ts","data/foreign/trades/hooks/useTradesFilter.ts","views/foreign/trades/TradesFilterChips.tsx","views/foreign/trades/TradesFilterEditor.tsx","views/foreign/trades/TradesFilter.tsx","data/foreign/trades/api/getTradeListReport.ts","data/foreign/trades/hooks/useTradeBookReportDownloader.ts","data/foreign/trades/thunks/downloadReport.ts","data/foreign/trades/api/getTradeListExcel.ts","data/foreign/trades/hooks/useTradeBookExcelDownloader.ts","data/foreign/trades/thunks/downloadReportExcel.ts","views/foreign/trades/DownloadButton.tsx","views/foreign/trades/TradesPage.tsx","views/foreign/trades/navigationComponents.ts","data/foreign/trades/hooks/useTradesData.ts","views/foreign/trades/Locations.ts","data/foreign/tradessum/api/getSumTrade.ts","data/foreign/tradessum/thunks/loadSumTrade.ts","data/foreign/tradessum/hooks/useDisplaySumTrades.ts","views/foreign/tradessum/DisplayTradeMainAttributes.tsx","data/foreign/tradessum/api/printSumTrades.ts","data/foreign/tradessum/hooks/useTradesSumPrinter.ts","data/foreign/tradessum/thunks/printTradesSumThunk.ts","views/foreign/tradessum/DisplayTrade.tsx","views/foreign/tradessum/useTradeActions.tsx","views/foreign/tradessum/useTradeColumns.tsx","views/foreign/mainBoard/DisplayMarketDataMainAttributes.tsx","views/foreign/tradessum/TradesSumTable.tsx","data/foreign/tradessum/api/getTradessum.ts","data/foreign/tradessum/thunks/getTradesSumThunk.ts","data/foreign/tradessum/thunks/loadSumTrades.ts","data/foreign/tradessum/hooks/useTradesSumIndex.ts","views/foreign/tradessum/TradesFilterChips.tsx","views/foreign/tradessum/TradesFilterEditor.tsx","views/foreign/tradessum/TradesFilter.tsx","data/foreign/tradessum/api/getTradeSumListReport.ts","data/foreign/tradessum/hooks/useTradeSumBookReportDownloader.ts","data/foreign/tradessum/thunks/downloadReport.ts","data/foreign/tradessum/api/getTradeSumListExcel.ts","data/foreign/tradessum/hooks/useTradeSumBookExcelDownloader.ts","data/foreign/tradessum/thunks/downloadReportExcel.ts","views/foreign/tradessum/DownloadButton.tsx","views/foreign/tradessum/TradesSumPage.tsx","views/foreign/tradessum/navigationComponents.ts","data/foreign/tradessum/hooks/useTradesSumData.ts","views/foreign/tradessum/Locations.ts","data/foreign/mainBoard/api/getMarketData.ts","data/foreign/mainBoard/thunks/getMarketDataThunk.ts","data/foreign/mainBoard/thunks/loadMarketAllData.ts","data/foreign/mainBoard/hooks/useMarketData.ts","data/foreign/mainBoard/api/getMarketDataById.ts","data/foreign/mainBoard/thunks/loadMarketData.ts","data/foreign/mainBoard/hooks/useDisplayMarketData.ts","views/foreign/mainBoard/DisplayMarketData.tsx","views/foreign/mainBoard/useMarketSecurityActions.tsx","data/foreign/mainBoard/hooks/useMarketSecurityData.ts","data/foreign/mainBoard/hooks/useMarketDataIndex.ts","data/foreign/ticker/types.ts","views/foreign/mainBoard/MarketDataTable.tsx","views/foreign/mainBoard/useMarketDataColumns.tsx","data/foreign/mainBoard/api/addSecurity.ts","data/foreign/mainBoard/hooks/useMarketDataAddSecurity.ts","data/foreign/mainBoard/thunks/loadAddSecurity.ts","data/foreign/mainBoard/api/removeSecurity.ts","data/foreign/mainBoard/hooks/useMarketDataRemoveSecurity.ts","data/foreign/mainBoard/thunks/loadRemoveSecurity.ts","views/foreign/mainBoard/EditMainBoardFilter.tsx","data/foreign/mainBoard/hooks/useMarketDataFilter.ts","views/foreign/mainBoard/MainBoardSecurity.tsx","data/foreign/ticker/api/getChartData.ts","data/foreign/ticker/hooks/useGraphData.ts","data/foreign/ticker/thunks/loadGraphData.ts","data/foreign/ticker/api/getfDayChartData.ts","data/foreign/ticker/hooks/useGraphDayData.ts","data/foreign/ticker/thunks/loadGraphDayData.ts","views/foreign/mainBoard/ProductGraph.tsx","data/foreign/ticker/hooks/useGraphPeriod.ts","views/foreign/mainBoard/MainBoard.tsx","views/foreign/mainBoard/navigationComponents.ts","views/foreign/mainBoard/Locations.ts","views/foreign/foreignNavigationItems.ts","views/settings/passwordchange/useLoginStyles.tsx","data/settings/passwordchange/api/changePass.ts","data/settings/passwordchange/hooks/changePassHooks.ts","data/settings/passwordchange/thunks/changePassThunks.ts","views/settings/passwordchange/navigationComponents.ts","views/settings/passwordchange/PasswordChangeForm.tsx","views/settings/passwordchange/Locations.ts","data/settings/securityaccounts/api/getSecAccountData.ts","data/settings/securityaccounts/thunks/loadSecAccounts.ts","data/settings/securityaccounts/hooks/useSecAccountData.ts","data/settings/securityaccounts/api/setdefsecaccData.ts","data/settings/securityaccounts/hooks/useSetDefSecAcc.ts","data/settings/securityaccounts/thunks/loadSetDefSecacc.ts","data/settings/securityaccounts/hooks/useSecAccountFilter.ts","views/settings/secaccountsdef/SecAccountTable.tsx","views/settings/secaccountsdef/useSecAccountColumns.tsx","views/settings/secaccountsdef/useSecAccountActions.tsx","data/settings/securityaccounts/hooks/useDomForSideOptions.ts","views/settings/secaccountsdef/DomForSelect.tsx","views/settings/secaccountsdef/EditSecAccountFilter.tsx","views/settings/secaccountsdef/SecAccountFilterChips.tsx","views/settings/secaccountsdef/SecAccountFilter.tsx","views/settings/secaccountsdef/SecAccountPage.tsx","views/settings/secaccountsdef/navigationComponents.tsx","views/settings/secaccountsdef/Locations.tsx","data/settings/moneyaccounts/api/getMoneyAccountData.ts","data/settings/moneyaccounts/thunks/loadMoneyAccounts.ts","data/settings/moneyaccounts/hooks/useMoneyAccountData.ts","data/settings/moneyaccounts/api/setdefmoneyaccData.ts","data/settings/moneyaccounts/hooks/useSetDefMoneyAcc.ts","data/settings/moneyaccounts/thunks/loadSetDefMoneyacc.ts","data/settings/moneyaccounts/hooks/useMoneyAccountFilter.ts","views/settings/moneyaccountdef/MoneyAccountTable.tsx","views/settings/moneyaccountdef/useMoneyAccountColumns.tsx","views/settings/moneyaccountdef/useMoneyAccountActions.tsx","data/initialData/hooks/useMAccCur.ts","views/components/common/MAccCurrencySelect.tsx","views/settings/moneyaccountdef/OrderSideSelect.tsx","views/settings/moneyaccountdef/EditMoneyAccountFilter.tsx","views/settings/moneyaccountdef/MoneyAccountFilterChips.tsx","views/settings/moneyaccountdef/MoneyAccountFilter.tsx","views/settings/moneyaccountdef/MoneyAccountPage.tsx","views/settings/moneyaccountdef/navigationComponents.tsx","views/settings/moneyaccountdef/Locations.tsx","views/settings/othersettings/useLoginStyles.tsx","data/settings/otherSettings/api/otherSettingsApi.ts","data/settings/otherSettings/hooks/otherSettingsHooks.ts","data/settings/otherSettings/thunks/otherSettingsThunks.ts","views/settings/othersettings/navigationComponents.ts","views/settings/othersettings/OtherSettingsForm.tsx","views/settings/othersettings/Locations.ts","views/settings/settingsNavigationItems.ts","data/reports/cashBalList/api/getCashBalanceData.ts","data/reports/cashBalList/hooks/useCashBalanceData.ts","data/reports/cashBalList/thunks/loadCashBalanceData.ts","views/reports/cashballist/CashBalanceListTable.tsx","views/reports/cashballist/useCashBalanceColumns.tsx","views/reports/cashballist/navigationComponents.tsx","views/reports/cashballist/CashBalanceListPage.tsx","views/reports/cashballist/Locations.tsx","views/reports/reportsNavigationItems.ts","data/support/api/getSupportData.ts","data/support/hooks/useSupportData.ts","data/support/thunks/loadSupport.ts","views/support/contacts/SupportTable.tsx","views/support/contacts/useSupportColumns.tsx","views/support/contacts/navigationComponents.tsx","views/support/contacts/SupportPage.tsx","views/support/contacts/Locations.tsx","views/support/supportNavigationItems.ts","views/navigation/appNavigationItems.ts","data/initialData/hooks/useUserMenuItems.ts","views/underConstruction/UnderConstruction.tsx","views/navigation/menuIcons.ts","views/navigation/hooks/useNavigationItems.ts","layout/NavList.tsx","layout/NavDrawerStyles.ts","layout/NavDrawer.tsx","layout/Theme.tsx","layout/DisplayDrawer.tsx","layout/ContentLayout.tsx","views/login/useLoginStyles.tsx","views/login/LoginError.tsx","views/login/LoginForm.tsx","views/login/LoginPage.tsx","views/navigation/PageRouterSwitch.tsx","views/snackbar/CollapsableMessage.tsx","data/snackbar/hooks/useSnackbarMessage.ts","views/snackbar/SnackbarMessages.tsx","views/ContentRoot.tsx","serviceWorker.ts","index.tsx","App.tsx","../public sync /^/.*_logo1/.jpg$","../public/ERSTE_logo1.jpg","../public/ILIRIK_logo1.jpg","../public/M&V_logo1.jpg"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","PageDataStatus","Status","snackbarSlice","createSlice","name","initialState","messages","reducers","pushError","state","action","payload","message","title","type","pushInfo","dismiss","filter","m","setShownId","messageId","shownId","actions","reportsSlice","current","status","successfulLogin","user","uData","failedLogin","error","resetLoginState","setPendingLoginState","setToken","token","removeToken","undefined","initialDataSlice","userMenu","orderStatuses","exchanges","securityAccounts","moneyAccounts","orderTypes","tifList","currencies","mAccCurr","setSecurityForSelect","securityForSelect","setSecurityFForSelect","securityFForSelect","extraReducers","builder","addCase","OrderSide","OnExchange","DomForSide","LocalizationLanguage","orderBookSlice","newOrderFetchState","attributeFetchState","printOrderFetchState","cancelOrderFetchState","downloadXlsFetchState","setOrders","currentPage","setDisplayed","displayedOBOrder","invalidateOrders","DataInvalidated","setNewOrderFetchState","setAttributeFetchState","setPrintOrderFetchState","setDownloadXlsFetchState","setCancelOrderFetchState","tradesSlice","cancelFetchState","printTradeFetchState","setTrades","displayedTrade","invalidateTrades","setCancelTradeFetchState","setPrintTradeFetchState","marketDataSlice","marketDepthData","fetchState","secid","setData","marketListData","marketSecList","depthList","marketTrade","tradeList","displayData","setFetchState","all","change","setSecurity","portfolioSlice","downloadReportFetchState","setDownloadReportFetchState","invalidatePortfolio","dataDomesticReducer","combineReducers","orderBook","trades","marketData","portfolio","cashBalListSlice","dataReportsReducer","cashBalList","secAccountsSlice","changeSecAccountFetchState","errorDesc","setChangeSecAccountFetchState","setError","setSecurityAcc","invalidateSecAccount","moneyAccountsSlice","changeMoneyAccountFetchState","accountid","setChangeMoneyAccountFetchState","setMoneyAcc","invalidatemoneyAccount","settingsSlice","changePassFetchState","setChangePassFetchState","otherSettingsSlice","confirmOrder","confirmOrderFetchState","setConfirmOrder","setConfirmOrderFatchState","secsymbol","secname","invalidateData","setSecuritySymbol","setSecurityName","tickerSlice","graphData","graphDayData","graphPeriod","setGraphData","graphId","data","setGraphDayData","setGraphPeriod","dataForeignReducer","ticker","supportSlice","invalidateSupport","dataPersistConfig","key","storage","whitelist","dataComReducer","snackbar","auth","initialData","domestic","settings","secAccounts","reports","foreign","otherSettings","support","persistReducer","users","deleteUserToken","lastLoginUsername","colorBdd","loginUser","newusersDictionary","userName","toLowerCase","hdrColor","language","SR","setLocalization","index","itemsPerPage","pageNumber","dateFrom","moment","add","toString","filterMoney","accSide","curId","setOrdersIndex","resetOrderIdices","setFilter","setFilterMoney","removeFilter","resetFilter","datefrom","setTradesIndex","resetTradeIdices","sort","setIndex","setPortfolioIndex","uxTradingReducer","domfor","Domestic","curency","currId","currCode","buysell","Buy","resetIdices","localization","rootReducer","dataReducer","ux","uxReducer","windowENV","window","ENV","appConfig","http","baseURL","API_BASE","general","titleSufix","TITLE_SUFIX","deploymentDir","DEPLOYMENT_DIR","notifications","uri","NOTIFICATION_BASE_URI","defaultMiddlware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","middlware","useLogger","logger","store","configureStore","reducer","middleware","persistor","persistStore","StoreProvider","props","appStore","loading","children","useLocalizationStore","dispatch","useDispatch","useSelector","useCallback","srTranslation","decimalSeparator","momentLocale","mainTitle","tableNextPage","tablePreviousPage","tableFirsPage","tableLastPage","tableDisplayedRows","tabledDisplayedPerPage","orderActView","orderActReply","orderWaitingProducts","orderSideBuy","orderSideSell","listingOrdersTitle","userOrdersTitle","archiveOrdersTitle","search","companyClmName","companyClmHeadquorters","companyClmMemberFrom","companyClmProvision","reporClmtName","reporTitle","reporDownloadTtl","username","password","login","logout","orderChooseProduct","noDataText","oldpassword","newpassword","newpasswordverify","changePassword","orderClmOrdNo","orderDateReceived","orderTimeReceived","orderOrdType","orderOrdTimeType","orderRefOrd","orderClientIdNo","orderClientName","orderSymbol","orderYear","orderTradingPlace","orderFranco","orderQty","orderAllOrNothing","orderPrice","orderPriceEur","orderPriceWithoutVat","orderPriceWithVat","orderPayType","orderPayDays","orderFreeStorage","orderFreeStorageByDelivery","orderFreeStorageByDate","orderCheckPoint","orderCheckPays","orderExpiryDate","orderStatus","orderQuality","orderRecieveMethod","orderEditTitle","orderCreateTitle","orderGoodsReadyFrom","orderGoodsReadyTo","orderAttrName","orderAttrValue","orderAttrTitle","orderAttrCreateTitle","orderAttrEditAttribute","orderReceiveMethod","orderbrokName","orderUserName","orderCliPrsName","orderUnit","orderQtyLeft","orderQtyFill","orderQtyVisible","orderSecurityAcc","orderMoneyAcc","orderPriceVat","orderMinQty","orderComment","orderCommission","ordergoodsRedyFrom","ordergoodsRedyTo","orderStatusDescr","orderFillStatusDescr","orderCancelReplTime","orderPayData","orderSide","orderCurrCode","orderexportReady","orderOrigOrderNo","orderIceberg","orderSecurity","orderPreMarket","orderRejection","numberOfDays","navListing","navMyOrders","navArchive","navCompanies","navMembers","navProducts","navBrokers","navUsers","navRoles","navCodebook","navCountries","navTopRegion","navRegion","navSubRegion","navCities","navCurrencies","navWarehouses","navTrading","navMainTable","navOrders","navTransactions","navMarketDepth","navCliring","navDeposits","navMarginCalculations","navSurveillance","navAlarmSetup","navProductReport","navMemberReport","navReports","navDailyReports","navWeeklyReports","navMonthlyReports","navQuaterlyReports","navAnnualReports","navSECReports","navMembersReports","navOrdersReports","navAccounting","navTaxes","navInvoice","navAccountingExport","navMembersDeposit","empFirstName","empLastName","empIdNumber","empOfficePhone","empEmail","empStatus","empMidName","empGender","empAddress","empZipCode","empCity","empPhone","empDateOfBirth","empPosition","empBranch","empFax","empShowTooltip","genderMale","genderFemale","statusActive","statusInactive","empEdit","empDelete","empEditTitle","empCreateTitle","empName","empTel","empMob","cliName","cliIdNo","cliTaxCode","cliType","cliForeign","cliCity","cliPhone","cliBroker","cliActive","cliStatus","clilFullName","cliAddress","cliMailCity","cliMailAddress","cliMobile","cliFax","cliEmail","cliHasContract","cliActiveFrom","cliActiveTo","cliCommission","cliCurrentTurnover","cliComment","cilEditTitle","cilCreateTitle","cilTitle","tableConfirmationDelete","tableDelete","tableAdd","tableEdit","tableCancel","tableSave","roleCode","roleName","roleNameEn","tableShow","roleEdit","roleCreate","roleNameColumn","roleIsEmployee","userUserName","userLoginUser","userLoginPass","userChangePass","userRoleId","userIsEmployee","userEmpId","userClientId","userCliPrsId","userSubscribedUntil","userSubscrUnlimited","userIsActive","userEditTitle","userCreateTitle","tableBasciInfo","clientPersonTitle","clientPersonName","clientPersonIDNumber","clientPersonStatus","clientPersonEmpty","clientBrokerTitle","clientBrokerName","clientBrokerIDNumber","clientBrokerStatus","clientBrokerEmpty","contractTitle","contractNumber","contractDate","contractStatus","contractEmpty","contractLincedContrNo","contractTypeDescription","contractDescription","contractPhoneOrder","contractWebUser","contractWebUserBlocked","contractTitleEdit","contractTitleCreate","accountTitle","accountTitleEdit","accountTitleCreate","accountNumber","accountBank","accountDefault","accountClientBankCode","accountCurrency","accountForBuySell","accountStatus","accountSideBuy","accountSideSell","accountSideBoth","accountEmpty","invalidDateMessage","maxDateMessage","minDateMessage","clientPersonEditTitle","clientPersonCreateTitle","clientBrokerEditTitle","clientBrokerCreateTitle","leavePageTitle","leavePageMessage","leavePageConfirm","leavePageCancel","calendarOK","calendarCancel","calendarClear","commission","requiredMessage","messageWeakPassword","currenciesTitle","currenciesCreateTitle","currenciesEditTitle","currenciesName","currenciesCode","currenciesNumericCode","regName","regNameDistrict","parentRegName","countryReg","regEdit","regEditDistrict","regCreate","regCreateDistrict","curRateDate","curRateBuy","curRateSell","curRateMid","curRateCurrency","curRateTitle","curRateEditTitle","curRateCreateTitle","countryEdit","countryCreate","countryName","countryNameEN","cityEdit","cityCreate","cityName","cityZipCode","cityRegion","citySubRegion","cityIsPort","commissionTitle","commissionCreateTitle","commissionEditTitle","commissionCode","commissionName","commissionNameEN","commissionType","commissionStandard","commDetailsTitle","commDetailsCreateTitle","commDetailsEditTitle","commDetailsDate","commDetailsProductGroup","commDetailsProduct","commDetailsCurrency","commDetailsAmtCurrency","commDetailsAmtTypePercent","commDetailsAmtTypeAmount","commDetailsBuyAmtType","commDetailsBuyPerc","commDetailsBuyMin","commDetailsBuyMax","commDetailsSellAmtType","commDetailsSellPerc","commDetailsSellMin","commDetailsSellMax","productCode","clientPersonRole","clientPersonDateCertified","clientPersonPhone","clientPersonEmail","tradeTitle","tradeSumTitle","tradeNo","tradeTime","tradeSettl","tradeSecurity","tradeQty","tradeDescr","tradeCurrCode","tradePrice","tradeOrder","tradeBrokCommPerc","tradebrokCommAmt","tradeExchCommPerc","tradeExchCommAmt","tradeRegCommPerc","tradeRegCommAmt","tradeBankCommPerc","tradeBankCommAmt","tradeVatAmt","tradeTotComm","tradeExchange","tradeIsin","tradeComm","tradeAmtFinal","tradeRate","listingOrdersBookTitle","orderCancel","orderCancelQuestion","orderCancelQuestionYes","orderCancelQuestionNo","orderModify","orderVerify","tradeVatPerc","tradePriceWithVat","tradeAmt","tradeAmtWithVat","tradeTransCostSell","tradeStorCostSell","tradeTransCostBuy","tradeStorCostBuy","tradeCommPercSell","tradeCommAmtSell","tradeCommPercBuy","tradeCommAmtBuy","orderFilterConfirm","orderFilterCancel","orderFilterFrom","orderFilterTo","tradeFilterFrom","tradeFilterTo","tradeViewAction","tradeCancelAction","orderTradeQuestion","orderSecDep","orderStatusChange","filterFrom","filterTo","paymentTitle","paymentDataTime","paymentClientCode","paymentClientName","paymentPayType","paymentClmOrdNo","paymentTranNo","paymentAmount","paymentAmountIn","paymentAmountOut","paymentCurrCode","paymentStatus","dateto","paymentEdit","paymentCreate","paymentSideIn","paymentSideOut","paymentSide","paymentSideNonDedicated","paymentSideDedicated","paymentSideDedication","paymentBankGuarantee","paymentClientOrders","paymentClientTransactions","guarGuaranteeTitle","guarEdit","guarCreate","orderDeliveryLocation","filterReset","orderMarket","orderMarketSpot","orderMarketForward","orderLocCountry","orderLocRegion","orderLocDistrict","orderLocCity","orderLocWhs","tradeFulfillmentDate","navOrdersReport","stockFeeTitle","stockFeeEdit","stockFeeCreate","stockFeeStartDate","stockFeeStockFee","stockFeeStatus","transFeeTitle","transFeeEdit","transFeeCreate","transFeeStartDate","transFeePice","transFeeDistance","transFeeStatus","navTradesReport","dailyTradeReportTitle","dailyTradeReportProduct","dailyTradeReportTurnoverRSD","dailyTradeReportTurnoverEUR","dailyTradeReportCountTransaction","dailyTradeReportReportDate","monthlyTradeReportReportTitle","monthlyTradeReportReportMonth","monthlyTradeReportReportYear","monthlyTradeReportReportDate","monthlyTradeReportReportQty","monthlyTradeReportReportWeightedRSD","monthlyTradeReportReportWeightedEUR","filterTooltip","exportPDFTooltip","exportXLSXTooltip","printTooltip","settingsTooltip","marketDataAddSecurity","marketRemoveSecurity","orderFundCheckButton","orderFundCheckButtonCancel","orderFundCheckTitle","weeklyNumofWeeks","monthlyNumofmonths","exmemTitle","exmemMemberName","exmemMemberId","exmemTaxCode","exmemAdress","exmemPhone","exmemManager","exmemTrader","exmemContactPerson","memcontTitle","memcontMember","memcontContractDate","memcontExpireDate","memcontStatus","exchDateFrom","exchDateTo","exchTradeReview","exchCommissionReview","exchTradeByProduct","exchBusinessActivities","exchTurnoverByClient","exchTurnoverByBrokers","exchWeightedPrice","exchDate","exchTradeNumber","exchTradeDate","exchProduct","exchPrice","exchQuantity","exchAmount","exchClient","exchTransactionDate","exchTransactionNumber","exchOrderNumber","exchSide","exchCommission","exchTurnoverValue","exchBuyersCommission","exchSellersCommission","exchBuyerBroker","exchSellerBroker","exchCommissionValue","exchTurnoverParticipation","exchCommissionParticipation","exchBuyer","exchSeller","exchTurnoverRsd","exchTurnoverEur","exchWeightedPriceRsd","exchWeightedPriceEur","annualNumofyears","pleaseWait","iInvoiceTooltip","invoicingMessage","invoicingMessageTitle","invoicingMessageConfim","accountingOrderTooltip","accountingOrderTitle","accountingOrderMessage","accountingOrderMessageTitle","accountingOrderConfim","marketDataSymbol","marketDataIsin","marketDataPrice","marketDataBestBid","marketDataBestBidQty","marketDataBestAsk","marketDataBestAskQty","marketDataOpenPrice","marketDataHighPrice","marketDataLowPrice","marketDataClosePrice","marketDataVolume","marketDataSumBid","marketDataSumAsk","marketDataTrend","marketDataChange","marketDataTradingPhase","marketDataTradeTime","marketDataDepth","marketPreviousClose","marketDataChangePerc","marketWeeks52High","marketWeeks52Low","marketDataName","marketDataGraph","marketIEX","marketTime","marketSource","marketview","tradingDatadatefrom","tradingDatadateto","tradingDataEdit","noFutureDate","orderQtyMatched","alarmTime","alarmCrossName","alarmProductName","alarmClientName","tradingDataMessage","tradingDataMessageTitle","tradingDataConfim","tradingDataReportDate","marginsDataMessage","marginsDataMessageTitle","marginsDataConfim","marginsDataReportDate","attrCompTypeLessThan","attrCompTypeEqual","attrCompTypeMoreThan","attrCompType","productAttributeHasStandard","productAttributeStandardValue","orderParameters","tradeParameters","orderDepositeAmount","orderDepositeAmountPayed","paymentAmtBal","paymentAmtBalNonAlloc","attributeSRPS","paymentAmtOrdersBal","paymentAmtTradesBal","deliveryTradeQty","deliveryLeftQty","clientCardTitle","alarmProductClientName","alarmBuyOrderNumber","alarmSellOrderNumber","allowSystemNotifications","navPortfolio","portfSymbol","portfExchCode","portfCurrCode","portfQty","portfPchPrice","portfPchAmt","portfMktPrice","portfMktAmt","portfDiffPerc","portfDiffAmt","portfIsin","portfSecName","portfDepositor","portfSecAccType","portfSecAccount","portfOnExchYes","portfOnExchNo","errorTitle","errorConfirm","errorMessageChangePass","errorSuccessTitle","errorSuccess","settingsPasswordChangeMenu","navCashBalance","cashCurrCode","cashAccUse","cashAccNo","cashBank","cashCurrentAmt","cashSellNetAmt","cashBuyNetAmt","cashSettledAmt","cashBankAmt","cashSellOrdAmt","cashBuyOrdAmt","cashAvailAmt","cashImportTime","domForSideDomestic","domforSideForeign","domForMarket","domForDefDom","domForDefFor","domForCurrCode","domForAccSide","domForChange","navSecuritiyAccounts","navMoneyAccounts","navSupport","orderChecked","otherSettingsMenu","confirmOrderSetting","currCodeSettl","amountSettl","settlState","srErrors","enTranslations","EN","enErrors","numeral","register","delimiters","decimal","thousands","abbreviations","thousand","million","billion","trillion","ordinal","number","currency","symbol","LocalizationContext","React","createContext","getString","getDateString","date","getDateTimeString","getErrorString","getNumberString","num","format","getFormatedNumberString","getFormatedNumberString4","getNumber","value","parseFloat","getSeparators","momentDateString","LocalizationContextProvider","useTransalation","translations","errorTranslations","useEffect","locale","translate","useMemo","money","numValue","Number","isNaN","numeralLocale","localeData","Provider","exhaustiveCheck","param","getEditLocation","basePath","part","subItemId","location","getParamsDateString","dateString","Date","getFullYear","getMonth","getDate","isValidDate","getTime","countDecimals","Math","floor","split","length","createToggleDictionaryState","dictionary","setDictionary","toggleKey","newDictionary","forEach","createUseValidator","initialValidatorState","additionalValidation","useState","validationState","setValidationState","validate","item","employee","normalized","reduce","field","newState","validated","validField","valid","useCopiedState","original","followOriginal","copyState","setCopyState","changeCalled","setChangeCalled","editCopyState","changed","deepEqual","useMainBarStyles","makeStyles","theme","navDrawer","permanentBreakpoint","fullWidth","createStyles","appBar","width","marginLeft","appBarBdd","appBaraContent","alignItems","justifyContent","titleArea","display","logo","menuButton","spacing","instance","axios","create","interceptors","request","use","requestConfig","ErrorCodes","dipatchHTTPError","responseCode","dipatchError","getHTTPErrorMessage","v4","httpWebApiRaw","responseMapper","getState","a","headers","headerToken","axiosIntance","response","httpWebApi","webApi","getErrorMessage","webApiWithResponse","resCode","obj","globalErrorExceptions","errorExceptions","exceptionCodes","indexOf","errorMessage","resDesc","firstLoginWebApi","lang","origin","method","url","loginWebApi","AccessRights","useAuth","authStatus","getStore","loginResponse","AuthWrongToken","HTTPLoginError","useUserAvatarStyles","root","avatar","ConnextionManager","hubUrl","connection","createConnection","signalR","withUrl","accessTokenFactory","configureLogging","Information","build","onclose","console","log","start","this","setTimeout","registerHandler","handler","on","off","stop","reconnect","NotificationContext","NotificationContextProvider","connect","connectionManager","setConnectionManager","manager","useNotificationHandler","deps","useContext","handlerCallback","IdleTimerContainer","logaout","idleTimerRef","useRef","ref","timeout","onIdle","UserAvatar","porps","styles","authState","anchorEl","setAnchorEl","open","Boolean","Notification","permission","askForPermission","requestPermission","showSystemNotification","clientName","Box","className","Typography","IconButton","onClick","event","currentTarget","Avatar","nameWords","substring","toUpperCase","getInitials","anchorOrigin","vertical","horizontal","keepMounted","transformOrigin","onClose","MenuItem","MainBar","bddlogo1","hasLogo","require","companyId","AppBar","position","Toolbar","edge","color","aria-label","toggleNavMenu","variant","src","useMenuItemStyles","level","menuItem","whiteSpace","paddingLeft","isItemVisiable","isLinkVisiable","isSubmenuVisiable","hidden","items","visiable","subItem","accessRights","None","SubmenuMenuItem","submenu","toggleOpen","Icon","icon","ListItem","button","ListItemIcon","ListItemText","primary","Collapse","in","unmountOnExit","menuItems","LinkMenuItem","page","component","Link","to","path","MenuList","currentLevel","visiableItems","openKeys","dict","some","ok","dictionaryTogglers","togglers","useToggleStateDictionary","i","openDictionary","toggleOpenDictionary","List","disablePadding","Table","immutableData","getData","options","materialTableProps","tableData","isLoading","tableDataMutable","d","tableOptions","propOptions","padding","headerStyle","fontWeight","toolbar","searchPlaceholder","searchTooltip","header","pagination","firstAriaLabel","firstTooltip","lastAriaLabel","lastTooltip","labelDisplayedRows","labelRowsSelect","labelRowsPerPage","nextAriaLabel","nextTooltip","previousAriaLabel","previousTooltip","body","emptyDataSourceMessage","addTooltip","editTooltip","deleteTooltip","editRow","saveTooltip","cancelTooltip","deleteText","useMaterialTableLocalization","ControledTable","pageIndex","onPageIndexChange","total","tableProps","pageSize","initialPage","count","components","Pagination","paginationProps","TablePagination","rowsPerPage","onChangePage","evt","onChangeRowsPerPage","target","PaginationTable","pageData","rowStyle","currentPageData","totalCount","DiplayOrderMod","getOrderApi","userId","ordid","params","getOrder","ordId","useDisplayOBOrder","storeOB","displayedOrderBookOrder","orderId","displatch","mborder","loadBookOrder","DisplayDrawerContext","useDisplaySingleEmementStyles","paddingBottom","flexDirection","row","rowBorder","borderBottom","palette","divider","label","active","height","DisplayBoolNumber","thrutyValue","useOrderSideOptionsTranslator","side","Sell","useOrderSideOptions","translator","OrderType","OrdersEditAction","OrderMarket","FundsCheckStatus","OrderAllOrNothing","PreMarket","DisplayOrderMainAttributes","order","style","mod","orderNo","orderTime","security","qty","leavesQty","filledQty","orderType","price","timeInForce","expiryDate","iceberg","Active","visibleQty","securityAcc","moneyAcc","origOrderNo","ordStatusDescr","fillStatusDescr","printOrder","responseType","userid","useOrderPrinter","s","lan","filename","trim","ordersReport","fileDownload","Blob","printOrderThunk","useTooltipStyles","arrow","common","white","fontSize","tooltip","backgroundColor","black","boxShadow","shadows","CustomTooltip","titleKeyword","otherProps","tooltipStyles","Tooltip","classes","interactive","DisplayOrder","displayMod","enablePrint","print","Grid","container","justify","direction","ExpansionPanel","expanded","ExpansionPanelSummary","disabled","cancelOrderApi","cancelOrder","CancelOrder","cancel","dispatchCancelOrder","useCancelOrder","Paper","Button","Full","OrdersEditParts","getOrderEditLocation","New","BasicInfo","baseEdit","useOrderBookActions","onShowOBOrder","showWithDrawer","useViewOrder","onCancelOrder","useShowCancelOrder","onModifyOrder","useEditOrder","Modify","rowData","cancelAllowed","replaceAllowed","history","useHistory","push","getSideColor","useOrderSideStyles","sell","background","buy","OrdersBookTable","userAccessRights","columns","sorting","cellStyle","maxWidth","minWidth","render","textAlign","paddingRight","useOrderBookColumns","sideTranslator","useOrderRowColor","actionsColumnIndex","actionsCellStyle","usePageStyles","rootSpacing","gridItem","marginBottom","mainFab","margin","top","right","bottom","left","fabProgress","secondary","dark","zIndex","fabProgressWrapper","fabSuccess","success","main","PageTitle","backLocation","subtitle","goBack","pageTitle","size","getOrdersWebApi","defaultOrderStatus","securityId","market","fromrow","numofrows","ftValue","dateTo","getOrdersThunk","defaultStatus","getOrders","ordersResponse","DataCurrent","useOrderBookData","pagedOrders","useOrderBookIndex","setOrdersIndexThunk","useCurrentOrderBookFilter","OrderSideSelect","handleChange","nullable","enchanchedOptions","TextField","onChange","select","option","DateInput","clearable","srLocale","enLocale","helperText","utils","DateFnsUtils","cancelLabel","clearLabel","okLabel","getStatusLabel","ftDescr","AutocompleteSelect","selected","onChangeItem","predicate","getLabel","dataFilter","handleCityChange","newValue","filtredData","selectedItem","find","Autocomplete","getOptionLabel","renderInput","Skeleton","OrderFilterEditorType","OrderStatusSelect","statuses","renderStatus","getSecurityForSelect","df","useSecuritySelectData","selectSecurities","getSecurityFroSelectApi","securities","loadSecurityForSelect","SecuritySelect","renderSecurityLabel","secData","OrderFilterEditor","editFilter","save","reset","paddingTop","Extended","xs","toISOString","OrderFilterChips","Chip","onDelete","OrderBookFilterButton","showFilter","OrderBookFilterEditor","storeFilter","changeState","setCurrentFilter","dispatchSetFilter","dispatchResetFilter","useOrderBookFilter","getOrderListReport","useOrderBookReportDownloader","ordersBookReport","getOrderListExcel","useOrderBookExcelDownloader","dailyTrading","DownloadButton","downloader","DownloadExcelButton","OrderBookActions","OrderBook","pageStyles","dispatchLoadOrders","dispatchSetIndex","Card","CardHeader","Divider","CardContent","Fab","orderValidationState","clientId","createOrderApi","updateOrderApi","upsertOrder","result","newId","errorCode","FabSave","fabClass","CircularProgress","BoolInput","property","falsyValue","FormControlLabel","control","Switch","checked","CustomDialog","closeLabel","confirmLabel","disableBackdropClick","confirm","close","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","autoFocus","LeavePrompt","shouldShow","dialogOpen","setDialogOpen","setLocation","confirmed","setConfirmed","handleRouterPrompt","dialogClosed","pathname","when","StringInput","required","getDisplayValue","displayValue","NumberInput","InputProps","decimalCount","itemValue","displayValuePair","setDisplayPair","setErrorMessage","onNumberChange","numberValue","newErrorMessage","NumberFormatCustom","inputRef","other","separators","decimalScale","getInputRef","onValueChange","values","thousandSeparator","isNumericString","fixedDecimalScale","createNumberFormatCustom","inputComponent","useSecurityAccount","secaccs","c","accUse","includes","secacc","accNo","SecurityAccountsSelect","useSecurityAccounts","useMoneyAccount","monaccs","monacc","MoneyAccountsSelect","f","useMoneyAccounts","OrderTypesSelect","TifListSelect","useSecurityAccountDomDefault","defDom","secaccLabel","useMoneyAccountDomDefault","monaccLabel","EditOrderBasicInfoPage","editOrder","validation","dispatchUpsertOrder","useOrderUpsert","upsert","sideStyle","activeCheckState","setActiveCheckState","secAccountDef","unsavedChanges","createOrderSecurityFilter","orderSecurityFilter","setOrderSecurityFilter","createOrderMoneyAccountFilter","monAccountFilter","setMonAccountFilter","monAccountDef","saveOrder","fabClick","messageelement","sm","md","securityAccId","accId","moneyAccId","monAccount","disablePast","Inactive","diplayedOrder","setOrder","newOrder","load","useOrderForEdit","defaultOrder","moneyacc","exchId","orderBookComponents","Component","isMenuItem","match","useEditOrderState","Verify","marginTop","getTradeApi","tranid","getTrade","tradeId","useDisplayTrade","storeTrade","tranId","trade","loadTrade","DisplayTradeMainAttributes","clTradeId","tranDesc","settlDate","brokCommPerc","brokCommAmt","exchCommPerc","exchCommAmt","regCommPerc","regCommAmt","bankCommPerc","bankCommAmt","vatAmt","totComm","totAmt","rate","printTrade","tradeid","useTradesPrinter","tradesReport","printTradesThunk","DisplayTrade","useTradeActions","onShowTrade","useViewTrade","TradesTable","useTheme","screenExtraSmall","useMediaQuery","breakpoints","only","tranTime","feesAmt","useTradeColumns","getTradesWebApi","getTradesThunk","getTrades","tradesData","loadTrades","useTradeIndex","setTradesIndexThunk","TradesFilterChips","remnoveFilter","TradesFilterEditor","TradesFilterButton","useCurrentTradesFilter","TradesFilterDrawer","useTradesFilter","getTradeListReport","useTradeBookReportDownloader","tradeBookReport","getTradeListExcel","useTradeBookExcelDownloader","TradeBookActions","tradesComponents","useTradesData","dispatchLoadTradesPage","getMarketDataApi","loadMarketData","useMarketData","allData","pagedAllData","usePagedData","startIndex","endIndex","slice","useMarketSecurityActions","onGetSecurity","useMarketSecurityData","MarketDataTable","loadAll","useMarketDataIndex","marketdata","volume","sumBid","bestBidQty","bestBid","bestAsk","bestAskQty","sumAsk","high","low","trend","useMarketDataColumns","MarketDepthDataTable","marketdepth","bid","bidQty","cumBidQty","ask","askQty","cumAskQty","useMarketDepthColumns","MarketTradeDataTable","marketTradeData","markettrade","useMarketTradeColumns","addSecurityApi","useAddSecurity","dispatchAddSecurity","loadAddSecurity","removeSecurityApi","useRemoveSecurity","dispatchRemoveSecurity","loadRemoveSecurity","MainBoardFilterEditor","saveAdd","saveRemove","useCurrentMarketDataFilter","MainBoardSecurity","MarketFilterEditor","useMarketDataFilter","MainBoardActions","mainBoardComponents","marketDepth","hasDataMT","hasDataMD","PortfolioReportTable","pchPrice","pchAmt","mktPrice","mktAmt","diffPerc","diffAmt","usePortfolioColumns","useCurrentPortfolioFilter","useOnExchangeOptionsTranslator","onExch","yes","no","CurrencySelect","OnExchangeSelect","onExchange","useOnExchangeOptions","PortfolioFilterEditor","PortfolioFilterChips","onExchangeTranslator","PortfolioFilterButton","PortfolioDataFilterEditor","usePortfolioFilter","getPortfolioDataApi","exchid","exchange","currid","getPortfolioThunk","portfolioResponse","usePortfolioData","usePortfolioIndex","setPortolioIndexThunk","getPortfolioReport","usePortfolioReportDownloader","portfolioReport","getPortfolioExcel","usePortfolioExcelDownloader","portfolioXls","PortfolioReportActions","portfolioReportComponents","dispatchLoadPortfolio","domesticComponents","clientIdNo","isin","exchCode","preMarket","True","razlogOdbijanja","getOrderBookFEditLocation","setOrderStatusApi","orderid","useSetOrderStatus","actionsBroker","onCheckBOrder","useOrderBookActionsBroker","columnsBroker","useOrderBookColumnsBroker","Foreign","getSecurityFForSelect","forMD","useSecurityFSelectData","getSecurityFForSelectApi","loadSecurityFForSelect","exch","exchName","ExchangeSelect","matches","useSecurityAccountForeign","SecurityAccountsSelectForeign","useSecurityAccountsForeign","useMoneyAccountForeign","MoneyAccountsSelectForeign","useMoneyAccountsForeign","useSecurityAccountForDefault","defFor","useMoneyAccountForDefault","monaccbayeur","monaccselleur","monaccbayusd","monaccsellusd","createExchangeFilter","setexchFilter","monaccbayeurdef","monaccselleurdef","monaccbayusddef","monaccsellusddef","orderBookFComponents","portfolioFReportComponents","tradesFComponents","getSumTradeApi","useDisplaySumTrade","loadSumTrade","settlCurrency","settlAmt","settlStat","printSumTrade","useTradesSumPrinter","printTradesSumThunk","DiplayMarketDataMod","TradesSumTable","getSumTradesWebApi","getTradesSumThunk","getTradesSum","loadSumTrades","useTradeSumIndex","getTradeSumListReport","useTradeSumBookReportDownloader","getTradeSumListExcel","useTradeSumBookExcelDownloader","tradesSumFComponents","useTradesSumData","getMarketDataThunk","marketDataResponse","loadMarketAllData","pagedMarketData","getmarketdatabyidApi","getMarketData","useDisplayMarketData","curid","storeMD","displayedMarketData","DisplayMarketDataMainAttributes","curr","previousClose","changePerc","week52High","week52Low","latestTime","latestSource","DisplayMarketData","useViewMarketData","ChartPeriod","getChartData","period","useGraphData","prodId","loadGraphData","Month","getfDayChartData","useGraphDayData","Day","dateGraph","loadGraphDayData","ProductGraph","securitySymbol","securityName","dispatchSetPeriod","newPeriod","useGraphPeriod","setPeriod","daydata","alignContent","ToggleButtonGroup","exclusive","v","ToggleButton","ThreeMonths","SixMonths","FromYearBeggining","Year","TwoYears","FiveYears","dataKey","tickFormatter","yAxisId","domain","formatter","labelFormatter","stroke","dot","dispatchLoadMarketDataPage","href","foreignComponents","useLoginStyles","loginDrawerPaper","up","wraper","backgroundImage","formItem","textField","formContainer","localeSelection","alert","changePassApi","useChangePassHooks","errorState","dispatcChangePassword","changePassThunk","resetState","passwordchangeComponents","setter","setPassword","setNewPassword","newpassword1","setNewPassword1","fatchstate","setNewPass","handleTBChange","savePassword","onEnter","onKeyDown","getSecAccountApi","loadSecAccounts","secAcc","useSecAccountData","setdefsecaccApi","secaccid","useSetDefSeccAcc","defAccount","useSecAccountFilter","useCurrentSecAccountFilter","SecAccountTable","useSecAccountColumns","onShowBank","useSecAccountActions","useDomForSideOptionsTranslator","DomForSideSelect","useDomForSideOptions","SecAccountFilterEditor","SecAccountFilterChips","SecAccountFilterButton","SecAccountsFilterEditor","SecAccountActions","secAccountComponents","getMoneyAccountApi","loadMoneyAccounts","useMoneyAccountData","setdefmoneyaccApi","monaccid","useSetDefMoneyAcc","useMoneyAccountFilter","useCurrentMoneyAccountFilter","MoneyAccountTable","useMoneyAccountColumns","useMoneyAccountActions","MAccCurrencySelect","useMAccCur","MoneyAccountFilterEditor","MoneyAccountFilterChips","MoneyAccountFilterButton","MoneyAccountsFilterEditor","MoneyAccountActions","moneyAccountComponents","otherSettingsApi","useOtherSettingsHooks","dispatchConfirmOrder","otherSettingsThunk","otherSettingsComponents","setconfirORder","setChecked","saveConfirmOrder","settingsComponents","getCashBalanceApi","useCashBalanceData","CashBalanceListTable","cash","currentAmt","sellNetAmt","buyNetAmt","settledAmt","sellOrdAmt","buyOrdAmt","bankAmt","availAmt","useCashBalanceColumns","cashBalanceComponents","reportsComponents","getSupportApi","useSupportData","SupportTable","useSupportColumns","contactsComponents","supportComponents","appComponents","useUserMenuItems","UnderConstruction","iconDictionary","BusinessIcon","DashboardIcon","CliringIcon","SurveillanceIcon","ReportIcon","AccountingIcon","useNavigationItems","onMenu","useMenuItems","userMenuItems","navigationItems","sortedUserItems","sorted","b","acc","miId","miName","readOnly","parrent","findMenuItem","parentId","submenues","found","filterdMenuItem","concat","NavList","useNavDrawerStyles","drawer","flexShrink","overflowX","drawerPaper","nestedMenuItem","nestedMenuItem2","NavDrawer","permanentDrawer","bddlogo2","Drawer","paper","ModalProps","ThemeComponent","createMuiTheme","warning","hiddenWidth","ThemeProvider","useDisplayDrawerStyles","closeButton","closeIcon","DisplayDrawer","displayContent","setDisplayContext","anchor","useStyles","mainContent","ContentLayout","setState","toggleState","currentState","useToggleState","drawerOpen","toggleDrawerOpen","CssBaseline","videoBackground","objectFit","transform","videoBackgroundFallback","LoginError","Alert","severity","LoginForm","local","setLocal","setUsername","sendLogin","LoginPage","isVideoAvailable","setIsVideoAvailable","fetch","process","checkVideoAvailability","autoPlay","muted","loop","poster","alt","PaperProps","elevation","PageRouterSwitch","linkMenuItems","useLinkMenuItems","editComponents","Item","light","typography","actionRoot","icons","expand","transition","transitions","duration","shortest","expandOpen","collapse","checkIcon","textTransform","CollapsableMessage","forwardRef","closeSnackbar","useSnackbar","setExpanded","dismissMessage","dispatchSetShownId","useSnackbarMessage","snackbarMessage","setShoenId","join","expandClassName","cardClassName","SnackbarContent","CardActions","line","gutterBottom","SnackbarMessages","content","MessageQueueManager","max","useNextMessage","enqueueSnackbar","persist","ContentRoot","hostname","ReactDOM","basename","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","catch"],"mappings":"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","file":"static/js/main.c8a20edb.chunk.js","sourcesContent":["var map = {\n\t\"./ERSTE_logo2.jpg\": 1086,\n\t\"./ILIRIK_logo2.jpg\": 1087,\n\t\"./M&V_logo2.jpg\": 1088\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1085;","module.exports = \"data:image/jpeg;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/ILIRIK_logo2.169b88e3.jpg\";","module.exports = __webpack_public_path__ + \"static/media/M&V_logo2.e1d1c9db.jpg\";","import { User } from \"./auth/types\";\r\nimport { AccessRights } from \"../core/navigation/types\";\r\n\r\nexport interface CompanyMember {\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport enum PageDataStatus {\r\n DataCurrent,\r\n DataInvalidated,\r\n}\r\nexport interface PageData {\r\n currentPageData: T[];\r\n totalCount: number;\r\n status: PageDataStatus;\r\n}\r\n\r\nexport interface PageIndex {\r\n pageNumber: number;\r\n itemsPerPage: number;\r\n}\r\n\r\nexport interface Report {\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport type PendingValueState = \"invalid\" | \"valid\" | \"initial\";\r\n\r\nexport type PendingValue = {\r\n status: PendingValueState;\r\n value?: T;\r\n};\r\n\r\nexport interface UserMenuItem {\r\n level: number;\r\n miId: string;\r\n miName: string;\r\n parentId: string;\r\n path: string;\r\n readOnly: AccessRights;\r\n}\r\n\r\nexport interface LoginResponse {\r\n uData: User;\r\n userMenu: UserMenuItem[];\r\n orderStatuses: OrderStatus[];\r\n exchanges: Exchanges[];\r\n securityAccounts: SecurityAccounts [];\r\n moneyAccounts: MoneyAccounts [];\r\n orderTypes: OrderTypes [];\r\n tifList: TifList [];\r\n currencies: Currencies[];\r\n mAccCurr: MAccCur[];\r\n}\r\n\r\nexport enum Status {\r\n Active = 1,\r\n Inactive = 0,\r\n}\r\n\r\nexport type FetchStateTypeType =\r\n | \"not-started\"\r\n | \"started\"\r\n | \"successful\"\r\n | \"error\";\r\n\r\nexport type FetchStateType =\r\n | { type: \"not-started\" }\r\n | { type: \"started\" }\r\n | { type: \"successful\"; result?: TSucessResult }\r\n | { type: \"error\"; errorCode?: string };\r\n\r\nexport const createFetchState = (\r\n type: FetchStateTypeType,\r\n payload?: any\r\n): FetchStateType => {\r\n switch (type) {\r\n case \"started\":\r\n case \"not-started\":\r\n return {\r\n type,\r\n };\r\n case \"successful\":\r\n return {\r\n type,\r\n result: payload,\r\n };\r\n case \"error\":\r\n return {\r\n type,\r\n errorCode: payload,\r\n };\r\n }\r\n};\r\n\r\nexport const getFetchStateChange = (\r\n current: FetchStateType,\r\n change: FetchStateType\r\n) =>\r\n current.type !== \"started\" || change.type !== \"not-started\"\r\n ? change\r\n : current;\r\n\r\n\r\nexport enum OrderSide {\r\n Sell = \"SELL\",\r\n Buy = \"BUY\",\r\n}\r\n\r\nexport enum OnExchange {\r\n yes = \"Y\",\r\n no = \"N\",\r\n}\r\n\r\nexport interface OrderStatus {\r\n ftValue: number;\r\n ftDescr: string;\r\n}\r\n\r\nexport interface Security {\r\n securityId: string;\r\n symbol: string;\r\n isin: string;\r\n descr: string;\r\n type: string;\r\n priceType: string;\r\n tradingMethod: string;\r\n exchId: string;\r\n exchCode: string;\r\n currId: string;\r\n currCode: string;\r\n}\r\n\r\nexport interface SecurityEdit {\r\n securityId: string;\r\n}\r\n\r\nexport interface Exchanges {\r\n exchId: string;\r\n exch: string;\r\n}\r\n\r\nexport interface Currencies {\r\n currId: string;\r\n currCode: string;\r\n currName: string;\r\n}\r\n\r\nexport interface SecurityAccounts {\r\n accId: string;\r\n accNo: string;\r\n accBank: string;\r\n accUse: string;\r\n defDom: number;\r\n defFor: number;\r\n}\r\n\r\nexport interface MoneyAccounts {\r\n accId: string;\r\n accNo: string;\r\n accBank: string;\r\n currId: string;\r\n accSide: string;\r\n accUse: string;\r\n defDom: number;\r\n defFor: number;\r\n}\r\n\r\nexport interface MAccCur {\r\n currId: string;\r\n currCode: string;\r\n}\r\n\r\nexport interface OrderTypes {\r\n ftValue: string;\r\n ftDescr: string;\r\n}\r\n\r\nexport interface TifList {\r\n ftValue: string;\r\n ftDescr: string;\r\n}\r\n\r\nexport interface Exchanges {\r\n\texchId: string;\r\n exch: string;\r\n exchName: string;\r\n}\r\n\r\nexport enum DomForSide {\r\n Domestic = \"D\",\r\n Foreign = \"F\",\r\n}\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { SnackbarMessage } from \"./types\";\r\n\r\ninterface ISnackbarState {\r\n\tmessages: SnackbarMessage[];\r\n}\r\n\r\ninterface IShownArgs {\r\n\tmessageId: string,\r\n\tshownId: string,\r\n}\r\n\r\ninterface IToast {\r\n\tid: string,\r\n\ttitle: string,\r\n message: string[],\r\n}\r\n\r\nconst initialState: ISnackbarState = {\r\n\tmessages: [],\r\n};\r\n\r\n\r\nconst name = \"snackbar\";\r\n\r\nconst snackbarSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tpushError: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tmessages: [\r\n\t\t\t\t...state.messages,\r\n\t\t\t\t{\r\n\t\t\t\t\tid: action.payload.id,\r\n\t\t\t\t\tmessage: action.payload.message,\r\n\t\t\t\t\ttitle: action.payload.title,\r\n\t\t\t\t\ttype: \"error\",\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t}),\r\n\t\tpushInfo: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tmessages: [\r\n\t\t\t\t...state.messages,\r\n\t\t\t\t{\r\n\t\t\t\t\tid: action.payload.id,\r\n\t\t\t\t\tmessage: action.payload.message,\r\n\t\t\t\t\ttitle: action.payload.title,\r\n\t\t\t\t\ttype: \"info\",\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t}),\r\n\t\tdismiss: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tmessages: [\r\n\t\t\t\t...state.messages.filter(m => m.id !== action.payload),\r\n\t\t\t],\r\n\t\t}),\r\n\t\tsetShownId: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tmessages: [\r\n\t\t\t\t...state.messages.map(m => m.id !== action.payload.messageId ? m : {\r\n\t\t\t\t\t...m,\r\n\t\t\t\t\tshownId: action.payload.shownId\r\n\t\t\t\t}),\r\n\t\t\t],\r\n\t\t}),\r\n\t},\r\n});\r\n\r\nexport const { pushError, dismiss, pushInfo, setShownId } = snackbarSlice.actions;\r\n\r\nexport default snackbarSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { AuthorizationState } from \"./types\";\r\nimport { LoginResponse } from \"../models\";\r\nimport { ErrorData } from \"../../core/http/types\";\r\n\r\ninterface IAuthState {\r\n\tcurrent: AuthorizationState;\r\n\ttoken?: string;\r\n}\r\n\r\nconst initialState: IAuthState = {\r\n\tcurrent: { status: \"init\" },\r\n};\r\n\r\nconst name = \"auth\";\r\n\r\n\r\nconst reportsSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsuccessfulLogin: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tcurrent: {\r\n\t\t\t\tstatus: \"successful\",\r\n\t\t\t\tuser: action.payload.uData,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tfailedLogin: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tcurrent: {\r\n\t\t\t\tstatus: \"failed\",\r\n\t\t\t\terror: action.payload,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tresetLoginState: state => ({\r\n\t\t\t...state,\r\n\t\t\tcurrent: {\r\n\t\t\t\tstatus: \"init\",\r\n\t\t\t},\r\n\t\t}),\r\n\t\tsetPendingLoginState: state => ({\r\n\t\t\t...state,\r\n\t\t\tcurrent: {\r\n\t\t\t\tstatus: \"pending\",\r\n\t\t\t},\r\n\t\t}),\r\n\t\tsetToken: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\ttoken: action.payload\r\n\t\t}),\r\n\t\tremoveToken: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\ttoken: undefined\r\n\t\t}),\r\n\t},\r\n});\r\n\r\nexport const { successfulLogin, failedLogin, resetLoginState, setPendingLoginState, setToken, removeToken } = reportsSlice.actions;\r\n\r\nexport default reportsSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { successfulLogin } from \"../auth/authDataSlice\";\r\nimport { UserMenuItem, OrderStatus, Exchanges, SecurityAccounts, MoneyAccounts, OrderTypes, TifList, Currencies,MAccCur,} from \"../models\";\r\nimport { SecuritySimpleList } from \"./types\";\r\n\r\n\r\ninterface IInitialDataState {\r\n\tuserMenu: UserMenuItem[];\r\n\torderStatuses: OrderStatus[];\r\n\texchanges: Exchanges[];\r\n\tsecurityForSelect?: SecuritySimpleList[] | \"loading\";\r\n\tsecurityFForSelect?: SecuritySimpleList[] | \"loading\";\r\n\tsecurityAccounts: SecurityAccounts [];\r\n\tmoneyAccounts:MoneyAccounts [];\r\n\torderTypes: OrderTypes [];\r\n\ttifList: TifList [];\r\n\tcurrencies: Currencies[];\r\n\tmAccCurr: MAccCur[];\r\n }\r\n\r\nconst initialState: IInitialDataState = {\r\n\tuserMenu: [],\r\n\torderStatuses: [],\r\n\texchanges: [],\r\n\tsecurityAccounts: [],\r\n\tmoneyAccounts: [],\r\n\torderTypes: [],\r\n\ttifList: [],\r\n\tcurrencies: [],\r\n\tmAccCurr: [],\r\n };\r\n\r\nconst name = \"initialData\";\r\n\r\nconst initialDataSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetSecurityForSelect: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tsecurityForSelect: action.payload,\r\n\t\t}),\r\n\t\tsetSecurityFForSelect: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tsecurityFForSelect: action.payload,\r\n\t\t}),\r\n\t},\r\n\textraReducers: builder => {\r\n\t\tbuilder.addCase(successfulLogin, (state, action) => ({\r\n\t\t\t...state,\r\n\t\t\tuserMenu: action.payload.userMenu,\r\n\t\t\torderStatuses: action.payload.orderStatuses,\r\n\t\t\texchanges: action.payload.exchanges,\r\n\t\t\tsecurityAccounts: action.payload.securityAccounts ,\r\n\t\t\tmoneyAccounts: action.payload.moneyAccounts,\r\n\t\t\torderTypes: action.payload.orderTypes ,\r\n\t\t\ttifList: action.payload.tifList,\r\n\t\t\tcurrencies: action.payload.currencies,\r\n\t\t\tmAccCurr: action.payload.mAccCurr,\r\n\t\t}));\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tsetSecurityForSelect,\r\n\tsetSecurityFForSelect,\r\n} = initialDataSlice.actions;\r\n\r\nexport default initialDataSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { PageData, PageDataStatus, FetchStateType } from \"../../models\";\r\nimport { ViewOrder, Order } from \"../orders/types\";\r\n//import { invalidateOrders as mainBoardInvalidate } from \"../mainBoard/ordersDataSlice\";\r\n\r\ntype OrdersData = {\r\n\tcurrentPage?: PageData;\r\n\tdisplayedOBOrder?: Order;\r\n\tnewOrderFetchState: FetchStateType;\r\n\tattributeFetchState: FetchStateType;\r\n\tprintOrderFetchState: FetchStateType;\r\n\tcancelOrderFetchState: FetchStateType;\r\n\tdownloadXlsFetchState: FetchStateType;\r\n};\r\n\r\nconst initialState: OrdersData = {\r\n\tnewOrderFetchState: { type: \"not-started\" },\r\n\tattributeFetchState: { type: \"not-started\" },\r\n\tprintOrderFetchState: { type: \"not-started\" },\r\n\tcancelOrderFetchState: { type: \"not-started\" },\r\n\tdownloadXlsFetchState: { type: \"not-started\" },\r\n};\r\n\r\nconst invalidate = (state: OrdersData) => {\r\n\tif (!state.currentPage) return state;\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tcurrentPage: {\r\n\t\t\t...state.currentPage,\r\n\t\t\tstatus: PageDataStatus.DataInvalidated,\r\n\t\t},\r\n\t};\r\n};\r\n\r\nconst name = \"orderBook\";\r\n\r\nconst orderBookSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetOrders: (state, action: PayloadAction>) => ({\r\n\t\t\t...state,\r\n\t\t\tcurrentPage: action.payload,\r\n\t\t}),\r\n\t\tsetDisplayed: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tdisplayedOBOrder: action.payload,\r\n\t\t}),\r\n\t\tinvalidateOrders: invalidate,\r\n\t\tsetNewOrderFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tnewOrderFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetAttributeFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tattributeFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetPrintOrderFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tprintOrderFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetDownloadXlsFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tdownloadXlsFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetCancelOrderFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tcancelOrderFetchState: action.payload,\r\n\t\t}),\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tsetOrders,\r\n\tsetDisplayed,\r\n\tinvalidateOrders,\r\n\tsetNewOrderFetchState,\r\n\tsetAttributeFetchState,\r\n\tsetPrintOrderFetchState,\r\n\tsetCancelOrderFetchState,\r\n\tsetDownloadXlsFetchState,\r\n} = orderBookSlice.actions;\r\n\r\nexport default orderBookSlice.reducer;\r\n","import { srTranslation } from \"./srTranslation\";\r\n\r\nexport type LocalizationKey = keyof typeof srTranslation;\r\n\r\nexport type TranslationsType = [\r\n\t{\r\n\t\t[key in LocalizationKey]: string;\r\n\t},\r\n\t{\r\n\t\t[key in string]: string;\r\n\t}\r\n];\r\n\r\nexport enum LocalizationLanguage {\r\n\tEN = \"EN\",\r\n\tSR = \"SR\",\r\n}\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { PageData, PageDataStatus, FetchStateType } from \"../../models\";\r\nimport { TradeList, Trades } from \"./types\";\r\n\r\ntype TradesData = {\r\n\tcurrentPage?: PageData;\r\n\tdisplayedTrade?: Trades;\r\n\tcancelFetchState: FetchStateType;\r\n\tprintTradeFetchState: FetchStateType;\r\n\tdownloadXlsFetchState: FetchStateType;\r\n};\r\n\r\nconst initialState: TradesData = {\r\n\tcancelFetchState: { type: \"not-started\" },\r\n\tprintTradeFetchState: { type: \"not-started\" },\r\n\tdownloadXlsFetchState: { type: \"not-started\" },\r\n};\r\n\r\nconst name = \"trades\";\r\n\r\nconst tradesSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetTrades: (state, action: PayloadAction>) => ({\r\n\t\t\t...state,\r\n\t\t\tcurrentPage: action.payload,\r\n\t\t}),\r\n\t\tsetDisplayed: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tdisplayedTrade: action.payload,\r\n\t\t}),\r\n\t\tinvalidateTrades: state => {\r\n\t\t\tif (!state.currentPage) return state;\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentPage: {\r\n\t\t\t\t\t...state.currentPage,\r\n\t\t\t\t\tstatus: PageDataStatus.DataInvalidated,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t},\r\n\t\tsetCancelTradeFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tcancelFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetPrintTradeFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tprintTradeFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetDownloadXlsFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tdownloadXlsFetchState: action.payload,\r\n\t\t}),\r\n\t},\r\n});\r\n\r\nexport const { setTrades, setDisplayed, invalidateTrades, setCancelTradeFetchState, setPrintTradeFetchState,setDownloadXlsFetchState,\r\n} = tradesSlice.actions;\r\n\r\nexport default tradesSlice.reducer;\r\n","import { MarketData, MarketListData, MarketDepth, MarketTrade } from \"./types\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { FetchStateType, getFetchStateChange } from \"../../models\";\r\n\r\ninterface IMarketData {\r\n marketData?: MarketData[];\r\n marketListData?: MarketListData[];\r\n marketDepthData?: MarketDepth[];\r\n marketTrade?: MarketTrade[];\r\n displayData?: MarketListData[];\r\n fetchState: FetchStateType;\r\n secid: string;\r\n}\r\n\r\nconst initialState: IMarketData = {\r\n marketDepthData: [],\r\n fetchState: { type: \"not-started\" },\r\n secid: \"\",\r\n};\r\n\r\nconst name = \"marketData\";\r\n\r\nconst marketDataSlice = createSlice({\r\n name,\r\n initialState,\r\n reducers: {\r\n setData: (state, action: PayloadAction) => ({\r\n ...state,\r\n marketListData: action.payload?.marketSecList,\r\n marketDepthData: action.payload?.depthList,\r\n marketTrade: action.payload?.tradeList,\r\n displayData: action.payload?.marketSecList, \r\n }),\r\n setFetchState: (state, action: PayloadAction) => ({\r\n ...state,\r\n all: action.payload.type === \"successful\" ? undefined : state.marketListData,\r\n displayData:\r\n action.payload.type === \"successful\" ? undefined : state.displayData,\r\n fetchState: getFetchStateChange(state.fetchState, action.payload),\r\n }),\r\n setSecurity: (state, action: PayloadAction) => ({\r\n ...state,\r\n secid: action.payload,\r\n marketDepthData: undefined,\r\n marketTrade: undefined,\r\n displayData: undefined, \r\n })\r\n },\r\n});\r\n\r\n\r\nexport const {\r\n setData,\r\n setFetchState,\r\n setSecurity,\r\n} = marketDataSlice.actions;\r\n\r\nexport default marketDataSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { PortfolioData } from \"./types\";\r\nimport { PageData, PageDataStatus, FetchStateType } from \"../../models\";\r\n\r\ntype PortfolioReportData = {\r\n\tcurrentPage?: PageData;\r\n\tdata?: PortfolioData[];\r\n\tdownloadReportFetchState: FetchStateType;\r\n\tdownloadXlsFetchState: FetchStateType;\r\n};\r\n\r\nconst initialState: PortfolioReportData = {\r\n\tdownloadReportFetchState: { type: \"not-started\" },\r\n\tdownloadXlsFetchState: { type: \"not-started\" },\r\n};\r\n\r\nconst invalidate = (state: PortfolioReportData) => {\r\n\tif (!state.currentPage) return state;\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tcurrentPage: {\r\n\t\t\t...state.currentPage,\r\n\t\t\tstatus: PageDataStatus.DataInvalidated,\r\n\t\t},\r\n\t};\r\n};\r\n\r\n\r\nconst name = \"portfolio\";\r\n\r\nconst portfolioSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetData: (state, action: PayloadAction>) => ({\r\n\t\t\t...state,\r\n\t\t\tcurrentPage: action.payload,\r\n\t\t}),\r\n\t\tsetDownloadReportFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tdownloadReportFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetDownloadXlsFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tdownloadXlsFetchState: action.payload,\r\n\t\t}),\r\n\r\n\t\tinvalidatePortfolio: invalidate,\r\n\t},\r\n});\r\n\r\n\r\nexport const { setData, setDownloadReportFetchState, setDownloadXlsFetchState, invalidatePortfolio } = portfolioSlice.actions;\r\n\r\nexport default portfolioSlice.reducer;\r\n","import { combineReducers, AnyAction } from \"@reduxjs/toolkit\";\r\nimport orderBook from \"./orders/orderBookDataSlice\";\r\nimport trades from \"./trades/tradesDataSlice\";\r\nimport marketData from \"./mainBoard/marketsDataSlice\";\r\nimport portfolio from \"./portfolio/portfolioDataSlice\"\r\n\r\nimport { resetLoginState } from \"../auth/authDataSlice\";\r\n\r\nconst dataDomesticReducer = combineReducers({\r\n\torderBook,\r\n\ttrades,\r\n\tmarketData,\r\n\tportfolio\r\n});\r\n\r\nexport default (state: any, action: AnyAction) => {\r\n\tif (action.type === resetLoginState.type) {\r\n\t\treturn dataDomesticReducer(undefined, action);\r\n\t} else {\r\n\t\treturn dataDomesticReducer(state, action);\r\n\t}\r\n};\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { CashBalanceData } from \"./types\";\r\nimport { FetchStateType, getFetchStateChange } from \"../../models\";\r\n\r\ninterface CashBalListReportData {\r\n all?: CashBalanceData[];\r\n displayData?: CashBalanceData[];\r\n\tdownloadReportFetchState: FetchStateType;\r\n\tdownloadXlsFetchState: FetchStateType;\r\n};\r\n\r\nconst initialState: CashBalListReportData = {\r\n\tdownloadReportFetchState: { type: \"not-started\" },\r\n\tdownloadXlsFetchState: { type: \"not-started\" },\r\n};\r\n\r\nconst name = \"cashBalList\";\r\n\r\nconst cashBalListSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetData: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n all: action.payload,\r\n\t\t}),\r\n\t\tsetDownloadReportFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tdownloadReportFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetDownloadXlsFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tdownloadXlsFetchState: action.payload,\r\n\t\t}),\r\n\r\n\t},\r\n});\r\n\r\nexport const { setData, setDownloadReportFetchState, setDownloadXlsFetchState } = cashBalListSlice.actions;\r\n\r\nexport default cashBalListSlice.reducer;\r\n\r\n\r\n","import { combineReducers, AnyAction } from \"@reduxjs/toolkit\";\r\nimport cashBalList from \"./cashBalList/cashBalListDataSlice\";\r\nimport { resetLoginState } from \"../auth/authDataSlice\";\r\n\r\nconst dataReportsReducer = combineReducers({\r\n\tcashBalList,\r\n});\r\n\r\nexport default (state: any, action: AnyAction) => {\r\n\tif (action.type === resetLoginState.type) {\r\n\t\treturn dataReportsReducer(undefined, action);\r\n\t} else {\r\n\t\treturn dataReportsReducer(state, action);\r\n\t}\r\n};\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { FetchStateType, SecurityAccounts } from \"../../models\";\r\n\r\ninterface ISecAccounts {\r\n\tall?: SecurityAccounts[];\r\n\tchangeSecAccountFetchState: FetchStateType;\r\n\terrorDesc: string;\r\n\tsecid: string;\r\n};\r\n\r\nconst initialState: ISecAccounts = {\r\n\tchangeSecAccountFetchState: { type: \"not-started\" },\r\n\terrorDesc: \"\",\r\n\tsecid: \"\",\r\n};\r\n\r\nconst invalidate = (state: ISecAccounts) => {\r\n\treturn {...state}\r\n};\r\n\r\nconst name = \"secAccounts\";\r\n\r\nconst secAccountsSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n \t\tsetData: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tall: action.payload,\r\n\t\t }),\r\n\t setChangeSecAccountFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tchangeSecAccountFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetError: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\terrorDesc: action.payload,\r\n\t\t}),\r\n\t\tsetSecurityAcc: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tsecid: action.payload,\r\n\t\t }),\r\n\t\tinvalidateSecAccount: invalidate,\r\n\t},\r\n});\r\n\r\nexport const { setData,setChangeSecAccountFetchState, setError, setSecurityAcc, invalidateSecAccount } = secAccountsSlice.actions;\r\n\r\nexport default secAccountsSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { FetchStateType, MoneyAccounts } from \"../../models\";\r\n\r\ninterface IMoneyAccounts {\r\n\tall?: MoneyAccounts[];\r\n\tchangeMoneyAccountFetchState: FetchStateType;\r\n\terrorDesc: string;\r\n\taccountid: string;\r\n};\r\n\r\nconst initialState: IMoneyAccounts = {\r\n\tchangeMoneyAccountFetchState: { type: \"not-started\" },\r\n\terrorDesc: \"\",\r\n\taccountid: \"\",\r\n};\r\n\r\nconst invalidate = (state: IMoneyAccounts) => {\r\n\treturn {...state}\r\n};\r\n\r\nconst name = \"moneyAccounts\";\r\n\r\nconst moneyAccountsSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n \t\tsetData: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tall: action.payload,\r\n\t\t }),\r\n\t \tsetChangeMoneyAccountFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tchangeMoneyAccountFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetError: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\terrorDesc: action.payload,\r\n\t\t}),\r\n\t\tsetMoneyAcc: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\taccountid: action.payload,\r\n\t\t }),\r\n\t\tinvalidatemoneyAccount: invalidate,\r\n\t},\r\n});\r\n\r\nexport const { setData,setChangeMoneyAccountFetchState, setError, setMoneyAcc, invalidatemoneyAccount } = moneyAccountsSlice.actions;\r\n\r\nexport default moneyAccountsSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { FetchStateType } from \"../../models\";\r\n\r\ntype SettingsData = {\r\n\tchangePassFetchState: FetchStateType;\r\n\terrorDesc: string;\r\n};\r\n\r\nconst initialState: SettingsData = {\r\n\tchangePassFetchState: { type: \"not-started\" },\r\n\terrorDesc: \"\",\r\n};\r\n\r\nconst name = \"settings\";\r\n\r\nconst settingsSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetChangePassFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tchangePassFetchState: action.payload,\r\n\t\t}),\r\n\t\tsetError: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\terrorDesc: action.payload,\r\n\t\t}),\r\n\r\n\t},\r\n});\r\n\r\nexport const { setChangePassFetchState, setError } = settingsSlice.actions;\r\n\r\nexport default settingsSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { FetchStateType } from \"../../models\";\r\n\r\ntype SettingsData = {\r\n\tconfirmOrder: number;\r\n\tconfirmOrderFetchState: FetchStateType;\r\n};\r\n\r\nconst initialState: SettingsData = {\r\n\tconfirmOrder: 1,\r\n\tconfirmOrderFetchState: { type: \"not-started\" },\r\n};\r\n\r\nconst name = \"otherSettings\";\r\n\r\nconst otherSettingsSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetConfirmOrder: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tconfirmOrder: action.payload\r\n\t\t}),\r\n\r\n\t\tsetConfirmOrderFatchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tconfirmOrderFetchState: action.payload,\r\n\t\t}),\r\n\r\n\t},\r\n});\r\n\r\nexport const { setConfirmOrder, setConfirmOrderFatchState} = otherSettingsSlice.actions;\r\n\r\nexport default otherSettingsSlice.reducer;\r\n","import { FMarketListData } from \"./types\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { FetchStateType, getFetchStateChange } from \"../../models\";\r\nimport { PageData, PageDataStatus } from \"../../models\";\r\n\r\ntype MarketData = {\r\n currentPage?: PageData;\r\n displayData?: FMarketListData;\r\n fetchState: FetchStateType;\r\n secid: string;\r\n secsymbol: string;\r\n secname: string;\r\n}\r\n\r\nconst initialState: MarketData = {\r\n fetchState: { type: \"not-started\" },\r\n secid: \"\",\r\n secsymbol: \"\",\r\n secname: \"\",\r\n};\r\n\r\nconst invalidate = (state: MarketData) => {\r\n\tif (!state.currentPage) return state;\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tcurrentPage: {\r\n\t\t\t...state.currentPage,\r\n\t\t\tstatus: PageDataStatus.DataInvalidated,\r\n\t\t},\r\n\t};\r\n};\r\n\r\nconst name = \"marketData\";\r\n\r\nconst marketDataSlice = createSlice({\r\n name,\r\n initialState,\r\n reducers: {\r\n\r\n\t\tsetData: (state, action: PayloadAction>) => ({\r\n\t\t\t...state,\r\n\t\t\tcurrentPage: action.payload,\r\n\t\t}),\r\n\t\tsetDisplayed: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tdisplayData: action.payload,\r\n\t\t}),\r\n\t\tinvalidateData: invalidate,\r\n\r\n\t\tsetFetchState: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfetchState: action.payload,\r\n\t\t}),\r\n\t setSecurity: (state, action: PayloadAction) => ({\r\n \t ...state,\r\n\t secid: action.payload,\r\n \t displayData: undefined, \r\n\t }),\r\n\t setSecuritySymbol: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tsecsymbol: action.payload,\r\n\t\t\tdisplayData: undefined, \r\n\t\t }),\r\n\t\t setSecurityName: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tsecname: action.payload,\r\n\t\t\tdisplayData: undefined, \r\n\t\t })\r\n\t },\r\n});\r\n\r\n\r\nexport const {\r\n setData,\r\n setDisplayed,\r\n invalidateData,\r\n setFetchState,\r\n setSecurity,\r\n setSecuritySymbol,\r\n setSecurityName,\r\n} = marketDataSlice.actions;\r\n\r\nexport default marketDataSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { TradePricesChartData, ChartPeriod, DayPriceData } from \"./types\";\r\n\r\ntype TickerData = {\r\n\tgraphData: {\r\n\t\t[k: string]: TradePricesChartData[] | undefined;\r\n\t};\r\n\tgraphDayData: {\r\n\t\t[k: string]: DayPriceData[] | undefined;\r\n\t};\r\n\tgraphPeriod: {\r\n\t\t[k: string]: ChartPeriod;\r\n\t};\r\n\r\n};\r\n\r\nexport type TickerArg = {\r\n\tgraphId: string;\r\n\tdata: T;\r\n};\r\n\r\n\r\nconst initialState: TickerData = {\r\n\tgraphData: {},\r\n\tgraphDayData: {},\r\n\tgraphPeriod: {},\r\n};\r\n\r\nconst name = \"ticker\";\r\n\r\nconst tickerSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetGraphData: (state, action: PayloadAction>) => ({\r\n\t\t\t...state,\r\n\t\t\tgraphData: {\r\n\t\t\t\t...state.graphData,\r\n\t\t\t\t[action.payload.graphId]: action.payload.data,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tsetGraphDayData: (state, action: PayloadAction>) => ({\r\n\t\t\t...state,\r\n\t\t\tgraphDayData: {\r\n\t\t\t\t...state.graphDayData,\r\n\t\t\t\t[action.payload.graphId]: action.payload.data,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tsetGraphPeriod: (state, action: PayloadAction>) => ({\r\n\t\t\t...state,\r\n\t\t\tgraphPeriod: {\r\n\t\t\t\t...state.graphPeriod,\r\n\t\t\t\t[action.payload.graphId]: action.payload.data,\r\n\t\t\t},\r\n\t\t}),\r\n\t},\r\n});\r\n\r\nexport const { setGraphData, setGraphDayData, setGraphPeriod } = tickerSlice.actions;\r\n\r\nexport default tickerSlice.reducer;\r\n","import { combineReducers, AnyAction } from \"@reduxjs/toolkit\";\r\nimport marketData from \"./mainBoard/marketsDataSlice\";\r\nimport ticker from \"./ticker/tickerDataSlice\";\r\n\r\nimport { resetLoginState } from \"../auth/authDataSlice\";\r\n\r\nconst dataForeignReducer = combineReducers({\r\n\tmarketData,\r\n\tticker,\r\n});\r\n\r\nexport default (state: any, action: AnyAction) => {\r\n\tif (action.type === resetLoginState.type) {\r\n\t\treturn dataForeignReducer(undefined, action);\r\n\t} else {\r\n\t\treturn dataForeignReducer(state, action);\r\n\t}\r\n};\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { EmpContactData } from \"./types\";\r\n\r\ninterface ISupport {\r\n\tall?: EmpContactData[];\r\n};\r\n\r\nconst initialState: ISupport = {\r\n//\terrorDesc: \"\",\r\n};\r\n\r\nconst invalidate = (state: ISupport) => {\r\n\treturn {...state}\r\n};\r\n\r\nconst name = \"support\";\r\n\r\nconst supportSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n \t\tsetData: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tall: action.payload,\r\n\t\t }),\r\n\t\tinvalidateSupport: invalidate,\r\n\t},\r\n});\r\n\r\nexport const { setData, invalidateSupport } = supportSlice.actions;\r\n\r\nexport default supportSlice.reducer;\r\n","import { combineReducers } from \"@reduxjs/toolkit\";\r\nimport { persistReducer } from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage/session\";\r\nimport snackbar from \"./snackbar/snackbarDataSlice\";\r\nimport auth from \"./auth/authDataSlice\";\r\nimport initialData from \"./initialData/initialDataReducer\";\r\nimport domestic from \"./domestic/domesticDataReducer\";\r\nimport reports from \"./reports/reportsDataRecucer\";\r\nimport secAccounts from \"./settings/securityaccounts/securityAccountsDataSlice\";\r\nimport moneyAccounts from \"./settings/moneyaccounts/moneyAccountsDataSlice\";\r\nimport settings from \"./settings/passwordchange/settingsDataSlice\";\r\nimport otherSettings from \"./settings/otherSettings/otherSettingsDataSlice\";\r\nimport foreign from \"./foreign/foreignDataReducer\";\r\nimport support from \"./support/supportDataSlice\";\r\n\r\nconst dataPersistConfig = {\r\n key: \"auth\",\r\n storage: storage,\r\n whitelist: [\"auth\", \"initialData\"],\r\n};\r\n\r\nconst dataComReducer = combineReducers({\r\n snackbar,\r\n auth,\r\n initialData,\r\n domestic,\r\n settings,\r\n secAccounts,\r\n moneyAccounts,\r\n reports,\r\n foreign,\r\n otherSettings,\r\n support,\r\n});\r\n\r\nexport default persistReducer(dataPersistConfig, dataComReducer);\r\n\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { LoginResponse } from \"../models\";\r\nimport { successfulLogin } from \"./authDataSlice\";\r\n\r\ninterface IAuthUXState {\r\n\tusers: {\r\n\t\t[username: string]: string | undefined;\r\n\t};\r\n\tlastLoginUsername?: string;\r\n\tcolorBdd?: string;\r\n}\r\n\r\nconst initialState: IAuthUXState = {\r\n\tusers: {},\r\n};\r\n\r\nconst name = \"auth\";\r\n\r\nconst reportsSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tdeleteUserToken: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tusers: {\r\n\t\t\t\t...state.users,\r\n\t\t\t\t[action.payload]: undefined\r\n\t\t\t},\r\n\t\t\tlastLoginUsername: undefined,\r\n\t\t\tcolorBdd: undefined\r\n\t\t})\r\n\t},\r\n\textraReducers: {\r\n\t\t[successfulLogin.type]: (state, action: PayloadAction) => {\r\n\t\t\tconst loginUser = action.payload.uData;\r\n\t\t\tconst newusersDictionary = !loginUser.token\r\n\t\t\t\t? state.users\r\n\t\t\t\t: {\r\n\t\t\t\t\t\t...state.users,\r\n\t\t\t\t\t\t[loginUser.userName.toLowerCase()]: loginUser.token,\r\n\t\t\t\t };\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tusers: newusersDictionary,\r\n\t\t\t\tlastLoginUsername: loginUser.userName,\r\n\t\t\t\tcolorBdd: loginUser.hdrColor\r\n\t\t\t};\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const { deleteUserToken } = reportsSlice.actions;\r\n\r\nexport default reportsSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { LocalizationLanguage } from \"../../core/localization/types\";\r\n\r\ninterface ILocalizationState {\r\n\tlanguage: LocalizationLanguage;\r\n}\r\n\r\nconst initialState: ILocalizationState = {\r\n\tlanguage: LocalizationLanguage.SR,\r\n};\r\n\r\nconst name = \"localization\";\r\n\r\nconst reportsSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetLocalization: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tlanguage: action.payload,\r\n\t\t}),\r\n\t},\r\n});\r\n\r\nexport const {\r\n\tsetLocalization,\r\n} = reportsSlice.actions;\r\n\r\nexport default reportsSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { PageIndex } from \"../../models\";\r\nimport { successfulLogin } from \"../../auth/authDataSlice\";\r\nimport { OrderFilter, MoneyAccFilter } from \"./types\";\r\nimport moment from \"moment\";\r\n\r\ntype OrderPageState = {\r\n\tindex: PageIndex;\r\n\tfilter: OrderFilter;\r\n\tfilterMoney: MoneyAccFilter;\r\n};\r\n\r\nexport const initialState: OrderPageState = {\r\n\tindex: {\r\n\t\titemsPerPage: 20,\r\n\t\tpageNumber: 0,\r\n\t},\r\n\tfilter: {\r\n\t\tdateFrom: moment().add(-180, \"day\").toString()\r\n\t},\r\n\tfilterMoney: {\r\n\t\taccSide: \"B\",\r\n\t\tcurId: \"00000001\",\r\n\t},\r\n};\r\n\r\nconst name = \"orderBook\";\r\n\r\nconst orderBookSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetOrdersIndex: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tindex: action.payload,\r\n\t\t}),\r\n\t\tresetOrderIdices: state => ({\r\n\t\t\t...state,\r\n\t\t\tindex: {\r\n\t\t\t\titemsPerPage: state.index.itemsPerPage,\r\n\t\t\t\tpageNumber: initialState.index.pageNumber,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tsetFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: action.payload,\r\n\t\t}),\r\n\t\tsetFilterMoney: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilterMoney: action.payload,\r\n\t\t}), \r\n\t\tremoveFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: {\r\n\t\t\t\t...state.filter,\r\n\t\t\t\t[action.payload]: undefined,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tresetFilter: state => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: {\r\n\t\t\t\t...initialState.filter,\r\n\t\t\t},\r\n\t\t}),\r\n\t},\r\n\textraReducers: builder => {\r\n\t\tbuilder.addCase(successfulLogin, state => ({\r\n\t\t\t...state,\r\n\t\t\tindex: {\r\n\t\t\t\titemsPerPage: state.index.itemsPerPage,\r\n\t\t\t\tpageNumber: initialState.index.pageNumber,\r\n\t\t\t},\r\n\t\t}));\r\n\t},\r\n});\r\n\r\nexport const { setOrdersIndex, resetOrderIdices, setFilter, setFilterMoney, removeFilter, resetFilter } = orderBookSlice.actions;\r\n\r\nexport default orderBookSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { PageIndex } from \"../../models\";\r\nimport { successfulLogin } from \"../../auth/authDataSlice\";\r\nimport { TradeFilter } from \"./types\";\r\nimport moment from \"moment\";\r\n\r\ntype TradePageState = {\r\n\tindex: PageIndex;\r\n\tfilter: TradeFilter;\r\n};\r\n\r\nexport const initialState: TradePageState = {\r\n\tindex: {\r\n\t\titemsPerPage: 20,\r\n\t\tpageNumber: 0,\r\n\t},\r\n\tfilter: {\r\n\t\tdatefrom: moment().add(-180, \"day\").toString()\r\n\t},\r\n};\r\n\r\nconst name = \"trades\";\r\n\r\nconst tradesSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetTradesIndex: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tindex: action.payload,\r\n\t\t}),\r\n\t\tresetTradeIdices: state => ({\r\n\t\t\t...state,\r\n\t\t\tindex: {\r\n\t\t\t\titemsPerPage: state.index.itemsPerPage,\r\n\t\t\t\tpageNumber: initialState.index.pageNumber,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tsetFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: action.payload,\r\n\t\t}),\r\n\t\tremoveFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: {\r\n\t\t\t\t...state.filter,\r\n\t\t\t\t[action.payload]: undefined,\r\n\t\t\t},\r\n\t\t}),\r\n\t},\r\n\textraReducers: builder => {\r\n\t\tbuilder.addCase(successfulLogin, state => ({\r\n\t\t\t...state,\r\n\t\t\tindex: {\r\n\t\t\t\titemsPerPage: state.index.itemsPerPage,\r\n\t\t\t\tpageNumber: initialState.index.pageNumber,\r\n\t\t\t},\r\n\t\t}));\r\n\t},\r\n});\r\n\r\nexport const { setTradesIndex, resetTradeIdices, setFilter, removeFilter } = tradesSlice.actions;\r\n\r\nexport default tradesSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { PageIndex } from \"../../models\";\r\nimport { successfulLogin } from \"../../auth/authDataSlice\";\r\nimport { MarketFilter } from \"./types\"\r\ntype OrderPageState = {\r\n\tfilter: MarketFilter;\r\n\tindex: PageIndex;\r\n};\r\n\r\nexport const initialState: OrderPageState = {\r\n\tindex: {\r\n\t\titemsPerPage: 10,\r\n\t\tpageNumber: 0,\r\n\t},\t\r\n\tfilter: { sort: 0 },\r\n};\r\n\r\nconst name = \"marketData\";\r\n\r\nconst marketDataSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: action.payload,\r\n\t\t}),\r\n\t\tsetIndex: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tindex: action.payload,\r\n\t\t})\r\n\t},\r\n\textraReducers: builder => {\r\n\t\tbuilder.addCase(successfulLogin, state => ({\r\n\t\t\t...state,\r\n\t\t\tindex: {\r\n\t\t\t\titemsPerPage: state.index.itemsPerPage,\r\n\t\t\t\tpageNumber: initialState.index.pageNumber,\r\n\t\t\t},\r\n\t\t}));\r\n\t},\r\n});\r\n\r\nexport const { setFilter, setIndex } = marketDataSlice.actions;\r\n\r\nexport default marketDataSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { PageIndex } from \"../../models\";\r\nimport { successfulLogin } from \"../../auth/authDataSlice\";\r\nimport { PortfolioFilter } from \"./types\";\r\n\r\ntype PortfolioState = {\r\n\tindex: PageIndex;\r\n\tfilter: PortfolioFilter;\r\n};\r\n\r\nexport const initialState: PortfolioState = {\r\n\tindex: {\r\n\t\titemsPerPage: 20,\r\n\t\tpageNumber: 0,\r\n\t},\r\n\tfilter: {},\r\n};\r\n\r\nconst name = \"portfolio\";\r\n\r\nconst portfolioSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetPortfolioIndex: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tindex: action.payload,\r\n\t\t}),\r\n\t\tresetOrderIdices: state => ({\r\n\t\t\t...state,\r\n\t\t\tindex: {\r\n\t\t\t\titemsPerPage: state.index.itemsPerPage,\r\n\t\t\t\tpageNumber: initialState.index.pageNumber,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tsetFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: action.payload,\r\n\t\t}),\r\n\t\tremoveFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: {\r\n\t\t\t\t...state.filter,\r\n\t\t\t\t[action.payload]: undefined,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tresetFilter: state => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: {\r\n\t\t\t\t...initialState.filter,\r\n\t\t\t},\r\n\t\t}),\r\n\t},\r\n\textraReducers: builder => {\r\n\t\tbuilder.addCase(successfulLogin, state => ({\r\n\t\t\t...state,\r\n\t\t\tindex: {\r\n\t\t\t\titemsPerPage: state.index.itemsPerPage,\r\n\t\t\t\tpageNumber: initialState.index.pageNumber,\r\n\t\t\t},\r\n\t\t}));\r\n\t},\r\n});\r\n\r\nexport const { setPortfolioIndex, resetOrderIdices, setFilter, removeFilter, resetFilter } = portfolioSlice.actions;\r\n\r\nexport default portfolioSlice.reducer;\r\n","import { combineReducers, } from \"@reduxjs/toolkit\";\r\nimport orderBook from \"./orders/orderBookUXSlice\";\r\nimport trades from \"./trades/tradesUXSlice\";\r\nimport marketData from \"./mainBoard/marketUXSlice\";\r\nimport portfolio from \"./portfolio/portfolioUXSlice\"\r\n\r\nconst uxTradingReducer = combineReducers({\r\n orderBook,\r\n trades,\r\n marketData,\r\n portfolio\r\n});\r\n\r\nexport default uxTradingReducer","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { SecAccountFilter } from \"./types\";\r\nimport { DomForSide } from \"../../models\";\r\n\r\ntype SecAccountState = {\r\n\tfilter: SecAccountFilter;\r\n};\r\n\r\nexport const initialState: SecAccountState = {\r\n\tfilter: {domfor: DomForSide.Domestic},\r\n};\r\n\r\nconst name = \"secAccounts\";\r\n\r\nconst secAccountsSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: action.payload,\r\n\t\t}),\r\n\t\tremoveFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: {\r\n\t\t\t\t...state.filter,\r\n\t\t\t\t[action.payload]: undefined,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tresetFilter: state => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: {\r\n\t\t\t\t...initialState.filter,\r\n\t\t\t},\r\n\t\t}),\r\n\t},\r\n});\r\n\r\nexport const { setFilter, removeFilter, resetFilter } = secAccountsSlice.actions;\r\n\r\nexport default secAccountsSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { MoneyAccountFilter } from \"./types\";\r\nimport { DomForSide, OrderSide } from \"../../models\";\r\n\r\ntype MoneyAccountState = {\r\n\tfilter: MoneyAccountFilter;\r\n};\r\n\r\nexport const initialState: MoneyAccountState = {\r\n\tfilter: {\r\n\t\tdomfor: DomForSide.Domestic ,\r\n\t\tcurency: {currId: \"00000001\", currCode: \"RSD\" } ,\r\n\t\tbuysell: OrderSide.Buy,\r\n\t},\r\n};\r\n\r\nconst name = \"moneyAccounts\";\r\n\r\nconst moneyAccountsSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: action.payload,\r\n\t\t}),\r\n\t\tremoveFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: {\r\n\t\t\t\t...state.filter,\r\n\t\t\t\t[action.payload]: undefined,\r\n\t\t\t},\r\n\t\t}),\r\n\t\tresetFilter: state => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: {\r\n\t\t\t\t...initialState.filter,\r\n\t\t\t},\r\n\t\t}),\r\n\t},\r\n});\r\n\r\nexport const { setFilter, removeFilter, resetFilter } = moneyAccountsSlice.actions;\r\n\r\nexport default moneyAccountsSlice.reducer;\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { PageIndex } from \"../../models\";\r\nimport { successfulLogin } from \"../../auth/authDataSlice\";\r\nimport { FMarketFilter } from \"./types\"\r\ntype OrderPageState = {\r\n\tfilter: FMarketFilter;\r\n\tindex: PageIndex;\r\n};\r\n\r\nexport const initialState: OrderPageState = {\r\n\tindex: {\r\n\t\titemsPerPage: 10,\r\n\t\tpageNumber: 0,\r\n\t},\t\r\n\tfilter: { sort: 0 },\r\n};\r\n\r\nconst name = \"marketData\";\r\n\r\nconst marketDataSlice = createSlice({\r\n\tname,\r\n\tinitialState,\r\n\treducers: {\r\n\t\tsetFilter: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tfilter: action.payload,\r\n\t\t}),\r\n\t\tsetIndex: (state, action: PayloadAction) => ({\r\n\t\t\t...state,\r\n\t\t\tindex: action.payload,\r\n\t\t}),\r\n\t\tresetIdices: state => ({\r\n\t\t\t...state,\r\n\t\t\tindex: {\r\n\t\t\t\titemsPerPage: state.index.itemsPerPage,\r\n\t\t\t\tpageNumber: initialState.index.pageNumber,\r\n\t\t\t},\r\n\t\t}),\r\n\r\n\t},\r\n\textraReducers: builder => {\r\n\t\tbuilder.addCase(successfulLogin, state => ({\r\n\t\t\t...state,\r\n\t\t\tindex: {\r\n\t\t\t\titemsPerPage: state.index.itemsPerPage,\r\n\t\t\t\tpageNumber: initialState.index.pageNumber,\r\n\t\t\t},\r\n\t\t}));\r\n\t},\r\n});\r\n\r\nexport const { setFilter, setIndex, resetIdices } = marketDataSlice.actions;\r\n\r\nexport default marketDataSlice.reducer;\r\n","import { combineReducers, } from \"@reduxjs/toolkit\";\r\nimport marketData from \"./mainBoard/marketUXSlice\";\r\n\r\nconst uxTradingReducer = combineReducers({\r\n marketData,\r\n});\r\n\r\nexport default uxTradingReducer","import { combineReducers } from \"@reduxjs/toolkit\";\r\nimport auth from \"./auth/authUXSlice\";\r\nimport localization from \"./localization/localizationUXSlice\";\r\nimport domestic from \"./domestic/domesticUXReducer\";\r\nimport secAccounts from \"./settings/securityaccounts/securityAccountsUXSlice\";\r\nimport moneyAccounts from \"./settings/moneyaccounts/moneyAccountsUXSlice\";\r\nimport foreign from \"./foreign/foreignUXReducer\";\r\n\r\nexport default combineReducers({\r\n auth,\r\n localization,\r\n domestic,\r\n secAccounts,\r\n moneyAccounts,\r\n foreign,\r\n});\r\n","import { combineReducers } from \"redux\";\r\nimport dataReducer from \"../../data/dataReducer\";\r\nimport uxReducer from \"../../data/uxReducer\";\r\nimport { ThunkAction, Action } from \"@reduxjs/toolkit\";\r\n\r\nconst rootReducer = combineReducers({\r\n\tdata: dataReducer,\r\n\tux: uxReducer,\r\n});\r\n\r\nexport type StoreType = ReturnType;\r\nexport type ThunkType = ThunkAction>;\r\n\r\nexport default rootReducer;\r\n","import { AxiosRequestConfig } from \"axios\";\r\n\r\nexport interface GeneralConfig {\r\n\ttitleSufix: string;\r\n\tdeploymentDir?: string;\r\n\tuseLogger?: boolean\r\n}\r\n\r\nexport interface NotificationsConfig {\r\n\turi: string\r\n}\r\n\r\nexport interface ConfigType {\r\n\thttp: AxiosRequestConfig;\r\n\tgeneral: GeneralConfig;\r\n\tnotifications: NotificationsConfig;\r\n}\r\n\r\nconst windowENV: any = (window as any).ENV;\r\n\r\nexport const appConfig: ConfigType = {\r\n\thttp: {\r\n\t\t// baseURL: \"http://195.178.54.171/prodberzaws/api\",\r\n\t\t// baseURL: \"http://195.178.54.171/commexchws/api\",\r\n\t\tbaseURL: windowENV.API_BASE,\r\n\t\t// baseURL: \"/commexchwsdevcli/api\",\r\n\t},\r\n\tgeneral: {\r\n\t\ttitleSufix: windowENV.TITLE_SUFIX,\r\n\t\tdeploymentDir: windowENV.DEPLOYMENT_DIR !== \"\" ? windowENV.DEPLOYMENT_DIR : undefined,\r\n\t},\r\n\tnotifications: {\r\n\t\turi: windowENV.NOTIFICATION_BASE_URI,\r\n\t}\r\n};\r\n","import { configureStore, getDefaultMiddleware } from \"@reduxjs/toolkit\";\r\nimport logger from \"redux-logger\";\r\nimport reducer from \"./reducers\";\r\nimport { persistStore, persistReducer } from 'redux-persist'\r\nimport { appConfig } from \"../config/config\"\r\n// import storage from 'redux-persist/lib/storage'\r\n\r\n// const persistConfig = {\r\n// key: 'root',\r\n// storage,\r\n// whitelist: ['ux']\r\n// }\r\n\r\n// const persistedReducer = persistReducer(persistConfig, reducer)\r\n\r\nconst defaultMiddlware = getDefaultMiddleware({\r\n\timmutableCheck: false,\r\n\tserializableCheck: false,\r\n\tthunk: true,\r\n});\r\n\r\nconst middlware = appConfig.general.useLogger ? [...defaultMiddlware, logger] : defaultMiddlware\r\n\r\nconst store = configureStore({\r\n\treducer,\r\n\tmiddleware: middlware as any,\r\n});\r\nexport const persistor = persistStore(store)\r\nexport default { store, persistor };\r\n","import React from \"react\";\r\nimport { Provider } from \"react-redux\";\r\nimport { PersistGate } from \"redux-persist/integration/react\";\r\nimport appStore from \"./store\";\r\n\r\nconst StoreProvider: React.FunctionComponent = props => (\r\n\t\r\n\t\t\r\n\t\t\t{props.children}\r\n\t\t\r\n\t\r\n);\r\n\r\nexport default StoreProvider;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../core/store/reducers\";\r\nimport { useCallback } from \"react\";\r\nimport { setLocalization } from \"./localizationUXSlice\";\r\nimport { LocalizationLanguage } from \"../../core/localization/types\";\r\n\r\nexport const useLocalizationStore = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst localization = useSelector(store => store.ux.localization.language);\r\n\r\n\tconst setLocalizationCallback = useCallback(language => dispatch(setLocalization(language)), [dispatch]);\r\n\r\n\treturn [localization, setLocalizationCallback] as [typeof localization, typeof setLocalizationCallback];\r\n};\r\n","import { LocalizationLanguage } from \"./types\";\r\n\r\nexport const srTranslation = {\r\n\tlanguage: LocalizationLanguage.SR as LocalizationLanguage,\r\n\tdecimalSeparator: \",\",\r\n\tmomentLocale: \"sr\",\r\n\tmainTitle: \"WebProTrader\",\r\n\ttableNextPage: \"Sledeća strana\",\r\n\ttablePreviousPage: \"Predhodna strana\",\r\n\ttableFirsPage: \"Prva strana\",\r\n\ttableLastPage: \"Poslednja strana\",\r\n\ttableDisplayedRows: \"{from}-{to} od {count}\",\r\n\ttabledDisplayedPerPage: \"redova\",\r\n\torderActView: \"Pogledaj nalog\",\r\n\torderActReply: \"Odgovori na nalog\",\r\n\torderWaitingProducts: \"Molimo Vas sačekajte...\",\r\n\torderSideBuy: \"KUPI\",\r\n\torderSideSell: \"PRODAJ\",\r\n\tlistingOrdersTitle: \"Nalozi\",\r\n\tuserOrdersTitle: \"Moji nalozi\",\r\n\tarchiveOrdersTitle: \"Arhiva\",\r\n\tsearch: \"Pretraga\",\r\n\tcompanyClmName: \"Naziv\",\r\n\tcompanyClmHeadquorters: \"Sedište\",\r\n\tcompanyClmMemberFrom: \"Član od\",\r\n\tcompanyClmProvision: \"Provizija\",\r\n\treporClmtName: \"Naziv\",\r\n\treporTitle: \"Izveštaji\",\r\n\treporDownloadTtl: \"Skini\",\r\n\tusername: \"Korisničko ime\",\r\n\tpassword: \"Lozinka\",\r\n\tlogin: \"Prijava\",\r\n\tlogout: \"Odjava\",\r\n\torderChooseProduct: \"Izaberite proizvod\",\r\n\tnoDataText: \"Nema podataka\",\r\n\r\n\toldpassword: \"Stara lozinka\",\r\n\tnewpassword: \"Nova lozinka\",\r\n\tnewpasswordverify: \"Nova lozinka - potvrdi\",\r\n\tchangePassword: \"Promeni\",\r\n\t\r\n\torderClmOrdNo: \"Broj\",\r\n\torderDateReceived: \"Datum naloga\",\r\n\torderTimeReceived: \"Vreme naloga\",\r\n\torderOrdType: \"Tip\",\r\n\torderOrdTimeType: \"Trajanje\",\r\n\torderRefOrd: \"Ref nalog\",\r\n\torderClientIdNo: \"MB klijenta\",\r\n\torderClientName: \"Naziv klijenta\",\r\n\torderSymbol: \"Simbol\",\r\n\torderYear: \"Rod\",\r\n\torderTradingPlace: \"Mesto isporuke\",\r\n\torderFranco: \"Pravila transporta\",\r\n\torderQty: \"Količina\",\r\n\torderAllOrNothing: \"Sve ili ništa\",\r\n\torderPrice: \"Cena\",\r\n\torderPriceEur: \"Cena (EUR)\",\r\n\torderPriceWithoutVat: \"Cena bez PDV-a\",\r\n\torderPriceWithVat: \"Cena (PDV)\",\r\n\torderPayType: \"Način plaćanja\",\r\n\torderPayDays: \"Dani plaćanja\",\r\n\torderFreeStorage: \"Besplatno skladištenje\",\r\n\torderFreeStorageByDelivery: \"Do isporuke\",\r\n\torderFreeStorageByDate: \"Do datuma:\",\r\n\torderCheckPoint: \"Kontrola kvaliteta\",\r\n\torderCheckPays: \"Plaća kontrolnu kuću\",\r\n\torderExpiryDate: \"Datum isteka\",\r\n\torderStatus: \"Status\",\r\n\torderQuality: \"Kvalitet\",\r\n\torderRecieveMethod: \"Način prijema\",\r\n\torderEditTitle: \"Ažuriraj nalog\",\r\n\torderCreateTitle: \"Kreiraj nalog\",\r\n\torderGoodsReadyFrom: \"Roba spremna od\",\r\n\torderGoodsReadyTo: \"Roba spremna do\",\r\n\torderAttrName: \"Naziv\",\r\n\torderAttrValue: \"Vrednost\",\r\n\torderAttrTitle: \"Parametri kvaliteta\",\r\n\torderAttrCreateTitle: \"Kreiraj atribut\",\r\n\torderAttrEditAttribute: \"Ažuriraj atribut\",\r\n\torderReceiveMethod: \"Nalog primljen\",\r\n\torderbrokName: \"Broker\",\r\n\torderUserName: \"Korisnik\",\r\n\torderCliPrsName: \"Klijent-osoba\",\r\n\torderUnit: \"Jedinica\",\r\n\torderQtyLeft: \"Preostala količina\",\r\n\torderQtyFill: \"Realizovana količina\",\r\n\torderQtyVisible: \"Vidljiva količina\",\r\n\torderSecurityAcc: \"Račun hartija\",\r\n\torderMoneyAcc: \"Račun novca\",\r\n\torderPriceVat: \"Pdv\",\r\n\torderMinQty: \"Minimalna količina\",\r\n\torderComment: \"Napomena\",\r\n\torderCommission: \"Provizija\",\r\n\tordergoodsRedyFrom: \"Proizvod spreman od\",\r\n\tordergoodsRedyTo: \"Proizvod spreman do\",\r\n\torderStatusDescr: \"Status\",\r\n\torderFillStatusDescr: \"Realizacija\",\r\n\torderCancelReplTime: \"Vreme opoziva/modifikacije\",\r\n\torderPayData: \"Datum plaćanja\",\r\n\torderSide: \"Strana\",\r\n\torderCurrCode: \"Valuta\",\r\n\torderexportReady: \"Spremno za izvoz\",\r\n\torderOrigOrderNo: \"Originalni nalog\",\r\n\torderIceberg: \"Iceberg\",\r\n\torderSecurity: \"Hartija\",\r\n\torderPreMarket: \"PreMarket\",\r\n\torderRejection: \"Razlog odbijanja\",\r\n\r\n\tnumberOfDays: \"Broj dana\",\r\n\tnavListing: \"Listing\",\r\n\tnavMyOrders: \"Moji nalozi\",\r\n\tnavArchive: \"Arhiva\",\r\n\tnavCompanies: \"Kompanije\",\r\n\tnavMembers: \"Članovi\",\r\n\tnavProducts: \"Proizvodi\",\r\n\tnavBrokers: \"Brokeri\",\r\n\tnavUsers: \"Korisnici\",\r\n\tnavRoles: \"Uloge\",\r\n\tnavCodebook: \"Šifarnik\",\r\n\tnavCountries: \"Države\",\r\n\tnavTopRegion: \"Region\",\r\n\tnavRegion: \"Okrug\",\r\n\tnavSubRegion: \"Podregion\",\r\n\tnavCities: \"Gradovi\",\r\n\tnavCurrencies: \"Valute\",\r\n\tnavWarehouses: \"Skladišta\",\r\n\tnavTrading: \"Trgovanje\",\r\n\tnavMainTable: \"Glavna tabla\",\r\n\tnavOrders: \"Nalozi\",\r\n\tnavTransactions: \"Zaključnice\",\r\n\tnavMarketDepth: \"Dubina tržišta\",\r\n\tnavCliring: \"Kliring\",\r\n\tnavDeposits: \"Depoziti\",\r\n\tnavMarginCalculations: \"Obračun marže\",\r\n\tnavSurveillance: \"Nadzor\",\r\n\tnavAlarmSetup: \"Postavljanje alarma\",\r\n\tnavProductReport: \"Izveštaji o proizvodima\",\r\n\tnavMemberReport: \"Izveštaji o članovima\",\r\n\tnavReports: \"Izvestaji\",\r\n\tnavDailyReports: \"Dnevni izvestaji\",\r\n\tnavWeeklyReports: \"Nedeljni izvestaji\",\r\n\tnavMonthlyReports: \"Mesečni izvestaji\",\r\n\tnavQuaterlyReports: \"Kvartalni izvestaji\",\r\n\tnavAnnualReports: \"Godišnji izvestaji\",\r\n\tnavSECReports: \"SEC izvestaji\",\r\n\tnavMembersReports: \"Izvestaji o članovima\",\r\n\tnavOrdersReports: \"Nalozi i zaključnice\",\r\n\tnavAccounting: \"Knjiženje\",\r\n\tnavTaxes: \"Porez i provizija\",\r\n\tnavInvoice: \"Kreiranje faktura\",\r\n\tnavAccountingExport: \"Eksport za knjiženje\",\r\n\tnavMembersDeposit: \"Depoziti članova\",\r\n\tempFirstName: \"Ime\",\r\n\tempLastName: \"Prezime\",\r\n\tempIdNumber: \"JMBG\",\r\n\tempOfficePhone: \"Broj poslovnog telefon\",\r\n\tempEmail: \"Email\",\r\n\tempStatus: \"Status\",\r\n\tempMidName: \"Srednje ime\",\r\n\tempGender: \"Rod\",\r\n\tempAddress: \"Adresa\",\r\n\tempZipCode: \"Poštanski broj\",\r\n\tempCity: \"Grad\",\r\n\tempPhone: \"Broj telefona\",\r\n\tempDateOfBirth: \"Datum rođenja\",\r\n\tempPosition: \"Pozicija\",\r\n\tempBranch: \"Grana\",\r\n\tempFax: \"Faks\",\r\n\tempShowTooltip: \"Prikaži brokera\",\r\n\tgenderMale: \"Muški\",\r\n\tgenderFemale: \"Ženski\",\r\n\tstatusActive: \"Aktivan\",\r\n\tstatusInactive: \"Neaktivan\",\r\n\tempEdit: \"Ažuriraj\",\r\n\tempDelete: \"Obriši\",\r\n\tempEditTitle: \"Izmena\",\r\n\tempCreateTitle: \"Kreiranje brokera\",\r\n\tempName: \"Zaposleni\",\r\n\tempTel: \"Telefon\",\r\n\tempMob: \"Mobilni\",\r\n\r\n\tcliName: \"Skraćen naziv\",\r\n\tcliIdNo: \"Matični broj\",\r\n\tcliTaxCode: \"PIB broj\",\r\n\tcliType: \"Tip\",\r\n\tcliForeign: \"Strani\",\r\n\tcliCity: \"Grad\",\r\n\tcliPhone: \"Telefon\",\r\n\tcliBroker: \"Broker\",\r\n\tcliActive: \"Aktivan\",\r\n\tcliStatus: \"Status\",\r\n\tclilFullName: \"Naziv\",\r\n\tcliAddress: \"Adresa\",\r\n\tcliMailCity: \"Grad za poštu\",\r\n\tcliMailAddress: \"Adresa za poštu\",\r\n\tcliMobile: \"Mobilni telefon\",\r\n\tcliFax: \"Faks\",\r\n\tcliEmail: \"Email\",\r\n\tcliHasContract: \"Ima ugovor\",\r\n\tcliActiveFrom: \"Aktivan od\",\r\n\tcliActiveTo: \"Aktivan do\",\r\n\tcliCommission: \"Provizija\",\r\n\tcliCurrentTurnover: \"Promet\",\r\n\tcliComment: \"Komentar\",\r\n\tcilEditTitle: \"Ažuriraj člana\",\r\n\tcilCreateTitle: \"Kreiraj člana\",\r\n\tcilTitle: \"Članovi\",\r\n\ttableConfirmationDelete: \"Da li ste sigurni?\",\r\n\ttableDelete: \"Obriši\",\r\n\ttableAdd: \"Dodaj\",\r\n\ttableEdit: \"Ažuriraj\",\r\n\ttableCancel: \"Otkaži\",\r\n\ttableSave: \"Saćuvaj\",\r\n\troleCode: \"Šifra\",\r\n\troleName: \"Naziv SR\",\r\n\troleNameEn: \"Naziv EN\",\r\n\ttableShow: \"Prikaži\",\r\n\troleEdit: \"Ažuriraj ulogu\",\r\n\troleCreate: \"Kreiraj ulogu\",\r\n\troleNameColumn: \"Naziv\",\r\n\troleIsEmployee: \"Zaposlen\",\r\n\tuserUserName: \"Ime\",\r\n\tuserLoginUser: \"Korisničko ime\",\r\n\tuserLoginPass: \"Lozinka\",\r\n\tuserChangePass: \"Promena lozinke\",\r\n\tuserRoleId: \"Uloga\",\r\n\tuserIsEmployee: \"Zaposlen\",\r\n\tuserEmpId: \"Zaposleni\",\r\n\tuserClientId: \"Klijent\",\r\n\tuserCliPrsId: \"Osoba klijenta\",\r\n\tuserSubscribedUntil: \"Pristup do\",\r\n\tuserSubscrUnlimited: \"Neograničen pristup\",\r\n\tuserIsActive: \"Aktivan\",\r\n\tuserEditTitle: \"Ažuriraj korisnika\",\r\n\tuserCreateTitle: \"Kreiraj korisnika\",\r\n\ttableBasciInfo: \"Osnovni podaci\",\r\n\tclientPersonTitle: \"Lica\",\r\n\tclientPersonName: \"Ime\",\r\n\tclientPersonIDNumber: \"JMBG\",\r\n\tclientPersonStatus: \"Status\",\r\n\tclientPersonEmpty: \"Nema lica\",\r\n\tclientBrokerTitle: \"Brokeri\",\r\n\tclientBrokerName: \"Ime\",\r\n\tclientBrokerIDNumber: \"JMBG\",\r\n\tclientBrokerStatus: \"Status\",\r\n\tclientBrokerEmpty: \"Nema brokera\",\r\n\tcontractTitle: \"Ugovori\",\r\n\tcontractNumber: \"Broj\",\r\n\tcontractDate: \"Datum\",\r\n\tcontractStatus: \"Status\",\r\n\tcontractEmpty: \"Nema ugovora\",\r\n\tcontractLincedContrNo: \"Povezani ugovori\",\r\n\tcontractTypeDescription: \"Vrsta\",\r\n\tcontractDescription: \"Opis\",\r\n\tcontractPhoneOrder: \"Broj telefona\",\r\n\tcontractWebUser: \"Web korisnik\",\r\n\tcontractWebUserBlocked: \"Web korisnik blokiran\",\r\n\tcontractTitleEdit: \"Ažuriraj ugovor\",\r\n\tcontractTitleCreate: \"Kreiraj ugovor\",\r\n\taccountTitle: \"Novčani računi\",\r\n\taccountTitleEdit: \"Ažuriraj novčani račun\",\r\n\taccountTitleCreate: \"Kreiraj novčani račun\",\r\n\taccountNumber: \"Broj računa\",\r\n\taccountBank: \"Banka\",\r\n\taccountDefault: \"Podrazumevani račun\",\r\n\taccountClientBankCode: \"Šifra banke klijenta\",\r\n\taccountCurrency: \"Valuta\",\r\n\taccountForBuySell: \"Kupovina/Prodaja\",\r\n\taccountStatus: \"Status\",\r\n\taccountSideBuy: \"Kupovna\",\r\n\taccountSideSell: \"Prodajna\",\r\n\taccountSideBoth: \"Obe\",\r\n\taccountEmpty: \"Nema novčanih računa\",\r\n\tinvalidDateMessage: \"Datum nije validan\",\r\n\tmaxDateMessage: \"Datum je isuviše veliki\",\r\n\tminDateMessage: \"Datum je isuviše mali\",\r\n\tclientPersonEditTitle: \"Ažuriraj osobu\",\r\n\tclientPersonCreateTitle: \"Kreiraj osobu\",\r\n\tclientBrokerEditTitle: \"Ažuriraj brokera\",\r\n\tclientBrokerCreateTitle: \"Kreiraj brokera\",\r\n\tleavePageTitle: \"Napuštate stranicu?\",\r\n\tleavePageMessage: \"Ako napustite ovu stranicu sve promene će biti izgubljene.\",\r\n\tleavePageConfirm: \"Napusti stranicu\",\r\n\tleavePageCancel: \"Ostani\",\r\n\tcalendarOK: \"OK\",\r\n\tcalendarCancel: \"Otkaži\",\r\n\tcalendarClear: \"Obriši\",\r\n\r\n\r\n\tcommission: \"Provizija\",\r\n\trequiredMessage: \"Polje je obavezno\",\r\n\tmessageWeakPassword: \"Lozinka nije dovoljno jaka\",\r\n\r\n\tcurrenciesTitle: \"Valute\",\r\n\tcurrenciesCreateTitle: \"Kreiraj valutu\",\r\n\tcurrenciesEditTitle: \"Ažuriraj valutu\",\r\n\tcurrenciesName: \"Naziv\",\r\n\tcurrenciesCode: \"Oznaka\",\r\n\tcurrenciesNumericCode: \"Šifra\",\r\n\tregName: \"Region\",\r\n\tregNameDistrict: \"Okrug\",\r\n\tparentRegName: \"Region\",\r\n\tcountryReg: \"Država\",\r\n\tregEdit: \"Ažuriraj region\",\r\n\tregEditDistrict: \"Ažuriraj okrug\",\r\n\tregCreate: \"Kreiraj region\",\r\n\tregCreateDistrict: \"Kreiraj okrug\",\r\n\tcurRateDate: \"Datum kursa\",\r\n\tcurRateBuy: \"Kupovni kurs\",\r\n\tcurRateSell: \"Prodajni kurs\",\r\n\tcurRateMid: \"Srednji kurs\",\r\n\tcurRateCurrency: \"Valuta\",\r\n\tcurRateTitle: \"Kursna lista\",\r\n\tcurRateEditTitle: \"Ažuriraj kurs\",\r\n\tcurRateCreateTitle: \"Kreiraj kurs\",\r\n\tcountryEdit: \"Ažuriraj državu\",\r\n\tcountryCreate: \"Kreiraj državu\",\r\n\tcountryName: \"Naziv\",\r\n\tcountryNameEN: \"Naziv (EN)\",\r\n\tcityEdit: \"Ažuriraj grad\",\r\n\tcityCreate: \"Kreiraj grad\",\r\n\tcityName: \"Naziv\",\r\n\tcityZipCode: \"Poštanski broj\",\r\n\tcityRegion: \"Okrug\",\r\n\tcitySubRegion: \"Podregion\",\r\n\tcityIsPort: \"Luka\",\r\n\r\n\tcommissionTitle: \"Provizije\",\r\n\tcommissionCreateTitle: \"Kreiraj proviziju\",\r\n\tcommissionEditTitle: \"Ažuriraj proviziju\",\r\n\tcommissionCode: \"Šifra\",\r\n\tcommissionName: \"Naziv\",\r\n\tcommissionNameEN: \"Naziv (EN)\",\r\n\tcommissionType: \"Tip\",\r\n\tcommissionStandard: \"Standardna\",\r\n\tcommDetailsTitle: \"Detalji provizije\",\r\n\tcommDetailsCreateTitle: \"Kreiraj detalj provizije\",\r\n\tcommDetailsEditTitle: \"Ažuriraj detalj provizije\",\r\n\tcommDetailsDate: \"Datum od\",\r\n\tcommDetailsProductGroup: \"Grupa proizvoda\",\r\n\tcommDetailsProduct: \"Proizvod\",\r\n\tcommDetailsCurrency: \"Valuta\",\r\n\tcommDetailsAmtCurrency: \"Valuta iznosa\",\r\n\tcommDetailsAmtTypePercent: \"Procenat\",\r\n\tcommDetailsAmtTypeAmount: \"Iznos\",\r\n\tcommDetailsBuyAmtType: \"Kupovni tip iznosa\",\r\n\tcommDetailsBuyPerc: \"Kupovni procenat\",\r\n\tcommDetailsBuyMin: \"Kupovna minimalna količina\",\r\n\tcommDetailsBuyMax: \"Kupovna maksimalna količina\",\r\n\tcommDetailsSellAmtType: \"Prodajni tip iznosa\",\r\n\tcommDetailsSellPerc: \"Prodajni procenat\",\r\n\tcommDetailsSellMin: \"Prodajni minimalna količina\",\r\n\tcommDetailsSellMax: \"Prodajni maksimalna količina\",\r\n\tproductCode: \"Šifra\",\r\n\tclientPersonRole: \"Uloga\",\r\n\tclientPersonDateCertified: \"Datum sertifikata\",\r\n\tclientPersonPhone: \"Telefon\",\r\n\tclientPersonEmail: \"Mail\",\r\n\r\n\ttradeTitle: \"Zaključnice\",\r\n\ttradeSumTitle: \"Zaključnice zbirne\",\r\n\ttradeNo: \"Broj\",\r\n\ttradeTime: \"Datum prometa\",\r\n\ttradeSettl: \"Datum saldiranja\",\r\n\ttradeSecurity: \"Hartija\",\r\n\ttradeQty: \"Količina\",\r\n\ttradeDescr: \"Transakcija\",\r\n\ttradeCurrCode: \"Valuta\",\r\n\ttradePrice: \"Cena\",\r\n\ttradeOrder: \"Nalog\",\r\n\ttradeBrokCommPerc: \"Brokerska provizija procenat\",\r\n\ttradebrokCommAmt:\"Brokerska provizija\",\r\n\ttradeExchCommPerc:\"Berza provizija procenat\",\r\n\ttradeExchCommAmt:\"Berza provizija\",\r\n\ttradeRegCommPerc:\"Registar provizija procenat\",\r\n\ttradeRegCommAmt:\"Registar provizija\",\r\n\ttradeBankCommPerc:\"Banka provizija procenat\",\r\n\ttradeBankCommAmt:\"Banka provizija\",\r\n\ttradeVatAmt:\"Pdv\",\r\n\ttradeTotComm:\"Ukupno provizija\",\r\n\ttradeExchange: \"Berza\",\r\n\ttradeIsin:\"Isin\",\r\n\ttradeComm:\"Provizija\",\r\n\ttradeAmtFinal: \"Konačan iznos\",\r\n\ttradeRate: \"Kurs\",\r\n\r\n\tlistingOrdersBookTitle: \"Knjiga naloga\",\r\n\torderCancel: \"Povuci nalog\",\r\n\torderCancelQuestion: \"Povuci nalog?\",\r\n\torderCancelQuestionYes: \"Da\",\r\n\torderCancelQuestionNo: \"Ne\",\r\n\torderModify: \"Modifikuj nalog\",\r\n\torderVerify: \"Verifikuj nalog\",\r\n\ttradeVatPerc: \"Pdv %\",\r\n\ttradePriceWithVat: \"Cena sa pdv\",\r\n\ttradeAmt: \"Iznos\",\r\n\ttradeAmtWithVat: \"Iznos sa pdv\",\r\n\ttradeTransCostSell: \"Trosak transporta prodavca\",\r\n\ttradeStorCostSell: \"Trosak skladistenja prodavca\",\r\n\ttradeTransCostBuy: \"Trosak transporta kupca\",\r\n\ttradeStorCostBuy: \"Trosak skladistenja kupca\",\r\n\ttradeCommPercSell: \"Provizija prodavca %\",\r\n\ttradeCommAmtSell: \"Provizija prodavca \",\r\n\ttradeCommPercBuy: \"Provizija kupca %\", \r\n\ttradeCommAmtBuy: \"Provizija kupca\", \r\n\torderFilterConfirm: \"Filtriraj\",\r\n\torderFilterCancel: \"Otkaži\",\r\n\torderFilterFrom: \"Nalog od\",\r\n\torderFilterTo: \"Nalog do\",\r\n\ttradeFilterFrom: \"Zaključnica od\",\r\n\ttradeFilterTo: \"Zaključnica do\",\r\n\ttradeViewAction: \"Prikaži zaključnicu\",\r\n\ttradeCancelAction: \"Poništi zaključnicu\",\r\n\torderTradeQuestion: \"Poništi zaključnicu?\",\r\n\torderSecDep: \"Depozitar\",\r\n\torderStatusChange: \"Promena statusa\",\r\n\r\n\tfilterFrom: \"od\",\r\n\tfilterTo: \"do\",\r\n\tpaymentTitle: \"Plaćanja\",\r\n\tpaymentDataTime: \"Datum\",\r\n\tpaymentClientCode: \"Matbr klijenta\",\r\n\tpaymentClientName: \"Naziv klijenta\",\r\n\tpaymentPayType: \"Vrsta promene\",\r\n\tpaymentClmOrdNo: \"Broj naloga\",\r\n\tpaymentTranNo: \"Broj transakcije\",\r\n\tpaymentAmount: \"Iznos\",\r\n\tpaymentAmountIn: \"Ulaz\",\r\n\tpaymentAmountOut: \"Izlaz\",\r\n\tpaymentCurrCode: \"Valuta\",\r\n\tpaymentStatus: \"Status\",\r\n\tdatefrom: \"Od datuma\",\r\n\tdateto: \"Do datuma\",\r\n\tpaymentEdit: \"Ažuriraj plaćanje\",\r\n\tpaymentCreate: \"Kreiraj plaćanje\",\r\n\tpaymentSideIn: \"Ulaz\",\r\n\tpaymentSideOut: \"Izlaz\",\r\n\tpaymentSide: \"Ulaz/Izlaz\",\r\n\tpaymentSideNonDedicated: \"Bez namene\",\r\n\tpaymentSideDedicated: \"Sa namenom\",\r\n\tpaymentSideDedication: \"Namena\",\r\n\tpaymentBankGuarantee: \"Bankarska garancija\",\r\n\r\n\tpaymentClientOrders: \"Nalozi klijenta\",\r\n\tpaymentClientTransactions: \"Transakcije klijenta\",\r\n\r\n\tguarGuaranteeTitle: \"Garancije\",\r\n\tguarEdit: \"Ažuriraj garanciju\",\r\n\tguarCreate: \"Kreiraj garanciju\",\r\n\r\n\torderDeliveryLocation: \"Mesto isporuke\",\r\n\tfilterReset: \"Resetuj\",\r\n\torderMarket: \"Market\",\r\n\torderMarketSpot: \"Spot\",\r\n\torderMarketForward: \"Forward\",\r\n\torderLocCountry: \"Država\",\r\n\torderLocRegion: \"Region\",\r\n\torderLocDistrict: \"Oblast\",\r\n\torderLocCity: \"Grad\",\r\n\torderLocWhs: \"Skladište\",\r\n\ttradeFulfillmentDate: \"Datum izvršenja\",\r\n\tnavOrdersReport: \"Knjiga naloga\",\r\n\r\n\tstockFeeTitle: \"Skladišne tarife\",\r\n\tstockFeeEdit: \"Ažuriraj skladišnu tarifu\",\r\n\tstockFeeCreate: \"Kreiraj skladišnu tarifu\",\r\n\tstockFeeStartDate: \"Datum početka\",\r\n\tstockFeeStockFee: \"Provizija\",\r\n\tstockFeeStatus: \"Status\",\r\n\r\n\ttransFeeTitle: \"Transport cene\",\r\n\ttransFeeEdit: \"Ažuriraj cenu transporta\",\r\n\ttransFeeCreate: \"Kreiraj cenu transporta\",\r\n\ttransFeeStartDate: \"Datum početka\",\r\n\ttransFeePice: \"Cena\",\r\n\ttransFeeDistance: \"Razdaljina\",\r\n\ttransFeeStatus: \"Status\",\r\n\r\n\tnavTradesReport: \"Knjiga zaključnica\",\r\n\r\n\tdailyTradeReportTitle: \"Dnevni izveštaj\",\r\n\tdailyTradeReportProduct: \"Proizvod\",\r\n\tdailyTradeReportTurnoverRSD: \"Promet RSD\",\r\n\tdailyTradeReportTurnoverEUR: \"Promet EUR\",\r\n\tdailyTradeReportCountTransaction: \"Broj transakcija\",\r\n\tdailyTradeReportReportDate: \"Datum izveštaja\",\r\n\r\n\tmonthlyTradeReportReportTitle: \"KHOV Mesečni izveštaj\",\r\n\tmonthlyTradeReportReportMonth: \"Mesec\",\r\n\tmonthlyTradeReportReportYear: \"Godina\",\r\n\tmonthlyTradeReportReportDate: \"Datum\",\r\n\tmonthlyTradeReportReportQty: \"Količina\",\r\n\tmonthlyTradeReportReportWeightedRSD: \"Ponderisana cena RSD\",\r\n\tmonthlyTradeReportReportWeightedEUR: \"Ponderisana cena EUR\",\r\n\r\n\tfilterTooltip: \"Filter\",\r\n\texportPDFTooltip: \"Eksportuj PDF\",\r\n\texportXLSXTooltip: \"Eksportuj Excel\",\r\n\tprintTooltip: \"Štampaj\",\r\n\tsettingsTooltip: \"Podešavanje\",\r\n\t\r\n\tmarketDataAddSecurity: \"Dodaj na tablu\",\r\n\tmarketRemoveSecurity: \"Skloni sa table\",\r\n\r\n\torderFundCheckButton: \"U redu\",\r\n\torderFundCheckButtonCancel: \"Odustani\",\r\n\torderFundCheckTitle: \"Provere sredstava\",\r\n\r\n\tweeklyNumofWeeks: \"Broj nedelja\",\r\n\tmonthlyNumofmonths: \"Broj meseci\",\r\n\r\n\texmemTitle: \"Članovi berze\",\r\n\texmemMemberName: \"Naziv Člana\",\r\n\texmemMemberId: \"Matični broj\",\r\n\texmemTaxCode: \"Pib\",\r\n\texmemAdress: \"Adresa\",\r\n\texmemPhone: \"Telefon\",\r\n\texmemManager: \"Direktor\",\r\n\texmemTrader: \"Broker\",\r\n\texmemContactPerson: \"Kontakt osoba\",\r\n\r\n\tmemcontTitle: \"Ugovori članova berze\",\r\n\tmemcontMember: \"Član\",\r\n\tmemcontContractDate: \"Datum ugovora\",\r\n\tmemcontExpireDate: \"Datum isteka ugovora\",\r\n\tmemcontStatus: \"Status\",\r\n\r\n\texchDateFrom: \"Datum od\",\r\n\texchDateTo: \"Datum do\",\r\n\texchTradeReview: \"Pregled trgovanja\",\r\n\texchCommissionReview: \"Pregled provizija\",\r\n\texchTradeByProduct: \"Pregled trgovanja po proizvodu\",\r\n\texchBusinessActivities: \"Poslovanje u periodu\",\r\n\texchTurnoverByClient: \"Promet po klijentima\",\r\n\texchTurnoverByBrokers: \"Promet po brokerima\",\r\n\texchWeightedPrice: \"Ponderisane cene\",\r\n\texchDate: \"Datum\",\r\n\texchTradeNumber: \"Broj transakcije\",\r\n\texchTradeDate: \"Datum transakcije\",\r\n\texchProduct: \"Proizvod\",\r\n\texchPrice: \"Cena\",\r\n\texchQuantity: \"Količina\",\r\n\texchAmount: \"Iznos\",\r\n\texchClient: \"Klijent\",\r\n\texchTransactionDate: \"Datum transakcije\",\r\n\texchTransactionNumber: \"Broj transakcije\",\r\n\texchOrderNumber: \"Broj naloga\",\r\n\texchSide: \"Strana\",\r\n\texchCommission: \"Provizija\",\r\n\texchTurnoverValue: \"Promet\",\r\n\texchBuyersCommission: \"Provizija kupca\",\r\n\texchSellersCommission: \"Provizija prodavca\",\r\n\texchBuyerBroker: \"Broker kupca\",\r\n\texchSellerBroker: \"Broker prodavca\",\r\n\texchCommissionValue: \"Iznos Provizije\",\r\n\texchTurnoverParticipation: \"Učešće u prometu\",\r\n\texchCommissionParticipation: \"Učešće u proviziji\",\r\n\texchBuyer: \"Kupac\",\r\n\texchSeller: \"Prodavac\",\r\n\texchTurnoverRsd: \"Promet Rsd\",\r\n\texchTurnoverEur: \"Promet EUR\",\r\n\texchWeightedPriceRsd: \"Ponderisana cena Rsd\",\r\n\texchWeightedPriceEur: \"Ponderisana cena Eur\",\r\n\r\n\tannualNumofyears: \"Broj godina\",\r\n\r\n\tpleaseWait: \"Molimo sačekajte...\",\r\n\r\n\r\n\tiInvoiceTooltip: \"Kreiraj fakture\",\r\n\r\n\tinvoicingMessage: \"Fakturisanje uspešno završeno.\",\r\n\tinvoicingMessageTitle: \"Fakturisanje\",\r\n\tinvoicingMessageConfim: \"OK\",\r\n\r\n\taccountingOrderTooltip: \"Kreiraj nalog\",\r\n\taccountingOrderTitle: \"Nalog za knjiženje\",\r\n\taccountingOrderMessage: \"Formiranje naloga završeno.\",\r\n\taccountingOrderMessageTitle: \"Formiranje naloga\",\r\n\taccountingOrderConfim: \"OK\",\r\n\r\n\tmarketDataSymbol: \"Simbol\",\r\n\tmarketDataIsin: \"Isin\",\r\n\tmarketDataPrice: \"Cena\",\r\n\tmarketDataBestBid: \"Najbolja ponuda\",\r\n\tmarketDataBestBidQty: \"Najbolja ponuda kolicina\",\r\n\tmarketDataBestAsk: \"Najbolja traznja\",\r\n\tmarketDataBestAskQty: \"Najbolja tražnja količina\",\r\n\tmarketDataOpenPrice: \"Cena na otvaranju\",\r\n\tmarketDataHighPrice: \"Najviša cena\",\r\n\tmarketDataLowPrice: \"Najniža cena\",\r\n\tmarketDataClosePrice: \"Cena na zatvaranju\",\r\n\tmarketDataVolume: \"Količina\",\r\n\tmarketDataSumBid: \"Ukupno ponuda\",\r\n\tmarketDataSumAsk: \"Ukupna Tražnja\",\r\n\tmarketDataTrend: \"Trend\",\r\n\tmarketDataChange: \"Promena\",\r\n\tmarketDataTradingPhase: \"Faza\",\r\n\tmarketDataTradeTime: \"Vreme\",\r\n\tmarketDataDepth: \"Dubina\",\r\n\tmarketPreviousClose: \"Prethodna cena\",\r\n\tmarketDataChangePerc: \"Promena u %\",\r\n\tmarketWeeks52High: \"Najviša za godinu\",\r\n\tmarketWeeks52Low: \"Najniža za godinu\",\r\n\tmarketDataName: \"Naziv\",\r\n\tmarketDataGraph: \"Grafik\",\r\n\tmarketIEX :\"Podaci preuzeti od Twelve Data\",\r\n\tmarketTime:\"Vreme\",\r\n\tmarketSource:\"Izvor\",\r\n\tmarketview: \"Pogledaj detalje\",\r\n\r\n\ttradingDatadatefrom: \"Od datuma\",\r\n\ttradingDatadateto: \"Do datuma\",\r\n\ttradingDataEdit: \"Ažuriraj referentnu cenu\",\r\n\r\n\r\n\tnoFutureDate: \"Datum ne sme biti veći od današnjeg.\",\r\n\r\n\torderQtyMatched: \"Uparena količina\",\r\n\talarmTime: \"Vreme alarma\",\r\n\talarmCrossName: \"Cross alarm\",\r\n\talarmProductName: \"Alarm za proizvod\",\r\n\talarmClientName: \"Alarm za člana\",\r\n\r\n\ttradingDataMessage: \"Obračun cena završen.\",\r\n\ttradingDataMessageTitle: \"Obračun cena\",\r\n\ttradingDataConfim: \"OK\",\r\n\ttradingDataReportDate: \"Datum obračuna cena\",\r\n\r\n\tmarginsDataMessage: \"Obračun margina završen.\",\r\n\tmarginsDataMessageTitle: \"Obračun margina\",\r\n\tmarginsDataConfim: \"OK\",\r\n\tmarginsDataReportDate: \"Datum obračuna margine\",\r\n\r\n\r\n\tattrCompTypeLessThan: \"<=\",\r\n\tattrCompTypeEqual: \"=\",\r\n\tattrCompTypeMoreThan: \">=\",\r\n\tattrCompType: \"Komparator\",\r\n\tproductAttributeHasStandard: \"Ima standardnu vrednost\",\r\n\tproductAttributeStandardValue: \"Standardna vrednost\",\r\n\r\n\torderParameters: \"Parametri naloga\",\r\n\ttradeParameters: \"Parametri transakcije\",\r\n\torderDepositeAmount: \"Potreban iznos depozita\",\r\n\torderDepositeAmountPayed: \"Plaćen iznos depozita\",\r\n\tpaymentAmtBal: \"Ukupna sredstava\",\r\n\tpaymentAmtBalNonAlloc: \"Nealocirana sredstava\",\r\n\r\n\tattributeSRPS: \"SRPS kvalitet\",\r\n\r\n\tpaymentAmtOrdersBal: \"Stanje na nalozima\",\r\n\tpaymentAmtTradesBal: \"Stanje na transakicjama\",\r\n\r\n\tdeliveryTradeQty: \"Ugovorena količina\",\r\n\tdeliveryLeftQty: \"Preostalo za isporuku\",\r\n\r\n\tclientCardTitle: \"Kartica klijenta\",\r\n\r\n\talarmProductClientName: \"Alram za klijent i proizvod\",\r\n\talarmBuyOrderNumber: \"Broj kupovnog naloga\",\r\n\talarmSellOrderNumber: \"Broj prodajnog naloga\",\r\n\tallowSystemNotifications: \"Ukljuci sistemske notifikacije\",\r\n\r\n\tnavPortfolio: \"Portfelj\",\r\n\r\n\tportfSymbol: \"Simbol\",\r\n\tportfExchCode: \"Berza\",\r\n\tportfCurrCode: \"Valuta\",\r\n\tportfQty: \"Količina\",\r\n\tportfPchPrice: \"Nabavna cena\",\r\n\tportfPchAmt: \"Nabavna vrednost\",\r\n\tportfMktPrice: \"Tržišna cena\",\r\n\tportfMktAmt: \"Tržišna vrednost\",\r\n\tportfDiffPerc: \"Razlika %\",\r\n\tportfDiffAmt: \"Razlika\",\r\n\tportfIsin:\"Isin\",\r\n\tportfSecName:\"Naziv\",\r\n\tportfDepositor: \"Depozitar\",\r\n\tportfSecAccType: \"Tip rač.\",\r\n\tportfSecAccount: \"Račun\",\r\n\tportfOnExchYes: \"Na berzi\",\r\n\tportfOnExchNo: \"Nije na berzi\",\r\n\r\n\terrorTitle: \"Greška\",\r\n\terrorConfirm: \"OK\",\r\n\terrorMessageChangePass: \"Slaba lozinka\",\r\n\terrorSuccessTitle: \"Promena lozinke\",\r\n\terrorSuccess: \"Uspešno promenjena lozinka\",\r\n\r\n\tsettingsPasswordChangeMenu: \"Promena lozinke\",\r\n\r\n\tnavCashBalance: \"Stanje računa\",\r\n\r\n\tcashCurrCode: \"Valuta\",\r\n\tcashAccUse: \"Namena\",\r\n\tcashAccNo: \"Broj računa\",\r\n\tcashBank: \"Banka\", \r\n\tcashCurrentAmt: \"Potencijalno\",\r\n\tcashSellNetAmt: \"Neting Prodaja\",\r\n\tcashBuyNetAmt: \"Neting Kupovina\",\r\n\tcashSettledAmt: \"Saldirano stanje\",\r\n\tcashBankAmt: \"Stanje banka\",\r\n\tcashSellOrdAmt: \"Aktivni nal. prodaje\",\r\n\tcashBuyOrdAmt: \"Aktivni nal. kupovine\",\r\n\tcashAvailAmt: \"Raspoloživo\",\r\n\tcashImportTime: \"Vreme importa\",\r\n\r\n\r\n\tdomForSideDomestic: \"Domaći\",\r\n\tdomforSideForeign: \"Strani\",\r\n\tdomForMarket: \"Tržište\",\r\n\tdomForDefDom: \"Domaći/def \",\r\n\tdomForDefFor: \"Strani/def \",\r\n\tdomForCurrCode: \"Valuta\",\r\n\tdomForAccSide: \"Strana\",\r\n\tdomForChange: \"Promeni\",\r\n\r\n\tnavSecuritiyAccounts: \"Računi hartija\",\r\n\tnavMoneyAccounts:\"Računi novca\",\r\n\r\n\tnavSupport: \"Pomoć\",\r\n\r\n\torderChecked: \"Upozorenje: Cena i vrednost realizacije naloga može značajno odstupiti od trenutne tržišne vrednosti.\",\r\n\r\n\totherSettingsMenu: \"Ostala podešavanja\",\r\n\tconfirmOrderSetting: \"Dodatna potvrda naloga\",\r\n\r\n\tcurrCodeSettl: \"Valuta saldiranja\",\r\n amountSettl: \"Iznos saldiranja\",\r\n settlState: \"Status saldiranja\"\r\n\r\n\r\n//\terrorProductAttributeDelete: \"Atribut proizvoda koji je bio u nekom nalogu ne može da se briše.\",\r\n\r\n};\r\n","export const srErrors = {\r\n\t\"http-login-error\": \"Greška u komunikaciji sa serverom\",\r\n};\r\n","import { LocalizationLanguage } from \"./types\";\r\n\r\nexport const enTranslations = {\r\n\tlanguage: LocalizationLanguage.EN as LocalizationLanguage,\r\n\tdecimalSeparator: \".\",\r\n\tmomentLocale: \"en\",\r\n\tmainTitle: \"WebProTraderr\",\r\n\ttableNextPage: \"Next page\",\r\n\ttablePreviousPage: \"Previous page\",\r\n\ttableFirsPage: \"First page\",\r\n\ttableLastPage: \"Last page\",\r\n\ttableDisplayedRows: \"{from}-{to} from {count}\",\r\n\ttabledDisplayedPerPage: \"rows\",\r\n\torderActView: \"Show order\",\r\n\torderActReply: \"Reply to order\",\r\n\torderWaitingProducts: \"Please wait...\",\r\n\torderSideBuy: \"BUY\",\r\n\torderSideSell: \"SELL\",\r\n\tlistingOrdersTitle: \"Orders\",\r\n\tuserOrdersTitle: \"My orders\",\r\n\tarchiveOrdersTitle: \"Archive\",\r\n\tsearch: \"Search\",\r\n\tcompanyClmName: \"Name\",\r\n\tcompanyClmHeadquorters: \"Headquaters\",\r\n\tcompanyClmMemberFrom: \"Member from\",\r\n\tcompanyClmProvision: \"Commission \",\r\n\treporClmtName: \"Name\",\r\n\treporTitle: \"Reports\",\r\n\treporDownloadTtl: \"Download\",\r\n\tusername: \"Username\",\r\n\tpassword: \"Password\",\r\n\tlogin: \"Login\",\r\n\tlogout: \"Logout\",\r\n\torderChooseProduct: \"Choose product\",\r\n\tnoDataText: \"No data\",\r\n\r\n\toldpassword: \"Old Password\",\r\n\tnewpassword: \"New Password\",\r\n\tchangePassword: \"Change\",\r\n\tnewpasswordverify: \"New Password- verify\",\r\n\r\n\torderClmOrdNo: \"Number\",\r\n\torderDateReceived: \"Date Recieved\",\r\n\torderTimeReceived: \"Time Recieved\",\r\n\torderOrdType: \"Type\",\r\n\torderOrdTimeType: \"Valid time\",\r\n\torderRefOrd: \"Ref order\",\r\n\torderClientIdNo: \"Client number\",\r\n\torderClientName: \"Client name\",\r\n\torderSymbol: \"Symbol\",\r\n\torderYear: \"Year\",\r\n\torderTradingPlace: \"Trading place\",\r\n\torderFranco: \"Franco\",\r\n\torderQty: \"Quantity\",\r\n\torderAllOrNothing: \"All or nothing\",\r\n\torderPrice: \"Price\",\r\n\torderPriceEur: \"Price (EUR)\",\r\n\torderPriceWithoutVat: \"Price without VAT\",\r\n\torderPriceWithVat: \"Price (VAT)\",\r\n\torderPayType: \"Pay type\",\r\n\torderPayDays: \"Pay days\",\r\n\torderFreeStorage: \"Free storage\",\r\n\torderFreeStorageByDelivery: \"By delivery\",\r\n\torderFreeStorageByDate: \"By date:\",\r\n\torderCheckPoint: \"Check point\",\r\n\torderCheckPays: \"Pays check point\",\r\n\torderExpiryDate: \"Expiry date\",\r\n\torderStatus: \"Status\",\r\n\torderQuality: \"Quality\",\r\n\torderRecieveMethod: \"Recieve Method\",\r\n\torderEditTitle: \"Edit order\",\r\n\torderCreateTitle: \"Create order\",\r\n\torderGoodsReadyFrom: \"Goods ready from\",\r\n\torderGoodsReadyTo: \"Goods ready to\",\r\n\torderAttrName: \"Name\",\r\n\torderAttrValue: \"Value\",\r\n\torderAttrTitle: \"Quality paraneters\",\r\n\torderAttrCreateTitle: \"Crete attribute\",\r\n\torderAttrEditAttribute: \"Edit attribute\",\r\n\torderReceiveMethod: \"Order Receive Method\",\r\n\torderbrokName: \"Broker Name\",\r\n\torderUserName: \"User Name\",\r\n\torderCliPrsName: \"Client Person Name\",\r\n\torderUnit: \"Unit\",\r\n\torderQtyLeft: \"Quantity Left\",\r\n\torderQtyFill: \"Filled Qty\",\r\n\torderQtyVisible: \"Visible Qty\",\r\n\torderSecurityAcc: \"Security Account\",\r\n\torderMoneyAcc: \"Money Account\",\r\n\torderPriceVat: \"Vat\",\r\n\torderMinQty: \"Minimum Quantity\",\r\n\torderComment: \"Comment\",\r\n\torderCommission: \"Commission\",\r\n\tordergoodsRedyFrom: \"Goods Ready From\",\r\n\tordergoodsRedyTo: \"Goods Ready To\",\r\n\torderStatusDescr: \"Status\",\r\n\torderFillStatusDescr: \"Fill Status\",\r\n\torderCancelReplTime: \"Cancel Replacement Time\",\r\n\torderPayData: \"Pay Data\",\r\n\torderSide: \"Side\",\r\n\torderCurrCode: \"Cuurency\",\r\n\torderexportReady: \"Export Ready\",\r\n\torderOrigOrderNo: \"Original Order\",\r\n\torderIceberg: \"Iceberg\",\r\n\torderSecurity: \"Security\",\r\n\torderPreMarket: \"PreMarket\",\r\n\torderRejection: \"Order rejection\",\r\n\r\n\tnumberOfDays: \"Number of days\",\r\n\tnavListing: \"Listing\",\r\n\tnavMyOrders: \"My orders\",\r\n\tnavArchive: \"Archive\",\r\n\tnavCompanies: \"Companies\",\r\n\tnavMembers: \"Members\",\r\n\tnavProducts: \"Products\",\r\n\tnavBrokers: \"Brokers\",\r\n\tnavUsers: \"Users\",\r\n\tnavRoles: \"Roles\",\r\n\tnavCodebook: \"Codebook\",\r\n\tnavCountries: \"Countries\",\r\n\tnavTopRegion: \"Region\",\r\n\tnavRegion: \"District\",\r\n\tnavSubRegion: \"SubRegion\",\r\n\tnavCities: \"Cities\",\r\n\tnavCurrencies: \"Currencies\",\r\n\tnavWarehouses: \"Warehouses\",\r\n\tnavTrading: \"Trading\",\r\n\tnavMainTable: \"Main table\",\r\n\tnavOrders: \"Orders\",\r\n\tnavTransactions: \"Transactions\",\r\n\tnavMarketDepth: \"Market Depth\",\r\n\tnavCliring: \"Cliring\",\r\n\tnavDeposits: \"Deposits\",\r\n\tnavMarginCalculations: \"Margin calculations\",\r\n\tnavSurveillance: \"Surveillance\",\r\n\tnavAlarmSetup: \"Alarm setup\",\r\n\tnavProductReport: \"Product report\",\r\n\tnavMemberReport: \"Member report\",\r\n\tnavReports: \"Reports\",\r\n\tnavDailyReports: \"Daily reports\",\r\n\tnavWeeklyReports: \"Weekly reports\",\r\n\tnavMonthlyReports: \"Monthly reports\",\r\n\tnavQuaterlyReports: \"Quaterly reports\",\r\n\tnavAnnualReports: \"Annual reports\",\r\n\tnavSECReports: \"SEC reports\",\r\n\tnavMembersReports: \"Members reports\",\r\n\tnavOrdersReports: \"Orders and trades\",\r\n\tnavAccounting: \"Accounting\",\r\n\tnavTaxes: \"Taxes and commissions\",\r\n\tnavInvoice: \"Invoice generation\",\r\n\tnavAccountingExport: \"Export for accounting\",\r\n\tnavMembersDeposit: \"Members deposit\",\r\n\tempFirstName: \"First name\",\r\n\tempLastName: \"Last name\",\r\n\tempIdNumber: \"ID number\",\r\n\tempOfficePhone: \"Office phone\",\r\n\tempEmail: \"Email\",\r\n\tempStatus: \"Status\",\r\n\tempMidName: \"Middle name\",\r\n\tempGender: \"Gender\",\r\n\tempAddress: \"Address\",\r\n\tempZipCode: \"ZipCode\",\r\n\tempCity: \"City\",\r\n\tempPhone: \"Phone\",\r\n\tempDateOfBirth: \"Date of Birth\",\r\n\tempPosition: \"Position\",\r\n\tempBranch: \"Branch\",\r\n\tempFax: \"Fax\",\r\n\tempShowTooltip: \"Show\",\r\n\tgenderMale: \"Male\",\r\n\tgenderFemale: \"Female\",\r\n\tstatusActive: \"Active\",\r\n\tstatusInactive: \"Inactive\",\r\n\tempEdit: \"Edit\",\r\n\tempDelete: \"Delete\",\r\n\tempEditTitle: \"Edit broker\",\r\n\tempCreateTitle: \"Create broker\",\r\n\tempName: \"Employee\",\r\n\tempTel: \"Phone\",\r\n\tempMob: \"Mobile\",\r\n\r\n\r\n\tcliName: \"Short name\", //\tnaziv klijenta\r\n\tcliIdNo: \"ID number\", //\tmaticni broj klijenta\r\n\tcliTaxCode: \"Tax code\", //\tPIB broj\r\n\tcliType: \"Type\",\r\n\tcliForeign: \"Foreign\",\r\n\tcliCity: \"City\",\r\n\tcliPhone: \"Phone\",\r\n\tcliBroker: \"Broker\",\r\n\tcliActive: \"Active\",\r\n\tcliStatus: \"Status\",\r\n\tclilFullName: \"Name\",\r\n\tcliAddress: \"Adress\",\r\n\tcliMailCity: \"Mail city\",\r\n\tcliMailAddress: \"Mail address\",\r\n\tcliMobile: \"Moblie phone\",\r\n\tcliFax: \"Fax\",\r\n\tcliEmail: \"Email\",\r\n\tcliHasContract: \"Has contract\",\r\n\tcliActiveFrom: \"Active from\",\r\n\tcliActiveTo: \"Acrive to\",\r\n\tcliCommission: \"Commission\",\r\n\tcliCurrentTurnover: \"Turnover\",\r\n\tcliComment: \"Comment\",\r\n\tcilEditTitle: \"Edit client\",\r\n\tcilCreateTitle: \"Create client\",\r\n\tcilTitle: \"Clients\",\r\n\ttableConfirmationDelete: \"Are you sure?\",\r\n\ttableDelete: \"Delete\",\r\n\ttableAdd: \"Add\",\r\n\ttableEdit: \"Edit\",\r\n\ttableCancel: \"Cancel\",\r\n\ttableSave: \"Save\",\r\n\troleCode: \"Code\",\r\n\troleName: \"Name SR\",\r\n\troleNameEn: \"Name EN\",\r\n\ttableShow: \"Show\",\r\n\troleEdit: \"Edit role\",\r\n\troleCreate: \"Create role\",\r\n\troleNameColumn: \"Name\",\r\n\troleIsEmployee: \"Employee\",\r\n\tuserUserName: \"User name\",\r\n\tuserLoginUser: \"Login user\",\r\n\tuserLoginPass: \"Password\",\r\n\tuserChangePass: \"Change password\",\r\n\tuserRoleId: \"Role\",\r\n\tuserIsEmployee: \"Is employee\",\r\n\tuserEmpId: \"Employee\",\r\n\tuserClientId: \"Client\",\r\n\tuserCliPrsId: \"Client person\",\r\n\tuserSubscribedUntil: \"Subscribed until\",\r\n\tuserSubscrUnlimited: \"Unlimited Subscription\",\r\n\tuserIsActive: \"Active\",\r\n\tuserEditTitle: \"Edit user\",\r\n\tuserCreateTitle: \"Create user\",\r\n\ttableBasciInfo: \"Basic info\",\r\n\tclientPersonTitle: \"Persons\",\r\n\tclientPersonName: \"Name\",\r\n\tclientPersonIDNumber: \"ID Number\",\r\n\tclientPersonStatus: \"Status\",\r\n\tclientPersonEmpty: \"There are no persons\",\r\n\tclientBrokerTitle: \"Brokers\",\r\n\tclientBrokerName: \"Name\",\r\n\tclientBrokerIDNumber: \"ID Number\",\r\n\tclientBrokerStatus: \"Status\",\r\n\tclientBrokerEmpty: \"There are no brokers\",\r\n\tcontractTitle: \"Contracts\",\r\n\tcontractNumber: \"Number\",\r\n\tcontractDate: \"Date\",\r\n\tcontractStatus: \"Status\",\r\n\tcontractEmpty: \"There are no contracts\",\r\n\tcontractLincedContrNo: \"Linked contract\",\r\n\tcontractTypeDescription: \"Type\",\r\n\tcontractDescription: \"Description\",\r\n\tcontractPhoneOrder: \"Phone number\",\r\n\tcontractWebUser: \"Web user\",\r\n\tcontractWebUserBlocked: \"Web user blocked\",\r\n\tcontractTitleEdit: \"Edit Contract\",\r\n\tcontractTitleCreate: \"Create Contract\",\r\n\taccountTitle: \"Accounts\",\r\n\taccountTitleEdit: \"Edit Accounts\",\r\n\taccountTitleCreate: \"Create Accounts\",\r\n\taccountNumber: \"Account number\",\r\n\taccountBank: \"Bank\",\r\n\taccountDefault: \"Default account\",\r\n\taccountClientBankCode: \"Client bank code\",\r\n\taccountCurrency: \"Currency\",\r\n\taccountForBuySell: \"Buy/Sell\",\r\n\taccountStatus: \"Status\",\r\n\taccountSideBuy: \"Buy\",\r\n\taccountSideSell: \"Sell\",\r\n\taccountSideBoth: \"Both\",\r\n\taccountEmpty: \"There are no accounts\",\r\n\tinvalidDateMessage: \"Invalid Date Format\",\r\n\tmaxDateMessage: \"Date should not be after maximal date\",\r\n\tminDateMessage: \"Date should not be before minimal date\",\r\n\tclientPersonEditTitle: \"Edit Person\",\r\n\tclientPersonCreateTitle: \"Create Person\",\r\n\tclientBrokerEditTitle: \"Edit Broker\",\r\n\tclientBrokerCreateTitle: \"Create Broker\",\r\n\tleavePageTitle: \"Leave this page?\",\r\n\tleavePageMessage: \"If you leave this page all changes will be discarded.\",\r\n\tleavePageConfirm: \"Leave page\",\r\n\tleavePageCancel: \"Stay\",\r\n\tcalendarOK: \"OK\",\r\n\tcalendarCancel: \"Cancel\",\r\n\tcalendarClear: \"Clear\",\r\n\r\n\tcommission: \"Commission\",\r\n\trequiredMessage: \"Field is required\",\r\n\tmessageWeakPassword: \"Password isn't strong enough\",\r\n\r\n\tcurrenciesTitle: \"Currencies\",\r\n\tcurrenciesCreateTitle: \"Create Currency\",\r\n\tcurrenciesEditTitle: \"Edit Currency\",\r\n\tcurrenciesName: \"Name\",\r\n\tcurrenciesCode: \"Designation\",\r\n\tcurrenciesNumericCode: \"Code\",\r\n\tregName: \"Region\",\r\n\tregNameDistrict: \"District\",\r\n\tparentRegName: \"Region\",\r\n\tcountryReg: \"Country\",\r\n\tregEdit: \"Edit Region\",\r\n\tregEditDistrict: \"Edit District\",\r\n\tregCreate: \"Create Region\",\r\n\tregCreateDistrict: \"Create District\",\r\n\tcurRateDate: \"Currency rate date\",\r\n\tcurRateBuy: \"Buy rate\",\r\n\tcurRateSell: \"Sell rate\",\r\n\tcurRateMid: \"Mid rate\",\r\n\tcurRateCurrency: \"Currency\",\r\n\tcurRateTitle: \"Currency Rates\",\r\n\tcurRateEditTitle: \"Edit Currency Rates\",\r\n\tcurRateCreateTitle: \"Create Currency Rates\",\r\n\tcountryEdit: \"Edit Country\",\r\n\tcountryCreate: \"Create Country\",\r\n\tcountryName: \"Name\",\r\n\tcountryNameEN: \"Name (EN)\",\r\n\tcityEdit: \"Edit City\",\r\n\tcityCreate: \"Create City\",\r\n\tcityName: \"Name\",\r\n\tcityZipCode: \"Zip Code\",\r\n\tcityRegion: \"District\",\r\n\tcitySubRegion: \"Subregion\",\r\n\tcityIsPort: \"Port\",\r\n\r\n\tcommissionTitle: \"Commissions\",\r\n\tcommissionCreateTitle: \"Create Commission\",\r\n\tcommissionEditTitle: \"Edit Commission\",\r\n\tcommissionCode: \"Code\",\r\n\tcommissionName: \"Name\",\r\n\tcommissionNameEN: \"Name (EN)\",\r\n\tcommissionType: \"Type\",\r\n\tcommissionStandard: \"Standard\",\r\n\tcommDetailsTitle: \"Commission Details\",\r\n\tcommDetailsCreateTitle: \"Create Commission Details\",\r\n\tcommDetailsEditTitle: \"Edit Commission Details\",\r\n\tcommDetailsDate: \"Date from\",\r\n\tcommDetailsProductGroup: \"Product Group\",\r\n\tcommDetailsProduct: \"Product\",\r\n\tcommDetailsCurrency: \"Currency\",\r\n\tcommDetailsAmtCurrency: \"Amount Curency\",\r\n\tcommDetailsAmtTypePercent: \"Percent\",\r\n\tcommDetailsAmtTypeAmount: \"Amount\",\r\n\tcommDetailsBuyAmtType: \"Buy Amount Type\",\r\n\tcommDetailsBuyPerc: \"Buy Percent\",\r\n\tcommDetailsBuyMin: \"Buy Min Amount\",\r\n\tcommDetailsBuyMax: \"Buy Max Amount\",\r\n\tcommDetailsSellAmtType: \"Sell Amount Type\",\r\n\tcommDetailsSellPerc: \"Sell Percent\",\r\n\tcommDetailsSellMin: \"Sell Min Amount\",\r\n\tcommDetailsSellMax: \"Sell Max Amount\",\r\n\tproductCode: \"Code\",\r\n\tclientPersonRole: \"Role\",\r\n\tclientPersonDateCertified: \"Date certified\",\r\n\tclientPersonPhone: \"Phone\",\r\n\tclientPersonEmail: \"Email\",\r\n\r\n\ttradeTitle: \"Trades\",\r\n\ttradeSumTitle: \"Agregate Trades\",\r\n\ttradeNo: \"Trade Number\",\r\n\ttradeTime: \"Trade Time\",\r\n\ttradeSettl: \"Settlement Date\",\r\n\ttradeSecurity: \"Security\",\r\n\ttradeQty: \"Quantity\",\r\n\ttradeDescr: \"Transaction\",\r\n\ttradeCurrCode: \"Currency\",\r\n\ttradePrice: \"Price\",\r\n\ttradeOrder: \"Order\",\r\n\ttradeBrokCommPerc: \"Broker Commission Perc.\",\r\n\ttradebrokCommAmt:\"Broker Commission\",\r\n\ttradeExchCommPerc:\"Exchange Commission Perc.\",\r\n\ttradeExchCommAmt:\"Exchange Commission\",\r\n\ttradeRegCommPerc:\"Register Commission Perc.\",\r\n\ttradeRegCommAmt:\"Register Commission\",\r\n\ttradeBankCommPerc:\"Bank Commission Perc.\",\r\n\ttradeBankCommAmt:\"Bank Commission\",\r\n\ttradeVatAmt:\"Vat\",\r\n\ttradeTotComm:\"Commission Total\",\r\n\ttradeExchange: \"Exchange\",\r\n\ttradeIsin:\"Isin\",\r\n\ttradeComm:\"Commission\",\r\n\ttradeAmtFinal: \"Final Amount\",\r\n\ttradeRate: \"Rate\",\r\n\r\n\tlistingOrdersBookTitle: \"Order Book\",\r\n\torderCancel: \"Cancel order\",\r\n\torderCancelQuestion: \"Cancel order?\",\r\n\torderCancelQuestionYes: \"Yes\",\r\n\torderCancelQuestionNo: \"No\",\r\n\torderModify: \"Modify order\",\r\n\torderVerify: \"Verify order\",\r\n\ttradeVatPerc: \"Vat %\",\r\n\ttradePriceWithVat: \"Price with Vat\",\r\n\ttradeAmt: \"Amount\",\r\n\ttradeAmtWithVat: \"Amount with Vat\",\r\n\ttradeTransCostSell: \"Transport Costs Seller\",\r\n\ttradeStorCostSell: \"Storage Costs Seller\",\r\n\ttradeTransCostBuy: \"Transport Costs Buyer\",\r\n\ttradeStorCostBuy: \"Storage Costs Buyer\",\r\n\ttradeCommPercSell: \"Commission Seller %\",\r\n\ttradeCommAmtSell: \"Commission Seller \",\r\n\ttradeCommPercBuy: \"Commission Buyer %\", \r\n\ttradeCommAmtBuy: \"Commission Buyer\",\r\n\torderFilterConfirm: \"Filter\",\r\n\torderFilterCancel: \"Cancel\",\r\n\torderFilterFrom: \"Order from\",\r\n\torderFilterTo: \"Order to\",\r\n\ttradeFilterFrom: \"Trade from\",\r\n\ttradeFilterTo: \"Trade to\",\r\n\ttradeViewAction: \"View trade\",\r\n\ttradeCancelAction: \"Cancel trade\",\r\n\torderTradeQuestion: \"Cancel trade?\",\r\n\torderSecDep: \"Custodian\",\r\n\torderStatusChange: \"Status Change\",\r\n\r\n\tfilterFrom: \"from\",\r\n\tfilterTo: \"to\",\r\n\tpaymentTitle: \"Payment\",\r\n\tpaymentDataTime: \"Date\",\r\n\tpaymentClientCode: \"Client Code\",\r\n\tpaymentClientName: \"Client Name\",\r\n\tpaymentPayType: \"Pay Type\",\r\n\tpaymentClmOrdNo: \"Order No.\",\r\n\tpaymentTranNo: \"Transaction No.\",\r\n\tpaymentAmount: \"Amount\",\r\n\tpaymentAmountIn: \"Amount In\",\r\n\tpaymentAmountOut: \"Amount Out\",\r\n\tpaymentCurrCode: \"Currency\",\r\n\tpaymentStatus: \"Status\",\r\n\tdatefrom: \"From date\",\r\n\tdateto: \"To date\",\r\n\tpaymentEdit: \"Edit Payment\",\r\n\tpaymentCreate: \"Create Payment\",\r\n\tpaymentSideIn: \"In\",\r\n\tpaymentSideOut: \"Out\",\r\n\tpaymentSide: \"In/Out\",\r\n\tpaymentSideNonDedicated: \"Non Dedicated\",\r\n\tpaymentSideDedicated: \"Dedicated\",\r\n\tpaymentSideDedication: \"Dedication\",\r\n\tpaymentBankGuarantee: \"Bank Guarantee\",\r\n\r\n\r\n\tpaymentClientOrders: \"Client orders\",\r\n\tpaymentClientTransactions: \"Client transactions\",\r\n\tguarGuaranteeTitle: \"Guarantees\",\r\n\tguarEdit: \"Edit Guarantee\",\r\n\tguarCreate: \"Create Guarantee\",\r\n\r\n\torderDeliveryLocation: \"Delivery Location\",\r\n\tfilterReset: \"Clear\",\r\n\torderMarket: \"Market\",\r\n\torderMarketSpot: \"Spot\",\r\n\torderMarketForward: \"Forward\",\r\n\torderLocCountry: \"Country\",\r\n\torderLocRegion: \"Region\",\r\n\torderLocDistrict: \"District\",\r\n\torderLocCity: \"City\",\r\n\torderLocWhs: \"Warehouse\",\r\n\ttradeFulfillmentDate: \"Fulfillment Date\",\r\n\tnavOrdersReport: \"Order book\",\r\n\r\n\tstockFeeTitle: \"Stock Fees\",\r\n\tstockFeeEdit: \"Edit Stock Fee\",\r\n\tstockFeeCreate: \"Create Stock Fee\",\r\n\tstockFeeStartDate: \"Start Date\",\r\n\tstockFeeStockFee: \"Stock Fee\",\r\n\tstockFeeStatus: \"Status\",\r\n\r\n\ttransFeeTitle: \"Transport Fees\",\r\n\ttransFeeEdit: \"Edit Transport Fee\",\r\n\ttransFeeCreate: \"Create Transport Fee\",\r\n\ttransFeeStartDate: \"Start Date\",\r\n\ttransFeePice: \"Price\",\r\n\ttransFeeDistance: \"Distance\",\r\n\ttransFeeStatus: \"Status\",\r\n\r\n\tnavTradesReport: \"Trade Book\",\r\n\r\n\tdailyTradeReportTitle: \"Daily Trades\",\r\n\tdailyTradeReportProduct: \"Product\",\r\n\tdailyTradeReportTurnoverRSD: \"Turnover RSD\",\r\n\tdailyTradeReportTurnoverEUR: \"Turnover EUR\",\r\n\tdailyTradeReportCountTransaction: \"Transaction Count\",\r\n\tdailyTradeReportReportDate: \"Report Date\",\r\n\r\n\tmonthlyTradeReportReportTitle: \"SEC Monthly Trades Report\",\r\n\tmonthlyTradeReportReportMonth: \"Month\",\r\n\tmonthlyTradeReportReportYear: \"Year\",\r\n\tmonthlyTradeReportReportDate: \"Date\",\r\n\tmonthlyTradeReportReportQty: \"Quantity\",\r\n\tmonthlyTradeReportReportWeightedRSD: \"Weighted Price RSD\",\r\n\tmonthlyTradeReportReportWeightedEUR: \"Weighted Price EUR\",\r\n\r\n\tfilterTooltip: \"Filter\",\r\n\texportPDFTooltip: \"Download PDF\",\r\n\texportXLSXTooltip: \"Download Excel\",\r\n\tprintTooltip: \"Print\",\r\n\tsettingsTooltip: \"Settings\",\r\n\r\n\tmarketDataAddSecurity: \"Add Security\",\r\n\tmarketRemoveSecurity: \"Remove Securita\",\r\n\r\n\r\n\torderFundCheckButton: \"OK\",\r\n\torderFundCheckButtonCancel: \"Cancel\",\r\n\torderFundCheckTitle: \"Fund Check\",\r\n\r\n\tweeklyNumofWeeks: \"Number of Weeks\",\r\n\tmonthlyNumofmonths: \"Number of Months\",\r\n\r\n\r\n\texmemTitle: \"Exchange Members\",\r\n\texmemMemberName: \"Member Name\",\r\n\texmemMemberId: \"Member Id\",\r\n\texmemTaxCode: \"Tax Code\",\r\n\texmemAdress: \"Address\",\r\n\texmemPhone: \"Phone\",\r\n\texmemManager: \"Manager\",\r\n\texmemTrader: \"Trader\",\r\n\texmemContactPerson: \"Contact Person\",\r\n\r\n\tmemcontTitle: \"Member Contracts\",\r\n\tmemcontMember: \"Member\",\r\n\tmemcontContractDate: \"Contract Date\",\r\n\tmemcontExpireDate: \"Expire Date\",\r\n\tmemcontStatus: \"Status\",\r\n\r\n\texchDateFrom: \"Date From\",\r\n\texchDateTo: \"Date To\",\r\n\texchTradeReview: \"Trade Review\",\r\n\texchCommissionReview: \"Commission Review\",\r\n\texchTradeByProduct: \"Trade By Product\",\r\n\texchBusinessActivities: \"Business Activities\",\r\n\texchTurnoverByClient: \"Turnover By Client\",\r\n\texchTurnoverByBrokers: \"Turnover By Brokers\",\r\n\texchWeightedPrice: \"Weighted Prices\",\r\n\texchDate: \"Date\",\r\n\texchTradeNumber: \"Trade Number\",\r\n\texchTradeDate: \"Trade Date\",\r\n\texchProduct: \"Product\",\r\n\texchPrice: \"Price\",\r\n\texchQuantity: \"Quantity\",\r\n\texchAmount: \"Amount\",\r\n\texchClient: \"Client\",\r\n\texchTransactionDate: \"Transaction Date\",\r\n\texchTransactionNumber: \"Transaction Number\",\r\n\texchOrderNumber: \"Order Number\",\r\n\texchSide: \"Side\",\r\n\texchCommission: \"Commission\",\r\n\texchTurnoverValue: \"Turnover Value\",\r\n\texchBuyersCommission: \"Buyers Commission\",\r\n\texchSellersCommission: \"Sellers Commission\",\r\n\texchBuyerBroker: \"Buyers Broker\",\r\n\texchSellerBroker: \"Sellers Broker\",\r\n\texchCommissionValue: \"Commission Value\",\r\n\texchTurnoverParticipation: \"Turnover Participation\",\r\n\texchCommissionParticipation: \"Commission Participation\",\r\n\texchBuyer: \"Buyer\",\r\n\texchSeller: \"Seller\",\r\n\texchTurnoverRsd: \"Turnover RSD\",\r\n\texchTurnoverEur: \"Turnover EUR\",\r\n\texchWeightedPriceRsd: \"Weighted Price RSD\",\r\n\texchWeightedPriceEur: \"Weighted Price EUR\",\r\n\r\n\tannualNumofyears: \"Number of year\",\r\n\r\n\tpleaseWait: \"Please wait...\",\r\n\r\n\r\n\tiInvoiceTooltip: \"Create Invoice\",\r\n\r\n\tinvoicingMessage: \"Invoicing successfully finished\",\r\n\tinvoicingMessageTitle: \"Invoicing\",\r\n\tinvoicingMessageConfim: \"OK\",\r\n\r\n\taccountingOrderTooltip: \"Creating Order\",\r\n\taccountingOrderTitle: \"Accounting Order\",\r\n\taccountingOrderMessage: \"Order Creating finished\",\r\n\taccountingOrderMessageTitle: \"Creating Order\",\r\n\taccountingOrderConfim: \"OK\",\r\n\r\n\r\n\tmarketDataSymbol: \"Symbol\",\r\n\tmarketDataIsin: \"Isin\",\r\n\tmarketDataPrice: \"Price\",\r\n\tmarketDataBestBid: \"Best Bid\",\r\n\tmarketDataBestBidQty: \"Best Bid Quantity\",\r\n\tmarketDataBestAsk: \"Best Ask\",\r\n\tmarketDataBestAskQty: \"Best Ask Quatnity\",\r\n\tmarketDataOpenPrice: \"Open Price\",\r\n\tmarketDataHighPrice: \"High Price\",\r\n\tmarketDataLowPrice: \"Low Price\",\r\n\tmarketDataClosePrice: \"Close Price\",\r\n\tmarketDataVolume: \"Volume\",\r\n\tmarketDataSumBid: \"Total Bid\",\r\n\tmarketDataSumAsk: \"Total Ask\",\r\n\tmarketDataTrend: \"Trend\",\r\n\tmarketDataChange: \"Change\",\r\n\tmarketDataTradingPhase: \"Phase\",\r\n\tmarketDataTradeTime: \"Time\",\r\n\tmarketDataDepth: \"Depth\",\r\n\tmarketPreviousClose: \"Previous Close\",\r\n\tmarketDataChangePerc: \"Change %\",\r\n\tmarketWeeks52High: \"Week 52 Hihg\",\r\n\tmarketWeeks52Low: \"Week 52 Low\",\r\n\tmarketDataName: \"Name\",\r\n\tmarketDataGraph: \"Graph\",\r\n\tmarketIEX :\"Data provided by Twelve Data\",\r\n\tmarketTime:\"Time\",\r\n\tmarketSource:\"Source\",\r\n\tmarketview: \"Show Details\",\r\n\r\n\ttradingDatadatefrom: \"From Date\",\r\n\ttradingDatadateto: \"To Date\",\r\n\ttradingDataEdit: \"Edit Referent Price\",\r\n\r\n\r\n\tnoFutureDate: \"Future dates not allowed.\",\r\n\r\n\torderQtyMatched: \"Matched quantity\",\r\n\talarmTime: \"Alarm time\",\r\n\talarmCrossName: \"Cross alarm\",\r\n\talarmProductName: \"Product alarm\",\r\n\talarmClientName: \"Client alarm\",\r\n\r\n\ttradingDataMessage: \"Price Calculation Over\",\r\n\ttradingDataMessageTitle: \"Referent Price Calculation\",\r\n\ttradingDataConfim: \"OK\",\r\n\ttradingDataReportDate: \"Calculation Date\",\r\n\r\n\tmarginsDataMessage: \"Margins Data Calculation Over\",\r\n\tmarginsDataMessageTitle: \"Margins Data Calculation\",\r\n\tmarginsDataConfim: \"OK\",\r\n\tmarginsDataReportDate: \"Calculation Date\",\r\n\r\n\tattrCompTypeLessThan: \"<=\",\r\n\tattrCompTypeEqual: \"=\",\r\n\tattrCompTypeMoreThan: \">=\",\r\n\tattrCompType: \"Comparator\",\r\n\tproductAttributeHasStandard: \"Has Standard Value\",\r\n\tproductAttributeStandardValue: \"Standard Value\",\r\n\r\n\torderParameters: \"Order parameters\",\r\n\ttradeParameters: \"Trade parameters\",\r\n\torderDepositeAmount: \"Needed deposite amount\",\r\n\torderDepositeAmountPayed: \"Payed deposite amount\",\r\n\tpaymentAmtBal: \"Ammount ballance\",\r\n\tpaymentAmtBalNonAlloc: \"Not allocated ballance\",\r\n\r\n\tattributeSRPS: \"SRPS quality\",\r\n\r\n\tpaymentAmtOrdersBal: \"Orders state\",\r\n\tpaymentAmtTradesBal: \"Transactions state\",\r\n\r\n\tdeliveryTradeQty: \"Agreed quantity\",\r\n\tdeliveryLeftQty: \"Left for delivery\",\r\n\t\r\n\tclientCardTitle: \"Client Card\",\r\n\r\n\talarmProductClientName: \"Alram for client and product\",\r\n\talarmBuyOrderNumber: \"Buy order number\",\r\n\talarmSellOrderNumber: \"Sell order number\",\r\n\tallowSystemNotifications: \"Turn on system notifications\",\r\n\r\n\tnavPortfolio: \"Portfolio\",\r\n\r\n\tportfSymbol: \"Symbol\",\r\n\tportfExchCode: \"Exchange\",\r\n\tportfCurrCode: \"Currency\",\r\n\tportfQty: \"Quantity\",\r\n\tportfPchPrice: \"Purchase Price\",\r\n\tportfPchAmt: \"Purchase Value\",\r\n\tportfMktPrice: \"Market price\",\r\n\tportfMktAmt: \"Market Value\",\r\n\tportfDiffPerc: \"Difference %\",\r\n\tportfDiffAmt: \"Difference\",\r\n\tportfIsin:\"Isin\",\r\n\tportfSecName:\"Name\",\r\n\tportfDepositor: \"Depozitor\",\r\n\tportfSecAccType: \"ACC. Type\",\r\n\tportfSecAccount: \"Account\",\r\n\tportfOnExchYes: \"On Exchange\",\r\n\tportfOnExchNo: \"Not on Exchange\",\r\n\r\n\terrorTitle: \"Error\",\r\n\terrorConfirm: \"OK\",\r\n\terrorMessageChangePass: \"Weak Password\",\r\n\terrorSuccessTitle: \"Password Change\",\r\n\terrorSuccess: \"Password Change Successful\",\r\n\r\n\tsettingsPasswordChangeMenu: \"Password Change\",\r\n\r\n\tnavCashBalance: \"Cash Balance\",\r\n\r\n\tcashCurrCode: \"Currecy\",\r\n\tcashAccUse: \"Buy/Sell\",\r\n\tcashAccNo: \"Number\",\r\n\tcashBank: \"Bank\", \r\n\tcashCurrentAmt: \"Current\",\r\n\tcashSellNetAmt: \"Net Buy\",\r\n\tcashBuyNetAmt: \"Net Sell\",\r\n\tcashSettledAmt: \"Settled\",\r\n\tcashBankAmt: \"Bank amt.\",\r\n\tcashSellOrdAmt: \"Active Sell orders\",\r\n\tcashBuyOrdAmt: \"Active Buy orders\",\r\n\tcashAvailAmt: \"Available\",\r\n\tcashImportTime: \"Import Time\",\r\n\r\n\tdomForSideDomestic: \"Domestic\",\r\n\tdomforSideForeign: \"Foreign\",\r\n\tdomForMarket: \"Market\",\r\n\tdomForDefDom: \"Domestic/def \",\r\n\tdomForDefFor: \"Foreign/def \",\r\n\tdomForCurrCode: \"Currency\",\r\n\tdomForAccSide: \"Side\",\r\n\tdomForChange: \"Change\",\r\n\r\n\tnavSecuritiyAccounts: \"Security Accounts\",\r\n\tnavMoneyAccounts:\"Money Accounts\",\r\n\r\n\tnavSupport: \"Support\",\r\n\r\n\torderChecked: \"Warning: Realized price and value of the order may significantly deviate from current market price.\",\r\n\r\n\totherSettingsMenu: \"Other Settings\",\r\n\tconfirmOrderSetting: \"Extra order verification\",\r\n\r\n\tcurrCodeSettl: \"Settlement Currency\",\r\n amountSettl: \"Settlement Amount\",\r\n settlState: \"Settlement State\"\r\n\r\n\r\n//\terrorProductAttributeDelete: \"Atribut proizvoda koji je bio u nekom nalogu ne može da se briše.\",\r\n\r\n\r\n};\r\n","export const enErrors = {\r\n\t\"http-login-error\": \"Can't connect to the server\",\r\n};\r\n","import React, { useMemo, useEffect } from \"react\";\r\nimport { useTransalation } from \"./translations\";\r\nimport moment from \"moment\";\r\nimport { LocalizationKey, LocalizationLanguage } from \"./types\";\r\nimport { ErrorData } from \"../http/types\";\r\nimport numeral from \"numeral\";\r\n\r\nnumeral.register(\"locale\", LocalizationLanguage.SR, {\r\n\tdelimiters: {\r\n\t\tdecimal: \",\",\r\n\t\tthousands: \".\",\r\n\t},\r\n\tabbreviations: {\r\n\t\tthousand: \"k\",\r\n\t\tmillion: \"m\",\r\n\t\tbillion: \"b\",\r\n\t\ttrillion: \"t\",\r\n\t},\r\n\tordinal: function (number) {\r\n\t\treturn number === 1 ? \"ac\" : \"ci\";\r\n\t},\r\n\tcurrency: {\r\n\t\tsymbol: \"RSD\",\r\n\t},\r\n});\r\n\r\nexport interface NumberSeparators {\r\n\tdecimal: string;\r\n\tthousands: string;\r\n}\r\n\r\nexport interface Localization {\r\n\tgetString: (key: LocalizationKey) => string;\r\n\tgetDateString: (date?: Date, format?: string) => string;\r\n\tgetDateTimeString: (date?: Date) => string;\r\n\tgetErrorString: (error: ErrorData) => string;\r\n\tlanguage: () => LocalizationLanguage;\r\n\tgetNumberString: (num?: number, format?: string) => string;\r\n\tgetFormatedNumberString: (num?: number, money?: boolean) => string;\r\n\tgetFormatedNumberString4: (num?: number, money?: boolean) => string;\r\n\tgetNumber: (value?: string) => number | undefined;\r\n\tgetSeparators: () => NumberSeparators;\r\n}\r\n\r\nexport const LocalizationContext = React.createContext({\r\n\tgetString: key => key,\r\n\tgetDateString: date => date?.toString() || \"\",\r\n\tgetDateTimeString: date => date?.toString() || \"\",\r\n\tgetErrorString: error => error.message,\r\n\tlanguage: () => LocalizationLanguage.SR,\r\n\tgetNumberString: (num?: number, format?: string) => (num ? num.toString() : \"\"),\r\n\tgetFormatedNumberString: (num?: number) => (num ? num.toString() : \"\"),\r\n\tgetFormatedNumberString4: (num?: number) => (num ? num.toString() : \"\"),\r\n\tgetNumber: (value?: string) => (value ? parseFloat(value) : undefined),\r\n\tgetSeparators: () => ({ decimal: \"\", thousands: \"\" }),\r\n});\r\n\r\nconst momentDateString = (date: Date | undefined, format: string | undefined): string => {\r\n\tif (!date) return \"\";\r\n\tconst mnt = moment(date);\r\n\tif (!format) format = \"l\";\r\n\treturn mnt.format(format);\r\n};\r\n\r\nexport const LocalizationContextProvider: React.FunctionComponent = props => {\r\n\tconst [translations, errorTranslations] = useTransalation();\r\n\r\n\tuseEffect(() => {\r\n\t\t// moment.locale(translations.momentLocale);\r\n\t\tmoment.locale(\"sr\");\r\n\t\tnumeral.locale(translations.language);\r\n\t}, [translations]);\r\n\r\n\tconst translate: Localization = useMemo(\r\n\t\t() => ({\r\n\t\t\tgetString: key => translations[key] || key,\r\n\t\t\tgetDateString: momentDateString,\r\n\t\t\tgetDateTimeString: date => momentDateString(date, \"DD.MM.YYYY. HH:mm:ss\"),\r\n\t\t\tgetErrorString: error => errorTranslations[error.code] || error.message,\r\n\t\t\tlanguage: () => translations.language as LocalizationLanguage,\r\n\t\t\tgetNumberString: (num?: number, format?: string) => (num ? numeral(num).format(format) : \"\"),\r\n\t\t\tgetFormatedNumberString: (num?: number, money?: boolean) => {\r\n\t\t\t\tconst format = money === true ? \"0,0.00\" : \"0,0\";\r\n\t\t\t\treturn num ? numeral(num).format(format) : \"0\";\r\n\t\t\t},\r\n\t\t\tgetFormatedNumberString4: (num?: number, money?: boolean) => {\r\n\t\t\t\tconst format = money === true ? \"0,0.0000\" : \"0,0\";\r\n\t\t\t\treturn num ? numeral(num).format(format) : \"0\";\r\n\t\t\t},\r\n\t\t\tgetNumber: (value?: string) => {\r\n\t\t\t\tvar numValue = Number(value);\r\n\t\t\t\treturn isNaN(numValue) || value === \"\" ? undefined : numValue;\r\n\t\t\t},\r\n\t\t\tgetSeparators: () => {\r\n\t\t\t\tconst numeralLocale = numeral.localeData().delimiters;\r\n\t\t\t\treturn { decimal: numeralLocale.decimal, thousands: numeralLocale.thousands };\r\n\t\t\t},\r\n\t\t}),\r\n\t\t[translations, errorTranslations]\r\n\t);\r\n\r\n\treturn {props.children};\r\n};\r\n","import \"moment/locale/sr\";\r\nimport { TranslationsType, LocalizationLanguage } from \"./types\";\r\nimport { useLocalizationStore } from \"../../data/localization/hooks\";\r\nimport { srTranslation } from \"./srTranslation\";\r\nimport { srErrors } from \"./srErrors\";\r\nimport { enTranslations } from \"./enTranslations\";\r\nimport { enErrors } from \"./enErrors\";\r\n\r\nexport const useTransalation = (): TranslationsType => {\r\n\tconst [selected] = useLocalizationStore();\r\n\tif (selected === LocalizationLanguage.SR) {\r\n\t\treturn [srTranslation, srErrors];\r\n\t} else {\r\n\t\treturn [enTranslations, enErrors];\r\n\t}\r\n};\r\n","export const wait = (ms: number) => new Promise(res => setTimeout(res, ms));\r\n\r\nexport const getDateFromSR = (dateString?: string) => {\r\n\tif (!dateString) {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst dateParts = dateString.split(\" \")[0].split(\".\");\r\n\r\n\tif (dateParts.length < 3) {\r\n\t\treturn undefined;\r\n\t}\r\n\tconst day = parseInt(dateParts[0]);\r\n\tconst month = parseInt(dateParts[1]) - 1;\r\n\tconst year = parseInt(dateParts[2]);\r\n\r\n\treturn new Date(year, month, day);\r\n};\r\n\r\nexport const exhaustiveCheck = (param: never): never => {\r\n\tthrow new Error(`should not reach here (${param})`);\r\n};\r\n\r\nexport function normalize(employee?: T): T {\r\n\treturn Object.keys(employee || {}).reduce((normalized, field) => {\r\n\t\tconst value: any = employee ? employee[field as keyof T] : undefined;\r\n\t\treturn {\r\n\t\t\t...normalized,\r\n\t\t\t[field]: value === \"\" || value === null ? undefined : value,\r\n\t\t};\r\n\t}, {} as T);\r\n}\r\n\r\nexport const getEditLocation = (\r\n\tbasePath: string,\r\n\tpart?: string,\r\n\tid?: string,\r\n\tsubItemId?: string,\r\n\taction?: string\r\n) => {\r\n\r\n\tlet location = `${basePath}/${action || \"edit\"}`;\r\n\r\n\tif (part !== undefined) {\r\n\t\tlocation = `${location}/${part}`;\r\n\t}\r\n\r\n\tif (id !== undefined) {\r\n\t\tlocation = `${location}/${id}`;\r\n\t}\r\n\r\n\tif (subItemId !== undefined) {\r\n\t\tlocation = `${location}/edit/${subItemId}`;\r\n\t}\r\n\r\n\treturn location;\r\n};\r\n\r\nexport const getParamsDateString = (dateString?: string): string | undefined => {\r\n\tconst date = dateString ? new Date(dateString) : undefined;\r\n\treturn date ? `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}` : undefined;\r\n};\r\n\r\nexport const isValidDate = (date: any): date is Date => date && date instanceof Date && !isNaN(date.getTime())\r\n\r\nexport const countDecimals = (value?: number) => {\r\n if (value && Math.floor(value) !== value)\r\n return value.toString().split(\".\")[1].length || 0;\r\n return 0;\r\n}","import { useState, useCallback, useMemo, useEffect, useRef } from \"react\";\r\nimport { normalize } from \"./functions\";\r\nimport React from \"react\";\r\nimport { ValidationState } from \"./types\";\r\nimport deepEqual from \"deep-equal\";\r\n\r\nexport const useToggleState = (initialState: boolean = false) => {\r\n\tconst [state, setState] = useState(initialState);\r\n\r\n\tconst toggleState = useCallback(() => setState(currentState => !currentState), [setState]);\r\n\r\n\treturn [state, toggleState, setState] as [\r\n\t\tboolean,\r\n\t\t() => void,\r\n\t\tReact.Dispatch>\r\n\t];\r\n};\r\n\r\nexport type BooleanDictionary = {\r\n\t[key: string]: boolean;\r\n};\r\n\r\nexport type BooleanDictionaryTogglers = {\r\n\t[key: string]: () => void;\r\n};\r\n\r\nexport const useToggleStateDictionary = (keys: string[], openKeys?: string[]) => {\r\n\tconst [dictionary, setDictionary] = useState(() =>\r\n\t\tkeys.reduce((dict, key) => {\r\n\t\t\tdict[key] = openKeys !== undefined && openKeys.some(ok => ok === key);\r\n\t\t\treturn dict;\r\n\t\t}, {} as BooleanDictionary)\r\n\t);\r\n\r\n\tconst dictionaryTogglers = useMemo(\r\n\t\t() =>\r\n\t\t\tkeys.reduce((togglers, key) => {\r\n\t\t\t\ttogglers[key] = createToggleDictionaryState(dictionary, setDictionary, keys, key);\r\n\t\t\t\treturn togglers;\r\n\t\t\t}, {} as BooleanDictionaryTogglers),\r\n\t\t[keys, setDictionary, dictionary]\r\n\t);\r\n\r\n\treturn [dictionary, dictionaryTogglers] as [BooleanDictionary, BooleanDictionaryTogglers];\r\n};\r\n\r\nconst createToggleDictionaryState = (\r\n\tdictionary: BooleanDictionary,\r\n\tsetDictionary: (dictionary: BooleanDictionary) => void,\r\n\tkeys: string[],\r\n\ttoggleKey: string\r\n) => () => {\r\n\tconst newDictionary: BooleanDictionary = {};\r\n\tkeys.forEach(key => {\r\n\t\tnewDictionary[key] = toggleKey === key ? !dictionary[key] : false;\r\n\t});\r\n\tsetDictionary(newDictionary);\r\n};\r\n\r\nexport type AditionalValidation> = (\r\n\titemState: TItem,\r\n\tvalidationState: TValidationState\r\n) => TValidationState;\r\n\r\nexport const createUseValidator = = ValidationState>(\r\n\tinitialValidatorState: TValidationState,\r\n\tadditionalValidation?: AditionalValidation\r\n) => () => {\r\n\tconst [validationState, setValidationState] = useState(initialValidatorState);\r\n\r\n\tconst validate = useCallback(\r\n\t\t(item?: TItem) => {\r\n\t\t\tconst normalized = normalize(item);\r\n\t\t\tlet newState = Object.keys(validationState).reduce((validated, field) => {\r\n\t\t\t\tconst validField = normalized[field as keyof TItem] !== undefined;\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...validated,\r\n\t\t\t\t\t[field]: validField,\r\n\t\t\t\t};\r\n\t\t\t}, {} as TValidationState);\r\n\r\n\t\t\tif (additionalValidation) {\r\n\t\t\t\tnewState = additionalValidation(normalized, newState);\r\n\t\t\t}\r\n\r\n\t\t\tconst valid = Object.keys(newState).reduce((validated, field) => {\r\n\t\t\t\treturn validated && (newState[field as keyof TValidationState] as boolean);\r\n\t\t\t}, true as boolean);\r\n\r\n\t\t\tsetValidationState(newState);\r\n\t\t\treturn valid ? normalized : undefined;\r\n\t\t},\r\n\t\t[validationState, setValidationState]\r\n\t);\r\n\r\n\treturn [validationState, validate] as [typeof validationState, typeof validate];\r\n};\r\n\r\nexport default function useDebounce(value: T, delay: number = 500) {\r\n\tconst [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst handler = setTimeout(() => {\r\n\t\t\tsetDebouncedValue(value);\r\n\t\t}, delay);\r\n\r\n\t\treturn () => {\r\n\t\t\tclearTimeout(handler);\r\n\t\t};\r\n\t}, [value, delay]);\r\n\r\n\treturn debouncedValue;\r\n}\r\n\r\nexport function useDebounceState(\r\n\tinitState: T | (() => T),\r\n\tinitDelay: number = 500\r\n): [T, React.Dispatch>] {\r\n\tconst [state, setState] = useState(initState);\r\n\tconst timeout = useRef();\r\n\r\n\tuseEffect(() => () => timeout.current && clearTimeout(timeout.current), []);\r\n\r\n\tconst setNextState = useCallback(\r\n\t\t(nextState: React.SetStateAction) => {\r\n\t\t\tif (timeout.current) clearTimeout(timeout.current);\r\n\r\n\t\t\ttimeout.current = setTimeout(() => {\r\n\t\t\t\tsetState(nextState);\r\n\t\t\t}, initDelay);\r\n\t\t},\r\n\t\t[initDelay]\r\n\t);\r\n\r\n\treturn [state, setNextState];\r\n}\r\n\r\nexport const useCopiedState = (original?: T, followOriginal?: boolean) => {\r\n\tconst [copyState, setCopyState] = React.useState(original);\r\n\tconst [changeCalled, setChangeCalled] = React.useState(false);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tsetCopyState(e => ((e || !original) && !followOriginal ? e : original));\r\n\t}, [original, setCopyState, followOriginal]);\r\n\r\n\tconst editCopyState = React.useCallback(\r\n\t\t(field: keyof T, value: any) => {\r\n\t\t\tsetCopyState(e => (e ? { ...e, [field]: value } : e));\r\n\t\t\tsetChangeCalled(true);\r\n\t\t},\r\n\t\t[setCopyState]\r\n\t);\r\n\r\n\tconst changed = React.useMemo(() => changeCalled && !deepEqual(original, copyState), [original, copyState, changeCalled]);\r\n\r\n\treturn [copyState, editCopyState, changed, setCopyState] as [typeof copyState, typeof editCopyState, boolean, typeof setCopyState];\r\n};\r\n","import { Theme, makeStyles, createStyles } from \"@material-ui/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../core/store/reducers\";\r\n\r\nexport const useMainBarStyles = makeStyles((theme: Theme) => {\r\n\tconst { permanentBreakpoint, fullWidth } = theme.navDrawer;\r\n\r\n\tconst colorBdd = useSelector(\r\n\t\t(store) => store.ux.auth.colorBdd\r\n\t);\r\n\t\r\n\treturn createStyles({\r\n\t\tappBar: {\r\n\t\t\t// [permanentBreakpoint]: {\r\n\t\t\t// \twidth: `calc(100% - ${hiddenWidth}px)`,\r\n\t\t\t// \tmarginLeft: hiddenWidth,\r\n\t\t\t// },\r\n\t\t\t[permanentBreakpoint]: {\r\n\t\t\t\twidth: `calc(100% - ${fullWidth}px)`,\r\n\t\t\t\tmarginLeft: fullWidth,\r\n\t\t\t},\r\n\t\t\tbackground: colorBdd,\r\n\t\t},\r\n\t\tappBarBdd: {\r\n\t\t\t// [permanentBreakpoint]: {\r\n\t\t\t// \twidth: `calc(100% - ${hiddenWidth}px)`,\r\n\t\t\t// \tmarginLeft: hiddenWidth,\r\n\t\t\t// },\r\n\t\t\t[permanentBreakpoint]: {\r\n\t\t\t\twidth: `calc(100% - ${fullWidth}px)`,\r\n\t\t\t\tmarginLeft: fullWidth,\r\n\t\t\t},\r\n\t\t\tbackground: colorBdd,\r\n//\t\t\tbackground: \"#133D8D\",\r\n\t\t},\r\n\t\tappBaraContent: {\r\n//\t\t\talignItems: \"baseline\",\r\n\t\t\talignItems: \"center\",\r\n\t\t\tjustifyContent: \"space-between\",\r\n\t\t},\r\n\t\ttitleArea: {\r\n\t\t\tdisplay: \"flex\",\r\n//\t\t\tjustifyContent: \"center\",\r\n\t\t\tjustifyContent: \"space-between\",\r\n//\t\t\talignItems: \"baseline\",\r\n\t\t\talignItems: \"center\",\r\n\t\t},\r\n\t\tlogo: {\r\n\t\t\twidth: 200,\r\n\t\t },\r\n\t\tmenuButton: {\r\n\t\t\t[permanentBreakpoint]: {\r\n\t\t\t\tdisplay: \"none\",\r\n\t\t\t},\r\n\t\t\tmarginRight: theme.spacing(2),\r\n\t\t},\r\n\t});\r\n});\r\n","import axios from \"axios\";\r\nimport { appConfig } from \"../config/config\";\r\n\r\nconst instance = axios.create(appConfig.http);\r\n\r\ninstance.interceptors.request.use(requestConfig => {\r\n\treturn requestConfig;\r\n});\r\n\r\nexport default instance;\r\n","import { ThunkType } from \"../store/reducers\";\r\n\r\nexport interface ErrorData {\r\n\tmessage: string;\r\n\tcode: string;\r\n}\r\n\r\nexport enum ErrorCodes {\r\n\tAuthWrongToken = \"ERROR-4\",\r\n\tHTTPLoginError = \"http-login-error\",\r\n\tOrderNoFunds = \"NOFUNDS\",\r\n\tUniqueConstraint = \"E-91\",\r\n}\r\n\r\nexport type APIResponse =\r\n\t| SucessAPIResponse\r\n\t| ApiErrorResponse;\r\n\r\nexport type SucessAPIResponse = {\r\n\tresCode: \"OK\";\r\n\tresDesc: string;\r\n\tobj: T;\r\n};\r\n\r\nexport type ApiErrorResponse = {\r\n\tresCode: ErrorCodes;\r\n\tresDesc: string;\r\n};\r\n\r\nexport type HTTPWebApiResponse = WebApiResponse>;\r\n\r\nexport type WebApiResponse = ThunkType>;\r\n\r\nexport type WebApiWholeResponse = ThunkType | undefined>>;\r\n","import { AxiosRequestConfig, AxiosResponse } from \"axios\";\r\nimport axiosIntance from \"./axiosInstance\";\r\nimport { ApiErrorResponse, APIResponse, HTTPWebApiResponse, WebApiResponse, WebApiWholeResponse } from \"./types\";\r\nimport { pushError } from \"../../data/snackbar/snackbarDataSlice\";\r\nimport { v4 } from \"uuid\";\r\n\r\nconst getHTTPErrorMessage = (responseCode?: string) => {\r\n\tif (responseCode) {\r\n\t\treturn `HTTP error (${responseCode})`;\r\n\t} else {\r\n\t\treturn `HTTP error`;\r\n\t}\r\n};\r\n\r\nconst dipatchHTTPError = (dispatch: any, message: string, responseCode?: string) =>\r\n\tdipatchError(dispatch, message, getHTTPErrorMessage(responseCode));\r\n\r\nconst dipatchError = (dispatch: any, message: string, title?: string, ) =>\r\n\tdispatch(\r\n\t\tpushError({\r\n\t\t\tid: v4(),\r\n\t\t\tmessage: [message],\r\n\t\t\ttitle: title || \"Error\",\r\n\t\t})\r\n\t);\r\n\r\nexport const httpWebApiRaw = (\r\n\trequest: AxiosRequestConfig,\r\n\tresponseMapper: (res: AxiosResponse>) => APIResponse,\r\n\ttoken?: string,\r\n): HTTPWebApiResponse => async (dispatch, getState) => {\r\n\ttry {\r\n\t\tif (!request.headers) {\r\n\t\t\trequest.headers = {};\r\n\t\t}\r\n\r\n\t\tconst headerToken = token || getState().data.auth.token;\r\n\r\n\t\tif (headerToken) {\r\n\t\t\trequest.headers[\"Authorization\"] = `Bearer ${headerToken}`;\r\n\t\t}\r\n\r\n\t\tconst response = await axiosIntance.request>(request);\r\n\t\tif (response.status === 200) {\r\n\t\t\treturn responseMapper(response);\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tif (error.response) {\r\n\t\t\tdipatchHTTPError(dispatch, error.data, error.status);\r\n\t\t} else if (error.request) {\r\n\t\t\tdipatchHTTPError(dispatch, \"No response from server!\");\r\n\t\t} else {\r\n\t\t\tdipatchHTTPError(dispatch, error.message);\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n};\r\nexport const httpWebApi = (\r\n\trequest: AxiosRequestConfig,\r\n\ttoken?: string) => httpWebApiRaw(request, response => response.data, token)\r\n\r\nexport const webApi = (request: AxiosRequestConfig, getErrorMessage?: (error:ApiErrorResponse) => string): WebApiResponse => async (dispatch, getState) => {\r\n\tconst response = await dispatch(webApiWithResponse(request, getErrorMessage));\r\n\treturn response !== undefined && response.resCode === \"OK\" ? response.obj : undefined;\r\n};\r\n\r\n\r\n\r\nconst globalErrorExceptions = [\"NOFUNDS\", \"E--1\", \"M-15\",\"M-16\",\"M-17\",\"E-9\",\"M-1\",\"M-2\",\"M-3\",\"M-4\",\"M-9\",\"M-10\",\"M-11\",\"M-12\",\"M-13\",\"M-22\" ] \r\nexport const webApiWithResponse = (request: AxiosRequestConfig, getErrorMessage?: (error:ApiErrorResponse) => string, errorExceptions?: string[]): WebApiWholeResponse => async (\r\n\tdispatch,\r\n\tgetState\r\n) => {\r\n\ttry {\r\n\t\tconst response = await dispatch(httpWebApi(request));\r\n\r\n\t\tif (response === undefined) {\r\n\t\t\treturn response;\r\n\t\t}\r\n\r\n\t\tconst exceptionCodes = errorExceptions ? [...globalErrorExceptions, ...errorExceptions] : globalErrorExceptions;\r\n\r\n\t\tif (response.resCode !== \"OK\" && exceptionCodes.indexOf(response.resCode) === -1) {\r\n\t\t\tconst errorMessage = getErrorMessage ? getErrorMessage(response) : response.resDesc\r\n\t\t\tdipatchError(dispatch, errorMessage);\r\n\t\t}\r\n\r\n\t\treturn response;\r\n\t} catch (error) {\r\n\t\tdipatchError(dispatch, error.toString());\r\n\t\treturn undefined;\r\n\t}\r\n};\r\n\r\nexport const httpWebApiFile = (\r\n\trequest: AxiosRequestConfig,\r\n\ttoken?: string) => httpWebApiRaw(request, response => {\r\n\t\treturn response.data\r\n\t}, token)\r\n","import { httpWebApi } from \"../../../core/http/httpThunks\";\r\nimport { LoginResponse } from \"../../models\";\r\nimport { LocalizationLanguage } from \"../../../core/localization/types\";\r\n\r\nexport const firstLoginWebApi = (username: string, password: string, lang: LocalizationLanguage, origin: string) =>\r\n\thttpWebApi({\r\n\t\tmethod: \"POST\",\r\n\t\turl: \"user/firstuserlogin\",\r\n\t\tdata: {\r\n\t\t\tusername,\r\n\t\t\tpassword,\r\n\t\t\tlang,\r\n\t\t\torigin,\r\n\t\t},\r\n\t});\r\n","import { httpWebApi } from \"../../../core/http/httpThunks\";\r\nimport { LoginResponse } from \"../../models\";\r\nimport { LocalizationLanguage } from \"../../../core/localization/types\";\r\n\r\nexport const loginWebApi = (username: string, password: string, lang: LocalizationLanguage, origin: string, token: string) =>\r\n\thttpWebApi({\r\n\t\tmethod: \"POST\",\r\n\t\turl: \"user/checkuserlogin\",\r\n\t\tdata: {\r\n\t\t\tusername,\r\n\t\t\tpassword,\r\n\t\t\tlang,\r\n\t\t\torigin,\r\n\t\t},\r\n\t}, token);\r\n","import { LocalizationLanguage } from \"../../core/localization/types\";\r\nimport { ThunkType } from \"../../core/store/reducers\";\r\nimport { firstLoginWebApi } from \"./api/firstLogin\";\r\nimport { loginWebApi } from \"./api/login\";\r\nimport { successfulLogin, failedLogin, setPendingLoginState, setToken } from \"./authDataSlice\";\r\nimport { deleteUserToken } from \"./authUXSlice\";\r\nimport { ErrorCodes } from \"../../core/http/types\";\r\nimport { LoginResponse } from \"../models\";\r\n\r\n// const fakeLogin: LoginResponse = {\r\n// \tuData: {\r\n// \t\tuserId: \"test\",\r\n// \t\tuserIsEmployee: 1,\r\n// \t\tuserName: \"dimitrije\",\r\n// \t\ttoken:\r\n// \t\t\t\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJUb2tlbklkIjoiOWE4M2FmOTItMWFiYi00NjIyLWJmYTgtZjkzNmU4ZGIyN2JmIiwiVXNlcklkIjoiMDAwMjYwMTgiLCJVc2VyVHlwZSI6IkVNUCIsIlVzZXJJZE5vIjoiMjYwNTk3NTgwMDAzNCIsIm5iZiI6MTYwMDU5OTE5NCwiZXhwIjoxNjk1MjA3MTk0LCJpYXQiOjE2MDA1OTkxOTQsImlzcyI6Imh0dHA6Ly93d3cuaW5mb3Byby5jby5ycyIsImF1ZCI6Imh0dHA6Ly93d3cuaW5mb3Byby5jby5ycyJ9.irYni3vFlNT0g6gnUrneU8d9MLxNT6oiJMlI72oF1A0\",\r\n// \t\temployeeId: \"\",\r\n// \t\temployeeCode: \"\",\r\n// \t\temployeeName: \"\",\r\n// \t\temployeeIdNo: \"\",\r\n// \t\tclientPersonId: \"\",\r\n// \t\tclientPersonIdNo: \"\",\r\n// \t\tclientPersonName: \"\",\r\n// \t\tclientId: \"\",\r\n// \t\tclientIdNo: \"\",\r\n// \t\tclientName: \"\",\r\n// \t\tcontractId: \"\",\r\n// \t\tcompanyId: \"\",\r\n// \t\tcompanyIdNo: \"\",\r\n// \t\tcompanyRegNo: \"\",\r\n// \t\tcompanyTaxNo: \"\",\r\n// \t\tcompanyName: \"\",\r\n// \t\tneedCertificate: false,\r\n// \t\thasNoMarketData: false,\r\n// \t\tordersAllowed: true,\r\n// \t\tlanguage: LocalizationLanguage.SR,\r\n// \t\troleCode: \"\",\r\n// \t},\r\n// \tattributes: [],\r\n// \tproductsGroups: [],\r\n// \tproducts: [],\r\n// \tcities: [],\r\n// \tclientTypes: [],\r\n// \tbanks: [],\r\n// \tcurrencies: [],\r\n// \tunits: [],\r\n// \tvatRates: [],\r\n// \tcommissions: [],\r\n// \tregions: [],\r\n// \tsubRegions: [],\r\n// \ttopRegions: [],\r\n// \tcountries: [],\r\n// \tcommissionTypes: [],\r\n// \tpersonRoles: [],\r\n// \tuserMenu: [],\r\n// \torderReceiveMethods: [],\r\n// \tcheckPointPayers: [],\r\n// \tcheckPoints: [],\r\n// \tfrancoList: [],\r\n// \torderStatuses: [],\r\n// \ttradeStatuses: [],\r\n// \tpayTypes: [],\r\n// \tcheckDoneByList: [],\r\n// \tpayTypesG: [],\r\n// \tattributesValues: [],\r\n// \torderNotes: [],\r\n// \tinvTypes: [],\r\n// };\r\nexport const loginUser = (\r\n\tusername: string,\r\n\tpassword: string,\r\n\tlanguage: LocalizationLanguage,\r\n\torigin: string\r\n): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status === \"successful\") {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst token = store.ux.auth.users[username.toLowerCase()];\r\n\r\n\tdispatch(setPendingLoginState());\r\n\r\n\tconst loginResponse = !token\r\n\t\t? await dispatch(firstLoginWebApi(username, password, language, origin))\r\n\t\t: await dispatch(loginWebApi(username, password, language, origin, token));\r\n\r\n\tif (!loginResponse) {\r\n\t\tdispatch(\r\n\t\t\tfailedLogin({\r\n\t\t\t\tcode: ErrorCodes.HTTPLoginError,\r\n\t\t\t\tmessage: \"Greška u komunikaciji sa serverom.\",\r\n\t\t\t})\r\n\t\t);\r\n\t} else if (loginResponse.resCode !== \"OK\") {\r\n\t\tif (loginResponse.resCode === ErrorCodes.AuthWrongToken) {\r\n\t\t\tdispatch(deleteUserToken(username))\r\n\t\t}\r\n\r\n\t\tdispatch(\r\n\t\t\tfailedLogin({\r\n\t\t\t\tcode: loginResponse.resCode,\r\n\t\t\t\tmessage: loginResponse.resDesc,\r\n\t\t\t})\r\n\t\t);\r\n\t} else {\r\n\t\tdispatch(setToken(loginResponse.obj.uData.token || token));\r\n\t\tdispatch(successfulLogin(loginResponse.obj));\r\n\t}\r\n};\r\n","import React from \"react\";\r\n\r\nexport type LinkMenuItemType = {\r\n\ttype: \"Link\";\r\n\tkey: string;\r\n\ttitle: string;\r\n\tComponent: PageComponent;\r\n\tpath: string;\r\n\ticon?: React.FunctionComponent;\r\n\thidden?: boolean;\r\n\taccessRights: AccessRights;\r\n};\r\n\r\nexport type SubmenuMenuItemType = {\r\n\ttype: \"Menu\";\r\n\tkey: string;\r\n\ttitle: string;\r\n\titems: MenuItemType[];\r\n\ticon?: React.FunctionComponent;\r\n\thidden?: boolean;\r\n};\r\n\r\nexport enum AccessRights {\r\n\tAll = 0,\r\n\tReadOnly = 1,\r\n\tNone = -1,\r\n}\r\n\r\nexport interface PageComponentProps {\r\n\tuserAccessRights: AccessRights;\r\n}\r\n\r\nexport type PageComponent = React.FunctionComponent<\r\n\tTProps\r\n>;\r\n\r\nexport type MenuItemType = LinkMenuItemType | SubmenuMenuItemType;\r\n\r\nexport type NavigationItem = {\r\n\tisMenuItem: boolean;\r\n\tComponent: React.FunctionComponent;\r\n\tpath: string;\r\n\tnotifications?: boolean;\r\n};","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { loginUser } from \"./thunks\";\r\nimport { AuthorizationState } from \"./types\";\r\nimport { StoreType } from \"../../core/store/reducers\";\r\nimport { useCallback } from \"react\";\r\nimport { resetLoginState, removeToken } from \"./authDataSlice\";\r\nimport { deleteUserToken } from \"./authUXSlice\";\r\n\r\nexport const useAuth = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst authStatus = useSelector(store => store.data.auth.current);\r\n\tconst user = useSelector(store => store.ux.auth.lastLoginUsername);\r\n\r\n\r\n\tconst loginCallback = useCallback(\r\n\t\t(username, password, language, origin) => dispatch(loginUser(username, password, language, origin)),\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\tconst logoutCallback = useCallback(() => {\r\n\t\tdispatch(resetLoginState())\r\n\t\tdispatch(removeToken())\r\n\t\tuser && dispatch(deleteUserToken(user))\r\n\t}, [dispatch]);\r\n\r\n\treturn [authStatus, loginCallback, logoutCallback] as [\r\n\t\ttypeof authStatus,\r\n\t\ttypeof loginCallback,\r\n\t\ttypeof logoutCallback\r\n\t];\r\n};\r\n\r\nexport const useLastLoginUsername = () =>\r\n\tuseSelector(store => store.ux.auth.lastLoginUsername || \"\");\r\n","import { Theme, makeStyles, createStyles } from \"@material-ui/core\";\r\n\r\nexport const useUserAvatarStyles = makeStyles((theme: Theme) => {\r\n\tconst { permanentBreakpoint } = theme.navDrawer\r\n\treturn createStyles({\r\n\t\troot: {\r\n\t\t\talignItems: \"baseline\",\r\n\t\t\tdisplay: \"flex\",\r\n\t\t},\r\n\t\tavatar: {},\r\n\t\tname: {\r\n\t\t\tdisplay: \"none\",\r\n\t\t\t[permanentBreakpoint]: {\r\n\t\t\t\tdisplay: \"inline\"\r\n\t\t\t}\r\n\t\t},\r\n\t});\r\n});\r\n","import * as signalR from \"@microsoft/signalr\";\r\n\r\nconst reconnectTimeout = 10 * 1000;\r\n\r\nexport class ConnextionManager {\r\n\tprivate readonly hubUrl: string;\r\n\tprivate readonly token: string;\r\n\tprivate connection?: signalR.HubConnection;\r\n\r\n\tconstructor(hubUrl: string, token: string) {\r\n\t\tthis.hubUrl = hubUrl;\r\n\t\tthis.token = token;\r\n\t\tthis.createConnection();\r\n\t}\r\n\t\r\n\tprivate createConnection = () => {\r\n\t\tthis.connection = new signalR.HubConnectionBuilder()\r\n\t\t\t.withUrl(this.hubUrl, { accessTokenFactory: () => this.token })\r\n\t\t\t.configureLogging(signalR.LogLevel.Information)\r\n .build();\r\n\r\n this.connection.onclose(async error => {\r\n console.log(\"SignalR closed\", error)\r\n await this.start()\r\n })\r\n\t}\r\n\r\n\tpublic start = async () => {\r\n\t\ttry {\r\n\t\t\tawait this.connection?.start();\r\n\t\t\tconsole.log(\"SignalR connected\");\r\n\t\t} catch (err) {\r\n\t\t\tconsole.log(\"SignalR connectio error\", err);\r\n\t\t\tsetTimeout(this.start, reconnectTimeout);\r\n\t\t}\r\n };\r\n \r\n public registerHandler = (type: string, handler: (e: T) => void) => {\r\n console.log(\"Subscribing\", type)\r\n this.connection?.on(type, handler);\r\n return () => this.connection?.off(type);\r\n\t}\r\n\r\n\tpublic stop = async () => {\r\n\t\tawait this.connection?.stop();\r\n\t}\r\n\r\n\tpublic reconnect = async () => {\r\n\t\tawait this.stop();\r\n\t\tthis.createConnection();\r\n\t\tawait this.start();\r\n\t}\r\n\r\n}\r\n","import React from \"react\";\r\nimport { ConnextionManager } from \"./ConnectionManager\";\r\n\r\nexport const NotificationContext = React.createContext({} as any);\r\n\r\nexport interface NotificationContextProviderProps {\r\n\thubUrl: string;\r\n\ttoken: string;\r\n\tconnect: boolean;\r\n}\r\n\r\nexport const NotificationContextProvider: React.FunctionComponent = ({\r\n\thubUrl,\r\n\ttoken,\r\n\tchildren,\r\n\tconnect,\r\n}) => {\r\n\tconst [connectionManager, setConnectionManager] = React.useState();\r\n\tReact.useEffect(() => {\r\n\t\t(async () => {\r\n\t\t\tconst manager = new ConnextionManager(hubUrl, token);\r\n\t\t\tif (connect) {\r\n\t\t\t\tawait manager.start();\r\n\t\t\t}\r\n\t\t\tsetConnectionManager(manager);\r\n\t\t})();\r\n\t}, [hubUrl, token, connect]);\r\n\r\n\treturn connectionManager ? (\r\n\t\t{children}\r\n\t) : null;\r\n};\r\n","import React from \"react\";\r\nimport { User } from \"../../data/auth/types\";\r\nimport { NotificationContext } from \"./NotificationContext\";\r\n\r\nexport const useNotificationHandler = (\r\n\ttype: string,\r\n\thandler: (e: TNotification) => void,\r\n\tdeps: React.DependencyList\r\n) => {\r\n\tconst connectionManager = React.useContext(NotificationContext);\r\n\tconst handlerCallback = React.useCallback(handler, deps);\r\n\tReact.useEffect(() => connectionManager.registerHandler(type, handlerCallback), [\r\n\t\tconnectionManager,\r\n\t\ttype,\r\n\t\thandlerCallback,\r\n\t]);\r\n};\r\n\r\nexport const useAlarmsChangedHandler = () => {\r\n\tconst connectionManager = React.useContext(NotificationContext);\r\n\tuseNotificationHandler(\"AlarmsModified\", () => connectionManager.reconnect(), [connectionManager]);\r\n};\r\n\r\nexport const canRecieveNotifications = (user: User) =>\r\n\tuser.roleCode === \"BROKER\" || user.roleCode === \"CONTROL\";\r\n","import React, { useContext, useRef } from \"react\";\r\nimport { useAuth } from \"../data/auth/hooks\";\r\nimport { Avatar, IconButton, Typography, Box, Menu, MenuItem } from \"@material-ui/core\";\r\nimport { useUserAvatarStyles } from \"./UserAvatarStyle\";\r\nimport { LocalizationContext } from \"../core/localization/Localization\";\r\nimport { canRecieveNotifications } from \"../core/notifications/hooks\";\r\nimport IdleTimer from \"react-idle-timer\";\r\n\r\nconst getInitials = (name: string) => {\r\n\tif (!name) {\r\n\t\treturn \"NN\";\r\n\t}\r\n\r\n\tconst nameWords = name.split(\" \");\r\n\tif (nameWords.length === 1) {\r\n\t\treturn nameWords[0].substring(0, 1).toUpperCase();\r\n\t}\r\n\r\n\treturn nameWords[0].substring(0, 1).toUpperCase() + nameWords[1].substring(0, 1).toUpperCase();\r\n};\r\n\r\nexport const IdleTimerContainer = () => {\r\n\tconst [authState, , logaout] = useAuth();\r\n\tconst idleTimerRef = useRef(null);\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n};\r\n\r\n\r\nexport const UserAvatar: React.FunctionComponent = porps => {\r\n\tconst styles = useUserAvatarStyles();\r\n\tconst { getString } = useContext(LocalizationContext);\r\n\tconst [authState, , logaout] = useAuth();\r\n\tconst [anchorEl, setAnchorEl] = React.useState(null);\r\n\tconst open = Boolean(anchorEl);\r\n\r\n{/*\tconst logoutTimerIdRef = useRef(0);\r\n\tReact.useEffect(() => {\r\n\t\tconst autoLogout = () => {\r\n\t\t\tif (document.visibilityState === 'hidden') {\r\n\t\t\t\t// set timer to log user out\r\n\t\t\t\tconst timeOutId = window.setTimeout(logaout, 10 * 1000);\r\n\t\t\t\tlogoutTimerIdRef.current = timeOutId;\r\n\t\t\t} else {\r\n\t\t\t\twindow.clearTimeout(logoutTimerIdRef.current);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tdocument.addEventListener('visibilitychange', autoLogout);\r\n\r\n\t\treturn () => {\r\n\t\t\tdocument.removeEventListener('visibilitychange', autoLogout);\r\n\t\t};\r\n\t}, []); */}\r\n\r\n\r\n\tconst handleMenu = (event: React.MouseEvent) => {\r\n\t\tsetAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tsetAnchorEl(null);\r\n\t};\r\n\r\n\tconsole.log(Notification.permission)\r\n\r\n\tif (authState.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst askForPermission = async () => Notification.requestPermission();\r\n\tconst showSystemNotification = Notification.permission === \"default\" && canRecieveNotifications(authState.user)\r\n\r\n\t//\tconst name = authState.user.employeeName || authState.user.clientPersonName;\r\n\tconst name = authState.user.clientName;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{name}\r\n\t\t\t\r\n\t\t\t\t{getInitials(name)}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{showSystemNotification && {getString(\"allowSystemNotifications\")}}\r\n\t\t\t\t{getString(\"logout\")}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React, { useContext } from \"react\";\r\nimport { AppBar, IconButton, Toolbar, Typography } from \"@material-ui/core\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport { useMainBarStyles } from \"./MainBarStyles\";\r\nimport { LocalizationContext } from \"../core/localization/Localization\";\r\nimport { UserAvatar } from \"./UserAvatar\";\r\nimport { appConfig } from \"../core/config/config\";\r\nimport { useAuth } from \"../data/auth/hooks\";\r\n\r\ninterface MainBarProps {\r\n\ttoggleNavMenu: () => void;\r\n}\r\n\r\nexport const MainBar: React.FunctionComponent = props => {\r\n\tconst styles = useMainBarStyles();\r\n\tconst { getString } = useContext(LocalizationContext);\r\n\r\n\tconst [auth] = useAuth();\r\n\r\n\tif (auth.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tlet bddlogo1 = auth.user.hasLogo === 1 || auth.user.hasLogo === 3 ? require(\"'../../../public/\"+auth.user.companyId+\"_logo1.jpg\") : 0\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{`${getString(\"mainTitle\")} ${appConfig.general.titleSufix\r\n\t\t\t\t\t\t}`}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{(auth.user.hasLogo === 1 || auth.user.hasLogo === 3) && bddlogo1 !==0 && ()}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import { makeStyles, Theme, createStyles } from \"@material-ui/core\";\r\n\r\nexport const useMenuItemStyles = (level: number) =>\r\n\tmakeStyles((theme: Theme) => {\r\n\t\treturn createStyles({\r\n\t\t\tmenuItem: {\r\n\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\tpaddingLeft: theme.spacing(2 + level * 2),\r\n\t\t\t},\r\n\t\t});\r\n\t})();\r\n","import { useMemo } from \"react\";\r\nimport { MenuItemType, AccessRights, LinkMenuItemType, SubmenuMenuItemType } from \"./types\";\r\n\r\nexport const useVisiableNavigationItems = (items: MenuItemType[]): MenuItemType[] =>\r\n\tuseMemo(() => items.filter(isItemVisiable), [items]);\r\n\r\nconst isItemVisiable = (item: MenuItemType): boolean => {\r\n\tif (item.type === \"Link\") {\r\n\t\treturn isLinkVisiable(item);\r\n\t} else {\r\n\t\treturn isSubmenuVisiable(item);\r\n\t}\r\n};\r\n\r\nconst isSubmenuVisiable = (item: SubmenuMenuItemType): boolean =>\r\n\titem.hidden !== true &&\r\n\titem.items.length > 0 &&\r\n\titem.items.reduce((visiable, subItem) => visiable || isItemVisiable(subItem), false as boolean);\r\n\r\nconst isLinkVisiable = (item: LinkMenuItemType): boolean =>\r\n\titem.hidden !== true && item.accessRights !== AccessRights.None;\r\n\r\nexport const getAllVisiableLinkItems = (items: MenuItemType[], result: LinkMenuItemType[] = []) => {\r\n\titems.forEach(item => {\r\n\t\tif (item.type === \"Link\") {\r\n\t\t\tif (item.accessRights !== AccessRights.None) result.push(item);\r\n\t\t} else {\r\n\t\t\tgetAllVisiableLinkItems(item.items, result);\r\n\t\t}\r\n\t});\r\n\treturn result;\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { MenuItemType, SubmenuMenuItemType, LinkMenuItemType } from \"./types\";\r\nimport { ListItem, ListItemIcon, ListItemText, Collapse, List } from \"@material-ui/core\";\r\nimport ExpandLess from \"@material-ui/icons/ExpandLess\";\r\nimport ExpandMore from \"@material-ui/icons/ExpandMore\";\r\nimport { useMenuItemStyles } from \"./menuItemsStyles\";\r\nimport { useToggleStateDictionary } from \"../util/hooks\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useVisiableNavigationItems } from \"./hooks\";\r\n\r\nexport interface SubmenuMenuItemProps {\r\n\tsubmenu: SubmenuMenuItemType;\r\n\topen: boolean;\r\n\ttoggleOpen: () => void;\r\n\tlevel: number;\r\n}\r\n\r\nexport const SubmenuMenuItem: React.FunctionComponent = ({\r\n\tsubmenu,\r\n\topen,\r\n\ttoggleOpen,\r\n\tlevel,\r\n}) => {\r\n\tconst styles = useMenuItemStyles(level);\r\n\tconst Icon = submenu.icon;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t{Icon && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t{open ? : }\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport interface PageMenuItemProps {\r\n\tpage: LinkMenuItemType;\r\n\tlevel: number;\r\n}\r\n\r\nexport const LinkMenuItem: React.FunctionComponent = ({ page, level }) => {\r\n\tconst styles = useMenuItemStyles(level);\r\n\tconst Icon = page.icon;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{Icon && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport interface MenuListProps {\r\n\tlevel?: number;\r\n\tmenuItems: MenuItemType[];\r\n}\r\n\r\nexport const MenuList: React.FunctionComponent = ({ level, menuItems }) => {\r\n\tconst currentLevel = level || 0;\r\n\tconst visiableItems = useVisiableNavigationItems(menuItems);\r\n\tconst submenuItemKeys = useMemo(() => visiableItems.filter(i => i.type === \"Menu\").map(i => i.key), [\r\n\t\tvisiableItems,\r\n\t]);\r\n\r\n\tconst [openDictionary, toggleOpenDictionary] = useToggleStateDictionary(submenuItemKeys);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{visiableItems.map(item =>\r\n\t\t\t\titem.type === \"Link\" ? (\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n","import React, { useMemo, useEffect } from \"react\";\r\nimport MaterialTable, { MaterialTableProps, Options } from \"material-table\";\r\nimport { useMaterialTableLocalization } from \"./useMaterialTableLocalization\";\r\n\r\nexport interface TableDataProps {\r\n\timmutableData?: TData[];\r\n\tgetData?: () => void;\r\n}\r\n\r\nexport type TablePropsType = TableDataProps &\r\n\tOmit, \"data\" | \"isLoading\">;\r\n\r\nexport function Table(props: TablePropsType) {\r\n\tconst { immutableData, getData, options, ...materialTableProps } = props;\r\n\tconst tableData = immutableData || [];\r\n\tconst isLoading = immutableData === undefined;\r\n\tconst tableDataMutable = useMemo(() => tableData.map(d => ({ ...d })), [tableData]);\r\n\r\n\tconst tableOptions: Options = useMemo(() => {\r\n\t\tconst propOptions = options || {};\r\n\t\treturn {\r\n\t\t\tpadding: \"dense\",\r\n\t\t\t...propOptions,\r\n\t\t\theaderStyle: {\r\n\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t...propOptions.headerStyle,\r\n\t\t\t},\r\n\t\t};\r\n\t}, [options]);\r\n\r\n\tconst localization = useMaterialTableLocalization();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!immutableData && getData) getData();\r\n\t}, [immutableData, getData]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{...materialTableProps}\r\n\t\t\ttitle=\"\"\r\n\t\t\tdata={tableDataMutable}\r\n\t\t\tisLoading={isLoading}\r\n\t\t\tlocalization={localization}\r\n\t\t\toptions={tableOptions}\r\n\t\t/>\r\n\t);\r\n}\r\n","import { useContext } from \"react\";\r\nimport { Localization } from \"material-table\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n\r\nexport const useMaterialTableLocalization = (): Localization => {\r\n\tconst { getString } = useContext(LocalizationContext);\r\n\treturn {\r\n\t\ttoolbar: {\r\n\t\t\tsearchPlaceholder: getString(\"search\"),\r\n\t\t\tsearchTooltip: getString(\"search\"),\r\n\t\t},\r\n\t\theader: {\r\n\t\t\tactions: \"\",\r\n\t\t},\r\n\t\tpagination: {\r\n\t\t\tfirstAriaLabel: getString(\"tableFirsPage\"),\r\n\t\t\tfirstTooltip: getString(\"tableFirsPage\"),\r\n\t\t\tlastAriaLabel: getString(\"tableLastPage\"),\r\n\t\t\tlastTooltip: getString(\"tableLastPage\"),\r\n\t\t\tlabelDisplayedRows: getString(\"tableDisplayedRows\"),\r\n\t\t\tlabelRowsSelect: getString(\"tabledDisplayedPerPage\"),\r\n\t\t\tlabelRowsPerPage: getString(\"tabledDisplayedPerPage\"),\r\n\t\t\tnextAriaLabel: getString(\"tableNextPage\"),\r\n\t\t\tnextTooltip: getString(\"tableNextPage\"),\r\n\t\t\tpreviousAriaLabel: getString(\"tablePreviousPage\"),\r\n\t\t\tpreviousTooltip: getString(\"tablePreviousPage\"),\r\n\t\t},\r\n\t\tbody: {\r\n\t\t\temptyDataSourceMessage: \"\",\r\n\t\t\taddTooltip: getString(\"tableAdd\"),\r\n\t\t\teditTooltip: getString(\"tableEdit\"),\r\n\t\t\tdeleteTooltip: getString(\"tableDelete\"),\r\n\t\t\teditRow: {\r\n\t\t\t\tsaveTooltip: getString(\"tableDelete\"),\r\n\t\t\t\tcancelTooltip: getString(\"tableCancel\"),\r\n\t\t\t\tdeleteText: getString(\"tableConfirmationDelete\"),\r\n\t\t\t},\r\n\t\t},\r\n\t};\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { PageIndex } from \"../../../data/models\";\r\nimport { TablePagination } from \"@material-ui/core\";\r\nimport { Table, TablePropsType } from \"./Table\";\r\nimport { Options } from \"material-table\";\r\n\r\ninterface ControledTableProps {\r\n\tpageIndex: PageIndex;\r\n\tonPageIndexChange: (newState: PageIndex) => void;\r\n\ttotal?: number;\r\n}\r\n\r\nexport type ControledTablePropsType = ControledTableProps & TablePropsType;\r\n\r\nexport function ControledTable(props: ControledTablePropsType) {\r\n\tconst { pageIndex, onPageIndexChange, options, immutableData, total, ...tableProps } = props;\r\n\r\n\tconst tableOptions = useMemo((): Options => {\r\n\t\treturn {\r\n\t\t\t...options,\r\n\t\t\tpageSize: pageIndex.itemsPerPage,\r\n\t\t\tinitialPage: pageIndex.pageNumber,\r\n\t\t};\r\n\t}, [options, pageIndex]);\r\n\r\n\tconst count = total || immutableData?.length || 0;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\tpage={pageIndex.pageNumber}\r\n\t\t\t{...tableProps}\r\n\t\t\timmutableData={immutableData}\r\n\t\t\tcomponents={{\r\n\t\t\t\tPagination: paginationProps => (\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tpaginationProps.onChangePage(evt, pageNumber)\r\n\t\t\t\t\t\t\tonPageIndexChange({\r\n\t\t\t\t\t\t\t\t...pageIndex,\r\n\t\t\t\t\t\t\t\tpageNumber,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tonChangeRowsPerPage={evt => {\r\n\t\t\t\t\t\t\tpaginationProps.onChangeRowsPerPage(evt);\r\n\t\t\t\t\t\t\tonPageIndexChange({\r\n\t\t\t\t\t\t\t\tpageNumber: 0,\r\n\t\t\t\t\t\t\t\titemsPerPage: (evt.target.value as any) as number,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t),\r\n\t\t\t}}\r\n\t\t\toptions={tableOptions}\r\n\t\t/>\r\n\t);\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { PageData, PageIndex, PageDataStatus } from \"../../../data/models\";\r\nimport { ControledTable, ControledTablePropsType } from \"./ControledTable\";\r\nimport { Options } from \"material-table\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\n\r\nexport interface PaginationDataProps {\r\n\tpageData?: PageData;\r\n\tpageIndex: PageIndex;\r\n\tuserAccessRights?: AccessRights;\r\n\tonPageIndexChange: (newState: PageIndex) => void;\r\n}\r\n\r\ntype PagginationTableProps = PaginationDataProps &\r\n\tOmit, \"immutableData\" | \"data\" | \"isLoading\">;\r\n\r\nexport function PaginationTable(props: PagginationTableProps) {\r\n\tconst { pageData, options, ...tableProps } = props;\r\n\r\n\tconst tableOptions = useMemo(\r\n\t\t(): Options | undefined =>\r\n\t\t\tpageData?.status === PageDataStatus.DataInvalidated\r\n\t\t\t\t? {\r\n\t\t\t\t\t\t...options,\r\n\t\t\t\t\t\trowStyle: {\r\n\t\t\t\t\t\t\t...options?.rowStyle,\r\n\t\t\t\t\t\t\tcolor: \"grey\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t }\r\n\t\t\t\t: options,\r\n\t\t[options, pageData]\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{...tableProps}\r\n\t\t\timmutableData={pageData?.currentPageData}\r\n\t\t\ttotal={pageData?.totalCount}\r\n\t\t\toptions={tableOptions}\r\n\t\t/>\r\n\t);\r\n}\r\n","import React from \"react\";\r\nimport { Order } from \"../../../data/domestic/orders/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useDisplaySingleEmementStyles } from \"../../useDisplaySingleEmementStyles\";\r\nimport { DisplayBoolNumber } from \"../../components/common/DisplayBoolNumber\";\r\nimport { useOrderSideOptionsTranslator } from \"../../../data/domestic/orders/hooks/useOrderSideOptions\";\r\nimport { Status } from \"../../../data/models\";\r\n\r\nexport enum DiplayOrderMod {\r\n\tFull,\r\n\tPublicData,\r\n}\r\n\r\nexport interface DisplayOrderMainAttributesProps {\r\n\torder: Order;\r\n\tmod: DiplayOrderMod;\r\n}\r\n\r\nexport const DisplayOrderMainAttributes: React.FunctionComponent = ({\r\n\torder,\r\n\tmod,\r\n}) => {\r\n\tconst style = useDisplaySingleEmementStyles();\r\n\tconst { getString, getDateString, getDateTimeString, getFormatedNumberString, getFormatedNumberString4 } = React.useContext(\r\n\t\tLocalizationContext\r\n\t);\r\n\r\n\tconst sideTranslator = useOrderSideOptionsTranslator();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderClmOrdNo\")}\r\n\t\t\t\t{order.orderNo}\r\n\t\t\t
\r\n\t\t\t\r\n{ /*\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSide\")}\r\n\t\t\t\t{sideTranslator(order.side)}\r\n\t\t\t
\r\n*/\t}\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderDateReceived\")}\r\n\t\t\t\t{getDateString(order.orderTime, \"DD.MM.YYYY\" )}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderTimeReceived\")}\r\n\t\t\t\t{getDateString(order.orderTime, \"HH.mm.ss\")}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSymbol\")}\r\n\t\t\t\t{order.security.symbol}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSide\")}\r\n\t\t\t\t{order.side}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderQty\")}\r\n\t\t\t\t{getFormatedNumberString(order.qty )}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderQtyLeft\")}\r\n\t\t\t\t{getFormatedNumberString(order.leavesQty)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderQtyFill\")}\r\n\t\t\t\t{getFormatedNumberString(order.filledQty)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderOrdType\")}\r\n\t\t\t\t{order.orderType}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderPrice\")}\r\n\t\t\t\t{getFormatedNumberString(order.price, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderOrdTimeType\")}\r\n\t\t\t\t{order.timeInForce}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderExpiryDate\")}\r\n\t\t\t\t{getDateString(order.expiryDate, \"DD.MM.YYYY\" )}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t {getString(\"orderIceberg\")}\r\n \t\t\r\n\t\t \r\n \t\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderQtyVisible\")}\r\n\t\t\t\t{getFormatedNumberString(order.visibleQty)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSecurityAcc\")}\r\n\t\t\t\t{order.securityAcc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderMoneyAcc\")}\r\n\t\t\t\t{order.moneyAcc}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderOrigOrderNo\")}\r\n\t\t\t\t{order.origOrderNo}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderStatusDescr\")}\r\n\t\t\t\t{order.ordStatusDescr}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderFillStatusDescr\")}\r\n\t\t\t\t{order.fillStatusDescr}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { Order } from \"../types\";\r\n\r\nexport const getOrderApi = (userId: string, ordid: string) =>\r\n webApi({\r\n method: \"GET\",\r\n url: \"order/getorder\",\r\n params: {\r\n userId,\r\n ordid,\r\n },\r\n });\r\n\r\nexport default getOrderApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setDisplayed } from \"../orderBookDataSlice\";\r\nimport getOrderApi from \"../api/getOrder\";\r\nimport { Order } from \"../types\";\r\n\r\nexport const loadBookOrder = (ordId: string): ThunkType => async dispatch => {\r\n\tdispatch(setDisplayed(undefined));\r\n\r\n\tconst mborder = await dispatch(getOrder(ordId));\r\n\r\n\tdispatch(setDisplayed(mborder));\r\n};\r\n\r\nexport const getOrder = (\r\n\tordId: string\r\n ): ThunkType> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n \r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t return undefined;\r\n\t}\r\n \r\n\tconst { userId } = store.data.auth.current.user;\r\n\treturn await dispatch(getOrderApi(userId, ordId));\r\n };\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { Order } from \"../../orders/types\";\r\nimport { loadBookOrder } from \"../thunks/loadOrderBook\";\r\n\r\nexport const useDisplayOBOrder = (ordId?: string) => {\r\n const storeOB = useSelector(\r\n (store) => store.data.domestic.orderBook.displayedOBOrder\r\n );\r\n\r\n const displayedOrderBookOrder =\r\n storeOB && storeOB.orderId === ordId ? storeOB : undefined;\r\n\r\n const displatch = useDispatch();\r\n\r\n React.useEffect(() => {\r\n if (ordId) {\r\n displatch(loadBookOrder(ordId));\r\n }\r\n }, [displatch, ordId]);\r\n\r\n return displayedOrderBookOrder;\r\n};\r\n","import React from \"react\"\r\n\r\nexport interface DisplayDrawerContextType {\r\n (content: React.ReactNode): void\r\n}\r\n\r\nexport const DisplayDrawerContext = React.createContext(() => {});","import { Theme, makeStyles, createStyles } from \"@material-ui/core\";\r\n\r\nexport const useDisplaySingleEmementStyles = makeStyles((theme: Theme) => {\r\n\treturn createStyles({\r\n\t\troot: {\r\n\t\t\twidth: \"100%\",\r\n\t\t\t// paddingTop: \"2rem\",\r\n\t\t\tpaddingBottom: \"2rem\",\r\n\t\t\t// height: \"100%\",\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tflexDirection: \"column\",\r\n\t\t\tjustifyContent: \"center\",\r\n\t\t\talignItems: \"center\",\r\n\t\t},\r\n\t\trow: {\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tjustifyContent: \"space-between\",\r\n\t\t\twidth: \"70%\",\r\n\t\t\tpadding: \"5px\",\r\n\t\t},\r\n\t\trowBorder: {\r\n\t\t\tborderBottom: `1px ${theme.palette.divider} solid`,\r\n\t\t},\r\n\t\tlabel: {\r\n\t\t\tcolor: theme.palette.action.active,\r\n\t\t},\r\n\t\tvalue: {\r\n\t\t\tmarginLeft: \"10px\",\r\n\t\t},\r\n\t\ticon: {\r\n\t\t\theight: \"1rem\",\r\n\t\t},\r\n\t});\r\n});\r\n","import React from \"react\";\r\nimport CheckIcon from \"@material-ui/icons/Check\";\r\nimport RemoveIcon from '@material-ui/icons/Remove';\r\n\r\nexport interface DisplayBoolNumberProps {\r\n\tvalue?: number;\r\n thrutyValue: number;\r\n className?: string;\r\n}\r\n\r\nexport const DisplayBoolNumber: React.FunctionComponent = ({ value, thrutyValue, className }) =>\r\n\tvalue === thrutyValue ? : ;\r\n","import React from \"react\";\r\nimport { OrderSide } from \"../../../models\";\r\nimport { LocalizationContext } from \"../../../../core/localization/Localization\";\r\nimport { exhaustiveCheck } from \"../../../../core/util/functions\";\r\n\r\nexport const useOrderSideOptionsTranslator = () => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\treturn React.useCallback(\r\n\t\t(side: OrderSide) => {\r\n\t\t\tswitch (side) {\r\n\t\t\t\tcase OrderSide.Buy:\r\n\t\t\t\t\treturn getString(\"orderSideBuy\");\r\n\t\t\t\tcase OrderSide.Sell:\r\n\t\t\t\t\treturn getString(\"orderSideSell\");\r\n\t\t\t\tdefault:\r\n\t\t\t\t\texhaustiveCheck(side);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[getString]\r\n\t);\r\n};\r\n\r\ninterface AccountOrderSideOption {\r\n\tlabel: string;\r\n\tvalue: OrderSide;\r\n}\r\n\r\nexport const useOrderSideOptions = (): AccountOrderSideOption[] => {\r\n\tconst translator = useOrderSideOptionsTranslator();\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\tlabel: translator(OrderSide.Buy) as string,\r\n\t\t\t\tvalue: OrderSide.Buy,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: translator(OrderSide.Sell) as string,\r\n\t\t\t\tvalue: OrderSide.Sell,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[translator]\r\n\t);\r\n};\r\n","import { OrderSide, Security, Exchanges } from \"../../models\";\r\nimport { SecuritySimpleList } from \"../../initialData/types\"\r\n\r\n\r\nexport interface ViewOrder {\r\n\torderId: string;\r\n\torderNo: string;\r\n\torderTime: Date;\r\n\tclientId: string;\r\n\tclientIdNo: string;\r\n\tclientName: string;\r\n\tsecurity: Security;\r\n\texchCode: string;\r\n\tsecDepCode: string;\r\n\tcurrCode: string;\r\n\tside: string;\r\n\tqty: number;\r\n\tleavesQty: number;\r\n\torderType: string;\r\n\tprice: number;\r\n\ttimeInForce: string;\r\n\texpiryDate: Date;\r\n\ticeberg: number;\r\n\tordCancRepl: string; // C-Cancel order, R-replace order, othwerwise null\r\n\torigOrderNo: string; // broj referentnog naloga za C i R\r\n\tordStatusDescr: string;\r\n\tfillStatusDescr: string;\r\n\tcancelAllowed: string; \r\n\treplaceAllowed: string; \r\n}\r\n\r\nexport interface GetOrdersParams {\r\n\tuserid: string;\r\n\tmarket?: OrderMarket;\r\n\tside?: OrderSide;\r\n\tempid?: string;\r\n\tcliid?: string;\r\n\tsecid?: string;\r\n\texchid?: string;\r\n\tcurrid?: string;\r\n\tstatus?: number;\r\n\tdateFrom?: string;\r\n\tdateTo?: string;\r\n\tfromrow?: number;\r\n\tnumofrows?: number;\r\n}\r\n\r\nexport interface Order {\r\n\torderId: string;\r\n\torderNo: string;\r\n\tmarket: string;\r\n\torderTime: Date;\r\n\tclientId: string;\r\n\tclientIdNo: string;\r\n\tclientName: string;\r\n\tsecurity: Security;\r\n\texchId: string;\r\n\texchCode: string;\r\n\tcurrId: string;\r\n\tcurrCode: string;\r\n\tside: OrderSide;\r\n\tqty: number;\r\n\tleavesQty: number;\r\n\tfilledQty: number;\r\n\torderType: string;\r\n\tprice: number;\r\n\ttimeInForce: string;\r\n\texpiryDate: Date;\r\n\ticeberg: number;\r\n\tvisibleQty: number;\r\n\tsecurityAccId: string;\r\n\tsecurityAcc: string;\r\n\tmoneyAccId: string;\r\n\tmoneyAcc:string;\r\n\tordCancRepl: string; // C-Cancel order, R-replace order, othwerwise null\r\n\torigOrderId: string; // broj referentnog naloga za C i R\r\n\torigOrderNo: string; // broj referentnog naloga za C i R\r\n\tordStatus: string;\r\n\tordStatusDescr: string;\r\n\tfillStatus: string;\r\n\tfillStatusDescr: string;\r\n\tcancelAllowed: string; \r\n\treplaceAllowed: string; \r\n\tpreMarket: number,\r\n\trazlogOdbijanja?: string;\r\n}\r\n\r\n export interface EditOrder {\r\n\torderId: string;\r\n\torderNo?: string;\r\n\tmarket?: string; // D/F (domestic/foreign)\r\n\torderTime?: Date;\r\n\tclientId?: string; // Id klijenta\r\n//\tsecurity?: Partial // Security; // object Security popunjava se samo Id\r\n\tsecurity?: Security; // Security; // object Security popunjava se samo Id\r\n\texchId?: string; // popunjava se samo za stranu berzu ako je korisnik izabrao berzu\r\n\tside: OrderSide; // Buy/Sell\r\n\tqty: number; // količina\r\n\tleavesQty?: number;\r\n\tfilledQty?: number;\r\n\torderType?: string; // limit/market\r\n\tprice: number; // cena ako je limit\r\n\ttimeInForce?: string; // day/gtc/gtd/ioc/fok\r\n\texpiryDate?: Date; \r\n\ticeberg?: number; // 0/1\r\n\tvisibleQty?: number; // ako je iceberg=1 onda \r\n\tsecurityAccId?: string;\r\n\tsecurityAcc?: string; // račun hartija \r\n\tmoneyAccId?: string;\r\n\tmoneyAcc?:string; // račun novca\r\n\tordCancRepl?: string; // C-Cancel order, R-replace order, othwerwise null\r\n\torigOrderId?: string; // id originalnog naloga za C i R\r\n\torigOrderNo?: string; // broj originalnog naloga za C i R\r\n\tordStatus?: string;\r\n\tordStatusDescr?: string;\r\n\tfillStatus?: string;\r\n\tfillStatusDescr?: string;\r\n\tcancelAllowed?: string; \r\n\treplaceAllowed?: string; \r\n\tsymbol?:string;\r\n\tcurrCode?: string;\r\n\tpreMarket?: number,\r\n} \r\n\r\n \r\nexport enum OrderType {\r\n\tNew = 0,\r\n\tReplace = 1,\r\n\tCancel = 2,\r\n}\r\n\r\nexport interface OrderFilter {\r\n\tdateFrom?: string,\r\n\tdateTo?: string,\r\n\tside?: OrderSide,\r\n//\tsecurity?: Partial,\r\n\tsecurity?: Partial,\r\n\torderStatus?: Partial,\r\n\tmarket?: OrderMarket;\r\n\texchange?: Exchanges;\r\n}\r\n\r\n export interface OrderStatus {\r\n\tftValue: number;\r\n\tftDescr: string;\r\n }\r\n \r\nexport enum OrdersEditAction {\r\n\tNew = \"new\",\r\n\tReplay = \"replay\",\r\n\tVerify = \"verify\",\r\n\tModify = \"modify\",\r\n}\r\n\r\nexport enum OrderMarket {\r\n\tDomestic = \"D\",\r\n\tForeign = \"F\",\r\n}\r\n\r\nexport enum FundsCheckStatus {\r\n\tNotChecked = \"NOTCHECKED\",\r\n\tIgnore = \"IGNORE\",\r\n}\r\n\r\nexport type OrderUpsertResult =\r\n\t| { status: \"CREATED\"; newId: string }\r\n\t| { status: \"NOFUNDS\"; message: string }\r\n\t| { status: \"ERROR\"; message?: string };\r\n\r\n\r\nexport type OrderSideDictionary = {\r\n\t[key in OrderSide]: T;\r\n};\r\n\r\nexport type OrderSideArgs = {\r\n\tside: OrderSide;\r\n\tvalue: T;\r\n};\r\n\r\nexport enum OrderAllOrNothing {\r\n\tTrue = 1,\r\n\tFalse = 0,\r\n}\r\n\r\nexport enum PreMarket {\r\n\tTrue = 1,\r\n\tFalse = 0,\r\n}\r\n\r\n/* export interface OrderSimpleData {\r\n\tordId: string;\r\n\tordData: string;\r\n\tdepAmt: number;\r\n\tdepAmtPayed: number;\r\n\tprice: number;\r\n\tqty: number;\r\n\tside: string;\r\n\tnonAllocAmt: number;\r\n} */\r\n\r\n/* export interface GetSimpleOrdersParams {\r\n\tuserid: string;\r\n\tside?: OrderSide;\r\n\tcliid: string;\r\n\tprodid?: string;\r\n\tstatus?: number;\r\n} */\r\n\r\nexport interface MoneyAccFilter {\r\n\taccSide: string;\r\n\tcurId: string;\r\n\taccNo?: string;\r\n\tdef?: number;\r\n}\r\n\r\nexport interface SecurityAccFilter {\r\n\taccUse: string;\r\n\taccBank?: string;\r\n}\r\n\r\n\r\nexport interface OrderSecurityFilter {\r\n\taccUse: string;\r\n}\r\n\r\n\r\n/*export enum OrderExportReady {\r\n\tTrue = 1,\r\n\tFalse = 0,\r\n} */\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const printOrder = (user: User, ordid: string) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/getorderreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tordid,\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default printOrder;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { printOrderThunk } from \"../thunks/printOrderThunk\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { Order } from \"../../orders/types\";\r\n\r\nexport const useOrderPrinter = (order?: Order) => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.orderBook.printOrderFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => {\r\n\t\t\tdispatch(printOrderThunk(order));\r\n\t}, [dispatch, order]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { printOrder } from \"../../orders/api/printOrder\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintOrderFetchState } from \"../orderBookDataSlice\";\r\nimport { Order } from \"../../orders/types\";\r\n\r\nexport const printOrderThunk = (order?: Order): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\" || !order || !order.orderId) {\r\n\t\treturn undefined;\r\n\t}\r\n\tconst lan = store.ux.localization.language\r\n\tconst filename = `TradingOrder${order.side.trim().toUpperCase()}_${lan.trim().toUpperCase()}_${order.orderNo}.pdf`\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintOrderFetchState({ type: \"started\" }));\r\n\tconst ordersReport = await dispatch(printOrder(user, order.orderId));\r\n\tif (ordersReport) {\r\n\t\tfileDownload(new Blob([ordersReport as any], { type: \"application/pdf\" }), filename);\r\n\t}\r\n\tdispatch(setPrintOrderFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { Theme, makeStyles, Tooltip, TooltipProps } from \"@material-ui/core\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { LocalizationKey } from \"../../../core/localization/types\";\r\n\r\nexport const useTooltipStyles = makeStyles((theme: Theme) => ({\r\n\tarrow: {\r\n\t\t//color: theme.palette.common.black,\r\n\t\tcolor: theme.palette.common.white,\r\n\t\tfontSize: 14,\r\n\t},\r\n\ttooltip: {\r\n\t\t//backgroundColor: theme.palette.common.black,\r\n\t\tbackgroundColor: theme.palette.common.white,\r\n\t\tcolor: theme.palette.common.black,\r\n\t\tboxShadow: theme.shadows[2],\r\n\t\tfontSize: 15,\r\n\t},\r\n}));\r\n\r\nexport type CustomTooltipProps = Omit & {\r\n\ttitleKeyword?: LocalizationKey;\r\n\ttitle?: React.ReactNode;\r\n};\r\n\r\nexport const CustomTooltip: React.FunctionComponent = ({\r\n\tchildren,\r\n\ttitleKeyword,\r\n\t...otherProps\r\n}) => {\r\n\tconst tooltipStyles = useTooltipStyles();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { useDisplayOBOrder } from \"../../../data/domestic/orders/hooks/useDisplayOrderBook\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { DisplayOrderMainAttributes, DiplayOrderMod } from \"./DisplayOrderMainAttributes\";\r\nimport { ExpansionPanel, ExpansionPanelSummary, Typography, Grid, IconButton } from \"@material-ui/core\";\r\nimport { useOrderPrinter } from \"../../../data/domestic/orders/hooks/useOrderPrinter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\n\r\nexport interface DisplayMBOrderProps {\r\n\tid?: string;\r\n\tdisplayMod: DiplayOrderMod;\r\n\tenablePrint?: boolean;\r\n}\r\n\r\nexport const DisplayOrder: React.FunctionComponent = ({\r\n\tid,\r\n\tdisplayMod,\r\n\tenablePrint,\r\n}) => {\r\n\tconst order = useDisplayOBOrder(id);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst [print, fetchState] = useOrderPrinter(order);\r\n\r\n\treturn !order ? (\r\n\t\t<>{\"loading placeholder\"}\r\n\t) : (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{getString(\"tableBasciInfo\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{ fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const useViewOrder = (displayMod: DiplayOrderMod, enablePrint?: boolean) => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\treturn React.useCallback(\r\n\t\t(order: ViewOrder) => showWithDrawer(),\r\n\t\t[showWithDrawer, displayMod]\r\n\t);\r\n};\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { Order } from \"../types\";\r\n\r\nexport const cancelOrderApi = (userId: string, ordid: string) =>\r\n webApi({\r\n method: \"PUT\",\r\n url: \"order/cancelorder\",\r\n params: {\r\n userId,\r\n ordid,\r\n },\r\n });\r\n\r\nexport default cancelOrderApi;\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { cancelOrderApi } from \"../api/cancelOrder\";\r\nimport { setCancelOrderFetchState, invalidateOrders } from \"../orderBookDataSlice\";\r\n\r\nexport const cancelOrder = (orderId: string): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdispatch(setCancelOrderFetchState({ type: \"started\" }));\r\n\r\n\tconst { userId } = store.data.auth.current.user;\r\n\tconst result = await dispatch(cancelOrderApi(userId, orderId));\r\n\r\n\tif (result !== undefined)\r\n\t{\r\n\t\tdispatch(invalidateOrders());\r\n\t\tdispatch(setCancelOrderFetchState({ type: \"successful\" }));\r\n\t} else {\r\n\t\tdispatch(setCancelOrderFetchState({ type: \"error\"}));\r\n\t}\r\n};\r\n","import React from \"react\";\r\nimport { DisplayOrder } from \"./DisplayOrder\";\r\nimport { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { Grid, Typography, Button, Paper } from \"@material-ui/core\";\r\nimport { useCancelOrder } from \"../../../data/domestic/orders/hooks/useOrderCancel\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { DiplayOrderMod } from \"./DisplayOrderMainAttributes\";\r\n\r\nexport interface CancelOrderProps {\r\n\torderId: string;\r\n\tcancel: () => void;\r\n}\r\n\r\nexport const CancelOrder: React.FunctionComponent = ({ orderId, cancel }) => {\r\n\tconst [state, cancelOrder] = useCancelOrder();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (state.type === \"successful\") cancel();\r\n\t}, [state, cancel]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{getString(\"orderCancelQuestion\")}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t cancelOrder(orderId)}\r\n\t\t\t\t\t\t\t\t\tdisabled={state.type !== \"not-started\"}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{getString(\"orderCancelQuestionYes\")}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const useShowCancelOrder = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\treturn React.useCallback(\r\n\t\t(order: ViewOrder) =>\r\n\t\t\tshowWithDrawer( showWithDrawer(undefined)} />),\r\n\t\t[showWithDrawer]\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { cancelOrder } from \"../thunks/cancelOrderThunk\";\r\nimport { setCancelOrderFetchState } from \"../orderBookDataSlice\";\r\n\r\nexport const useCancelOrder = () => {\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.domestic.orderBook.cancelOrderFetchState\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchCancelOrder = React.useCallback(\r\n\t\t(id: string) => dispatch(cancelOrder(id)),\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tdispatch(setCancelOrderFetchState({ type: \"not-started\" }))\r\n\t\t}\r\n\t}, [dispatch])\r\n\r\n\treturn [fetchState, dispatchCancelOrder] as [typeof fetchState, typeof dispatchCancelOrder]\r\n};\r\n","import { getEditLocation } from \"../../../core/util/functions\";\r\nimport { OrdersEditAction } from \"../../../data/domestic/orders/types\";\r\n\r\nexport const orderBookLocation = \"/domestic/orders\"\r\n\r\nexport enum OrdersEditParts {\r\n\tBasicInfo = \"basicinfo\",\r\n\tAttributes = \"attributes\",\r\n}\r\n\r\n/* export const getOrderEditLocation = (\r\n\taction: OrdersEditAction = OrdersEditAction.New,\r\n\tpart: OrdersEditParts = OrdersEditParts.BasicInfo,\r\n orderId?: string\r\n) => getEditLocation(orderBookLocation, part, action, orderId );\r\n\r\nexport const baseEdit = getOrderEditLocation(\":action\" as any, \":editPart\" as any, \":orderId?\");\r\n\r\n// export const baseEdit = getOrderEditLocation(\":editPart\" as any);\r\n\r\n*/\r\n\r\n export const getOrderEditLocation = (\r\n\taction: OrdersEditAction = OrdersEditAction.New,\r\n part: OrdersEditParts = OrdersEditParts.BasicInfo,\r\n orderId?: string\r\n) => getEditLocation(orderBookLocation, part, orderId, undefined, action );\r\n\r\nexport const baseEdit = getOrderEditLocation(\":action\" as any, \":editPart\" as any, \":orderId?\");\r\n\r\n\r\n\r\n\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport CancelIcon from '@material-ui/icons/CancelOutlined';\r\nimport MofifyIcoon from '@material-ui/icons/EditOutlined';\r\nimport { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MaterialTableProps } from \"material-table\";\r\nimport { useViewOrder } from \"../orders/DisplayOrder\";\r\nimport { DiplayOrderMod } from \"../orders/DisplayOrderMainAttributes\";\r\nimport { useShowCancelOrder } from \"../orders/CancelOrder\";\r\nimport { OrdersEditAction } from \"../../../data/domestic/orders/types\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { getOrderEditLocation, OrdersEditParts } from \"./Locations\";\r\n\r\nexport function useOrderBookActions() {\r\n const { getString } = useContext(LocalizationContext);\r\n const onShowOBOrder = useViewOrder(DiplayOrderMod.Full, true);\r\n const onCancelOrder = useShowCancelOrder();\r\n const onModifyOrder = useEditOrder(OrdersEditAction.Modify);\r\n\r\n return useMemo(() => {\r\n const result: MaterialTableProps[\"actions\"] = [\r\n {\r\n icon: () => ,\r\n tooltip: getString(\"orderActView\"),\r\n onClick: (event, rowData) => onShowOBOrder(rowData as ViewOrder),\r\n },\r\n row => ({\r\n icon: () => ,\r\n tooltip: getString(\"orderCancel\"),\r\n onClick: (event, rowData) => onCancelOrder(rowData as ViewOrder),\r\n hidden: row.cancelAllowed === \"N\",\r\n }),\r\n row => ({\r\n icon: () => ,\r\n tooltip: getString(\"orderModify\"),\r\n onClick: (event, rowData) => onModifyOrder(rowData as ViewOrder),\r\n hidden: row.replaceAllowed === \"N\",\r\n }),\r\n ];\r\n return result;\r\n }, [onShowOBOrder,onCancelOrder,onModifyOrder, getString ]);\r\n}\r\n\r\nexport const useEditOrder = (action: OrdersEditAction) => {\r\n const history = useHistory();\r\n\treturn React.useCallback(\r\n\t\t(order: ViewOrder) =>\r\n\t\t\thistory.push(\r\n\t\t\t\tgetOrderEditLocation(action, OrdersEditParts.BasicInfo, order.orderId)\r\n\t\t\t),\r\n\t\t[history, action]\r\n\t);\r\n};\r\n\r\n","import React from \"react\";\r\nimport { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport { OrderSide } from \"../../../data/models\";\r\nimport { useOrderSideOptionsTranslator } from \"../../../data/domestic/orders/hooks/useOrderSideOptions\";\r\nimport { makeStyles, createStyles } from \"@material-ui/core\";\r\n\r\nexport const useOrderRowColor = () => {\r\n const sideTranslator = useOrderSideOptionsTranslator();\r\n return React.useCallback((order: ViewOrder) => ({\r\n backgroundColor: order.side === sideTranslator(OrderSide.Sell) ? getSideColor(OrderSide.Sell) : getSideColor(OrderSide.Buy)\r\n }), [sideTranslator]);\r\n};\r\n\r\nexport const getSideColor = (side: OrderSide) => side === OrderSide.Sell ? \"#ffebee\" : \"#e1f5fe\"\r\n\r\nexport const useOrderSideStyles = makeStyles(() => {\r\n\treturn createStyles({\r\n\t\tsell: {\r\n\t\t\tbackground: getSideColor(OrderSide.Sell),\r\n\t\t},\r\n\t\tbuy: {\r\n\t\t\tbackground: getSideColor(OrderSide.Buy),\r\n\t\t},\r\n\t});\r\n});\r\n\r\n","import React from \"react\";\r\nimport { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport { PaginationTable, PaginationDataProps } from \"../../components/common/PagginationTable\";\r\nimport { useOrderBookActions } from \"./useOrderBookActions\";\r\nimport { useOrderBookColumns } from \"./useOrderBookColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport { useOrderRowColor } from \"../orders/useOrderRowColor\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\n\r\nexport interface OrderBookTableProps {\r\n\tuserAccessRights: AccessRights;\r\n\tgetData: () => void;\r\n}\r\n\r\ntype OrderBookTablePropsType = OrderBookTableProps & PaginationDataProps;\r\n\r\nconst OrdersBookTable: React.FunctionComponent = ({\r\n\tuserAccessRights,\r\n\tgetData,\r\n\t...tableProps\r\n}) => {\r\n\r\n const [auth] = useAuth();\r\n\r\n const actions = useOrderBookActions();\r\n const columns = useOrderBookColumns();\r\n const rowStyle = useOrderRowColor()\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{...tableProps}\r\n\t\t\tgetData={getData}\r\n\t\t\ttitle=\"\"\r\n\t\t\tcolumns={columns}\r\n\t\t\tactions={actions}\r\n\t\t\toptions={{\r\n\t\t\t\tactionsColumnIndex: -1,\r\n\t\t\t\tsearch: false,\r\n\t\t\t\ttoolbar: false,\r\n\t\t\t\tactionsCellStyle: {\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n rowStyle\r\n }}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default OrdersBookTable;\r\n","import { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport { DisplayBoolNumber } from \"../../components/common/DisplayBoolNumber\";\r\n\r\nexport const useOrderBookColumns = () => {\r\n\tconst { getString, getDateString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderClmOrdNo\"),\r\n\t\t\t\tfield: \"orderNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderTimeReceived\"),\r\n\t\t\t\trender: (order) => getDateString(order.orderTime, \"DD.MM.YYYY HH.mm.ss\"),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"160px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\tminWidth: \"160px\",\r\n\t\t\t\t\twidth: \"160px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\tminWidth: \"160px\",\r\n\t\t\t\t\twidth: \"160px\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderSide\"),\r\n\t\t\t\tfield: \"side\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderSymbol\"),\r\n\t\t\t\tfield: \"security.symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderQty\"),\r\n\t\t\t\trender: order => getFormatedNumberString(order.qty),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"140px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"140px\",\r\n\t\t\t\t\tminWidth: \"140px\",\r\n\t\t\t\t\twidth: \"140px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"140px\",\r\n\t\t\t\t\tminWidth: \"140px\",\r\n\t\t\t\t\twidth: \"140px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderPrice\"),\r\n\t\t\t\trender: order => getFormatedNumberString(order.price, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"140px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"140px\",\r\n\t\t\t\t\tminWidth: \"140px\",\r\n\t\t\t\t\twidth: \"140px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"140px\",\r\n\t\t\t\t\tminWidth: \"140px\",\r\n\t\t\t\t\twidth: \"140px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderOrdType\"),\r\n\t\t\t\tfield: \"orderType\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderOrdTimeType\"),\r\n\t\t\t\tfield: \"timeInForce\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderExpiryDate\"),\r\n\t\t\t\trender: (order) => getDateString(order.expiryDate, \"DD.MM.YYYY\"),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"120px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderOrigOrderNo\"),\r\n\t\t\t\tfield: \"origOrderNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderQtyLeft\"),\r\n\t\t\t\trender: order => getFormatedNumberString(order.leavesQty),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"140px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"140px\",\r\n\t\t\t\t\tminWidth: \"140px\",\r\n\t\t\t\t\twidth: \"140px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"140px\",\r\n\t\t\t\t\tminWidth: \"140px\",\r\n\t\t\t\t\twidth: \"140px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderStatusDescr\"),\r\n\t\t\t\tfield: \"ordStatusDescr\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderFillStatusDescr\"),\r\n\t\t\t\tfield: \"fillStatusDescr\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getFormatedNumberString]\r\n\t) as Column[];\r\n};\r\n","import { makeStyles, Theme, createStyles } from \"@material-ui/core\";\r\nexport const usePageStyles = makeStyles((theme: Theme) =>\r\n\tcreateStyles({\r\n\t\trootSpacing: {\r\n \t\t\twidth: \"calc(100% + 8px)\",\r\n\t\t\tpadding: \"1rem\",\r\n\t\t},\r\n\t\troot: {\r\n\t\t\tpadding: \"1rem\",\r\n\t\t},\r\n\t\tgridItem: {\r\n\t\t\tmarginBottom: \"2rem\",\r\n\t\t},\r\n\t\tmainFab: {\r\n\t\t\tmargin: 0,\r\n\t\t\ttop: \"auto\",\r\n\t\t\tright: 20,\r\n\t\t\tbottom: 20,\r\n\t\t\tleft: \"auto\",\r\n\t\t\tposition: \"fixed\",\r\n\t\t},\r\n\t\tfabProgress: {\r\n\t\t\tcolor: theme.palette.secondary.dark,\r\n\t\t\tzIndex: 1,\r\n\t\t\tright: 14,\r\n\t\t\tbottom: 14,\r\n\t\t\tposition: \"fixed\",\r\n\t\t},\r\n\t\tfabProgressWrapper: {\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t\tposition: \"relative\",\r\n\t\t},\r\n\t\tfabSuccess: {\r\n\t\t\tbackgroundColor: theme.palette.success.main,\r\n\t\t\t\"&:hover\": {\r\n\t\t\t\tbackgroundColor: theme.palette.success.dark,\r\n\t\t\t},\r\n\t\t},\r\n\t})\r\n);\r\n","import React from \"react\";\r\nimport { Typography, Grid, IconButton } from \"@material-ui/core\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { LocalizationKey } from \"../../../core/localization/types\";\r\nimport BackIcon from \"@material-ui/icons/ArrowBackOutlined\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport interface PageTitleProps {\r\n\ttitle: LocalizationKey;\r\n\tbackLocation?: string;\r\n\tsubtitle?: string;\r\n}\r\n\r\nexport const PageTitle: React.FunctionComponent = ({ title, backLocation, subtitle }) => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst history = useHistory();\r\n\r\n\tconst goBack = React.useCallback(() => {\r\n\t\tif (backLocation) {\r\n\t\t\thistory.push(backLocation);\r\n\t\t}\r\n\t}, [backLocation, history]);\r\n\r\n\tconst mainTitle = getString(title)\r\n\tconst pageTitle = subtitle ? `${mainTitle}: ${subtitle}` : mainTitle\r\n\treturn (\r\n\t\t\r\n\t\t\t{backLocation && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t\r\n\t\t\t\t{pageTitle}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import { OrderFilter, OrderMarket } from \"../types\";\r\nimport { ViewOrder, GetOrdersParams } from \"../types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\n\r\nconst getOrdersWebApi = (\r\n user: User,\r\n page?: number,\r\n itemsPerPage?: number,\r\n filter?: OrderFilter,\r\n defaultOrderStatus?: number,\r\n) => {\r\n const params: GetOrdersParams = {\r\n userid: user.userId,\r\n// cliid: user.clientId,\r\n secid: filter?.security?.securityId,\r\n market: OrderMarket.Domestic,\r\n side: filter?.side,\r\n fromrow: page && itemsPerPage ? page * itemsPerPage : 0,\r\n numofrows: itemsPerPage,\r\n status: filter?.orderStatus?.ftValue || defaultOrderStatus,\r\n dateFrom: getParamsDateString(filter?.dateFrom),\r\n dateTo: getParamsDateString(filter?.dateTo),\r\n };\r\n\r\n return webApiWithResponse({\r\n method: \"GET\",\r\n url: \"order/getorderlist\",\r\n params,\r\n });\r\n};\r\n\r\nexport default getOrdersWebApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getOrders from \"../api/getOrders\";\r\nimport { PageDataStatus, PageData } from \"../../../models\";\r\nimport { ViewOrder, OrderFilter } from \"../types\";\r\n\r\nexport const getOrdersThunk = (\r\n\tpageNumber?: number,\r\n\titemsPerPage?: number,\r\n\tfilter?: OrderFilter,\r\n\tdefaultStatus?: number\r\n): ThunkType | undefined>> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst user = store.data.auth.current.user;\r\n\tconst ordersResponse = await dispatch(getOrders(user, pageNumber, itemsPerPage, filter, defaultStatus));\r\n\r\n\tif (!ordersResponse || ordersResponse.resCode !== \"OK\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\treturn {\r\n\t\tcurrentPageData: ordersResponse.obj,\r\n\t\ttotalCount: Number(ordersResponse.resDesc) || 0,\r\n\t\tstatus: PageDataStatus.DataCurrent,\r\n\t};\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadOrderBook } from \"../thunks/loadAllOrderBook\";\r\nimport { ViewOrder } from \"../../orders/types\";\r\nimport { PageData } from \"../../../models\";\r\nimport { invalidateOrders } from \"../orderBookDataSlice\";\r\n\r\nexport const useOrderBookData = () => {\r\n const pageData = useSelector | undefined>(\r\n (s) => s.data.domestic.orderBook.currentPage\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadOrderBookPage = React.useCallback(\r\n () => dispatch(loadOrderBook()),\r\n [dispatch]\r\n );\r\n\r\n const dispatchInvalidateOrders = React.useCallback(\r\n () => dispatch(invalidateOrders()),\r\n [dispatch]\r\n );\r\n\r\n return [pageData, dispatchLoadOrderBookPage, dispatchInvalidateOrders] as [\r\n typeof pageData,\r\n typeof dispatchLoadOrderBookPage,\r\n typeof invalidateOrders,\r\n ];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setOrders, invalidateOrders } from \"../orderBookDataSlice\";\r\nimport { setOrdersIndex } from \"../orderBookUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { getOrdersThunk } from \"../../orders/thunks/getOrdersThunk\";\r\n\r\nexport const loadOrderBook = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tconst { pageNumber, itemsPerPage } = store.ux.domestic.orderBook.index;\r\n\tconst { filter } = store.ux.domestic.orderBook;\r\n\r\n\tconst pagedOrders = await dispatch(getOrdersThunk(pageNumber, itemsPerPage, filter));\r\n\r\n\tif (pagedOrders) {\r\n\t\tdispatch(setOrders(pagedOrders));\r\n\t}\r\n};\r\n\r\nexport const setOrdersIndexThunk = (index: PageIndex): ThunkType => dispatch => {\r\n\tdispatch(setOrdersIndex(index));\r\n\tdispatch(invalidateOrders());\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { resetOrderIdices } from \"../orderBookUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { setOrdersIndexThunk } from \"../thunks/loadAllOrderBook\";\r\n\r\nexport const useOrderBookIndex = () => {\r\n\tconst pageIndex = useSelector(s => s.ux.domestic.orderBook.index);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetIndex = React.useCallback((index: PageIndex) => dispatch(setOrdersIndexThunk(index)), [\r\n\t\tdispatch,\r\n\t]);\r\n\tconst dispatchResetIndex = React.useCallback(() => dispatch(resetOrderIdices()), [dispatch]);\r\n\r\n\r\n\treturn [pageIndex, dispatchSetIndex, dispatchResetIndex] as [\r\n\t\ttypeof pageIndex,\r\n\t\ttypeof dispatchSetIndex,\r\n\t\ttypeof dispatchResetIndex\r\n\t];\r\n};\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { OrderFilter } from \"../types\";\r\nimport { setFilter, removeFilter, initialState } from \"../orderBookUXSlice\";\r\nimport { invalidateOrders } from \"../orderBookDataSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\n\r\nexport const useOrderBookFilter = () => {\r\n\tconst [storeFilter] = useCurrentOrderBookFilter();\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter, true);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!));\r\n\t\tdispatch(invalidateOrders());\r\n\t}, [dispatch, filter]);\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t}, [setCurrentFilter]);\r\n\r\n\treturn [filter, editFilter, dispatchSetFilter, changeState, dispatchResetFilter] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t];\r\n};\r\n\r\nexport const useCurrentOrderBookFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.domestic.orderBook.filter);\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveFilter = React.useCallback(\r\n\t\t(type: keyof OrderFilter) => {\r\n\t\t\tdispatch(removeFilter(type));\r\n\t\t\tdispatch(invalidateOrders());\r\n\t\t},\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\treturn [filter, dispatchRemoveFilter] as [typeof filter, typeof dispatchRemoveFilter];\r\n};\r\n","import React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useOrderSideOptions } from \"../../../data/domestic/orders/hooks/useOrderSideOptions\";\r\nimport { TextField, MenuItem, TextFieldProps } from \"@material-ui/core\";\r\nimport { OrderSide } from \"../../../data/models\";\r\n\r\ninterface OrderSideSelectProps {\r\n\tside?: OrderSide;\r\n\thandleChange: (event: React.ChangeEvent) => void;\r\n\tdisabled?: boolean;\r\n\tnullable?: boolean;\r\n\tclasses?: TextFieldProps['classes']\r\n}\r\n\r\nexport const OrderSideSelect: React.FunctionComponent = ({\r\n\tside,\r\n\thandleChange,\r\n\tdisabled,\r\n\tnullable,\r\n\tclasses,\r\n}) => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst options = useOrderSideOptions();\r\n\tconst enchanchedOptions = React.useMemo(() => {\r\n\t\treturn !nullable ? options : [\r\n\t\t\t{\r\n\t\t\t\tlabel: \"--\",\r\n\t\t\t\tvalue: \"\",\r\n\t\t\t},\r\n\t\t\t...options\r\n\t\t]\r\n\t}, [nullable, options])\r\n\r\n\t\r\n\treturn (\r\n\t\t\r\n\t\t\t{enchanchedOptions.map(option => (\r\n\t\t\t\t\r\n\t\t\t\t\t{option.label}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport srLocale from \"date-fns/locale/sr-Latn\";\r\nimport enLocale from \"date-fns/locale/en-US\";\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider, KeyboardDatePickerProps } from \"@material-ui/pickers\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { LocalizationLanguage } from \"../../../core/localization/types\";\r\n\r\nexport interface DateInputProps extends KeyboardDatePickerProps {\r\n\tonChange: (newValue: Date | null) => void;\r\n\terrorMessage?: string;\r\n\tclearable?: boolean;\r\n}\r\n\r\nexport const DateInput: React.FunctionComponent = ({\r\n\tonChange,\r\n\terror,\r\n\terrorMessage,\r\n\tclearable,\r\n\t...otherProps\r\n}) => {\r\n\tconst { getString, language } = React.useContext(LocalizationContext);\r\n\tconst locale = React.useMemo(() => (language() === LocalizationLanguage.SR ? srLocale : enLocale), [\r\n\t\tlanguage,\r\n\t]);\r\n\tconst helperText = React.useMemo(\r\n\t\t() => (error ? errorMessage || getString(\"requiredMessage\") : undefined),\r\n\t\t[getString, error, errorMessage]\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { OrderStatus } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: OrderStatus) => (status ? status.ftDescr : \"\");\r\n\r\nexport const useOrderStatuses = () => {\r\n\tconst statuses = useSelector(store => store.data.initialData.orderStatuses);\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n","import React from \"react\";\r\nimport { TextField, TextFieldProps } from \"@material-ui/core\";\r\nimport { Autocomplete, Skeleton } from \"@material-ui/lab\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n//import { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\n\r\ninterface AutocompleteSelectProps {\r\n\tselected?: T | null;\r\n\tonChangeItem: (newValue: T | null) => void;\r\n\tpredicate?: (value: T) => boolean;\r\n\tdataFilter?: (value: T) => boolean;\r\n\tdata?: T[];\r\n\tgetLabel: (data: T) => string;\r\n\terrorMessage?: string;\r\n//\tfilterOptions?: T | null ;\r\n}\r\n\r\nexport type AutocompleteSelectType = AutocompleteSelectProps & TextFieldProps;\r\n\r\nexport function AutocompleteSelect({\r\n\tselected,\r\n\tonChangeItem,\r\n\tpredicate,\r\n\tdata,\r\n\tgetLabel,\r\n\terror,\r\n\terrorMessage,\r\n\tdisabled,\r\n\tdataFilter,\r\n\t...otherProps\r\n}: AutocompleteSelectType) {\r\n\r\n\t\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n\tconst handleCityChange = React.useCallback(\r\n\t\t(event: any, newValue: T | null) => {\r\n\t\t\tif (onChangeItem) {\r\n\t\t\t\tonChangeItem(newValue);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onChangeItem]\r\n\t);\r\n\r\n\r\n/*\tconst OPTIONS_LIMIT = 10;\r\n\tconst defaultFilterOptions = createFilterOptions();\r\n\r\n\tconst filterOptions = (options, state) => {\r\n \t\treturn defaultFilterOptions(options, state).slice(0, OPTIONS_LIMIT);\r\n\t}; */\r\n\r\n\r\n\tconst helperText = React.useMemo(\r\n\t\t() => (error ? errorMessage || getString(\"requiredMessage\") : undefined),\r\n\t\t[getString, error, errorMessage]\r\n\t);\r\n\r\n\tconst filtredData = React.useMemo(() => {\r\n\t\treturn (dataFilter && data && data.filter(dataFilter)) || data;\r\n\t}, [dataFilter, data]);\r\n\r\n\tconst selectedItem = React.useMemo(() => {\r\n\t\treturn selected || (predicate && filtredData && filtredData.find(predicate)) || null;\r\n\t}, [selected, predicate, filtredData]);\r\n\r\n\r\n\tif (!filtredData) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\r\n//\tconst ELEMENT_TO_SHOW = 10;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\toptions={filtredData}\r\n//\t\t\toptions={filtredData.filter((el, i) => { if (i < ELEMENT_TO_SHOW) return el })}\r\n\t\t\tgetOptionLabel={getLabel}\r\n\t\t\tvalue={selectedItem}\r\n\t\t\tonChange={handleCityChange}\r\n\t\t\tdisabled={disabled}\r\n//\t\t\tfilterOptions={filterOptions}\r\n\t\t\trenderInput={params => (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n}\r\n","import React from \"react\";\r\nimport { useOrderStatuses } from \"../../../data/initialData/hooks/useOrderStatuses\";\r\nimport { OrderStatus } from \"../../../data/models\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\n\r\ntype RegionSelectPropsType = Omit<\r\n AutocompleteSelectType,\r\n \"data\" | \"getLabel\"\r\n>;\r\n\r\nexport const OrderStatusSelect: React.FunctionComponent = (\r\n props\r\n) => {\r\n const [statuses, renderStatus] = useOrderStatuses();\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(props as any)}\r\n />\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Grid, Paper, Button } from \"@material-ui/core\";\r\nimport { OrderSideSelect } from \"./OrderSideSelect\";\r\nimport { DateInput } from \"../../components/common/DateInput\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { OrderFilter } from \"../../../data/domestic/orders/types\";\r\nimport { OrderStatusSelect } from \"../../components/common/OrderStatusSelect\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { isValidDate } from \"../../../core/util/functions\";\r\nimport { OrderFilterChipsComponent } from \"./OrderFilterChips\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { SecuritySelect } from \"../../components/tables/SecuritySelect\";\r\n\r\nexport enum OrderFilterEditorType {\r\n\tBasic = 0,\r\n\tExtended = 1,\r\n\tFull = 2,\r\n}\r\n\r\ninterface OrderFilterEditorProps {\r\n\tfilter?: OrderFilter;\r\n\teditFilter: (prop: keyof OrderFilter, value: any) => void;\r\n\tsave: () => void;\r\n\ttype: OrderFilterEditorType;\r\n\treset?: () => void;\r\n}\r\n\r\nexport const OrderFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\ttype,\r\n\treset,\r\n}) => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst [auth] = useAuth();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{type >= OrderFilterEditorType.Extended && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t editFilter(\"side\", e.target.value)}\r\n\t\t\t\t\t\t\tside={filter?.side}\r\n\t\t\t\t\t\t\tnullable\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t security.securityId === filter?.security?.securityId}\r\n\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\teditFilter(\"security\", security);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\teditFilter(\"dateFrom\", isValidDate(date) ? date.toISOString() : undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\teditFilter(\"dateTo\", isValidDate(date) ? date.toISOString() : undefined)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\t status.ftValue === filter?.orderStatus?.ftValue}\r\n\t\t\t\t\t\t\tonChangeItem={status => {\r\n\t\t\t\t\t\t\t\teditFilter(\"orderStatus\", status);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tsave();\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"orderFilterConfirm\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const OrderFilterChips = OrderFilterChipsComponent;\r\n","import { webApi } from \"../../../core/http/httpThunks\";\r\nimport { SecuritySimpleList } from \"../types\";\r\n\r\nexport const getSecurityForSelect = (userId: string, df: string) =>\r\n\twebApi({\r\n\t\tmethod: \"GET\",\r\n\t\turl: \"common/getsecsimplelist\",\r\n\t\tparams: {\r\n\t\t\tuserId,\r\n\t\t\tdf,\r\n\t\t},\r\n\t});\r\n\r\nexport default getSecurityForSelect;\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { SecuritySimpleList } from \"../types\";\r\nimport { loadSecurityForSelect } from \"../thunks/loadSecurityForSelect\";\r\n\r\nexport const useSecuritySelectData = (df: string) => {\r\n\tconst selectSecurities = useSelector(\r\n\t\tstore => store.data.initialData.securityForSelect\r\n );\r\n\r\n const displatch = useDispatch();\r\n\tReact.useEffect(() => {\r\n\t\tif (!selectSecurities) {\r\n\t\t\tdisplatch(loadSecurityForSelect(df));\r\n\t\t}\r\n }, [displatch, selectSecurities]);\r\n\r\n\treturn selectSecurities !== \"loading\" ? selectSecurities : undefined;\r\n};\r\n","import { ThunkType } from \"../../../core/store/reducers\";\r\nimport getSecurityFroSelectApi from \"../api/getSecurityForSelect\";\r\nimport { setSecurityForSelect } from \"../initialDataReducer\";\r\n\r\nexport const loadSecurityForSelect = (df: string): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst { userId } = store.data.auth.current.user;\r\n\tconst securities = await dispatch(getSecurityFroSelectApi(userId, df));\r\n\tconsole.log(df)\r\n\r\n\r\n\tdispatch(setSecurityForSelect(securities || []));\r\n};\r\n","import React from \"react\";\r\nimport { useSecuritySelectData } from \"../../../data/initialData/hooks/useSecuritySelectData\";\r\nimport { SecuritySimpleList } from \"../../../data/initialData/types\";\r\nimport { AutocompleteSelectType, AutocompleteSelect } from \"../common/AutocompleteSelect\";\r\nimport { OrderMarket } from \"../../../data/domestic/orders/types\";\r\n\r\nexport type SecuritySelectPropsType = Omit,\"data\" | \"getLabel\">\r\n\r\nexport const SecuritySelect: React.FunctionComponent = props => {\r\n\r\n\tconst securities = useSecuritySelectData(OrderMarket.Domestic);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{...props as AutocompleteSelectType}\r\n\t\t\tdata={securities}\r\n\t\t\tgetLabel={renderSecurityLabel}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nconst renderSecurityLabel = (securities: SecuritySimpleList | null) =>\r\nsecurities ? `${securities.secData} ` : \"\";\r\n\r\n","import React from \"react\";\r\nimport { Chip, Grid } from \"@material-ui/core\";\r\nimport { OrderFilter } from \"../../../data/domestic/orders/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useOrderSideOptionsTranslator } from \"../../../data/domestic/orders/hooks/useOrderSideOptions\";\r\n\r\nexport const OrderFilterChipsComponent: React.FunctionComponent = ({\r\n\tfilter,\r\n\tremoveFilter,\r\n}) => {\r\n\tconst { getDateString, getString } = React.useContext(LocalizationContext);\r\n\tconst sideTranslator = useOrderSideOptionsTranslator();\r\n\treturn (\r\n\t\t\r\n\t\t\t{filter.side && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"side\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.dateFrom && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"dateFrom\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.dateTo && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"dateTo\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.orderStatus && filter.orderStatus.ftDescr !== \"\" && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"orderStatus\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.security && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"security\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface OrderFilterChipsProps {\r\n\tfilter: OrderFilter;\r\n\tremoveFilter: (type: keyof OrderFilter) => void;\r\n}\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { useOrderBookFilter, useCurrentOrderBookFilter,} from \"../../../data/domestic/orders/hooks/useOrderBookFilter\";\r\nimport { OrderFilterEditor, OrderFilterEditorType, OrderFilterChips } from \"./EditOrderFilter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\n\r\nexport const OrderBookFilterButton: React.FunctionComponent = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst [filter, removeFilter] = useCurrentOrderBookFilter();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst OrderBookFilterEditor: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, , reset] = useOrderBookFilter();\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\nimport { OrderFilter, OrderMarket } from \"../types\";\r\n\r\nexport const getOrderListReport = (user: User, filter: OrderFilter) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/getorderbookreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tmarket: OrderMarket.Domestic,\r\n\t\t\tside: filter?.side,\r\n\t\t\tstatus: filter?.orderStatus?.ftValue ,\r\n\t\t\tdateFrom: getParamsDateString(filter?.dateFrom),\r\n\t\t\tdateTo: getParamsDateString(filter?.dateTo),\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default getOrderListReport;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadOrdersReport } from \"../thunks/downloadReport\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useOrderBookReportDownloader = () => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.orderBook.printOrderFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => dispatch(downloadOrdersReport()), [dispatch]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState]\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getOrderListReport } from \"../api/getOrderListReport\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintOrderFetchState } from \"../orderBookDataSlice\";\r\n\r\nexport const downloadOrdersReport = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst filter = store.ux.domestic.orderBook.filter;\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintOrderFetchState({ type: \"started\" }));\r\n\tconst ordersBookReport = await dispatch(getOrderListReport(user, filter));\r\n\tconsole.log(ordersBookReport)\r\n\tif (ordersBookReport) {\r\n\t\tfileDownload(new Blob([ordersBookReport as any], { type: \"application/pdf\" }), \"OrderBook.pdf\");\r\n\t}\r\n\tdispatch(setPrintOrderFetchState({ type: \"not-started\" }));\r\n};\r\n","import { OrderFilter, OrderMarket } from \"../types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\n\r\nexport const getOrderListExcel = (\r\n user: User,\r\n filter: OrderFilter\r\n) => {\r\n return httpWebApi({\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n timeout: 60 * 4 * 1000,\r\n url: \"reporting/getorderbookxls\",\r\n params: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tmarket: OrderMarket.Domestic,\r\n\t\t\tside: filter?.side,\r\n\t\t\tstatus: filter?.orderStatus?.ftValue ,\r\n\t\t\tdateFrom: getParamsDateString(filter?.dateFrom),\r\n\t\t\tdateTo: getParamsDateString(filter?.dateTo),\r\n\t\t},\r\n });\r\n};\r\n\r\nexport default getOrderListExcel;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadOrderBookExcel } from \"../thunks/downloadReportExcel\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useOrderBookExcelDownloader = () => {\r\n const fetchState = useSelector(\r\n (s) => s.data.domestic.orderBook.downloadXlsFetchState\r\n );\r\n const dispatch = useDispatch();\r\n const download = React.useCallback(\r\n () => dispatch(downloadOrderBookExcel()),\r\n [dispatch]\r\n );\r\n\r\n return [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getOrderListExcel } from \"../api/getOrderListExcel\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setDownloadXlsFetchState } from \"../orderBookDataSlice\";\r\n\r\nexport const downloadOrderBookExcel = (): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const filter = store.ux.domestic.orderBook.filter;\r\n const user = store.data.auth.current.user;\r\n dispatch(setDownloadXlsFetchState({ type: \"started\" }));\r\n const dailyTrading = await dispatch(getOrderListExcel(user, filter));\r\n if (dailyTrading) {\r\n fileDownload(\r\n new Blob([dailyTrading as any], {\r\n type: \"application/vnd.openxmlformat\",\r\n }),\r\n \"OrderBook.xlsx\"\r\n );\r\n }\r\n dispatch(setDownloadXlsFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { useOrderBookReportDownloader } from \"../../../data/domestic/orders/hooks/useOrderBookReportDownloader\";\r\nimport { useOrderBookExcelDownloader } from \"../../../data/domestic/orders/hooks/useOrderBookExcelDownloader\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport ExcelIcon from \"@material-ui/icons/TableChartOutlined\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n\r\nexport const DownloadButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useOrderBookReportDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null}\r\n\t\t\r\n);\r\n};\r\n\r\n\r\nexport const DownloadExcelButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useOrderBookExcelDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Card, Divider, Fab } from \"@material-ui/core\";\r\nimport OrdersTable from \"./OrderBookTable\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent, AccessRights } from \"../../../core/navigation/types\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { useOrderBookData } from \"../../../data/domestic/orders/hooks/useOrderBookData\";\r\nimport { useOrderBookIndex } from \"../../../data/domestic/orders/hooks/useOrderBookIndex\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { PageDataStatus } from \"../../../data/models\";\r\nimport { OrderBookFilterButton } from \"./OrderBookFilter\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { useNotificationHandler } from \"../../../core/notifications/hooks\";\r\nimport { getOrderEditLocation } from \"./Locations\";\r\nimport { OrdersEditAction } from \"../../../data/domestic/orders/types\";\r\nimport { DownloadButton, DownloadExcelButton } from \"./DownloadButton\";\r\n\r\n\r\nconst OrderBook: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [pageData, dispatchLoadOrders, invalidateData] = useOrderBookData();\r\n\tconst [pageIndex, dispatchSetIndex] = useOrderBookIndex();\r\n\r\n\tconst publiurl = \"%PUBLIC_URL%/manifest.json\"\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (pageData && pageData.status === PageDataStatus.DataInvalidated) {\r\n\t\t\tdispatchLoadOrders();\r\n\t\t}\r\n\t}, [dispatchLoadOrders, pageData]);\r\n\r\n\tReact.useEffect(() => () => { invalidateData() }, [])\r\n\r\n\tconst history = useHistory();\r\n\r\n\tconst [auth] = useAuth();\r\n\r\n\tuseNotificationHandler(\r\n\t\t\"OrderChanged\",\r\n\t\te => {\r\n\t\t\tconsole.log(\"OrderChanged\", e);\r\n\t\t\tinvalidateData();\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\tif (auth.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\taction={}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{/*userAccessRights === AccessRights.All && (auth.user.roleCode === \"BROKER\" || auth.user.roleCode === \"MEMTRADER\") && (\r\n\t\t\t)*/}\r\n\t\t\t history.push(getOrderEditLocation())}\r\n\t\t\t\t>\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const OrderBookActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n \r\nexport default OrderBook;\r\n","import { EditOrder } from \"../types\";\r\nimport { createUseValidator } from \"../../../../core/util/hooks\";\r\nimport { ValidationState } from \"../../../../core/util/types\";\r\nimport { countDecimals } from \"../../../../core/util/functions\";\r\n\r\nexport const orderValidationState: ValidationState = {\r\n\tclientId: true,\r\n\tside: true,\r\n\tqty: true,\r\n\tprice: true,\r\n\tsecurity: true,\r\n\texpiryDate: true,\r\n\tsecurityAcc: true,\r\n\tmoneyAcc: true,\r\n\tvisibleQty: true,\r\n};\r\n\r\nexport const useOrderValidator = () => {\r\n\t\r\n\treturn createUseValidator>(\r\n\t\torderValidationState,\r\n\t\t(item, validation) => ({\r\n\t\t\t...validation,\r\n\t\t\tqty: validation.qty && !!item.qty && countDecimals(item.qty) === 0,\r\n\t\t\texpiryDate: validation.expiryDate || item.timeInForce !== \"GTD\",\r\n\t\t\tprice: (validation.price && item.price>0 && item.orderType === \"LIMIT\") || item.orderType === \"MARKET\" , \r\n\t\t\tsecurityAcc: validation.securityAcc || item.securityAcc !== \"\" ,\r\n\t\t\tmoneyAcc: validation.moneyAcc || item.moneyAcc !== \"\" ,\r\n\t\t\tvisibleQty: validation.visibleQty || item.iceberg === 0 , \r\n\t\t})\r\n\t)();\r\n};\r\n\r\n\r\n\r\n\r\n//\t\t\t// && !!item.price && countDecimals(item.price) <= 2,\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { EditOrder } from \"../types\";\r\n\r\nexport const createOrderApi = (userId: string, order: EditOrder) =>\r\n webApiWithResponse({\r\n method: \"PUT\",\r\n url: \"order/neworder\",\r\n params: {\r\n userId,\r\n },\r\n data: order\r\n });\r\n\r\nexport default createOrderApi;\r\n\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { EditOrder } from \"../types\";\r\n\r\nexport const updateOrderApi = (userid: string, ordid: string, qty: number, price:number, ) =>\r\n webApiWithResponse({\r\n method: \"PUT\",\r\n url: \"order/replaceorder\",\r\n params: {\r\n userid,\r\n ordid,\r\n qty,\r\n price\r\n }\r\n });\r\n\r\nexport default updateOrderApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { createOrderApi } from \"../api/createOrder\";\r\nimport { updateOrderApi } from \"../api/updateOrder\";\r\n// import { modifyOrderApi } from \"../api/modifyOrder\";\r\n// import { oppositeOrderApi } from \"../api/oppositeOrder\";\r\nimport { setNewOrderFetchState, invalidateOrders } from \"../orderBookDataSlice\";\r\nimport { EditOrder, OrdersEditAction, OrderUpsertResult } from \"../types\";\r\n\r\nexport const upsertOrder = (\r\n\taction: OrdersEditAction,\r\n\torder: EditOrder\r\n): ThunkType> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn {\r\n\t\t\tstatus: \"ERROR\",\r\n\t\t\tmessage: \"USER NOT LOGED IN!\",\r\n\t\t};\r\n\t}\r\n\r\n\tdispatch(setNewOrderFetchState({ type: \"started\" }));\r\n\r\n\tvar { user } = store.data.auth.current;\r\n\r\n//\tconst result = await dispatch(createOrderApi(user.userId, order))\r\n\r\n//\t: action === OrdersEditAction.New ? await dispatch(createOrderApi(order));\r\n//\t\t\taction === OrdersEditAction.Modify ? await dispatch(updateOrderApi(order, user.userId))\r\n//\t\t\t: await dispatch(oppositeOrderApi(order));\r\n// \t\taction === OrdersEditAction.Verify ? await dispatch(modifyOrderApi(order, user.userId))\r\n\r\n\r\nconst result =\r\n\t\taction === OrdersEditAction.Modify ? await dispatch(updateOrderApi(user.userId, order.orderId, order.qty , order.price))\r\n\t\t\t: await dispatch(createOrderApi(user.userId, order));\r\n\r\n\r\n\r\n\tif (result && result.resCode === \"OK\") {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"successful\", result: result.resDesc }));\r\n\t\tdispatch(invalidateOrders());\r\n\t\treturn {\r\n\t\t\tstatus: \"CREATED\",\r\n\t\t\tnewId: result.resDesc,\r\n\t\t};\r\n\t} else \r\n\t{\r\n\t\tdispatch(setNewOrderFetchState({ type: \"error\", errorCode: result?.resCode }));\r\n\t\treturn {\r\n\t\t\tstatus: \"ERROR\",\r\n\t\t\tmessage: result?.resCode,\r\n\t\t};\r\n\t}\r\n\r\n/*\tif (result && result.resCode === \"OK\") {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"successful\", result: result.resDesc }));\r\n\t\tdispatch(invalidateOrders());\r\n\t\treturn {\r\n\t\t\tstatus: \"CREATED\",\r\n\t\t\tnewId: result.resDesc,\r\n\t\t};\r\n\t} else if (result && result.resCode === \"NOFUNDS\") {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"not-started\" }));\r\n\t\treturn {\r\n\t\t\tstatus: \"NOFUNDS\",\r\n\t\t\tmessage: result.resDesc,\r\n\t\t};\r\n\t} else {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"error\", errorCode: result?.resCode }));\r\n\t\treturn {\r\n\t\t\tstatus: \"ERROR\",\r\n\t\t\tmessage: result?.resCode,\r\n\t\t};\r\n\t} */\r\n\r\n};\r\n","import React from \"react\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { Fab, CircularProgress } from \"@material-ui/core\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport CheckIcon from \"@material-ui/icons/Check\";\r\nimport { FetchStateType } from \"../../../data/models\";\r\n\r\ninterface FabSaveProps {\r\n\tonClick: () => void;\r\n\tfetchState: FetchStateType;\r\n}\r\n\r\nexport const FabSave: React.FunctionComponent = ({ fetchState, onClick }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\tconst fabClass =\r\n\t\tfetchState.type === \"successful\"\r\n\t\t\t? `${pageStyles.mainFab} ${pageStyles.fabSuccess}`\r\n\t\t\t: pageStyles.mainFab;\r\n\tconst disabled = fetchState.type === \"started\";\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{fetchState.type !== \"successful\" ? : }\r\n\t\t\t\r\n\t\t\t{fetchState.type === \"started\" && }\r\n\t\t
\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { SwitchProps, FormControlLabel, Switch } from \"@material-ui/core\";\r\n\r\nexport interface BoolInputProps {\r\n\tproperty: keyof T;\r\n\titem: T;\r\n\tlabel: string;\r\n\tthrutyValue: number;\r\n\tfalsyValue: number;\r\n\tonChange: (event: React.ChangeEvent) => void;\r\n}\r\n\r\ntype BoolInputPropsType = BoolInputProps & SwitchProps;\r\n\r\nexport function BoolInput(props: BoolInputPropsType) {\r\n\tconst { property, item, label, onChange, thrutyValue, falsyValue, ...otherProps } = props;\r\n\treturn (\r\n\t\t {\r\n\t\t\t\t\t\tonChange({\r\n\t\t\t\t\t\t\t...e,\r\n\t\t\t\t\t\t\ttarget: {\r\n\t\t\t\t\t\t\t\t...e.target,\r\n\t\t\t\t\t\t\t\tvalue: value ? thrutyValue : falsyValue as any,\r\n\t\t\t\t\t\t\t\tname: property\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}}\r\n\t\t\t\t\t{...otherProps}\r\n\t\t\t\t/>\r\n\t\t\t}\r\n\t\t\tlabel={label}\r\n\t\t/>\r\n\t);\r\n}\r\n","// import React from \"react\";\r\nimport React, { ReactNode } from \"react\";\r\nimport {\r\n\tDialog,\r\n\tDialogTitle,\r\n\tDialogContent,\r\n\tDialogContentText,\r\n\tDialogActions,\r\n\tButton,\r\n} from \"@material-ui/core\";\r\n\r\ninterface LeavePromptProps {\r\n\topen: boolean;\r\n\ttitle: string;\r\n\tmessage: ReactNode;\r\n//\tmessage: string;\r\n\tonClose: (confirmed: boolean) => void;\r\n\tconfirmLabel?: string;\r\n\tcloseLabel: string;\r\n\tdisableBackdropClick?: boolean;\r\n}\r\n\r\nexport const CustomDialog: React.FunctionComponent = ({\r\n\topen,\r\n\ttitle,\r\n\tmessage,\r\n\tonClose,\r\n\tcloseLabel,\r\n\tconfirmLabel,\r\n\tdisableBackdropClick,\r\n}) => {\r\n\tconst confirm = React.useCallback(() => {\r\n\t\tonClose(true);\r\n\t}, [onClose]);\r\n\r\n\tconst close = React.useCallback(() => {\r\n\t\tonClose(false);\r\n\t}, [onClose]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t !disableBackdropClick && close()}>\r\n\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t\t\t{message}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{confirmLabel && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{closeLabel}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Location } from \"history\";\r\nimport { useHistory, Prompt } from \"react-router-dom\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { CustomDialog } from \"./CustomDialog\";\r\n\r\ninterface LeavePromptProps {\r\n\tshouldShow: boolean;\r\n\ttitle?: string;\r\n\tmessage?: string;\r\n}\r\n\r\nexport const LeavePrompt: React.FunctionComponent = ({ shouldShow, title, message }) => {\r\n\tconst [dialogOpen, setDialogOpen] = React.useState(false);\r\n\tconst [location, setLocation] = React.useState();\r\n\tconst [confirmed, setConfirmed] = React.useState(false);\r\n\tconst history = useHistory();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n\tconst handleRouterPrompt = React.useCallback(\r\n\t\t(location: Location) => {\r\n\t\t\tif (!confirmed) {\r\n\t\t\t\tsetLocation(location);\r\n\t\t\t\tsetDialogOpen(true);\r\n\t\t\t\treturn false;\r\n\t\t\t} else {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t},\r\n\t\t[confirmed, setLocation, setDialogOpen]\r\n\t);\r\n\r\n\tconst dialogClosed = React.useCallback((confirmed: boolean) => {\r\n\t\tsetDialogOpen(false);\r\n\t\tsetConfirmed(confirmed);\r\n\t}, [setDialogOpen, setConfirmed]);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (confirmed && location) {\r\n\t\t\thistory.push(location.pathname);\r\n\t\t}\r\n\t}, [history, confirmed, location]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { TextField, TextFieldProps } from \"@material-ui/core\";\r\nimport { ValidationState } from \"../../../core/util/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n\r\ninterface StringInputProps {\r\n\tproperty: keyof T;\r\n\titem: T;\r\n\tvalidationState?: ValidationState;\r\n\tonChange: (event: React.ChangeEvent) => void;\r\n\terrorMessage?: string;\r\n}\r\n\r\nexport type StringInputPropsType = StringInputProps & TextFieldProps;\r\n\r\nexport function StringInput(props: StringInputPropsType) {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst { property, item, validationState, label, onChange, errorMessage, ...otherProps } = props;\r\n\tconst error = validationState && validationState[property] !== undefined && !validationState[property];\r\n\treturn (\r\n\t\t\r\n\t);\r\n}\r\n","import React from \"react\";\r\nimport { StringInput, StringInputPropsType } from \"./StringInput\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport NumberFormat from \"react-number-format\";\r\n\r\nexport type NumberInputProps = StringInputPropsType & {\r\n\tmoney?: boolean;\r\n\tdecimalCount?: number;\r\n};\r\n\r\ninterface NumberFormatCustomProps {\r\n\tinputRef: (instance: NumberFormat | null) => void;\r\n\tonChange: (event: { target: { name: string; value: string } }) => void;\r\n\tname: string;\r\n}\r\n\r\nconst createNumberFormatCustom = (money?: boolean, decimalCount?: number) => (props: NumberFormatCustomProps) => {\r\n\tconst { inputRef, onChange, ...other } = props;\r\n\tconst { getSeparators } = React.useContext(LocalizationContext);\r\n\tconst separators = getSeparators()\r\n\tconst decimalScale = money ? 2 : decimalCount;\r\n\treturn (\r\n\t\t {\r\n\t\t\t\tonChange({\r\n\t\t\t\t\ttarget: {\r\n\t\t\t\t\t\tname: props.name,\r\n\t\t\t\t\t\tvalue: values.value,\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t}}\r\n\t\t\tthousandSeparator={separators.thousands}\r\n\t\t\tdecimalSeparator={separators.decimal}\r\n\t\t\tisNumericString\r\n\t\t\tdecimalScale={decimalScale}\r\n\t\t\tfixedDecimalScale={decimalScale !== undefined}\r\n\t\t/>\r\n\t);\r\n}\r\n\r\ninterface IDisplayValue {\r\n\tvalue: any,\r\n\tdisplayValue: string\r\n}\r\n\r\nconst getDisplayValue = (value: any): IDisplayValue => ({\r\n\tvalue,\r\n\tdisplayValue: value ? value.toString() : \"\"\r\n})\r\n\r\nexport function NumberInput(props: NumberInputProps) {\r\n\tconst { onChange, item, property, InputProps, money, decimalCount, ...otherProps } = props;\r\n\tconst itemValue: any = item && item[property];\r\n\r\n\tconst { getNumber } = React.useContext(LocalizationContext);\r\n\r\n\tconst [displayValuePair, setDisplayPair] = React.useState(getDisplayValue(itemValue));\r\n\tconst [errorMessage, setErrorMessage] = React.useState();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (itemValue !== displayValuePair.value) {\r\n\t\t\tsetDisplayPair(getDisplayValue(itemValue))\r\n\t\t}\r\n\t}, [itemValue, displayValuePair])\r\n\r\n\tconst onNumberChange = React.useCallback(\r\n\t\t(e: React.ChangeEvent) => {\r\n\t\t\tconst displayValue = e.target.value;\r\n\t\t\tconst numberValue = getNumber(displayValue);\r\n\t\t\tconst newErrorMessage = !numberValue && displayValue !== \"\" ? \"Not a number!\" : undefined;\r\n\t\t\tonChange({\r\n\t\t\t\t...e,\r\n\t\t\t\ttarget: {\r\n\t\t\t\t\t...e.target,\r\n\t\t\t\t\tvalue: numberValue as any,\r\n\t\t\t\t\tname: property,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tsetErrorMessage(newErrorMessage);\r\n\t\t\tsetDisplayPair({ \r\n\t\t\t\tvalue: numberValue,\r\n\t\t\t\tdisplayValue: displayValue,\r\n\t\t\t});\r\n\t\t},\r\n\t\t[onChange, setDisplayPair, setErrorMessage, property, getNumber]\r\n\t);\r\n\r\n\tconst NumberFormatCustom = React.useMemo(() => createNumberFormatCustom(money, decimalCount), [money, decimalCount]);\r\n\treturn (\r\n\t\t\r\n\t\t\tvalue={displayValuePair.displayValue}\r\n\t\t\tproperty={property}\r\n\t\t\tonChange={onNumberChange}\r\n\t\t\terrorMessage={errorMessage}\r\n\t\t\titem={item}\r\n\t\t\tInputProps={{\r\n\t\t\t\t...InputProps,\r\n\t\t\t\tinputComponent: NumberFormatCustom as any,\r\n\t\t\t}}\r\n\t\t\t{...otherProps}\r\n\t\t/>\r\n\t);\r\n}\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { SecurityAccounts } from \"../../models\";\r\nimport { SecurityAccFilter } from \"../../../data/domestic/orders/types\";\r\n\r\nconst getStatusLabel = (status?: SecurityAccounts) => (status ? status.accNo : \"\");\r\n\r\nexport const useSecurityAccounts = (filter?: SecurityAccFilter) => {\r\n\r\n\tconst statuses = useSelector(store => store.data.initialData.securityAccounts);\r\n\r\n\tconst [secaccs, getStatusLabel ] = useSecurityAccount(statuses,filter );\r\n\r\n\treturn [secaccs, getStatusLabel] as [typeof secaccs, typeof getStatusLabel];\r\n};\r\n\r\nexport const useSecurityAccount = (secaccs:SecurityAccounts[], filter?:SecurityAccFilter ) => {\r\n\r\n\tconst secacc = React.useMemo(() => secaccs.filter(c => filter && c.accUse.includes(filter.accUse)), [secaccs, filter]);\r\n\r\n\tconst secaccLabel = (secacc?: SecurityAccounts) => (secacc ? secacc.accNo : \"\");\r\n\r\n\treturn [secacc, secaccLabel] as [typeof secacc, typeof secaccLabel];\r\n};\r\n\r\n\r\n","import React from \"react\";\r\nimport { useSecurityAccounts } from \"../../../data/initialData/hooks/useSecurityAccounts\";\r\nimport { useSecurityAccountsForeign } from \"../../../data/initialData/hooks/useSecurityAccountsForeign\";\r\nimport { SecurityAccounts } from \"../../../data/models\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\nimport { SecurityAccFilter } from \"../../../data/domestic/orders/types\";\r\n\r\ntype RegionSelectPropsType = Omit,\"data\" | \"getLabel\">\r\n& {\r\n\tfilter?: SecurityAccFilter\r\n};\r\n\r\nexport const SecurityAccountsSelect: React.FunctionComponent = (\r\n {\r\n filter,\r\n ...props\r\n } \r\n \r\n) => {\r\n const [statuses, renderStatus] = useSecurityAccounts(filter) ;\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(props as any)}\r\n />\r\n );\r\n};\r\n\r\n","\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { MoneyAccounts } from \"../../models\";\r\nimport { MoneyAccFilter } from \"../../../data/domestic/orders/types\";\r\n\r\nconst getStatusLabel = (status?: MoneyAccounts) => (status ? status.accNo : \"\");\r\n\r\nexport const useMoneyAccounts = (filter?: MoneyAccFilter) => {\r\n\t\r\n\tconst statuses = useSelector(store => store.data.initialData.moneyAccounts.filter(f=>f.accUse!=='F'));\r\n\r\n \tconst [monaccs, getAccLabel ] = useMoneyAccount(statuses,filter );\r\n\r\n\treturn [monaccs, getAccLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n\r\nexport const useMoneyAccount = (monaccs: MoneyAccounts[], filter?: MoneyAccFilter) => {\r\n\r\n\tconst monacc = React.useMemo(() => monaccs.filter(c => filter && c.currId === filter.curId && (c.accSide === filter.accSide || c.accSide===\"U\") ), [monaccs, filter]);\r\n\r\n\tconst getStatusLabel = (monacc?: MoneyAccounts) => (monacc ? monacc.accNo : \"\");\r\n\r\n\treturn [monacc, getStatusLabel ] as [typeof monacc, typeof getStatusLabel];\r\n};\r\n","import React from \"react\";\r\nimport { useMoneyAccounts, useMoneyAccount } from \"../../../data/initialData/hooks/useMoneyAccounts\";\r\nimport { MoneyAccounts } from \"../../../data/models\";\r\nimport { MoneyAccFilter } from \"../../../data/domestic/orders/types\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\n\r\ntype RegionSelectPropsType = Omit<\r\n AutocompleteSelectType,\r\n \"data\" | \"getLabel\"\r\n> & {filter?: MoneyAccFilter};\r\n\r\nexport const MoneyAccountsSelect: React.FunctionComponent = ({\r\nfilter,\r\n...otherProps\r\n}\r\n) => {\r\n const [statuses, renderStatus] = useMoneyAccounts(filter);\r\n\r\n const lenmoneyacc = statuses.length\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(otherProps as any)}\r\n />\r\n );\r\n};\r\n","import { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { OrderTypes } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: OrderTypes) => (status ? status.ftDescr : \"\");\r\n\r\nexport const useOrderTypes = () => {\r\n\tconst statuses = useSelector(store => store.data.initialData.orderTypes);\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n","import React from \"react\";\r\nimport { useOrderTypes } from \"../../../data/initialData/hooks/useOrderTypes\";\r\nimport { OrderTypes } from \"../../../data/models\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\n\r\ntype RegionSelectPropsType = Omit<\r\n AutocompleteSelectType,\r\n \"data\" | \"getLabel\"\r\n>;\r\n\r\nexport const OrderTypesSelect: React.FunctionComponent = (\r\n props\r\n) => {\r\n const [statuses, renderStatus] = useOrderTypes();\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(props as any)}\r\n />\r\n );\r\n};\r\n","import { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { TifList } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: TifList) => (status ? status.ftDescr : \"\");\r\n\r\nexport const useTifList = () => {\r\n\tconst statuses = useSelector(store => store.data.initialData.tifList);\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n","import React from \"react\";\r\nimport { useTifList } from \"../../../data/initialData/hooks/useTifList\";\r\nimport { TifList } from \"../../../data/models\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\n\r\ntype RegionSelectPropsType = Omit<\r\n AutocompleteSelectType,\r\n \"data\" | \"getLabel\"\r\n>;\r\n\r\nexport const TifListSelect: React.FunctionComponent = (\r\n props\r\n) => {\r\n const [statuses, renderStatus] = useTifList();\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(props as any)}\r\n />\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { SecurityAccounts } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: SecurityAccounts) => (status ? status.accNo : \"\");\r\n\r\nexport const useSecurityAccountsDomDefault = () => {\r\n\tconst statuses = useSelector(store => store.data.initialData.securityAccounts);\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n\r\nexport const useSecurityAccountDomDefault = (accUse?: string) => {\r\n\tconst [secaccs] = useSecurityAccountsDomDefault();\r\n\r\n\tconst secacc = React.useMemo(() => secaccs.find(c => c.accUse !== \"F\" && c.defDom===1 ), [secaccs, accUse]);\r\n\tconst secaccLabel = React.useMemo(() => getStatusLabel(secacc), [secacc]);\r\n\r\n\treturn [secacc, secaccLabel] as [typeof secacc, typeof secaccLabel];\r\n};\r\n\r\n\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { MoneyAccounts } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: MoneyAccounts) => (status ? status.accNo : \"\");\r\n\r\nexport const useMoneyAccountsDomDefault = () => {\r\n\r\n\tconst statuses = useSelector(store => store.data.initialData.moneyAccounts.filter(f=>f.accUse!=='F'));\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n\r\nexport const useMoneyAccountDomDefault = (accUse?: string, currId?: string) => {\r\n\r\n\tconst [monaccs] = useMoneyAccountsDomDefault();\r\n\r\n\tconst monacc = React.useMemo(() => monaccs.find(c => (c.accUse!=='F' && c.accSide !== 'S' && c.defDom === 1 ) ), [monaccs]);\r\n\t\r\n\tconst monaccLabel = React.useMemo(() => getStatusLabel(monacc), [monacc]);\r\n\r\n\treturn [monacc, monaccLabel] as [typeof monacc, typeof monaccLabel];\r\n};\r\n","import React, { ReactNode } from \"react\";\r\nimport { useOrderValidator } from \"../../../data/domestic/orders/hooks/useOrderValidator\";\r\nimport { useOrderUpsert } from \"../../../data/domestic/orders/hooks/useOrderUpsert\";\r\nimport { EditOrder, OrdersEditAction, MoneyAccFilter, OrderSecurityFilter } from \"../../../data/domestic/orders/types\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Grid, TextField, InputAdornment, Typography } from \"@material-ui/core\";\r\nimport { FabSave } from \"../../components/common/FabSave\";\r\nimport { BoolInput } from \"../../components/common/BoolInput\";\r\nimport { LeavePrompt } from \"../../components/common/LeavePrompt\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { OrderSideSelect } from \"./OrderSideSelect\";\r\nimport { NumberInput } from \"../../components/common/NumberInput\";\r\nimport { DateInput } from \"../../components/common/DateInput\";\r\nimport { orderBookLocation } from \"./Locations\";\r\nimport { OrderSide } from \"../../../data/models\";\r\nimport { SecuritySelect } from \"../../components/tables/SecuritySelect\";\r\nimport { SecurityAccountsSelect } from \"../../components/common/SecurityAccountsSelect\";\r\nimport { MoneyAccountsSelect } from \"../../components/common/MoneyAccountsSelect\";\r\nimport { OrderTypesSelect } from \"../../components/common/OrderTypesSelect\";\r\nimport { TifListSelect } from \"../../components/common/TifListSelect\";\r\nimport { useSecurityAccount } from \"../../../data/initialData/hooks/useSecurityAccounts\";\r\nimport { useSecurityAccountDomDefault } from \"../../../data/initialData/hooks/useSecurityAccountsDomDefault\";\r\nimport { useMoneyAccount } from \"../../../data/initialData/hooks/useMoneyAccounts\";\r\nimport { useMoneyAccountDomDefault } from \"../../../data/initialData/hooks/useMoneyAccountsDomDefault\";\r\nimport { Security } from \"@material-ui/icons\";\r\nimport { Status } from \"../../../data/models\";\r\nimport { CustomDialog } from \"../../components/common/CustomDialog\";\r\nimport { useOrderSideStyles } from \"./useOrderRowColor\";\r\n\r\nexport interface EditOrderBasicInfoPageProps {\r\n\torder: EditOrder;\r\n\teditOrder: (field: keyof EditOrder, value: any) => void;\r\n\tchanged: boolean;\r\n\taction: OrdersEditAction;\r\n}\r\n\r\nexport type FundCheckState =\r\n\t| { status: \"INIT\"; message?: string }\r\n\t| { status: \"SHOWMESSAGE\"; message: string }\r\n\t| { status: \"RESUBMITED\"; message?: string }\r\n\t| { status: \"CONFIRMED\"; message?: string };\r\n\r\nexport type ActiveCheckState =\r\n\t| { status: \"INIT\"; message?: string }\r\n\t| { status: \"SHOWMESSAGE\"; message?: string }\r\n\t| { status: \"CANCEL\"; message?: string }\r\n\t| { status: \"CONFIRMED\"; message?: string };\r\n\r\n\r\nexport const EditOrderBasicInfoPage: React.FunctionComponent = props => {\r\n\tconst { getString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n\tconst { action, order, editOrder, changed } = props;\r\n\tconst [auth] = useAuth();\r\n\tconst [validationState, validate] = useOrderValidator();\r\n\tconst [fetchState, upsert] = useOrderUpsert(action);\r\n\tconst history = useHistory();\r\n\tconst sideStyle = useOrderSideStyles();\r\n\r\n\r\n\r\n\t//\tconst [secAccount, renderStatus] = useSecurityAccount(\"D\"); // Računi hartija \r\n\r\n\tconst [activeCheckState, setActiveCheckState] = React.useState({ status: \"INIT\" });\r\n\r\n\tconst [secAccountDef, secAccountDefName] = useSecurityAccountDomDefault(); // Račun hartija default\r\n\r\n\tconst unsavedChanges = fetchState.type === \"not-started\" && changed;\r\n\r\n\tconst handleChange = React.useCallback(\r\n\t\t(event: React.ChangeEvent) => {\r\n\t\t\teditOrder(event.target.name as any, event.target.value);\r\n\t\t},\r\n\t\t[editOrder]\r\n\t);\r\n\r\n\tconst handleChangeIceberg = React.useCallback(\r\n\t\t(event: React.ChangeEvent) => {\r\n\t\t\teditOrder(event.target.name as any, event.target.value);\r\n\t\t},\r\n\t\t[editOrder]\r\n\t);\r\n\r\n\tconst [orderSecurityFilter, setOrderSecurityFilter] = React.useState(\r\n\t\tcreateOrderSecurityFilter()\r\n\t);\r\n\r\n\tconst [monAccountFilter, setMonAccountFilter] = React.useState(\r\n\t\tcreateOrderMoneyAccountFilter(order)\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tsetOrderSecurityFilter(createOrderSecurityFilter());\r\n\t}, [setOrderSecurityFilter]);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tsetMonAccountFilter(createOrderMoneyAccountFilter(order));\r\n\t}, [setMonAccountFilter, order]);\r\n\r\n\r\n\tconst [monAccountDef, monrenderStatusDef] = useMoneyAccountDomDefault();\r\n\r\n\tconst backLocation = orderBookLocation;\r\n\r\n\tconst saveOrder = React.useCallback(\r\n\t\tasync (order: EditOrder) => {\r\n\t\t\tconst normalized = validate(order);\r\n\t\t\tif (normalized) {\r\n\t\t\t\tconst result = await upsert(normalized);\r\n\t\t\t\tif (result.status === \"CREATED\") {\r\n\t\t\t\t\teditOrder(\"orderId\", result.newId);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t[validate, editOrder, upsert]\r\n\t);\r\n\r\n\r\n\t/*\tconst saveOrder = React.useCallback(\r\n\t\tasync (order: EditOrder) => {\r\n\t\t\tconst normalized = validate(order);\r\n\t\t\tif (normalized) {\r\n\t\t\t\tconst result = await upsert(normalized);\r\n\t\t\t\tif (result.status === \"CREATED\") {\r\n\t\t\t\t\teditOrder(\"orderId\", result.newId);\r\n\t\t\t\t} else if (result.status === \"NOFUNDS\") {\r\n\t\t\t\t\tsetFundCheckState({\r\n\t\t\t\t\t\tstatus: \"SHOWMESSAGE\",\r\n\t\t\t\t\t\tmessage: result.message,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t[validate, editOrder, upsert]\r\n\t); */\r\n\r\n\tconst fabClick = React.useCallback(\r\n\t\t(order: EditOrder) => {\r\n\t\t\tif (fetchState.type === \"successful\") {\r\n\t\t\t\thistory.push(backLocation);\r\n\t\t\t} else if (fetchState.type !== \"started\") {\r\n\t\t\t\tsaveOrder(order);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[fetchState, history, backLocation, saveOrder]\r\n\t);\r\n\r\n\r\n\tif (!order || auth.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\r\n\r\n\tconst messageelement: ReactNode = (\r\n\t\t<>\r\n\t\t
{`${getString(\"orderSecurity\")} ${order.security?.symbol}`}
\r\n\t\t
{`${getString(\"orderQty\")}: ${getFormatedNumberString(order.qty)}`}
\r\n\t\t
{`${getString(\"orderPrice\")}: ${order.price===undefined || order.price===0 ? \"Tržišna\": getFormatedNumberString(order.price,true)} ${order.security?.currCode}`}
\r\n\t\t
{`${order.price===undefined || order.price===0 ? \"\": getString(\"orderAttrValue\")} ${order.price===undefined || order.price===0 ? getString(\"orderChecked\"): getFormatedNumberString(order.price*order.qty,true)} ${order.price===undefined || order.price===0 ? \"\": order.security?.currCode}`}
\r\n\t\t\r\n\t)\r\n\r\n\t\r\n\tconsole.log(order)\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"side\", e.target.value);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAccId\", order.securityAccId ? order.securityAccId : secAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAcc\", order.securityAcc ? order.securityAcc : secAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", monAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", monAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", order.moneyAccId && order.security?.currId !== monAccountDef?.currId ? order.moneyAccId : monAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", order.moneyAcc && order.security?.currId !== monAccountDef?.currId ? order.moneyAcc : monAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\tcreateOrderMoneyAccountFilter(order);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tside={order.side}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t security.securityId === order.security?.securityId}\r\n\t\t\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"symbol\", security?.symbol);\r\n{/*\t\t\t\t\t\t\t\t\teditOrder(\"symbol\", security?.secData); */}\r\n\t\t\t\t\t\t\t\t\teditOrder(\"security\", security);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAccId\", order.securityAccId ? order.securityAccId : secAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAcc\", order.securityAcc ? order.securityAcc : secAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", monAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", monAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", order.moneyAccId && order.security?.currId !== monAccountDef?.currId ? order.moneyAccId : monAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", order.moneyAcc && order.security?.currId !== monAccountDef?.currId ? order.moneyAcc : monAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\tcreateOrderMoneyAccountFilter(order);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\trequired={validationState.security !== undefined}\r\n\t\t\t\t\t\t\t\terror={validationState.security !== undefined && !validationState.security}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tproperty=\"qty\"\r\n\t\t\t\t\t\t\t\titem={order}\r\n\t\t\t\t\t\t\t\tvalidationState={validationState}\r\n\t\t\t\t\t\t\t\tonChange={handleChange}\r\n\t\t\t\t\t\t\t\tlabel={getString(\"orderQty\")}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t securityAcc.accId === order.securityAccId}\r\n\t\t\t\t\t\t\t\tonChangeItem={securityAcc => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAccId\", securityAcc?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAcc\", securityAcc?.accNo);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\trequired={validationState.security !== undefined}\r\n\t\t\t\t\t\t\t\terror={validationState.security !== undefined && !validationState.security}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t monAccount.accId === order.moneyAccId}\r\n\t\t\t\t\t\t\t\tonChangeItem={monAccount => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", monAccount?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", monAccount?.accNo);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\trequired={validationState.security !== undefined}\r\n\t\t\t\t\t\t\t\terror={validationState.security !== undefined && !validationState.security}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t orderTypes.ftValue === order.orderType}\r\n\t\t\t\t\t\t\t\tonChangeItem={orderTypes => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"orderType\", orderTypes?.ftValue);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"price\", order.orderType === \"LIMIT\" ? 0 : order.price)\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tproperty=\"price\"\r\n\t\t\t\t\t\t\t\titem={order}\r\n\t\t\t\t\t\t\t\tvalidationState={validationState}\r\n\t\t\t\t\t\t\t\tonChange={handleChange}\r\n\t\t\t\t\t\t\t\tlabel={getString(\"orderPrice\")}\r\n\t\t\t\t\t\t\t\tmoney\r\n\t\t\t\t\t\t\t\tdisabled={order.orderType !== \"LIMIT\" || action === OrdersEditAction.Modify} \r\n\t\t\t\t\t\t\t\trequired={order.orderType === \"LIMIT\"}\r\n\t\t\t\t\t\t\t\terror={!validationState.price}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t tifList.ftValue === order.timeInForce}\r\n\t\t\t\t\t\t\t\tonChangeItem={tifList => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"timeInForce\", tifList?.ftValue);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"expiryDate\", tifList?.ftValue !== \"GTD\" ? null : order.expiryDate)\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t editOrder(\"expiryDate\", date)}\r\n\t\t\t\t\t\t\t\trequired={order.timeInForce === \"GTD\"}\r\n\t\t\t\t\t\t\t\terror={order.timeInForce === \"GTD\" && !validationState.expiryDate}\r\n\t\t\t\t\t\t\t\tdisabled={order.timeInForce !== \"GTD\" || action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t\tdisablePast\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tproperty=\"iceberg\"\r\n\t\t\t\t\t\t\t\titem={order}\r\n\t\t\t\t\t\t\t\tonChange={handleChange}\r\n\t\t\t\t\t\t\t\tfalsyValue={Status.Inactive}\r\n\t\t\t\t\t\t\t\tthrutyValue={Status.Active}\r\n\t\t\t\t\t\t\t\tlabel={getString(\"orderIceberg\")}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tproperty=\"visibleQty\"\r\n\t\t\t\t\t\t\t\titem={order}\r\n\t\t\t\t\t\t\t\trequired={order.iceberg === 1}\r\n\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\tvalidationState={validationState}\r\n\t\t\t\t\t\t\t\terror={order.iceberg === 1 && !validationState.visibleQty}\r\n\t\t\t\t\t\t\t\tdisabled={!order.iceberg || order.iceberg === Status.Inactive || action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t\tonChange={handleChange}\r\n\t\t\t\t\t\t\t\tlabel={getString(\"orderQty\")}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{auth.user.confirmOrder===0 && ( fabClick(order)} /> )}\r\n\t\t\t{auth.user.confirmOrder===1 && ( {\r\n\t\t\t\t\tactiveCheckState.status === \"INIT\" || fetchState.type === \"not-started\" ? setActiveCheckState({ status: \"SHOWMESSAGE\" }) : fabClick(order);\r\n\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t/>)}\r\n\t\t\t\r\n\t\t\t{auth.user.confirmOrder===1 && ( {\r\n\t\t\t\t\tclose === false ? setActiveCheckState(s => ({ status: \"CONFIRMED\", message: s.message })) : setActiveCheckState(s => ({ status: \"CANCEL\", message: s.message }));\r\n\t\t\t\t\tclose === false ? fabClick(order) : setActiveCheckState(s => ({ status: \"INIT\", message: s.message }));\r\n\t\t\t\t}}\r\n\t\t\t\tdisableBackdropClick\r\n\t\t\t/>)}\r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst createOrderSecurityFilter = (): OrderSecurityFilter | undefined => {\r\n\treturn {\r\n\t\taccUse: \"D\",\r\n\t};\r\n};\r\n\r\nconst createOrderMoneyAccountFilter = (order?: EditOrder): MoneyAccFilter | undefined => {\r\n\treturn order && !order.security && order.side === \"BUY\" ? { accSide: \"B\", curId: \"00000001\" } :\r\n\t\torder && !order.security && order.side === \"SELL\" ? { accSide: \"S\", curId: \"00000001\" } :\r\n\t\t\torder && order.security && order.side === \"BUY\" ? { accSide: \"B\", curId: order.security.currId ? order.security.currId : \"00000001\" } :\r\n\t\t\t\torder && order.security && order.side === \"SELL\" ? { accSide: \"S\", curId: order.security.currId ? order.security.currId : \"00000001\" } : { accSide: \"B\", curId: \"00000001\" }\r\n};\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { upsertOrder } from \"../thunks/upsertOrder\";\r\nimport { setNewOrderFetchState } from \"../orderBookDataSlice\";\r\nimport { EditOrder, OrdersEditAction, OrderUpsertResult } from \"../types\";\r\n\r\nexport const useOrderUpsert = (action: OrdersEditAction) => {\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.domestic.orderBook.newOrderFetchState\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchUpsertOrder: any = React.useCallback(\r\n\t\t(order: EditOrder) => dispatch(upsertOrder(action, order)),\r\n\t\t[dispatch, action]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"not-started\" }))\r\n\t}, [dispatch])\r\n\r\n\treturn [fetchState, dispatchUpsertOrder] as [typeof fetchState, (order: EditOrder) => Promise]\r\n};\r\n\r\n","import React from \"react\";\r\nimport { EditOrder, OrdersEditAction, OrderMarket } from \"../types\";\r\nimport { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { OrderSide } from \"../../../models\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { useAuth } from \"../../../auth/hooks\";\r\nimport { useOrderForEdit } from \"./useOrderForEdit\";\r\nimport { Status } from \"../../../models\";\r\nimport { useMoneyAccountDomDefault } from \"../../../../data/initialData/hooks/useMoneyAccountsDomDefault\";\r\nimport { MoneyAccounts, SecurityAccounts } from \"../../../models\";\r\nimport { useSecurityAccountDomDefault } from \"../../../../data/initialData/hooks/useSecurityAccountsDomDefault\";\r\n\r\nexport const createDefaultOrder = (user: User, moneyacc?: MoneyAccounts, securityAcc?:SecurityAccounts) : EditOrder => ({\r\n//\tuserId: user.userId,\r\n\tclientId: user.clientId,\r\n\ttimeInForce: \"DAY\",\r\n\torderType: \"LIMIT\",\r\n\texchId: \"00000001\",\r\n\tqty: 0,\r\n\tprice: 0,\r\n\torderId: \"\",\r\n\tside: OrderSide.Buy,\r\n\ticeberg: Status.Inactive,\r\n\tmarket: OrderMarket.Domestic,\r\n\tmoneyAccId: moneyacc?.accId,\r\n\tsecurityAccId: securityAcc?.accId\r\n});\r\n\r\nexport const useEditOrder = (action: OrdersEditAction, orderId?: string): EditOrder | undefined => {\r\n\tconst diplayedOrder = useOrderForEdit(action, orderId);\r\n\tconst [auth] = useAuth();\r\n\r\n\tconst [monAccountDef, monrenderStatusDef ] = useMoneyAccountDomDefault();\r\n\tconst [secAccountDef, secAccountDefName] = useSecurityAccountDomDefault(); // Račun hartija default\r\n\r\n\treturn React.useMemo(() => {\r\n\t\tif ((orderId !== undefined && diplayedOrder === undefined) || auth.status !== \"successful\") {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\r\n\t\tif (orderId === undefined) {\r\n\t\t\tconst defaultOrder = createDefaultOrder(auth.user, monAccountDef, secAccountDef);\r\n\t\t\treturn { ...defaultOrder };\r\n\t\t}\r\n\t\tconst order = diplayedOrder\r\n\t\t\t? (({ ...diplayedOrder, userId: auth.user.userId } as unknown) as EditOrder)\r\n\t\t\t: undefined;\r\n\r\n\t\tif (order && auth.user.clientId) {\r\n\t\t\torder.clientId = auth.user.clientId;\r\n\t\t}\r\n\r\n\t\treturn order;\r\n\t}, [orderId, diplayedOrder, auth]);\r\n};\r\n\r\nexport const useEditOrderState = (action: OrdersEditAction, orderId?: string) => {\r\n\tconst order = useEditOrder(action, orderId);\r\n\treturn useCopiedState(order);\r\n};\r\n","import { OrdersEditAction, Order } from \"../types\";\r\n// import { getOppositeOrder } from \"../api/getOppositeOrder\";\r\nimport { getOrderApi } from \"../api/getOrder\";\r\nimport { useAuth } from \"../../../auth/hooks\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport React from \"react\";\r\n\r\nexport const useOrderForEdit = (action: OrdersEditAction, ordId?: string) => {\r\n\tconst [auth] = useAuth();\r\n\tconst dispatch = useDispatch();\r\n\tconst [order, setOrder] = React.useState();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (auth.status !== \"successful\" || !ordId) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\tconst load = async () => {\r\n\t\t\tconst newOrder = await dispatch(getOrderApi(auth.user.userId, ordId));\r\n\r\n//\t\t\t\taction === OrdersEditAction.Replay\r\n//\t\t\t\t\t? await dispatch(getOppositeOrder(auth.user.userId, ordId))\r\n//\t\t\t\t\t: await dispatch(getOrderApi(auth.user.userId, ordId));\r\n\r\n\t\t\t\t\tsetOrder(newOrder as any);\r\n\t\t};\r\n\t\tload();\r\n\t}, [dispatch, action, ordId, setOrder, auth]);\r\n\r\n\treturn order;\r\n};\r\n","import OrderBook from \"./OrderBook\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { orderBookLocation, baseEdit } from \"./Locations\";\r\nimport { EditOrderPage } from \"../orders/EditOrderPage\"\r\n\r\nexport const orderBookComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: OrderBook,\r\n\t\tisMenuItem: true,\r\n\t\tpath: orderBookLocation,\r\n\t\tnotifications: true,\r\n\t},\r\n\r\n\t{\r\n\t\tComponent: EditOrderPage,\r\n\t\tisMenuItem: false,\r\n\t\tpath: baseEdit,\r\n\t},\r\n\r\n];\r\n\r\n\r\n\r\n","import React from \"react\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { Card, Grid, CardHeader, Divider, CardContent } from \"@material-ui/core\";\r\nimport { EditOrderBasicInfoPage } from \"./EditOrderBasicInfoPage\";\r\nimport { useEditOrderState } from \"../../../data/domestic/orders/hooks/useEditOrderState\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\n// import { mainBoardLocation } from \"../mainBoard/Locations\";\r\nimport { OrdersEditAction } from \"../../../data/domestic/orders/types\";\r\nimport { orderBookLocation } from \"./Locations\";\r\nimport { OrderSide } from \"../../../data/models\";\r\nimport { useOrderSideStyles } from \"./useOrderRowColor\";\r\n\r\nexport interface EditOrderPageInfo {\r\n\taction: OrdersEditAction;\r\n\teditPart?: string;\r\n\torderId?: string;\r\n}\r\n\r\nexport interface EditOrderPageProps extends RouteComponentProps {}\r\n\r\nexport const EditOrderPage: React.FunctionComponent = props => {\r\n\tconst pageStyles = usePageStyles();\r\n\tconst { action, orderId } = props.match.params;\r\n\tconst sideStyle = useOrderSideStyles();\r\n\r\n\tconst [order, editOrder, changed] = useEditOrderState(action, orderId);\r\n\r\n// \tconst backLocation = action === OrdersEditAction.Replay ? mainBoardLocation : orderBookLocation; ovo kad se bude davao nalog i iz table\r\n\tconst backLocation = orderBookLocation;\r\n\r\n\tconst pageTitle = orderId\r\n\t\t? action === OrdersEditAction.Verify\r\n\t\t\t? \"orderVerify\"\r\n\t\t\t: \"orderModify\"\r\n\t\t: \"orderCreateTitle\";\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tclassName={order && order.side === OrderSide.Sell ? sideStyle.sell : sideStyle.buy}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{order && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { Trades } from \"../types\";\r\n\r\nexport const getTradeApi = (userId: string, tranid: string) =>\r\n webApi({\r\n method: \"GET\",\r\n url: \"trade/gettran\",\r\n params: {\r\n userId,\r\n tranid,\r\n },\r\n });\r\n\r\nexport default getTradeApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getTradeApi from \"../api/getTrade\";\r\nimport { setDisplayed } from \"../tradesDataSlice\";\r\nimport { Trades } from \"../types\";\r\n\r\nexport const loadTrade = (tradeId: string): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n dispatch(setDisplayed());\r\n\r\n const trade = await dispatch(getTrade(tradeId));\r\n\r\n dispatch(setDisplayed(trade));\r\n};\r\n\r\nexport const getTrade = (\r\n tradeId: string\r\n): ThunkType> => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const { userId } = store.data.auth.current.user;\r\n return await dispatch(getTradeApi(userId, tradeId));\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { Trades } from \"../types\";\r\nimport { loadTrade } from \"../thunks/loadTrade\";\r\n\r\nexport const useDisplayTrade = (tradeId?: string) => {\r\n const storeTrade = useSelector(\r\n (store) => store.data.domestic.trades.displayedTrade\r\n );\r\n\r\n const displayedTrade =\r\n storeTrade && storeTrade.tranId === tradeId ? storeTrade : undefined;\r\n\r\n const displatch = useDispatch();\r\n\r\n React.useEffect(() => {\r\n if (tradeId) {\r\n displatch(loadTrade(tradeId));\r\n }\r\n }, [displatch, tradeId]);\r\n\r\n return displayedTrade;\r\n};\r\n","import React from \"react\";\r\nimport { Trades } from \"../../../data/domestic/trades/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useDisplaySingleEmementStyles } from \"../../useDisplaySingleEmementStyles\";\r\n\r\nexport interface DisplayTradeMainAttributesProps {\r\n\ttrade: Trades;\r\n}\r\n\r\nexport const DisplayTradeMainAttributes: React.FunctionComponent = ({\r\n\ttrade,\r\n}) => {\r\n\tconst style = useDisplaySingleEmementStyles();\r\n\tconst { getString, getDateTimeString, getDateString, getFormatedNumberString, getFormatedNumberString4 } = React.useContext(LocalizationContext);\r\n\t\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeNo\")}\r\n\t\t\t\t{trade.clTradeId}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeDescr\")}\r\n\t\t\t\t{trade.tranDesc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeTime\")}\r\n\t\t\t\t{getDateTimeString(trade.tradeTime)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeSettl\")}\r\n\t\t\t\t{getDateString(trade.settlDate, \"DD.MM.YYYY\")}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeSecurity\")}\r\n\t\t\t\t{trade.symbol}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeCurrCode\")}\r\n\t\t\t\t{trade.currency}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeQty\")}\r\n\t\t\t\t {getFormatedNumberString(trade.qty)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradePrice\")}\r\n\t\t\t\t {getFormatedNumberString(trade.price, true)}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.tradeAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeBrokCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.brokCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradebrokCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.brokCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeExchCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.exchCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeExchCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.exchCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeRegCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.regCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeRegCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.regCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeBankCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.bankCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeBankCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.bankCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeVatAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.vatAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeTotComm\")}\r\n\t\t\t\t {getFormatedNumberString(trade.totComm, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeAmtFinal\")}\r\n\t\t\t\t {getFormatedNumberString(trade.totAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeRate\")}\r\n\t\t\t\t {getFormatedNumberString4(trade.rate, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSecurityAcc\")}\r\n\t\t\t\t{trade.securityAcc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderMoneyAcc\")}\r\n\t\t\t\t{trade.moneyAcc}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const printTrade = (user: User, tradeid: string) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/gettradeconfreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\ttradeid,\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default printTrade;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { printTradesThunk } from \"../thunks/printTradesThunk\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { Trades } from \"../types\";\r\n\r\nexport const useTradesPrinter = (trade?: Trades) => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.trades.printTradeFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => {\r\n\t\t\tdispatch(printTradesThunk(trade));\r\n\t}, [dispatch, trade]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { printTrade } from \"../api/printTrades\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintTradeFetchState } from \"../tradesDataSlice\";\r\nimport { Trades } from \"../types\";\r\n\r\nexport const printTradesThunk = (trade?: Trades): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\" || !trade || !trade.tranId) {\r\n\t\treturn undefined;\r\n\t}\r\n\tconst lan = store.ux.localization.language\r\n//\tconst filename = `TradingConfirmation${trade.side.trim().toUpperCase()}_${lan.trim().toUpperCase()}_${trade.clTranId}.pdf`\r\n\tconst filename = `TradingConfirmation${lan.trim().toUpperCase()}_${trade.clTradeId}.pdf`\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintTradeFetchState({ type: \"started\" }));\r\n\tconst tradesReport = await dispatch(printTrade(user, trade.tranId));\r\n\tif (tradesReport) {\r\n\t\tfileDownload(new Blob([tradesReport as any], { type: \"application/pdf\" }), filename);\r\n\t}\r\n\tdispatch(setPrintTradeFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { useDisplayTrade } from \"../../../data/domestic/trades/hooks/useDisplayTrades\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { DisplayTradeMainAttributes } from \"./DisplayTradeMainAttributes\";\r\nimport { ExpansionPanel, ExpansionPanelSummary, Typography, Grid,IconButton,} from \"@material-ui/core\";\r\nimport { useTradesPrinter } from \"../../../data/domestic/trades/hooks/useTradesPrinter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\n//import PrintIcon from \"@material-ui/icons/PrintOutlined\";\r\n//import { useAuth } from \"../../../data/auth/hooks\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport { CustomDialog } from \"../../components/common/CustomDialog\";\r\n\r\nexport interface DisplayTradeProps {\r\n id?: string;\r\n\tenablePrint?: boolean;\r\n}\r\n\r\nexport const DisplayTrade: React.FunctionComponent = ({\r\n id,\r\n enablePrint,\r\n}) => {\r\n const trade = useDisplayTrade(id);\r\n const { getString } = React.useContext(LocalizationContext);\r\n\tconst [print, fetchState ] = useTradesPrinter(trade);\r\n \r\n //const [auth] = useAuth();\r\n //{auth.status === \"successful\" && auth.user.roleCode == \"MEMTRADER\" && (\r\n\r\n return !trade ? (\r\n <>{\"loading placeholder\"}\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n {getString(\"tableBasciInfo\")}\r\n \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n { fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n\r\n\t \t{/*\r\n */}\r\n\r\n \r\n );\r\n};\r\n\r\nexport const useViewTrade = () => {\r\n const showWithDrawer = React.useContext(DisplayDrawerContext);\r\n return React.useCallback(\r\n (trade: TradeList) => showWithDrawer(),\r\n [showWithDrawer]\r\n );\r\n};\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport CancelIcon from \"@material-ui/icons/CancelOutlined\";\r\nimport { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MaterialTableProps } from \"material-table\";\r\nimport { useViewTrade } from \"./DisplayTrade\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\n\r\nexport function useTradeActions() {\r\n\tconst { getString } = useContext(LocalizationContext);\r\n\tconst onShowTrade = useViewTrade();\r\n\tconst [auth] = useAuth();\r\n\r\n\treturn useMemo[\"actions\"]>(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ticon: () => ,\r\n\t\t\t\ttooltip: getString(\"tradeViewAction\"),\r\n\t\t\t\tonClick: (event, rowData) => onShowTrade(rowData as TradeList),\r\n\t\t\t},\r\n\t\t],\r\n\t\t[onShowTrade, getString, auth]\r\n\t);\r\n}\r\n","import { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const useTradeColumns = () => {\r\n\tconst { getString, getDateTimeString,getDateString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeNo\"),\r\n\t\t\t\tfield: \"clTranId\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"200px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"200px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"200px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeTime\"),\r\n\t\t\t\trender: trade => getDateTimeString(trade.tranTime),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"180px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"180px\",\r\n\t\t\t\t\tminWidth: \"180px\",\r\n\t\t\t\t\twidth: \"180px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"180px\",\r\n\t\t\t\t\tminWidth: \"180px\",\r\n\t\t\t\t\twidth: \"180px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeTime\"),\r\n\t\t\t\trender: trade => getDateString(trade.tranTime),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"120px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: !screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeSecurity\"),\r\n\t\t\t\tfield: \"symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeIsin\"),\r\n\t\t\t\tfield: \"isin\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeDescr\"),\r\n\t\t\t\tfield: \"tranDesc\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeQty\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.qty) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderPrice\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.price, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeCurrCode\"),\r\n\t\t\t\tfield: \"curr\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeAmt\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.tradeAmt, true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeComm\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.feesAmt, true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeOrder\"),\r\n\t\t\t\tfield: \"ordNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\t\t\t},\r\n\t\t],\r\n\t\t[getString, getDateTimeString, getFormatedNumberString,screenExtraSmall]\r\n\t) as Column[];\r\n};\r\n","import React from \"react\";\r\nimport { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport {\r\n PaginationTable,\r\n PaginationDataProps,\r\n} from \"../../components/common/PagginationTable\";\r\nimport { useTradeActions } from \"./useTradeActions\";\r\nimport { useTradeColumns } from \"./useTradeColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport interface TradeTableProps {\r\n userAccessRights: AccessRights;\r\n getData: () => void;\r\n}\r\n\r\ntype TradeTablePropsType = TradeTableProps & PaginationDataProps;\r\n\r\nconst TradesTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n getData,\r\n ...tableProps\r\n}) => {\r\n const actions = useTradeActions();\r\n const columns = useTradeColumns();\r\n\r\n const theme = useTheme();\r\n const screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={getData}\r\n // immutableData={data}\r\n title=\"\"\r\n columns={columns}\r\n actions={actions}\r\n options={{\r\n// actionsColumnIndex: -1,\r\n\t\t\t\tactionsColumnIndex: screenExtraSmall === true ? 0 : -1 ,\r\n search: false,\r\n toolbar: false,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default TradesTable;\r\n","import { TradeList, GetTradesParams, TradeFilter } from \"../types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\n\r\nconst getTradesWebApi = (\r\n user: User,\r\n page?: number,\r\n itemsPerPage?: number,\r\n filter?: TradeFilter,\r\n) => {\r\n const params: GetTradesParams = {\r\n userid: user.userId,\r\n domfor: \"D\",\r\n secid: filter?.security?.securityId,\r\n numofrows: itemsPerPage,\r\n fromrow: page && itemsPerPage ? page * itemsPerPage : undefined,\r\n datefrom: getParamsDateString(filter?.datefrom),\r\n dateto: getParamsDateString(filter?.dateto),\r\n };\r\n\r\n return webApiWithResponse({\r\n method: \"GET\",\r\n url: \"trade/gettranlist\",\r\n params,\r\n });\r\n};\r\n\r\nexport default getTradesWebApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getTrades from \"../api/getTrades\";\r\nimport { PageDataStatus, PageData } from \"../../../models\";\r\nimport { TradeFilter, TradeList } from \"../types\";\r\n\r\nexport const getTradesThunk = (\r\n\tpageNumber?: number,\r\n\titemsPerPage?: number,\r\n\tfilter?: TradeFilter\r\n): ThunkType | undefined>> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst user = store.data.auth.current.user;\r\n\r\n\tconsole.log(\"ovde sam domestic\")\r\n\r\n\tconst tradesData = await dispatch(getTrades(user, pageNumber, itemsPerPage, filter));\r\n\r\n\tif (!tradesData || tradesData.resCode !== \"OK\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\treturn {\r\n\t\tcurrentPageData: tradesData.obj,\r\n\t\ttotalCount: Number(tradesData.resDesc) || 0,\r\n\t\tstatus: PageDataStatus.DataCurrent,\r\n\t};\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setTrades } from \"../tradesDataSlice\";\r\nimport { setTradesIndex } from \"../tradesUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { getTradesThunk } from \"./getTradesThunk\";\r\n\r\nexport const loadTrades = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tconst { pageNumber, itemsPerPage } = store.ux.domestic.trades.index;\r\n\tconst { filter } = store.ux.domestic.trades;\r\n\r\n\tconsole.log(\"u loadTrades\")\r\n\tconst tradesData = await dispatch(getTradesThunk(pageNumber, itemsPerPage, filter));\r\n\r\n\tif (tradesData) {\r\n\t\tconsole.log(\"u loadTrades - 1\")\r\n\t\tdispatch(setTrades(tradesData));\r\n\t}\r\n};\r\n\r\nexport const setTradesIndexThunk = (index: PageIndex): ThunkType => dispatch => {\r\n\tdispatch(setTradesIndex(index));\r\n\tdispatch(loadTrades());\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { resetTradeIdices } from \"../tradesUXSlice\";\r\nimport { PageIndex } from \"../../../../data/models\";\r\nimport { setTradesIndexThunk } from \"../thunks/loadTrades\";\r\n\r\nexport const useTradeIndex = () => {\r\n const pageIndex = useSelector((s) => s.ux.domestic.trades.index);\r\n\r\n const dispatch = useDispatch();\r\n const dispatchSetIndex = React.useCallback(\r\n (index: PageIndex) => dispatch(setTradesIndexThunk(index)),\r\n [dispatch]\r\n );\r\n const dispatchResetIndex = React.useCallback(\r\n () => dispatch(resetTradeIdices()),\r\n [dispatch]\r\n );\r\n\r\n return [pageIndex, dispatchSetIndex, dispatchResetIndex] as [\r\n typeof pageIndex,\r\n typeof dispatchSetIndex,\r\n typeof dispatchResetIndex\r\n ];\r\n};\r\n","import React from \"react\";\r\nimport { Chip, Grid } from \"@material-ui/core\";\r\nimport { TradeFilter } from \"../../../data/domestic/trades/types\"\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const TradesFilterChips: React.FunctionComponent = ({\r\n\tfilter,\r\n\tremnoveFilter,\r\n}) => {\r\n\tconst { getDateString, getString } = React.useContext(LocalizationContext);\r\n\t\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{filter.datefrom && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"datefrom\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.dateto && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"dateto\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.security && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"security\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface TradeFilterChipsProps {\r\n\tfilter: TradeFilter;\r\n\tremnoveFilter: (type: keyof TradeFilter) => void;\r\n}\r\n","import React from \"react\";\r\nimport { Paper, Grid, Button } from \"@material-ui/core\";\r\nimport { DateInput } from \"../../components/common/DateInput\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { isValidDate } from \"../../../core/util/functions\";\r\nimport { TradeFilter } from \"../../../data/domestic/trades/types\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { SecuritySelect } from \"../../components/tables/SecuritySelect\";\r\n\r\nexport interface TradesFilterEditorProps {\r\n\tfilter?: TradeFilter;\r\n\teditFilter: (prop: keyof TradeFilter, value: any) => void;\r\n\tsave: () => void;\r\n\treset: () => void;\r\n}\r\n\r\nexport const TradesFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\treset,\r\n}) => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\teditFilter(\"datefrom\", isValidDate(date) ? date.toISOString() : undefined)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\teditFilter(\"dateto\", isValidDate(date) ? date.toISOString() : undefined)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t security.securityId === filter?.security?.securityId}\r\n\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\teditFilter(\"security\", security);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tsave();\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"orderFilterConfirm\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { useTradesFilter, useCurrentTradesFilter } from \"../../../data/domestic/trades/hooks/useTradesFilter\";\r\nimport { TradesFilterChips } from \"./TradesFilterChips\";\r\nimport { TradesFilterEditor } from \"./TradesFilterEditor\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const TradesFilterButton: React.FunctionComponent = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\tconst [filter, remnoveFilter] = useCurrentTradesFilter();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst TradesFilterDrawer: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, , reset] = useTradesFilter();\r\n\r\n\treturn ;\r\n};\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { setFilter, removeFilter, initialState } from \"../tradesUXSlice\"\r\nimport { invalidateTrades } from \"../tradesDataSlice\"\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\nimport { TradeFilter } from \"../types\";\r\n\r\n\r\nexport const useTradesFilter = () => {\r\n\tconst storeFilter = useSelector(store => store.ux.domestic.trades.filter);\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!))\r\n\t\tdispatch(invalidateTrades())\r\n\t}, [dispatch, filter])\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t}, [setCurrentFilter])\r\n\r\n\treturn [\r\n\t\tfilter,\r\n\t\teditFilter,\r\n\t\tdispatchSetFilter,\r\n\t\tchangeState, \r\n\t\tdispatchResetFilter\r\n\t] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t]\r\n};\r\n\r\nexport const useCurrentTradesFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.domestic.trades.filter);\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveFilter = React.useCallback(\r\n\t\t(type: keyof TradeFilter) => {\r\n\t\t\tdispatch(removeFilter(type));\r\n\t\t\tdispatch(invalidateTrades());\r\n\t\t},\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\treturn [filter, dispatchRemoveFilter] as [typeof filter, typeof dispatchRemoveFilter];\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\nimport { TradeFilter } from \"../types\";\r\n\r\nexport const getTradeListReport = (user: User, filter: TradeFilter) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/gettranbookreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"D\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tdatefrom: getParamsDateString(filter?.datefrom),\r\n\t\t\tdateto: getParamsDateString(filter?.dateto),\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default getTradeListReport;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadTradesReport } from \"../thunks/downloadReport\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useTradeBookReportDownloader = () => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.trades.printTradeFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => dispatch(downloadTradesReport()), [dispatch]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState]\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getTradeListReport } from \"../api/getTradeListReport\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintTradeFetchState } from \"../tradesDataSlice\";\r\n\r\nexport const downloadTradesReport = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst filter = store.ux.domestic.trades.filter;\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintTradeFetchState({ type: \"started\" }));\r\n\tconst tradeBookReport = await dispatch(getTradeListReport(user, filter));\r\n\tif (tradeBookReport) {\r\n\t\tfileDownload(new Blob([tradeBookReport as any], { type: \"application/pdf\" }), \"TradeBook.pdf\");\r\n\t}\r\n\tdispatch(setPrintTradeFetchState({ type: \"not-started\" }));\r\n};\r\n","import { TradeFilter } from \"../types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\n\r\nexport const getTradeListExcel = (\r\n user: User,\r\n filter: TradeFilter\r\n) => {\r\n return httpWebApi({\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n timeout: 60 * 4 * 1000,\r\n url: \"reporting/gettranbookxls\",\r\n params: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"D\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tdatefrom: getParamsDateString(filter?.datefrom),\r\n\t\t\tdateto: getParamsDateString(filter?.dateto),\r\n\t\t},\r\n });\r\n};\r\n\r\nexport default getTradeListExcel;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadTradesBookExcel } from \"../thunks/downloadReportExcel\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useTradeBookExcelDownloader = () => {\r\n const fetchState = useSelector(\r\n (s) => s.data.domestic.trades.downloadXlsFetchState\r\n );\r\n const dispatch = useDispatch();\r\n const download = React.useCallback(\r\n () => dispatch(downloadTradesBookExcel()),\r\n [dispatch]\r\n );\r\n\r\n return [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getTradeListExcel } from \"../api/getTradeListExcel\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setDownloadXlsFetchState } from \"../tradesDataSlice\";\r\n\r\nexport const downloadTradesBookExcel = (): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const filter = store.ux.domestic.trades.filter;\r\n const user = store.data.auth.current.user;\r\n dispatch(setDownloadXlsFetchState({ type: \"started\" }));\r\n const dailyTrading = await dispatch(getTradeListExcel(user, filter));\r\n if (dailyTrading) {\r\n fileDownload(\r\n new Blob([dailyTrading as any], {\r\n type: \"application/vnd.openxmlformat\",\r\n }),\r\n \"TradeBook.xlsx\"\r\n );\r\n }\r\n dispatch(setDownloadXlsFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { useTradeBookReportDownloader } from \"../../../data/domestic/trades/hooks/useTradeBookReportDownloader\";\r\nimport { useTradeBookExcelDownloader } from \"../../../data/domestic/trades/hooks/useTradeBookExcelDownloader\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport ExcelIcon from \"@material-ui/icons/TableChartOutlined\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n\r\nexport const DownloadButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useTradeBookReportDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null}\r\n\t\t\r\n);\r\n};\r\n\r\n\r\nexport const DownloadExcelButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useTradeBookExcelDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Card, Divider, Fab } from \"@material-ui/core\";\r\nimport TradesTable from \"./TradesTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent } from \"../../../core/navigation/types\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { useTradesData } from \"../../../data/domestic/trades/hooks/useTradesData\";\r\nimport { useTradeIndex } from \"../../../data/domestic/trades/hooks/useTradesIndex\";\r\nimport { TradesFilterButton } from \"./TradesFilter\";\r\nimport { PageDataStatus } from \"../../../data/models\";\r\nimport { useNotificationHandler } from \"../../../core/notifications/hooks\";\r\nimport { DownloadButton, DownloadExcelButton } from \"./DownloadButton\";\r\n\r\nconst TradesPage: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [pageData, dispatchLoadTradesPage, invalidateData] = useTradesData();\r\n\tconst [pageIndex, dispatchSetIndex] = useTradeIndex();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (pageData && pageData.status === PageDataStatus.DataInvalidated) {\r\n\t\t\tdispatchLoadTradesPage();\r\n\t\t}\r\n\t}, [dispatchLoadTradesPage, pageData]);\r\n\r\n\tReact.useEffect(() => () => { invalidateData() }, [])\t\r\n\r\n\tuseNotificationHandler(\r\n\t\t\"TradeChange\",\r\n\t\te => {\r\n\t\t\tconsole.log(\"TradeChange\", e);\r\n\t\t\tinvalidateData();\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\taction={}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const TradeBookActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default TradesPage;\r\n","import TradesPage from \"./TradesPage\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { tradesLocation } from \"./Locations\";\r\n\r\nexport const tradesComponents: NavigationItem[] = [\r\n {\r\n Component: TradesPage,\r\n isMenuItem: true,\r\n path: tradesLocation,\r\n notifications: true,\r\n },\r\n];\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadTrades } from \"../thunks/loadTrades\";\r\nimport { TradeList } from \"../types\";\r\nimport { PageData } from \"../../../../data/models\";\r\nimport { invalidateTrades } from \"../tradesDataSlice\";\r\n\r\nexport const useTradesData = () => {\r\n\tconst pageData = useSelector | undefined>(\r\n\t\ts => s.data.domestic.trades.currentPage\r\n\t);\r\n\r\n\tconsole.log(\"ovde sam domestic\")\r\n\r\n\tconst dispatch = useDispatch();\r\n\t\r\n\tconst dispatchLoadTradesPage = React.useCallback(() => dispatch(loadTrades()), [dispatch]);\r\n\r\n\tconst dispatchInvalidate = React.useCallback(() => dispatch(invalidateTrades()), [dispatch]);\r\n\r\n\treturn [pageData, dispatchLoadTradesPage, dispatchInvalidate] as [\r\n\t\ttypeof pageData,\r\n\t\ttypeof dispatchLoadTradesPage,\r\n\t\ttypeof dispatchInvalidate\r\n\t];\r\n};\r\n","export const tradesLocation = \"/domestic/trades\";\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { MarketData } from \"../types\";\r\n\r\nexport const getMarketDataApi = (userId: string, secid?: string) =>\r\n webApi({\r\n method: \"GET\",\r\n url: \"trade/getmarketdata\",\r\n params: {\r\n userId,\r\n// refresh: \"N\",\r\n sort: 0,\r\n secid,\r\n },\r\n });\r\n\r\nexport default getMarketDataApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getMarketDataApi from \"../api/getMarketData\";\r\nimport { setData } from \"../marketsDataSlice\";\r\n\r\nexport const loadMarketData = (): ThunkType => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return;\r\n }\r\n\r\n const secid=store.data.domestic.marketData.secid\r\n\r\n dispatch(setData());\r\n\r\n const { userId } = store.data.auth.current.user;\r\n const marketData = await dispatch(getMarketDataApi(userId, secid));\r\n \r\n dispatch(setData(marketData));\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadMarketData } from \"../thunks/loadMarketData\";\r\nimport { loadMarketAllData } from \"../thunks/loadMarketAllData\";\r\nimport { MarketListData, MarketDepth, MarketTrade } from \"../types\";\r\nimport { PageData, PageDataStatus, PageIndex } from \"../../../models\";\r\n\r\nexport const useMarketData = () => {\r\n\r\n const data = useSelector(\r\n (s) => s.data.domestic.marketData.displayData\r\n );\r\n const allData = useSelector(\r\n (s) => s.data.domestic.marketData.marketListData\r\n );\r\n const index = useSelector(\r\n (s) => s.ux.domestic.marketData.index\r\n );\r\n const pagedAllData = usePagedData(index, allData)\r\n\r\n const marketDepthData = useSelector(\r\n (s) => s.data.domestic.marketData.marketDepthData\r\n );\r\n\r\n const marketTrade = useSelector(\r\n (s) => s.data.domestic.marketData.marketTrade\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadMarketData = React.useCallback(\r\n () => dispatch(loadMarketData()),\r\n [dispatch ]\r\n );\r\n\r\n const dispatchInvalidateMD = React.useCallback(\r\n () => dispatch(loadMarketAllData()),\r\n [dispatch]\r\n );\r\n \r\n return [data, dispatchLoadMarketData, pagedAllData, marketDepthData, marketTrade,dispatchInvalidateMD] as [\r\n typeof data,\r\n typeof dispatchLoadMarketData,\r\n typeof pagedAllData,\r\n typeof marketDepthData,\r\n typeof marketTrade,\r\n typeof dispatchInvalidateMD\r\n ];\r\n};\r\n\r\nexport const usePagedData = (index: PageIndex, data?: T[]) => \r\n React.useMemo(() => {\r\n const startIndex = index.itemsPerPage * index.pageNumber\r\n const endIndex = startIndex + index.itemsPerPage\r\n return data && {\r\n currentPageData: data.slice(startIndex, endIndex),\r\n status: PageDataStatus.DataCurrent,\r\n totalCount: data.length\r\n } as PageData\r\n }, [index, data])\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getMarketDataApi from \"../api/getMarketData\";\r\nimport { setData } from \"../marketsDataSlice\";\r\n\r\nexport const loadMarketAllData = (): ThunkType => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return;\r\n }\r\n\r\n// const secid = undefined ;\r\n\r\n dispatch(setData());\r\n\r\n// const { userId } = store.data.auth.current.user;\r\n// const marketData = await dispatch(getMarketDataApi(userId, secid));\r\n \r\n// dispatch(setData(marketData));\r\n};\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport { MarketListData } from \"../../../data/domestic/mainBoard/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MaterialTableProps } from \"material-table\";\r\nimport { useMarketSecurityData } from \"../../../data/domestic/mainBoard/hooks/useMarketSecurityData\";\r\n\r\nexport function useMarketSecurityActions() {\r\n\r\n const { getString } = useContext(LocalizationContext);\r\n const onGetSecurity = useMarketSecurityData();\r\n\r\n return useMemo(() => {\r\n const result: MaterialTableProps[\"actions\"] = [\r\n {\r\n icon: () => ,\r\n tooltip: getString(\"marketDataDepth\"),\r\n onClick: (event, rowData) => onGetSecurity(rowData as MarketListData),\r\n },\r\n ];\r\n return result;\r\n }, [onGetSecurity, getString ]);\r\n}\r\n\r\n","import React from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { MarketListData } from \"../types\";\r\nimport { setSecurity } from \"../marketsDataSlice\";\r\nimport { loadMarketData } from \"../thunks/loadMarketData\";\r\n\r\nexport const useMarketSecurityData = () => {\r\n const dispatch = useDispatch();\r\n\treturn React.useCallback((security: MarketListData) => {\r\n dispatch(setSecurity(security.securityId));\r\n dispatch(loadMarketData());\r\n },\r\n [dispatch]\r\n );\r\n};\r\n\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { setIndex } from \"../marketUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\n\r\nexport const useMarketDataIndex = () => {\r\n\tconst index = useSelector(s => s.ux.domestic.marketData.index);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetIndex = React.useCallback((index: PageIndex) => dispatch(setIndex(index)), [dispatch]);\r\n\r\n\treturn [index, dispatchSetIndex] as [typeof index, typeof dispatchSetIndex];\r\n};\r\n","import React from \"react\";\r\nimport { Order, PreMarket } from \"../../../data/domestic/orders/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useDisplaySingleEmementStyles } from \"../../useDisplaySingleEmementStyles\";\r\nimport { DisplayBoolNumber } from \"../../components/common/DisplayBoolNumber\";\r\nimport { useOrderSideOptionsTranslator } from \"../../../data/foreign/orders/hooks/useOrderSideOptions\";\r\nimport { Status } from \"../../../data/models\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\n\r\nexport enum DiplayOrderMod {\r\n\tFull,\r\n\tPublicData,\r\n}\r\n\r\nexport interface DisplayOrderMainAttributesProps {\r\n\torder: Order;\r\n\tmod: DiplayOrderMod;\r\n}\r\n\r\nexport const DisplayOrderMainAttributes: React.FunctionComponent = ({\r\n\torder,\r\n\tmod,\r\n}) => {\r\n\tconst style = useDisplaySingleEmementStyles();\r\n\tconst { getString, getDateString, getDateTimeString, getFormatedNumberString, getFormatedNumberString4 } = React.useContext(\r\n\t\tLocalizationContext\r\n\t);\r\n\r\n\tconst sideTranslator = useOrderSideOptionsTranslator();\r\n\tconst [auth] = useAuth();\r\n\r\n\tif (!order || auth.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderClmOrdNo\")}\r\n\t\t\t\t{order.orderNo}\r\n\t\t\t
\r\n\t\t\t\r\n\r\n\t\t\t{auth.user.roleCode===\"BROKER\" &&
\r\n\t\t\t\t{getString(\"orderClientIdNo\")}\r\n\t\t\t\t{order.clientIdNo}\r\n\t\t\t
}\r\n\t\t\t{auth.user.roleCode===\"BROKER\" &&
\r\n\t\t\t\t{getString(\"orderClientName\")}\r\n\t\t\t\t{order.clientName}\r\n\t\t\t
}\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderDateReceived\")}\r\n\t\t\t\t{getDateString(order.orderTime, \"DD.MM.YYYY\" )}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderTimeReceived\")}\r\n\t\t\t\t{getDateString(order.orderTime, \"HH.mm.ss\")}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSymbol\")}\r\n\t\t\t\t{order.security.symbol}\r\n\t\t\t
\r\n\t\t\t{auth.user.roleCode===\"BROKER\" &&
\r\n\t\t\t\t{getString(\"tradeIsin\")}\r\n\t\t\t\t{order.security.isin}\r\n\t\t\t
}\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeExchange\")}\r\n\t\t\t\t{order.exchCode}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSide\")}\r\n\t\t\t\t{order.side}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderQty\")}\r\n\t\t\t\t{getFormatedNumberString(order.qty )}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderOrdType\")}\r\n\t\t\t\t{order.orderType}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderPrice\")}\r\n\t\t\t\t{getFormatedNumberString(order.price, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderOrdTimeType\")}\r\n\t\t\t\t{order.timeInForce}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderExpiryDate\")}\r\n\t\t\t\t{getDateString(order.expiryDate, \"DD.MM.YYYY\" )}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSecurityAcc\")}\r\n\t\t\t\t{order.securityAcc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderMoneyAcc\")}\r\n\t\t\t\t{order.moneyAcc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderQtyLeft\")}\r\n\t\t\t\t{getFormatedNumberString(order.leavesQty)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderQtyFill\")}\r\n\t\t\t\t{getFormatedNumberString(order.filledQty)}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderOrigOrderNo\")}\r\n\t\t\t\t{order.origOrderNo}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderStatusDescr\")}\r\n\t\t\t\t{order.ordStatusDescr}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderFillStatusDescr\")}\r\n\t\t\t\t{order.fillStatusDescr}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderPreMarket\")}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderRejection\")}\r\n\t\t\t\t{order.razlogOdbijanja}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\n","import React from \"react\";\r\nimport { TableDataProps } from \"../../components/common/Table\";\r\nimport { useMarketData } from \"../../../data/domestic/mainBoard/hooks/useMarketData\";\r\nimport { MarketListData } from \"../../../data/domestic/mainBoard/types\";\r\nimport { useMarketDataColumns } from \"./useMarketDataColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport { useMarketSecurityActions } from \"./useMarketSecurityActions\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { PaginationTable } from \"../../components/common/PagginationTable\";\r\nimport { useMarketDataIndex } from \"../../../data/domestic/mainBoard/hooks/useMarketDataIndex\";\r\n\r\nexport interface MarketDataTableProps {\r\n userAccessRights: AccessRights;\r\n}\r\n\r\ntype MarketDataTablePropsType = MarketDataTableProps & TableDataProps;\r\n\r\nexport const MarketDataTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n ...tableProps\r\n}) => {\r\n\r\n const security = useSelector(\r\n\t\tstore => store.data.domestic.marketData.secid\r\n\t); \r\n\r\n const [data, loadAll, all] = useMarketData();\r\n const [index, setIndex] = useMarketDataIndex()\r\n\r\n const columns = useMarketDataColumns(security);\r\n const actions = useMarketSecurityActions();\r\n\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={loadAll}\r\n pageData={all}\r\n onPageIndexChange={setIndex}\r\n pageIndex={index}\r\n title=\"\"\r\n columns={columns}\r\n\t\t\tactions={actions}\r\n options={{\r\n toolbar: false,\r\n rowStyle: rowData => {\r\n if(rowData.securityId === security) {\r\n return {background: '#DAF7A6'};\r\n }\r\n return {};\r\n } \r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default MarketDataTable;\r\n","import { MarketListData } from \"../../../data/domestic/mainBoard/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { useSelector } from \"react-redux\";\r\nimport MarketDataTable from \"./MarketDataTable\";\r\n\r\nexport const useMarketDataColumns = (symbol?: string) => {\r\n\tconst { getString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n/*\tconst security = useSelector(\r\n\t\tstore => store.data.domestic.marketData.secid\r\n\t); */\r\n\r\n\tconsole.log(symbol)\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataSymbol\"),\r\n\t\t\t\tfield: \"symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataIsin\"),\r\n\t\t\t\tfield: \"isin\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataPrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.price,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataVolume\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.volume) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataSumBid\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.sumBid) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: e => symbol===e.sy ? \"#DAF7A6\": \"#e1f5fe\", \r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestBidQty\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.bestBidQty) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: symbol ? \"#DAF7A6\": \"#e1f5fe\", \r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestBid\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.bestBid,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: symbol ? \"#DAF7A6\": \"#e1f5fe\", \r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestAsk\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.bestAsk,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestAskQty\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.bestAskQty) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataSumAsk\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.sumAsk) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataOpenPrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.open,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataHighPrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.high,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataLowPrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.low,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataClosePrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.close,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataTrend\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.trend) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataChange\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.change) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataTradingPhase\"),\r\n\t\t\t\tfield: \"tradingPhase\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getFormatedNumberString]\r\n\t) as Column[];\r\n};\r\n","import React from \"react\";\r\nimport { Table, TableDataProps } from \"../../components/common/Table\";\r\nimport { useMarketData } from \"../../../data/domestic/mainBoard/hooks/useMarketData\";\r\nimport { MarketDepth } from \"../../../data/domestic/mainBoard/types\";\r\nimport { useMarketDepthColumns } from \"./useMarketDepthColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\n\r\nexport interface MarketDataTableProps {\r\n userAccessRights: AccessRights;\r\n}\r\n\r\ntype MarketDataTablePropsType = MarketDataTableProps & TableDataProps;\r\n\r\nexport const MarketDepthDataTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n ...tableProps\r\n}) => {\r\n const [data, loadAll, all, marketDepthData] = useMarketData();\r\n\r\n const columns = useMarketDepthColumns();\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={loadAll}\r\n immutableData={marketDepthData}\r\n title=\"\"\r\n columns={columns}\r\n options={{\r\n toolbar: false,\r\n pageSize: 10,\r\n actionsColumnIndex: -1,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default MarketDepthDataTable;\r\n","import { MarketDepth } from \"../../../data/domestic/mainBoard/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\n\r\nexport const useMarketDepthColumns = () => {\r\n\tconst { getString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataSymbol\"),\r\n\t\t\t\tfield: \"symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestBid\"),\r\n\t\t\t\trender: marketdepth => getFormatedNumberString(marketdepth.bid,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestBidQty\"),\r\n\t\t\t\trender: marketdepth => getFormatedNumberString(marketdepth.bidQty) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataSumBid\"),\r\n\t\t\t\trender: marketdepth => getFormatedNumberString(marketdepth.cumBidQty) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestAsk\"),\r\n\t\t\t\trender: marketdepth => getFormatedNumberString(marketdepth.ask,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestAskQty\"),\r\n\t\t\t\trender: marketdepth => getFormatedNumberString(marketdepth.askQty) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataSumAsk\"),\r\n\t\t\t\trender: marketdepth => getFormatedNumberString(marketdepth.cumAskQty) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getFormatedNumberString]\r\n\t) as Column[];\r\n};\r\n","import React from \"react\";\r\nimport { Table, TableDataProps } from \"../../components/common/Table\";\r\nimport { useMarketData } from \"../../../data/domestic/mainBoard/hooks/useMarketData\";\r\nimport { MarketTrade } from \"../../../data/domestic/mainBoard/types\";\r\nimport { useMarketTradeColumns } from \"./useMarketTradeColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\n\r\nexport interface MarketTradeTableProps {\r\n userAccessRights: AccessRights;\r\n}\r\n\r\ntype MarketTradeTablePropsType = MarketTradeTableProps & TableDataProps;\r\n\r\nexport const MarketTradeDataTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n ...tableProps\r\n}) => {\r\n const [data, loadAll, all, marketDepthData, marketTradeData] = useMarketData();\r\n\r\n const columns = useMarketTradeColumns();\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={loadAll}\r\n immutableData={marketTradeData}\r\n title=\"\"\r\n columns={columns}\r\n options={{\r\n toolbar: false,\r\n pageSize: 10,\r\n actionsColumnIndex: -1,\r\n }}\r\n /> \r\n );\r\n};\r\n\r\nexport default MarketTradeDataTable;\r\n","import { MarketTrade } from \"../../../data/domestic/mainBoard/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\n\r\nexport const useMarketTradeColumns = () => {\r\n\tconst { getString, getFormatedNumberString, getDateString } = React.useContext(LocalizationContext);\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataTradeTime\"),\r\n\t\t\t\tfield: \"time\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataVolume\"),\r\n\t\t\t\trender: markettrade => getFormatedNumberString(markettrade.qty,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataPrice\"),\r\n\t\t\t\trender: markettrade => getFormatedNumberString(markettrade.price) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getFormatedNumberString]\r\n\t) as Column[];\r\n};\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const addSecurityApi = (userId: string, secid: string) =>\r\n webApiWithResponse({\r\n method: \"PUT\",\r\n url: \"trade/addsecurityforMD\",\r\n params: {\r\n userId,\r\n secid,\r\n },\r\n });\r\n\r\nexport default addSecurityApi;\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { loadAddSecurity } from \"../thunks/loadAddSecurity\";\r\nimport { setNewOrderFetchState } from \"../orderBookDataSlice\";\r\nimport { loadMarketData } from \"../../mainBoard/thunks/loadMarketData\";\r\n\r\nexport const useAddSecurity = () => {\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.domestic.orderBook.newOrderFetchState\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchAddSecurity: any = React.useCallback(\r\n\t\t(secid: string) => {\r\n\t\t\tdispatch(loadAddSecurity(secid))\r\n dispatch(loadMarketData());\r\n\t\t},\r\n\t\t[dispatch ]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"not-started\" }))\r\n\t}, [dispatch])\r\n\r\n\r\n\treturn [fetchState, dispatchAddSecurity] as [typeof fetchState, typeof dispatchAddSecurity]\r\n};\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { addSecurityApi } from \"../api/addSecurity\";\r\nimport { setNewOrderFetchState, invalidateOrders } from \"../orderBookDataSlice\";\r\n\r\nexport const loadAddSecurity = ( secid: string) : ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\nconsole.log(\"Ovde Sam\")\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tdispatch(setNewOrderFetchState({ type: \"started\" }));\r\n\r\n\tvar { user } = store.data.auth.current;\r\n\r\n\tconst result = await dispatch(addSecurityApi(user.userId, secid ))\r\n\r\n\tif (result && result.resCode === \"OK\") {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"successful\", result: result.resDesc }));\r\n\t\tdispatch(invalidateOrders());\r\n\t} else \r\n\t{\r\n\t\tdispatch(setNewOrderFetchState({ type: \"error\", errorCode: result?.resCode }));\r\n\t}\r\n\r\n}\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const removeSecurityApi = (userId: string, secid: string) =>\r\n webApiWithResponse({\r\n method: \"PUT\",\r\n url: \"trade/removesecurityforMD\",\r\n params: {\r\n userId,\r\n secid,\r\n },\r\n });\r\n\r\nexport default removeSecurityApi;\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { loadRemoveSecurity } from \"../thunks/loadRemoveSecurity\";\r\nimport { setNewOrderFetchState } from \"../orderBookDataSlice\";\r\nimport { loadMarketData } from \"../../mainBoard/thunks/loadMarketData\";\r\n\r\nexport const useRemoveSecurity = () => {\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.domestic.orderBook.newOrderFetchState\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveSecurity: any = React.useCallback(\r\n\t\t(secid: string) => {\r\n\t\t\tdispatch(loadRemoveSecurity(secid))\r\n dispatch(loadMarketData());\r\n\t\t},\r\n\t\t[dispatch ]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"not-started\" }))\r\n\t}, [dispatch])\r\n\r\n\r\n\treturn [fetchState, dispatchRemoveSecurity] as [typeof fetchState, typeof dispatchRemoveSecurity]\r\n};\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { removeSecurityApi } from \"../api/removeSecurity\";\r\nimport { setNewOrderFetchState, invalidateOrders } from \"../orderBookDataSlice\";\r\n\r\nexport const loadRemoveSecurity = ( secid: string\r\n): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tdispatch(setNewOrderFetchState({ type: \"started\" }));\r\n\r\n\tvar { user } = store.data.auth.current;\r\n\r\n\tconst result = await dispatch(removeSecurityApi(user.userId, secid))\r\n\r\n\r\n\tif (result && result.resCode === \"OK\") {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"successful\", result: result.resDesc }));\r\n\t\tdispatch(invalidateOrders());\r\n\t} else \r\n\t{\r\n\t\tdispatch(setNewOrderFetchState({ type: \"error\", errorCode: result?.resCode }));\r\n\t}\r\n\r\n}\r\n","import React from \"react\";\r\nimport { Grid, Paper, Button } from \"@material-ui/core\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MarketFilter } from \"../../../data/domestic/mainBoard/types\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { SecuritySelect } from \"../../components/tables/SecuritySelect\";\r\nimport { useAddSecurity } from \"../../../data/domestic/orders/hooks/useMarketDataAddSecurity\";\r\nimport { useRemoveSecurity } from \"../../../data/domestic/orders/hooks/useMarketDataRemoveSecurity\";\r\n\r\ninterface MainBoardFilterEditorProps {\r\n\tfilter?: MarketFilter;\r\n\teditFilter: (prop: keyof MarketFilter, value: any) => void;\r\n\tsave: () => void;\r\n\treset?: () => void;\r\n}\r\n\r\nexport const MainBoardFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\treset,\r\n}) => {\r\n\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst [auth] = useAuth();\r\n\tconst [fetchState, loadAddSecurity] = useAddSecurity();\r\n\tconst [fetchStateRemove, loadRemoveSecurity] = useRemoveSecurity();\r\n\r\n\tconst saveAdd = React.useCallback(\r\n\t\tasync (secid: string) => {\r\n\t\t\t\tconst result = await loadAddSecurity(secid);\r\n\t\t\t},\r\n\t\t[loadAddSecurity]\r\n\t); \r\n\r\n\tconst saveRemove = React.useCallback(\r\n\t\tasync (secid: string) => {\r\n\t\t\t\tconst result = await loadRemoveSecurity(secid);\r\n\t\t\t},\r\n\t\t[loadRemoveSecurity]\r\n\t); \r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t security.securityId === filter?.secid}\r\n\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\teditFilter(\"secid\", security?.securityId);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tfilter && filter.secid !== undefined && saveAdd(filter.secid);\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tdisabled = {filter === undefined || filter.secid === undefined}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"marketDataAddSecurity\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { MarketFilter } from \"../types\";\r\nimport { setFilter, initialState } from \"../marketUXSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\n\r\nexport const useMarketDataFilter = () => {\r\n\tconst [storeFilter] = useCurrentMarketDataFilter();\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter, true);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!));\r\n\t}, [dispatch, filter]);\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t}, [setCurrentFilter]);\r\n\r\n\treturn [filter, editFilter, dispatchSetFilter, changeState, dispatchResetFilter] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t];\r\n};\r\n\r\nexport const useCurrentMarketDataFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.domestic.marketData.filter);\r\n\r\n\treturn [filter ] as [typeof filter];\r\n};\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport SettingsOutlinedIcon from '@material-ui/icons/SettingsOutlined';\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport { MainBoardFilterEditor } from \"./EditMainBoardFilter\";\r\nimport { useMarketDataFilter, useCurrentMarketDataFilter,} from \"../../../data/domestic/mainBoard/hooks/useMarketDataFilter\";\r\n\r\nexport const MainBoardSecurity: React.FunctionComponent = () => {\r\n\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst [filter] = useCurrentMarketDataFilter();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst MarketFilterEditor: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, reset] = useMarketDataFilter();\r\n\treturn (\r\n\t\t\r\n\t);\r\n}; \r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Divider, Card, Fab } from \"@material-ui/core\";\r\nimport MarketDataTable from \"./MarketDataTable\";\r\nimport MarketDepthDataTable from \"./MarketDepthDataTable\";\r\nimport MarketTradeDataTable from \"./MarketTradeDataTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent } from \"../../../core/navigation/types\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { MainBoardSecurity } from \"./MainBoardSecurity\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { MarketTrade, MarketDepth } from \"../../../data/domestic/mainBoard/types\";\r\nimport { useNotificationHandler } from \"../../../core/notifications/hooks\";\r\nimport { useMarketData } from \"../../../data/domestic/mainBoard/hooks/useMarketData\";\r\n\r\nconst MainBoard: PageComponent = ({ userAccessRights }) => {\r\n\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\t const security = useSelector(\r\n\t\tstore => store.data.domestic.marketData.secid\r\n\t); \t\r\n\r\n\tconst marketTrade = useSelector(\r\n\t\t(s) => s.data.domestic.marketData.marketTrade\r\n\t );\r\n\r\n const marketDepth = useSelector(\r\n\t\t(s) => s.data.domestic.marketData.marketDepthData\r\n\t );\r\n\t\r\n\tconst hasDataMT = (marketTrade !== undefined && marketTrade !== null && marketTrade.length > 0) ;\r\n\tconst hasDataMD = (marketDepth !== undefined && marketDepth !== null && marketDepth.length > 0) ;\r\n\r\n\tconst [,,,,,invalidateData] = useMarketData();\r\n\r\n\tuseNotificationHandler(\r\n\t\t\"MainBoardChanged\",\r\n\t\te => {\r\n\t\t\tconsole.log(\"MainBoardChanged\", e);\r\n\t\t\tinvalidateData();\r\n\t\t},\r\n\t\t[]\r\n\t); \r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\t\taction={}\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n \t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n \t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n \t\t\t\t\t\t\t\t{ security && hasDataMD && } \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{ security && hasDataMT && } \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const MainBoardActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default MainBoard;\r\n\r\n\r\n","import MainBoard from \"./MainBoard\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { mainBoardLocation } from \"./Locations\";\r\n\r\nexport const mainBoardComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: MainBoard,\r\n\t\tisMenuItem: true,\r\n\t\tpath: mainBoardLocation,\r\n\t\tnotifications: true,\r\n\t},\r\n];\r\n","import { getEditLocation } from \"../../../core/util/functions\";\r\n\r\nexport const mainBoardLocation = \"/domestic/mainpanel\"\r\n","import React from \"react\";\r\nimport { PaginationTable, PaginationDataProps } from \"../../components/common/PagginationTable\";\r\nimport { PortfolioData } from \"../../../data/domestic/portfolio/types\";\r\nimport { usePortfolioColumns } from \"./usePortfolioReportColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport interface PortfolioReportProps {\r\n\tuserAccessRights: AccessRights;\r\n\tgetData: () => void;\r\n}\r\n\r\ntype PortfolioReportPropsType = PortfolioReportProps & PaginationDataProps;\r\n\r\nconst PortfolioReportTable: React.FunctionComponent = ({\r\n\tuserAccessRights,\r\n\tgetData,\r\n\t...tableProps\r\n}) => {\r\n\r\n\tconst columns = usePortfolioColumns();\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{...tableProps}\r\n\t\t\tgetData={getData}\r\n\t\t\ttitle=\"\"\r\n\t\t\tcolumns={columns}\r\n\t\t\toptions={{\r\n//\t\t\t\tactionsColumnIndex: -1,\r\n\t\t\t\tactionsColumnIndex: screenExtraSmall === true ? 0 : -1 ,\r\n\t\t\t\tsearch: false,\r\n\t\t\t\ttoolbar: false,\r\n\t\t\t\tpageSize: 20,\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default PortfolioReportTable;\r\n","import { PortfolioData } from \"../../../data/domestic/portfolio/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const usePortfolioColumns = () => {\r\n\tconst { getString, getDateTimeString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n/*\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfDepositor\"),\r\n\t\t\t\tfield: \"depositor\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfSecAccType\"),\r\n\t\t\t\tfield: \"secAccType\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t}, */\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfSymbol\"),\r\n\t\t\t\tfield: \"symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfSecName\"),\r\n\t\t\t\tfield: \"secName\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"300px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"300px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"300px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfIsin\"),\r\n\t\t\t\tfield: \"isin\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfQty\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.qty),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfPchPrice\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.pchPrice, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfPchAmt\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.pchAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfMktPrice\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.mktPrice, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfMktAmt\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.mktAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfDiffPerc\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.diffPerc, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfDiffAmt\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.diffAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getDateTimeString, screenExtraSmall ]\r\n\t) as Column[];\r\n};\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { PortfolioFilter } from \"../types\";\r\nimport { setFilter, removeFilter, initialState } from \"../portfolioUXSlice\";\r\nimport { invalidatePortfolio } from \"../portfolioDataSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\n\r\nexport const usePortfolioFilter = () => {\r\n\tconst [storeFilter] = useCurrentPortfolioFilter();\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter, true);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!));\r\n\t\tdispatch(invalidatePortfolio());\r\n\t}, [dispatch, filter]);\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t}, [setCurrentFilter]);\r\n\r\n\treturn [filter, editFilter, dispatchSetFilter, changeState, dispatchResetFilter] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t];\r\n};\r\n\r\nexport const useCurrentPortfolioFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.domestic.portfolio.filter);\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveFilter = React.useCallback(\r\n\t\t(type: keyof PortfolioFilter) => {\r\n\t\t\tdispatch(removeFilter(type));\r\n\t\t\tdispatch(invalidatePortfolio());\r\n\t\t},\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\treturn [filter, dispatchRemoveFilter] as [typeof filter, typeof dispatchRemoveFilter];\r\n};\r\n","import React from \"react\";\r\nimport { OnExchange } from \"../../models\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { exhaustiveCheck } from \"../../../core/util/functions\";\r\n\r\nexport const useOnExchangeOptionsTranslator = () => {\r\n const { getString } = React.useContext(LocalizationContext);\r\n return React.useCallback(\r\n (onExch: OnExchange) => {\r\n switch (onExch) {\r\n case OnExchange.yes:\r\n return getString(\"portfOnExchYes\");\r\n case OnExchange.no:\r\n return getString(\"portfOnExchNo\");\r\n default:\r\n exhaustiveCheck(onExch);\r\n }\r\n },\r\n [getString]\r\n );\r\n};\r\n\r\ninterface AccountPaymentSideOption {\r\n label: string;\r\n value: OnExchange;\r\n}\r\n\r\nexport const useOnExchangeOptions = (): AccountPaymentSideOption[] => {\r\n const translator = useOnExchangeOptionsTranslator();\r\n return React.useMemo(\r\n () => [\r\n {\r\n label: translator(OnExchange.yes) as string,\r\n value: OnExchange.yes,\r\n },\r\n {\r\n label: translator(OnExchange.no) as string,\r\n value: OnExchange.no,\r\n },\r\n ],\r\n [translator]\r\n );\r\n};\r\n","import { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { Currencies } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: Currencies) => (status ? status.currCode : \"\");\r\n\r\nexport const useCurrencies = () => {\r\n\tconst statuses = useSelector(store => store.data.initialData.currencies);\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n","import React from \"react\";\r\nimport { useCurrencies } from \"../../../data/initialData/hooks/useCurrencies\";\r\nimport { Currencies } from \"../../../data/models\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\n\r\ntype RegionSelectPropsType = Omit<\r\n AutocompleteSelectType,\r\n \"data\" | \"getLabel\"\r\n>;\r\n\r\nexport const CurrencySelect: React.FunctionComponent = (\r\n props\r\n) => {\r\n const [statuses, renderStatus] = useCurrencies();\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(props as any)}\r\n />\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useOnExchangeOptions } from \"../../../data/initialData/hooks/useOnExchangeOption\";\r\nimport { TextField, MenuItem } from \"@material-ui/core\";\r\nimport { OnExchange } from \"../../../data/models\";\r\n\r\ninterface OnExchangesSelectProps {\r\n onExchange?: OnExchange;\r\n handleChange: (event: React.ChangeEvent) => void;\r\n disabled?: boolean;\r\n nullable?: boolean;\r\n}\r\n\r\nexport const OnExchangeSelect: React.FunctionComponent = ({\r\n onExchange,\r\n handleChange,\r\n disabled,\r\n nullable,\r\n}) => {\r\n const { getString } = React.useContext(LocalizationContext);\r\n const options = useOnExchangeOptions();\r\n const enchanchedOptions = React.useMemo(() => {\r\n return !nullable\r\n ? options\r\n : [\r\n {\r\n label: \"--\",\r\n value: \"\",\r\n },\r\n ...options,\r\n ];\r\n }, [nullable, options]);\r\n\r\n return (\r\n \r\n {enchanchedOptions.map((option) => (\r\n \r\n {option.label}\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Grid, Paper, Button } from \"@material-ui/core\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { PortfolioFilter } from \"../../../data/domestic/portfolio/types\";\r\nimport { PortfolioFilterChipsComponent } from \"./PortfolioFilterChips\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { SecuritySelect } from \"../../components/tables/SecuritySelect\";\r\nimport { CurrencySelect } from \"../../components/common/CurrencySelect\";\r\nimport { OnExchangeSelect } from \"../../components/common/OnExchangeSelect\";\r\n\r\n\r\ninterface PortfolioFilterEditorProps {\r\n\tfilter?: PortfolioFilter;\r\n\teditFilter: (prop: keyof PortfolioFilter, value: any) => void;\r\n\tsave: () => void;\r\n\treset?: () => void;\r\n}\r\n\r\nexport const PortfolioFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\treset,\r\n}) => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t security.securityId === filter?.security?.securityId}\r\n\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\teditFilter(\"security\", security);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t currencies.currId === filter?.curency?.currId}\r\n\t\t\t\t\t\tonChangeItem={currencies => {\r\n\t\t\t\t\t\t\teditFilter(\"curency\", currencies);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t\r\n \t\t\t editFilter(\"onExch\", e.target.value)}\r\n\t\t\t\t\t\tonExchange={filter?.onExch}\r\n \t\t\tnullable\r\n \t\t/>\r\n \t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tsave();\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"orderFilterConfirm\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const PortfolioFilterChips = PortfolioFilterChipsComponent;\r\n","import React from \"react\";\r\nimport { Chip, Grid } from \"@material-ui/core\";\r\nimport { PortfolioFilter } from \"../../../data/domestic/portfolio/types\";\r\nimport { useOnExchangeOptionsTranslator } from \"../../../data/initialData/hooks/useOnExchangeOption\";\r\nimport { OnExchange } from \"../../../data/models\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const PortfolioFilterChipsComponent: React.FunctionComponent = ({\r\n\tfilter,\r\n\tremoveFilter,\r\n}) => {\r\n\r\n\tconst onExchangeTranslator = useOnExchangeOptionsTranslator();\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{filter.security && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"security\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.curency && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"curency\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n \t\t{filter.onExch !== undefined && (filter.onExch===OnExchange.yes || filter.onExch===OnExchange.no) && !screenExtraSmall && (\r\n \t\t\r\n \t\t\t removeFilter(\"onExch\")}\r\n \t\t\t/>\r\n \t\t\r\n \t\t)}\r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface PortfolioFilterChipsProps {\r\n\tfilter: PortfolioFilter;\r\n\tremoveFilter: (type: keyof PortfolioFilter) => void;\r\n}\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { usePortfolioFilter, useCurrentPortfolioFilter,} from \"../../../data/domestic/portfolio/hooks/usePortfolioFilter\";\r\nimport { PortfolioFilterEditor, PortfolioFilterChips } from \"./EditPortfolioFilter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const PortfolioFilterButton: React.FunctionComponent = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\tconst [filter, removeFilter] = useCurrentPortfolioFilter();\r\n\t\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\n\r\nconst PortfolioDataFilterEditor: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, , reset] = usePortfolioFilter();\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { PortfolioData, GetPortfolioParams } from \"../types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { PortfolioFilter } from \"../types\"\r\n\r\nconst getPortfolioDataApi = (\r\n user: User,\r\n page?: number,\r\n itemsPerPage?: number,\r\n filter?: PortfolioFilter,\r\n) =>\r\n{\r\n const params: GetPortfolioParams = {\r\n userid: user.userId,\r\n domfor: \"D\",\r\n secid: filter?.security?.securityId,\r\n exchid: filter?.exchange?.exchId,\r\n currid: filter?.curency?.currId,\r\n onExch: filter?.onExch,\r\n fromrow: page && itemsPerPage ? page * itemsPerPage : 0,\r\n numofrows: itemsPerPage,\r\n };\r\n \r\nconsole.log(params)\r\n\r\nreturn webApiWithResponse({\r\n method: \"GET\",\r\n url: \"trade/getportfoliolist\",\r\n params,\r\n });\r\n};\r\n\r\nexport default getPortfolioDataApi;\r\n\r\n\r\n\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getPortfolioDataApi from \"../api/getPortfolioData\";\r\nimport { PageDataStatus, PageData } from \"../../../models\";\r\nimport { PortfolioData, PortfolioFilter } from \"../types\";\r\n\r\nexport const getPortfolioThunk = (\r\n\tpageNumber?: number,\r\n\titemsPerPage?: number,\r\n\tfilter?: PortfolioFilter,\r\n): ThunkType | undefined>> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tconsole.log(\"U getoirtfolioThunk\")\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst user = store.data.auth.current.user;\r\n\tconst portfolioResponse = await dispatch(getPortfolioDataApi(user, pageNumber, itemsPerPage, filter ));\r\n\r\n\tif (!portfolioResponse || portfolioResponse.resCode !== \"OK\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\treturn {\r\n\t\tcurrentPageData: portfolioResponse.obj,\r\n\t\ttotalCount: Number(portfolioResponse.resDesc) || 0,\r\n\t\tstatus: PageDataStatus.DataCurrent,\r\n\t};\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadPortfolioData } from \"../thunks/loadPortfolioData\";\r\nimport { PortfolioData } from \"../types\";\r\nimport { PageData } from \"../../../models\";\r\nimport { invalidatePortfolio } from \"../portfolioDataSlice\";\r\n\r\nexport const usePortfolioData = () => {\r\n const pageData = useSelector | undefined>(\r\n (s) => s.data.domestic.portfolio.currentPage\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadMarketData = React.useCallback(\r\n () => dispatch(loadPortfolioData()),\r\n [dispatch ]\r\n );\r\n\r\n const dispatchInvalidatePortfolio = React.useCallback(\r\n () => dispatch(invalidatePortfolio()),\r\n [dispatch]\r\n );\r\n\r\n return [pageData, dispatchLoadMarketData, dispatchInvalidatePortfolio] as [\r\n typeof pageData,\r\n typeof dispatchLoadMarketData,\r\n typeof dispatchInvalidatePortfolio,\r\n ];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setData, invalidatePortfolio } from \"../portfolioDataSlice\";\r\nimport { setPortfolioIndex } from \"../portfolioUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { getPortfolioThunk } from \"./getPortfolioThunk\";\r\n\r\nexport const loadPortfolioData = (\r\n): ThunkType => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\nconsole.log(\"U loadPortfolioData\")\r\n\tconst { pageNumber, itemsPerPage } = store.ux.domestic.portfolio.index;\r\n\tconst { filter } = store.ux.domestic.portfolio;\r\n\r\n\tconst pagedOrders = await dispatch(getPortfolioThunk(pageNumber, itemsPerPage, filter));\r\n\r\n\tif (pagedOrders) {\r\n\t\tdispatch(setData(pagedOrders));\r\n\t}\r\n};\r\n\r\n\r\nexport const setPortolioIndexThunk = (index: PageIndex): ThunkType => dispatch => {\r\n\tdispatch(setPortfolioIndex(index));\r\n\tdispatch(invalidatePortfolio());\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { resetOrderIdices } from \"../portfolioUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { setPortolioIndexThunk } from \"../thunks/loadPortfolioData\";\r\n\r\nexport const usePortfolioIndex = () => {\r\n\tconst pageIndex = useSelector(s => s.ux.domestic.portfolio.index);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetIndex = React.useCallback((index: PageIndex) => dispatch(setPortolioIndexThunk(index)), [\r\n\t\tdispatch,\r\n\t]);\r\n\tconst dispatchResetIndex = React.useCallback(() => dispatch(resetOrderIdices()), [dispatch]);\r\n\r\n\r\n\treturn [pageIndex, dispatchSetIndex, dispatchResetIndex] as [\r\n\t\ttypeof pageIndex,\r\n\t\ttypeof dispatchSetIndex,\r\n\t\ttypeof dispatchResetIndex\r\n\t];\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { PortfolioFilter } from \"../types\";\r\n\r\nexport const getPortfolioReport = (user: User, filter: PortfolioFilter) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/getportfolioreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"D\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\texchid: filter?.exchange?.exchId,\r\n\t\t\tcurrid: filter?.curency?.currId,\r\n\t\t\t\t},\r\n\t});\r\n};\r\n\r\nexport default getPortfolioReport;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadPortfolioReport } from \"../thunks/downloadReport\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const usePortfolioReportDownloader = () => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.portfolio.downloadReportFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => dispatch(downloadPortfolioReport()), [dispatch]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState]\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getPortfolioReport } from \"../api/getPortfolioReport\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setDownloadReportFetchState } from \"../portfolioDataSlice\";\r\n\r\nexport const downloadPortfolioReport = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst filter = store.ux.domestic.portfolio.filter;\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setDownloadReportFetchState({ type: \"started\" }));\r\n\tconst portfolioReport = await dispatch(getPortfolioReport(user, filter));\r\n\tif (portfolioReport) {\r\n\t\tfileDownload(new Blob([portfolioReport as any], { type: \"application/pdf\" }), \"Portfolio.pdf\");\r\n\t}\r\n\tdispatch(setDownloadReportFetchState({ type: \"not-started\" }));\r\n};\r\n","import { PortfolioFilter } from \"../types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const getPortfolioExcel = (\r\n user: User,\r\n filter: PortfolioFilter\r\n) => {\r\n return httpWebApi({\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n timeout: 60 * 4 * 1000,\r\n url: \"reporting/getportfolioxls\",\r\n params: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"D\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n exchid: filter?.exchange?.exchId,\r\n currid: filter?.curency?.currId,\r\n },\r\n });\r\n};\r\n\r\nexport default getPortfolioExcel;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadPortfolioExcel } from \"../thunks/downloadReportExcel\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const usePortfolioExcelDownloader = () => {\r\n const fetchState = useSelector(\r\n (s) => s.data.domestic.portfolio.downloadXlsFetchState\r\n );\r\n const dispatch = useDispatch();\r\n const download = React.useCallback(\r\n () => dispatch(downloadPortfolioExcel()),\r\n [dispatch]\r\n );\r\n\r\n return [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getPortfolioExcel } from \"../api/getPortfolioExcel\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setDownloadXlsFetchState } from \"../portfolioDataSlice\";\r\n\r\nexport const downloadPortfolioExcel = (): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const filter = store.ux.domestic.portfolio.filter;\r\n const user = store.data.auth.current.user;\r\n dispatch(setDownloadXlsFetchState({ type: \"started\" }));\r\n const portfolioXls = await dispatch(getPortfolioExcel(user, filter));\r\n if (portfolioXls) {\r\n fileDownload(\r\n new Blob([portfolioXls as any], {\r\n type: \"application/vnd.openxmlformat\",\r\n }),\r\n \"Portfolio.xlsx\"\r\n );\r\n }\r\n dispatch(setDownloadXlsFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { usePortfolioReportDownloader } from \"../../../data/domestic/portfolio/hooks/usePortfolioReportDownloader\";\r\nimport { usePortfolioExcelDownloader } from \"../../../data/domestic/portfolio/hooks/usePortfolioExcelDownloader\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport ExcelIcon from \"@material-ui/icons/TableChartOutlined\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n\r\nexport const DownloadButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = usePortfolioReportDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null}\r\n\t\t\r\n);\r\n};\r\n\r\n\r\nexport const DownloadExcelButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = usePortfolioExcelDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Card, Divider } from \"@material-ui/core\";\r\nimport PortfolioReportTable from \"./PortfolioReportTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent } from \"../../../core/navigation/types\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { PortfolioFilterButton } from \"./PortfolioReportFilter\"\r\nimport { usePortfolioData } from \"../../../data/domestic/portfolio/hooks/usePortfolioData\";\r\nimport { usePortfolioIndex } from \"../../../data/domestic/portfolio/hooks/usePortfolioIndex\";\r\nimport { PageDataStatus } from \"../../../data/models\";\r\nimport { DownloadButton, DownloadExcelButton } from \"./DownloadButton\";\r\n\r\nconst PortfolioReport: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [pageData, dispatchLoadPortfolio, invalidateData] = usePortfolioData();\r\n\tconst [pageIndex, dispatchSetIndex] = usePortfolioIndex();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (pageData && pageData.status === PageDataStatus.DataInvalidated) {\r\n\t\t\tdispatchLoadPortfolio();\r\n\t\t}\r\n\t}, [dispatchLoadPortfolio, pageData]);\r\n\r\n\tReact.useEffect(() => () => { invalidateData() }, [])\t\r\n\t\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\taction={}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const PortfolioReportActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default PortfolioReport;\r\n","import PortfolioReport from \"./PortfolioReport\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { portfolioReportLocation } from \"./Locations\";\r\n\r\nexport const portfolioReportComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: PortfolioReport,\r\n\t\tisMenuItem: true,\r\n\t\tpath: portfolioReportLocation,\r\n\t},\r\n];\r\n","export const portfolioReportLocation = \"/domestic/portfolio\"","import { orderBookComponents } from \"./orders/navigationComponents\";\r\nimport { tradesComponents } from \"./trades/navigationComponents\";\r\nimport { mainBoardComponents } from \"./mainBoard/navigationComponents\";\r\nimport { portfolioReportComponents} from \"./portfolio/navigationComponents\"\r\n\r\nexport const domesticComponents = [...orderBookComponents, ...tradesComponents, ...mainBoardComponents, ...portfolioReportComponents,];\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { Order } from \"../../../domestic/orders/types\";\r\n\r\nexport const getOrderApi = (userId: string, ordid: string) =>\r\n webApi({\r\n method: \"GET\",\r\n url: \"order/getorder\",\r\n params: {\r\n userId,\r\n ordid,\r\n },\r\n });\r\n\r\nexport default getOrderApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setDisplayed } from \"../../../domestic/orders/orderBookDataSlice\";\r\nimport getOrderApi from \"../api/getOrder\";\r\nimport { Order } from \"../../../domestic/orders/types\";\r\n\r\nexport const loadBookOrder = (ordId: string): ThunkType => async dispatch => {\r\n\tdispatch(setDisplayed(undefined));\r\n\r\n\tconst mborder = await dispatch(getOrder(ordId));\r\n\r\n\tdispatch(setDisplayed(mborder));\r\n};\r\n\r\nexport const getOrder = (\r\n\tordId: string\r\n ): ThunkType> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n \r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t return undefined;\r\n\t}\r\n \r\n\tconst { userId } = store.data.auth.current.user;\r\n\treturn await dispatch(getOrderApi(userId, ordId));\r\n };\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { Order } from \"../../../domestic/orders/types\";\r\nimport { loadBookOrder } from \"../thunks/loadOrderBook\";\r\n\r\nexport const useDisplayOBOrder = (ordId?: string) => {\r\n const storeOB = useSelector(\r\n (store) => store.data.domestic.orderBook.displayedOBOrder\r\n );\r\n\r\n const displayedOrderBookOrder =\r\n storeOB && storeOB.orderId === ordId ? storeOB : undefined;\r\n\r\n const displatch = useDispatch();\r\n\r\n React.useEffect(() => {\r\n if (ordId) {\r\n displatch(loadBookOrder(ordId));\r\n }\r\n }, [displatch, ordId]);\r\n\r\n return displayedOrderBookOrder;\r\n};\r\n","import React from \"react\";\r\nimport { OrderSide } from \"../../../models\";\r\nimport { LocalizationContext } from \"../../../../core/localization/Localization\";\r\nimport { exhaustiveCheck } from \"../../../../core/util/functions\";\r\n\r\nexport const useOrderSideOptionsTranslator = () => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\treturn React.useCallback(\r\n\t\t(side: OrderSide) => {\r\n\t\t\tswitch (side) {\r\n\t\t\t\tcase OrderSide.Buy:\r\n\t\t\t\t\treturn getString(\"orderSideBuy\");\r\n\t\t\t\tcase OrderSide.Sell:\r\n\t\t\t\t\treturn getString(\"orderSideSell\");\r\n\t\t\t\tdefault:\r\n\t\t\t\t\texhaustiveCheck(side);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[getString]\r\n\t);\r\n};\r\n\r\ninterface AccountOrderSideOption {\r\n\tlabel: string;\r\n\tvalue: OrderSide;\r\n}\r\n\r\nexport const useOrderSideOptions = (): AccountOrderSideOption[] => {\r\n\tconst translator = useOrderSideOptionsTranslator();\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\tlabel: translator(OrderSide.Buy) as string,\r\n\t\t\t\tvalue: OrderSide.Buy,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: translator(OrderSide.Sell) as string,\r\n\t\t\t\tvalue: OrderSide.Sell,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[translator]\r\n\t);\r\n};\r\n","import { getEditLocation } from \"../../../core/util/functions\";\r\nimport { OrdersEditAction } from \"../../../data/domestic/orders/types\";\r\n\r\nexport const orderBookFLocation = \"/foreign/orders\"\r\n\r\nexport enum OrdersEditParts {\r\n\tBasicInfo = \"basicinfo\",\r\n\tAttributes = \"attributes\",\r\n}\r\n\r\n export const getOrderBookFEditLocation = (\r\n\taction: OrdersEditAction = OrdersEditAction.New,\r\n part: OrdersEditParts = OrdersEditParts.BasicInfo,\r\n orderId?: string\r\n) => getEditLocation(orderBookFLocation, part, orderId, undefined, action );\r\n\r\nexport const baseEdit = getOrderBookFEditLocation(\":action\" as any, \":editPart\" as any, \":orderId?\");","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const printOrder = (user: User, ordid: string) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/getorderreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tordid,\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default printOrder;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { printOrderThunk } from \"../thunks/printOrderThunk\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { Order } from \"../../../domestic/orders/types\";\r\n\r\nexport const useOrderPrinter = (order?: Order) => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.orderBook.printOrderFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => {\r\n\t\t\tdispatch(printOrderThunk(order));\r\n\t}, [dispatch, order]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { printOrder } from \"../../orders/api/printOrder\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintOrderFetchState } from \"../../../domestic/orders/orderBookDataSlice\";\r\nimport { Order } from \"../../../domestic/orders/types\";\r\n\r\nexport const printOrderThunk = (order?: Order): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\" || !order || !order.orderId) {\r\n\t\treturn undefined;\r\n\t}\r\n\tconst lan = store.ux.localization.language\r\n\tconst filename = `TradingOrder${order.side.trim().toUpperCase()}_${lan.trim().toUpperCase()}_${order.orderNo}.pdf`\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintOrderFetchState({ type: \"started\" }));\r\n\tconst ordersReport = await dispatch(printOrder(user, order.orderId));\r\n\tif (ordersReport) {\r\n\t\tfileDownload(new Blob([ordersReport as any], { type: \"application/pdf\" }), filename);\r\n\t}\r\n\tdispatch(setPrintOrderFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { useDisplayOBOrder } from \"../../../data/foreign/orders/hooks/useDisplayOrderBook\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { DisplayOrderMainAttributes, DiplayOrderMod } from \"./DisplayOrderMainAttributes\";\r\nimport { ExpansionPanel, ExpansionPanelSummary, Typography, Grid, IconButton } from \"@material-ui/core\";\r\nimport { useOrderPrinter } from \"../../../data/foreign/orders/hooks/useOrderPrinter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\n\r\nexport interface DisplayMBOrderProps {\r\n\tid?: string;\r\n\tdisplayMod: DiplayOrderMod;\r\n\tenablePrint?: boolean;\r\n}\r\n\r\nexport const DisplayOrder: React.FunctionComponent = ({\r\n\tid,\r\n\tdisplayMod,\r\n\tenablePrint,\r\n}) => {\r\n\tconst order = useDisplayOBOrder(id);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst [print, fetchState] = useOrderPrinter(order);\r\n\r\n\treturn !order ? (\r\n\t\t<>{\"loading placeholder\"}\r\n\t) : (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{getString(\"tableBasciInfo\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{ fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const useViewOrder = (displayMod: DiplayOrderMod, enablePrint?: boolean) => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\treturn React.useCallback(\r\n\t\t(order: ViewOrder) => showWithDrawer(),\r\n\t\t[showWithDrawer, displayMod]\r\n\t);\r\n};\r\n\r\n","import React from \"react\";\r\nimport { DisplayOrder } from \"./DisplayOrder\";\r\nimport { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { Grid, Typography, Button, Paper } from \"@material-ui/core\";\r\nimport { useCancelOrder } from \"../../../data/foreign/orders/hooks/useOrderCancel\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { DiplayOrderMod } from \"./DisplayOrderMainAttributes\";\r\n\r\nexport interface CancelOrderProps {\r\n\torderId: string;\r\n\tcancel: () => void;\r\n}\r\n\r\nexport const CancelOrder: React.FunctionComponent = ({ orderId, cancel }) => {\r\n\tconst [state, cancelOrder] = useCancelOrder();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (state.type === \"successful\") cancel();\r\n\t}, [state, cancel]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{getString(\"orderCancelQuestion\")}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t cancelOrder(orderId)}\r\n\t\t\t\t\t\t\t\t\tdisabled={state.type !== \"not-started\"}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{getString(\"orderCancelQuestionYes\")}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const useShowCancelOrder = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\treturn React.useCallback(\r\n\t\t(order: ViewOrder) =>\r\n\t\t\tshowWithDrawer( showWithDrawer(undefined)} />),\r\n\t\t[showWithDrawer]\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { cancelOrder } from \"../../../domestic/orders/thunks/cancelOrderThunk\";\r\nimport { setCancelOrderFetchState } from \"../../../domestic/orders/orderBookDataSlice\";\r\n\r\nexport const useCancelOrder = () => {\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.domestic.orderBook.cancelOrderFetchState\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchCancelOrder = React.useCallback(\r\n\t\t(id: string) => dispatch(cancelOrder(id)),\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tdispatch(setCancelOrderFetchState({ type: \"not-started\" }))\r\n\t\t}\r\n\t}, [dispatch])\r\n\r\n\treturn [fetchState, dispatchCancelOrder] as [typeof fetchState, typeof dispatchCancelOrder]\r\n};\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport CancelIcon from '@material-ui/icons/CancelOutlined';\r\nimport MofifyIcoon from '@material-ui/icons/EditOutlined';\r\nimport { ViewOrder, OrdersEditAction } from \"../../../data/domestic/orders/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MaterialTableProps } from \"material-table\";\r\nimport { useViewOrder } from \"../orders/DisplayOrder\";\r\nimport { DiplayOrderMod } from \"../orders/DisplayOrderMainAttributes\";\r\nimport { useShowCancelOrder } from \"../orders/CancelOrder\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { getOrderBookFEditLocation, OrdersEditParts } from \"./Locations\";\r\n\r\nexport function useOrderBookActions() {\r\n const { getString } = useContext(LocalizationContext);\r\n const onShowOBOrder = useViewOrder(DiplayOrderMod.Full, true);\r\n const onCancelOrder = useShowCancelOrder();\r\n const onModifyOrder = useEditOrder(OrdersEditAction.Modify);\r\n\r\n return useMemo(() => {\r\n const result: MaterialTableProps[\"actions\"] = [\r\n {\r\n icon: () => ,\r\n tooltip: getString(\"orderActView\"),\r\n onClick: (event, rowData) => onShowOBOrder(rowData as ViewOrder),\r\n },\r\n row => ({\r\n icon: () => ,\r\n tooltip: getString(\"orderCancel\"),\r\n onClick: (event, rowData) => onCancelOrder(rowData as ViewOrder),\r\n hidden: row.cancelAllowed === \"N\",\r\n }),\r\n row => ({\r\n icon: () => ,\r\n tooltip: getString(\"orderModify\"),\r\n onClick: (event, rowData) => onModifyOrder(rowData as ViewOrder),\r\n hidden: row.replaceAllowed === \"N\",\r\n }),\r\n ];\r\n return result;\r\n }, [onShowOBOrder,onCancelOrder,onModifyOrder, getString ]);\r\n}\r\n\r\nexport const useEditOrder = (action: OrdersEditAction) => {\r\n const history = useHistory();\r\n\treturn React.useCallback(\r\n\t\t(order: ViewOrder) =>\r\n\t\t\thistory.push(\r\n\t\t\t\tgetOrderBookFEditLocation(action, OrdersEditParts.BasicInfo, order.orderId)\r\n\t\t\t),\r\n\t\t[history, action]\r\n\t);\r\n};\r\n\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { LoginResponse } from \"../../../models\";\r\n\r\nexport const setOrderStatusApi = (userid: string, orderid: string) =>\r\n\twebApiWithResponse({\r\n\t\tmethod: \"PUT\",\r\n\t\turl: \"common/setdefsecacc\",\r\n\t\tparams: {\r\n\t\t\tuserid,\r\n\t\t\torderid,\r\n\t\t},\r\n\t});\r\n\r\n","import React from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { SecurityAccounts } from \"../../../models\";\r\n//import { setSecurityAcc } from \"../securityAccountsDataSlice\";\r\nimport { loadSetOrderStatus } from \"../thunks/loadSetOrderStatus\";\r\nimport { ViewOrder } from \"../../../domestic/orders/types\";\r\n\r\nexport const useSetOrderStatus = () => {\r\n \r\n const dispatch = useDispatch();\r\n\treturn React.useCallback((order: ViewOrder) => {\r\n console.log(order.orderId)\r\n\r\n// dispatch(setSecurityAcc(defAccount.accId));\r\n dispatch(loadSetOrderStatus(order.orderId));\r\n },\r\n [dispatch]\r\n );\r\n};\r\n\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setOrderStatusApi } from \"../api/setOrderStatus\";\r\n//import { setData } from \"../moneyAccountsDataSlice\";\r\nimport { DomForSide, OrderSide } from \"../../../models\";\r\n\r\nexport const loadSetOrderStatus = ((orderid : string): ThunkType => async (dispatch, getStore) => {\r\n\r\n const store = getStore();\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return;\r\n }\r\n const userid = store.data.auth.current.user.userId;\r\n\r\n\r\n// dispatch(setData());\r\n\r\n const marketData = await dispatch(setOrderStatusApi(userid, orderid));\r\n \r\n// dispatch(setData());\r\n});\r\n\r\n\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport CancelIcon from '@material-ui/icons/CancelOutlined';\r\nimport MofifyIcoon from '@material-ui/icons/EditOutlined';\r\nimport { ViewOrder, OrdersEditAction } from \"../../../data/domestic/orders/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MaterialTableProps } from \"material-table\";\r\nimport { useViewOrder } from \"./DisplayOrder\";\r\nimport { DiplayOrderMod } from \"./DisplayOrderMainAttributes\";\r\nimport { useShowCancelOrder } from \"./CancelOrder\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { getOrderBookFEditLocation, OrdersEditParts } from \"./Locations\";\r\nimport { useSetOrderStatus } from \"../../../data/foreign/orders/hooks/useSetOrderStatus\";\r\n\r\nexport function useOrderBookActionsBroker() {\r\n const { getString } = useContext(LocalizationContext);\r\n const onShowOBOrder = useViewOrder(DiplayOrderMod.Full, true);\r\n const onCancelOrder = useShowCancelOrder();\r\n const onModifyOrder = useEditOrder(OrdersEditAction.Modify);\r\n const onCheckBOrder = useSetOrderStatus();\r\n\r\n return useMemo(() => {\r\n const result: MaterialTableProps[\"actions\"] = [\r\n {\r\n icon: () => ,\r\n tooltip: getString(\"orderActView\"),\r\n onClick: (event, rowData) => onShowOBOrder(rowData as ViewOrder),\r\n },\r\n {\r\n icon: () => ,\r\n tooltip: getString(\"orderStatusChange\"),\r\n onClick: (event, rowData) => onCheckBOrder(rowData as ViewOrder),\r\n },\r\n ];\r\n return result;\r\n }, [onShowOBOrder,onCancelOrder,onModifyOrder, getString ]);\r\n}\r\n\r\nexport const useEditOrder = (action: OrdersEditAction) => {\r\n const history = useHistory();\r\n\treturn React.useCallback(\r\n\t\t(order: ViewOrder) =>\r\n\t\t\thistory.push(\r\n\t\t\t\tgetOrderBookFEditLocation(action, OrdersEditParts.BasicInfo, order.orderId)\r\n\t\t\t),\r\n\t\t[history, action]\r\n\t);\r\n};\r\n\r\n","import React from \"react\";\r\nimport { Grid, Paper, Button } from \"@material-ui/core\";\r\nimport { OrderSideSelect } from \"./OrderSideSelect\";\r\nimport { DateInput } from \"../../components/common/DateInput\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { OrderFilter } from \"../../../data/domestic/orders/types\";\r\nimport { OrderStatusSelect } from \"../../components/common/OrderStatusSelect\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { isValidDate } from \"../../../core/util/functions\";\r\nimport { OrderFilterChipsComponent } from \"./OrderFilterChips\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { SecuritySelect } from \"../../components/tables/SecurityForeignSelect\";\r\nimport { ExchangeSelect } from \"../../components/common/ExchangeSelect\";\r\n\r\nexport enum OrderFilterEditorType {\r\n\tBasic = 0,\r\n\tExtended = 1,\r\n\tFull = 2,\r\n}\r\n\r\ninterface OrderFilterEditorProps {\r\n\tfilter?: OrderFilter;\r\n\teditFilter: (prop: keyof OrderFilter, value: any) => void;\r\n\tsave: () => void;\r\n\ttype: OrderFilterEditorType;\r\n\treset?: () => void;\r\n}\r\n\r\nexport const OrderFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\ttype,\r\n\treset,\r\n}) => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst [auth] = useAuth();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{type >= OrderFilterEditorType.Extended && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t editFilter(\"side\", e.target.value)}\r\n\t\t\t\t\t\t\tside={filter?.side}\r\n\t\t\t\t\t\t\tnullable\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t exchange.exchId === filter?.exchange?.exchId}\r\n\t\t\t\t\t\tonChangeItem={exchange => {\r\n\t\t\t\t\t\t\teditFilter(\"exchange\", exchange);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t security.securityId === filter?.security?.securityId}\r\n\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\teditFilter(\"security\", security);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\teditFilter(\"dateFrom\", isValidDate(date) ? date.toISOString() : undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\teditFilter(\"dateTo\", isValidDate(date) ? date.toISOString() : undefined)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\t status.ftValue === filter?.orderStatus?.ftValue}\r\n\t\t\t\t\t\t\tonChangeItem={status => {\r\n\t\t\t\t\t\t\t\teditFilter(\"orderStatus\", status);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tsave();\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"orderFilterConfirm\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const OrderFilterChips = OrderFilterChipsComponent;\r\n","import React from \"react\";\r\nimport { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport { OrderSide } from \"../../../data/models\";\r\nimport { useOrderSideOptionsTranslator } from \"../../../data/foreign/orders/hooks/useOrderSideOptions\";\r\nimport { makeStyles, createStyles } from \"@material-ui/core\";\r\n\r\nexport const useOrderRowColor = () => {\r\n const sideTranslator = useOrderSideOptionsTranslator();\r\n return React.useCallback((order: ViewOrder) => ({\r\n backgroundColor: order.side === sideTranslator(OrderSide.Sell) ? getSideColor(OrderSide.Sell) : getSideColor(OrderSide.Buy)\r\n }), [sideTranslator]);\r\n};\r\n\r\nexport const getSideColor = (side: OrderSide) => side === OrderSide.Sell ? \"#ffebee\" : \"#e1f5fe\"\r\n\r\nexport const useOrderSideStyles = makeStyles(() => {\r\n\treturn createStyles({\r\n\t\tsell: {\r\n\t\t\tbackground: getSideColor(OrderSide.Sell),\r\n\t\t},\r\n\t\tbuy: {\r\n\t\t\tbackground: getSideColor(OrderSide.Buy),\r\n\t\t},\r\n\t});\r\n});\r\n\r\n","import React from \"react\";\r\nimport { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport { PaginationTable, PaginationDataProps } from \"../../components/common/PagginationTable\";\r\nimport { useOrderBookActions } from \"./useOrderBookActions\";\r\nimport { useOrderBookActionsBroker } from \"./useOrderBookActionsBroker\";\r\nimport { useOrderBookColumns } from \"./useOrderBookColumns\";\r\nimport { useOrderBookColumnsBroker } from \"./useOrderBookColumnsBroker\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport { useOrderRowColor } from \"../orders/useOrderRowColor\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\n\r\nexport interface OrderBookTableProps {\r\n\tuserAccessRights: AccessRights;\r\n\tgetData: () => void;\r\n}\r\n\r\ntype OrderBookTablePropsType = OrderBookTableProps & PaginationDataProps;\r\n\r\nconst OrdersBookTable: React.FunctionComponent = ({\r\n\tuserAccessRights,\r\n\tgetData,\r\n\t...tableProps\r\n}) => {\r\n\r\n const [auth] = useAuth();\r\n\r\n/* if (auth.status !== \"successful\") {\r\n\treturn null;\r\n\t} */\r\n\t\r\n const actions = useOrderBookActions();\r\n const actionsBroker = useOrderBookActionsBroker();\r\n\r\n const columns = useOrderBookColumns() ;\r\n const columnsBroker = useOrderBookColumnsBroker();\r\n\r\n const rowStyle = useOrderRowColor()\r\n\r\n \r\n console.log(auth.status)\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{...tableProps}\r\n\t\t\tgetData={getData}\r\n\t\t\ttitle=\"\"\r\n\t\t\tcolumns={auth.status === \"successful\" && auth.user.roleCode===\"BROKER\" ? columnsBroker : columns}\r\n\t\t\tactions={auth.status === \"successful\" && auth.user.roleCode===\"BROKER\" ? actionsBroker : actions}\r\n\t\t\toptions={{\r\n\t\t\t\tactionsColumnIndex: auth.status === \"successful\" && auth.user.roleCode===\"BROKER\" ? 0 : -1,\r\n\t\t\t\tsearch: false,\r\n\t\t\t\ttoolbar: false,\r\n\t\t\t\tactionsCellStyle: {\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n rowStyle\r\n }}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default OrdersBookTable;\r\n","import { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport { DisplayBoolNumber } from \"../../components/common/DisplayBoolNumber\";\r\n\r\nexport const useOrderBookColumns = () => {\r\n\tconst { getString, getDateString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderClmOrdNo\"),\r\n\t\t\t\tfield: \"orderNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"120px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderTimeReceived\"),\r\n\t\t\t\trender: (order) => getDateString(order.orderTime, \"DD.MM.YYYY HH.mm.ss\"),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"160px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\tminWidth: \"160px\",\r\n\t\t\t\t\twidth: \"160px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\tminWidth: \"160px\",\r\n\t\t\t\t\twidth: \"160px\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderSide\"),\r\n\t\t\t\tfield: \"side\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderSymbol\"),\r\n\t\t\t\tfield: \"security.symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"130px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"130px\",\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"130px\",\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderQty\"),\r\n\t\t\t\trender: order => getFormatedNumberString(order.qty),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"120px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderPrice\"),\r\n\t\t\t\trender: order => getFormatedNumberString(order.price, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"120px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderOrdType\"),\r\n\t\t\t\tfield: \"orderType\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderOrdTimeType\"),\r\n\t\t\t\tfield: \"timeInForce\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderExpiryDate\"),\r\n\t\t\t\trender: (order) => getDateString(order.expiryDate, \"DD.MM.YYYY\"),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderOrigOrderNo\"),\r\n\t\t\t\tfield: \"origOrderNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderQtyLeft\"),\r\n\t\t\t\trender: order => getFormatedNumberString(order.leavesQty),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"120px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderStatusDescr\"),\r\n\t\t\t\tfield: \"ordStatusDescr\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderFillStatusDescr\"),\r\n\t\t\t\tfield: \"fillStatusDescr\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getFormatedNumberString]\r\n\t) as Column[];\r\n};\r\n","import { ViewOrder } from \"../../../data/domestic/orders/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport { DisplayBoolNumber } from \"../../components/common/DisplayBoolNumber\";\r\n\r\nexport const useOrderBookColumnsBroker = () => {\r\n\tconst { getString, getDateString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderSecDep\"),\r\n\t\t\t\tfield: \"secDepCode\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderClmOrdNo\"),\r\n\t\t\t\tfield: \"orderNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderTimeReceived\"),\r\n\t\t\t\trender: (order) => getDateString(order.orderTime, \"DD.MM.YYYY HH.mm.ss\"),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"160px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\tminWidth: \"160px\",\r\n\t\t\t\t\twidth: \"160px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\tminWidth: \"160px\",\r\n\t\t\t\t\twidth: \"160px\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderSide\"),\r\n\t\t\t\tfield: \"side\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderClientIdNo\"),\r\n\t\t\t\tfield: \"clientIdNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"120px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"120px\",\r\n\t\t\t\t\tminWidth: \"120px\",\r\n\t\t\t\t\twidth: \"120px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderClientName\"),\r\n\t\t\t\tfield: \"clientName\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"160px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\tminWidth: \"160px\",\r\n\t\t\t\t\twidth: \"160px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t\tminWidth: \"160px\",\r\n\t\t\t\t\twidth: \"160px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderSymbol\"),\r\n\t\t\t\tfield: \"security.symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderQty\"),\r\n\t\t\t\trender: order => getFormatedNumberString(order.qty),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderPrice\"),\r\n\t\t\t\trender: order => getFormatedNumberString(order.price, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderOrdType\"),\r\n\t\t\t\tfield: \"orderType\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderOrdTimeType\"),\r\n\t\t\t\tfield: \"timeInForce\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t\tminWidth: \"80px\",\r\n\t\t\t\t\twidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderExpiryDate\"),\r\n\t\t\t\trender: (order) => getDateString(order.expiryDate, \"DD.MM.YYYY\"),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderOrigOrderNo\"),\r\n\t\t\t\tfield: \"origOrderNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderStatusDescr\"),\r\n\t\t\t\tfield: \"ordStatusDescr\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderFillStatusDescr\"),\r\n\t\t\t\tfield: \"fillStatusDescr\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getFormatedNumberString]\r\n\t) as Column[];\r\n};\r\n","import { OrderFilter, OrderMarket } from \"../../../domestic/orders/types\";\r\nimport { ViewOrder, GetOrdersParams } from \"../../../domestic/orders/types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\n\r\nconst getOrdersWebApi = (\r\n user: User,\r\n page?: number,\r\n itemsPerPage?: number,\r\n filter?: OrderFilter,\r\n defaultOrderStatus?: number,\r\n) => {\r\n const params: GetOrdersParams = {\r\n userid: user.userId,\r\n// cliid: user.clientId,\r\n secid: filter?.security?.securityId,\r\n exchid: filter?.exchange?.exchId,\r\n market: OrderMarket.Foreign,\r\n side: filter?.side,\r\n fromrow: page && itemsPerPage ? page * itemsPerPage : 0,\r\n numofrows: itemsPerPage,\r\n status: filter?.orderStatus?.ftValue || defaultOrderStatus,\r\n dateFrom: getParamsDateString(filter?.dateFrom),\r\n dateTo: getParamsDateString(filter?.dateTo),\r\n };\r\n\r\n return webApiWithResponse({\r\n method: \"GET\",\r\n url: \"order/getorderlist\",\r\n params,\r\n });\r\n};\r\n\r\nexport default getOrdersWebApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getOrders from \"../api/getOrders\";\r\nimport { PageDataStatus, PageData } from \"../../../models\";\r\nimport { ViewOrder, OrderFilter } from \"../../../domestic/orders/types\";\r\n\r\nexport const getOrdersThunk = (\r\n\tpageNumber?: number,\r\n\titemsPerPage?: number,\r\n\tfilter?: OrderFilter,\r\n\tdefaultStatus?: number\r\n): ThunkType | undefined>> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst user = store.data.auth.current.user;\r\n\tconst ordersResponse = await dispatch(getOrders(user, pageNumber, itemsPerPage, filter, defaultStatus));\r\n\r\n\tif (!ordersResponse || ordersResponse.resCode !== \"OK\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\treturn {\r\n\t\tcurrentPageData: ordersResponse.obj,\r\n\t\ttotalCount: Number(ordersResponse.resDesc) || 0,\r\n\t\tstatus: PageDataStatus.DataCurrent,\r\n\t};\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadOrderBook } from \"../thunks/loadAllOrderBook\";\r\nimport { ViewOrder } from \"../../../domestic/orders/types\";\r\nimport { PageData } from \"../../../models\";\r\nimport { invalidateOrders } from \"../../../domestic/orders/orderBookDataSlice\";\r\n\r\nexport const useOrderBookData = () => {\r\n const pageData = useSelector | undefined>(\r\n (s) => s.data.domestic.orderBook.currentPage\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadOrderBookPage = React.useCallback(\r\n () => dispatch(loadOrderBook()),\r\n [dispatch]\r\n );\r\n\r\n const dispatchInvalidateOrders = React.useCallback(\r\n () => dispatch(invalidateOrders()),\r\n [dispatch]\r\n );\r\n\r\n return [pageData, dispatchLoadOrderBookPage, dispatchInvalidateOrders] as [\r\n typeof pageData,\r\n typeof dispatchLoadOrderBookPage,\r\n typeof invalidateOrders,\r\n ];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setOrders, invalidateOrders } from \"../../../domestic/orders/orderBookDataSlice\";\r\nimport { setOrdersIndex } from \"../../../domestic/orders/orderBookUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { getOrdersThunk } from \"../../orders/thunks/getOrdersThunk\";\r\n\r\nexport const loadOrderBook = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tconst { pageNumber, itemsPerPage } = store.ux.domestic.orderBook.index;\r\n\tconst { filter } = store.ux.domestic.orderBook;\r\n\r\n\tconst pagedOrders = await dispatch(getOrdersThunk(pageNumber, itemsPerPage, filter));\r\n\r\n\tif (pagedOrders) {\r\n\t\tdispatch(setOrders(pagedOrders));\r\n\t}\r\n};\r\n\r\nexport const setOrdersIndexThunk = (index: PageIndex): ThunkType => dispatch => {\r\n\tdispatch(setOrdersIndex(index));\r\n\tdispatch(invalidateOrders());\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { resetOrderIdices } from \"../../../domestic/orders/orderBookUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { setOrdersIndexThunk } from \"../thunks/loadAllOrderBook\";\r\n\r\nexport const useOrderBookIndex = () => {\r\n\tconst pageIndex = useSelector(s => s.ux.domestic.orderBook.index);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetIndex = React.useCallback((index: PageIndex) => dispatch(setOrdersIndexThunk(index)), [\r\n\t\tdispatch,\r\n\t]);\r\n\tconst dispatchResetIndex = React.useCallback(() => dispatch(resetOrderIdices()), [dispatch]);\r\n\r\n\r\n\treturn [pageIndex, dispatchSetIndex, dispatchResetIndex] as [\r\n\t\ttypeof pageIndex,\r\n\t\ttypeof dispatchSetIndex,\r\n\t\ttypeof dispatchResetIndex\r\n\t];\r\n};\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { OrderFilter } from \"../../../domestic/orders/types\";\r\nimport { setFilter, removeFilter, initialState } from \"../../../domestic/orders/orderBookUXSlice\";\r\nimport { invalidateOrders } from \"../../../domestic/orders/orderBookDataSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\n\r\nexport const useOrderBookFilter = () => {\r\n\tconst [storeFilter] = useCurrentOrderBookFilter();\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter, true);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!));\r\n\t\tdispatch(invalidateOrders());\r\n\t}, [dispatch, filter]);\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t}, [setCurrentFilter]);\r\n\r\n\treturn [filter, editFilter, dispatchSetFilter, changeState, dispatchResetFilter] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t];\r\n};\r\n\r\nexport const useCurrentOrderBookFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.domestic.orderBook.filter);\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveFilter = React.useCallback(\r\n\t\t(type: keyof OrderFilter) => {\r\n\t\t\tdispatch(removeFilter(type));\r\n\t\t\tdispatch(invalidateOrders());\r\n\t\t},\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\treturn [filter, dispatchRemoveFilter] as [typeof filter, typeof dispatchRemoveFilter];\r\n};\r\n","import React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useOrderSideOptions } from \"../../../data/foreign/orders/hooks/useOrderSideOptions\";\r\nimport { TextField, MenuItem, TextFieldProps } from \"@material-ui/core\";\r\nimport { OrderSide } from \"../../../data/models\";\r\n\r\ninterface OrderSideSelectProps {\r\n\tside?: OrderSide;\r\n\thandleChange: (event: React.ChangeEvent) => void;\r\n\tdisabled?: boolean;\r\n\tnullable?: boolean;\r\n\tclasses?: TextFieldProps['classes']\r\n}\r\n\r\nexport const OrderSideSelect: React.FunctionComponent = ({\r\n\tside,\r\n\thandleChange,\r\n\tdisabled,\r\n\tnullable,\r\n\tclasses,\r\n}) => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst options = useOrderSideOptions();\r\n\tconst enchanchedOptions = React.useMemo(() => {\r\n\t\treturn !nullable ? options : [\r\n\t\t\t{\r\n\t\t\t\tlabel: \"--\",\r\n\t\t\t\tvalue: \"\",\r\n\t\t\t},\r\n\t\t\t...options\r\n\t\t]\r\n\t}, [nullable, options])\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{enchanchedOptions.map(option => (\r\n\t\t\t\t\r\n\t\t\t\t\t{option.label}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n","import { webApi } from \"../../../core/http/httpThunks\";\r\nimport { SecuritySimpleList, SecuritySimpleFilter } from \"../types\";\r\n\r\nexport const getSecurityFForSelect = (userId: string, df: string, filter?: SecuritySimpleFilter) =>\r\n\twebApi({\r\n\t\tmethod: \"GET\",\r\n\t\turl: \"common/getsecsimplelist\",\r\n\t\tparams: {\r\n\t\t\tuserId,\r\n\t\t\tdf,\r\n\t\t\texchid: filter?.exchId,\r\n\t\t\tforMD: filter?.forMD,\r\n\t\t},\r\n\t});\r\n\r\nexport default getSecurityFForSelect;\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { SecuritySimpleList, SecuritySimpleFilter } from \"../types\";\r\nimport { loadSecurityFForSelect } from \"../thunks/loadSecurityFForSelect\";\r\n\r\nexport const useSecurityFSelectData = (df: string, filter?: SecuritySimpleFilter) => {\r\n\tconst selectSecurities = useSelector(\r\n\t\tstore => store.data.initialData.securityFForSelect\r\n );\r\n\r\n const displatch = useDispatch();\r\n\tReact.useEffect(() => {\r\n//\t\tif (!selectSecurities) {\r\n\t\t\t\tdisplatch(loadSecurityFForSelect(df,filter));\r\n//\t\t}\r\n }, [displatch, df, filter]);\r\n// }, [displatch, selectSecurities]);\r\n\r\n\treturn selectSecurities !== \"loading\" ? selectSecurities : undefined;\r\n};\r\n\r\n\r\n","import { ThunkType } from \"../../../core/store/reducers\";\r\nimport getSecurityFForSelectApi from \"../api/getSecurityFForSelect\";\r\nimport { setSecurityFForSelect } from \"../initialDataReducer\";\r\nimport { SecuritySimpleFilter } from \"../types\";\r\n\r\nexport const loadSecurityFForSelect = (df: string, filter?: SecuritySimpleFilter): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst { userId } = store.data.auth.current.user;\r\n\tconst securities = await dispatch(getSecurityFForSelectApi(userId, df, filter));\r\n\r\n\tdispatch(setSecurityFForSelect(securities || []));\r\n};\r\n","import React from \"react\";\r\nimport { useSecurityFSelectData } from \"../../../data/initialData/hooks/useSecurityFSelectData\";\r\nimport { SecuritySimpleList, SecuritySimpleFilter } from \"../../../data/initialData/types\";\r\nimport { AutocompleteSelectType, AutocompleteSelect } from \"../common/AutocompleteSelect\";\r\nimport { OrderMarket } from \"../../../data/domestic/orders/types\";\r\n\r\nexport type SecuritySelectPropsType = Omit,\"data\" | \"getLabel\">& {\r\n\tfilter?: SecuritySimpleFilter;};\r\n\r\n\r\nexport const SecuritySelect: React.FunctionComponent = ({\r\n\tfilter,\r\n\t...props\r\n}) => {\r\n\r\n\tconst securities = useSecurityFSelectData(OrderMarket.Foreign, filter);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{...props as AutocompleteSelectType}\r\n\t\t\tdata={securities}\r\n\t\t\tgetLabel={renderSecurityLabel}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nconst renderSecurityLabel = (securities: SecuritySimpleList | null) =>\r\nsecurities ? `${securities.secData} ` : \"\";\r\n\r\n","import { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { Exchanges } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: Exchanges) => (status ? `${status.exch} (${status.exchName})` : \"\");\r\n\r\nexport const useExchanges = () => {\r\n\tconst statuses = useSelector(store => store.data.initialData.exchanges);\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n","import React from \"react\";\r\nimport { useExchanges } from \"../../../data/initialData/hooks/useExchanges\";\r\nimport { Exchanges } from \"../../../data/models\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\n\r\ntype RegionSelectPropsType = Omit<\r\n AutocompleteSelectType,\r\n \"data\" | \"getLabel\"\r\n>;\r\n\r\nexport const ExchangeSelect: React.FunctionComponent = (\r\n props\r\n) => {\r\n const [statuses, renderStatus] = useExchanges();\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(props as any)}\r\n />\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Chip, Grid } from \"@material-ui/core\";\r\nimport { OrderFilter } from \"../../../data/domestic/orders/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useOrderSideOptionsTranslator } from \"../../../data/foreign/orders/hooks/useOrderSideOptions\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\n\r\nexport const OrderFilterChipsComponent: React.FunctionComponent = ({\r\n\tfilter,\r\n\tremoveFilter,\r\n}) => {\r\n\tconst { getDateString, getString } = React.useContext(LocalizationContext);\r\n\tconst sideTranslator = useOrderSideOptionsTranslator();\r\n\r\n\tconst matches = useMediaQuery('(min-width:600px)');\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{filter.side && matches && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"side\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.dateFrom && matches && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"dateFrom\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.dateTo && matches && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"dateTo\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.orderStatus && matches && filter.orderStatus.ftDescr !== \"\" && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"orderStatus\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.exchange && matches && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"exchange\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.security && matches && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"security\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface OrderFilterChipsProps {\r\n\tfilter: OrderFilter;\r\n\tremoveFilter: (type: keyof OrderFilter) => void;\r\n}\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { useOrderBookFilter, useCurrentOrderBookFilter,} from \"../../../data/foreign/orders/hooks/useOrderBookFilter\";\r\nimport { OrderFilterEditor, OrderFilterEditorType, OrderFilterChips } from \"./EditOrderFilter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\n\r\nexport const OrderBookFilterButton: React.FunctionComponent = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\tconst matches = useMediaQuery('(min-width:600px)');\r\n\r\n\tconst [filter, removeFilter] = useCurrentOrderBookFilter();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\n\r\nconst OrderBookFilterEditor: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, , reset] = useOrderBookFilter();\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\nimport { OrderFilter, OrderMarket } from \"../../../domestic/orders/types\";\r\n\r\nexport const getOrderListReport = (user: User, filter: OrderFilter) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/getorderbookreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tmarket: OrderMarket.Foreign,\r\n\t\t\tside: filter?.side,\r\n\t\t\tstatus: filter?.orderStatus?.ftValue ,\r\n\t\t\tdateFrom: getParamsDateString(filter?.dateFrom),\r\n\t\t\tdateTo: getParamsDateString(filter?.dateTo),\r\n\t\t\texchid: filter?.exchange?.exchId,\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default getOrderListReport;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadOrdersReport } from \"../thunks/downloadReport\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useOrderBookReportDownloader = () => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.orderBook.printOrderFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => dispatch(downloadOrdersReport()), [dispatch]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState]\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getOrderListReport } from \"../api/getOrderListReport\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintOrderFetchState } from \"../../../domestic/orders/orderBookDataSlice\";\r\n\r\nexport const downloadOrdersReport = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst filter = store.ux.domestic.orderBook.filter;\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintOrderFetchState({ type: \"started\" }));\r\n\tconst ordersBookReport = await dispatch(getOrderListReport(user, filter));\r\n\tconsole.log(ordersBookReport)\r\n\tif (ordersBookReport) {\r\n\t\tfileDownload(new Blob([ordersBookReport as any], { type: \"application/pdf\" }), \"OrderBook.pdf\");\r\n\t}\r\n\tdispatch(setPrintOrderFetchState({ type: \"not-started\" }));\r\n};\r\n","import { OrderFilter, OrderMarket } from \"../../../domestic/orders/types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\n\r\nexport const getOrderListExcel = (\r\n user: User,\r\n filter: OrderFilter\r\n) => {\r\n return httpWebApi({\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n timeout: 60 * 4 * 1000,\r\n url: \"reporting/getorderbookxls\",\r\n params: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tmarket: OrderMarket.Foreign,\r\n\t\t\tside: filter?.side,\r\n\t\t\tstatus: filter?.orderStatus?.ftValue ,\r\n\t\t\tdateFrom: getParamsDateString(filter?.dateFrom),\r\n\t\t\tdateTo: getParamsDateString(filter?.dateTo),\r\n\t\t},\r\n });\r\n};\r\n\r\nexport default getOrderListExcel;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadOrderBookExcel } from \"../thunks/downloadReportExcel\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useOrderBookExcelDownloader = () => {\r\n const fetchState = useSelector(\r\n (s) => s.data.domestic.orderBook.downloadXlsFetchState\r\n );\r\n const dispatch = useDispatch();\r\n const download = React.useCallback(\r\n () => dispatch(downloadOrderBookExcel()),\r\n [dispatch]\r\n );\r\n\r\n return [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getOrderListExcel } from \"../api/getOrderListExcel\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setDownloadXlsFetchState } from \"../../../domestic/orders/orderBookDataSlice\";\r\n\r\nexport const downloadOrderBookExcel = (): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const filter = store.ux.domestic.orderBook.filter;\r\n const user = store.data.auth.current.user;\r\n dispatch(setDownloadXlsFetchState({ type: \"started\" }));\r\n const dailyTrading = await dispatch(getOrderListExcel(user, filter));\r\n if (dailyTrading) {\r\n fileDownload(\r\n new Blob([dailyTrading as any], {\r\n type: \"application/vnd.openxmlformat\",\r\n }),\r\n \"OrderBook.xlsx\"\r\n );\r\n }\r\n dispatch(setDownloadXlsFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { useOrderBookReportDownloader } from \"../../../data/foreign/orders/hooks/useOrderBookReportDownloader\";\r\nimport { useOrderBookExcelDownloader } from \"../../../data/foreign/orders/hooks/useOrderBookExcelDownloader\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport ExcelIcon from \"@material-ui/icons/TableChartOutlined\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n\r\nexport const DownloadButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useOrderBookReportDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null}\r\n\t\t\r\n);\r\n};\r\n\r\n\r\nexport const DownloadExcelButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useOrderBookExcelDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Card, Divider, Fab } from \"@material-ui/core\";\r\nimport OrdersTable from \"./OrderBookTable\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent, AccessRights } from \"../../../core/navigation/types\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { useOrderBookData } from \"../../../data/foreign/orders/hooks/useOrderBookData\";\r\nimport { useOrderBookIndex } from \"../../../data/foreign/orders/hooks/useOrderBookIndex\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { PageDataStatus } from \"../../../data/models\";\r\nimport { OrderBookFilterButton } from \"./OrderBookFilter\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { useNotificationHandler } from \"../../../core/notifications/hooks\";\r\nimport { getOrderBookFEditLocation } from \"./Locations\";\r\nimport { OrdersEditAction } from \"../../../data/domestic/orders/types\";\r\nimport { DownloadButton, DownloadExcelButton } from \"./DownloadButton\";\r\n\r\nconst OrderBook: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [pageData, dispatchLoadOrders, invalidateData] = useOrderBookData();\r\n\tconst [pageIndex, dispatchSetIndex] = useOrderBookIndex();\r\n\r\n\tconst publiurl = \"%PUBLIC_URL%/manifest.json\"\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (pageData && pageData.status === PageDataStatus.DataInvalidated) {\r\n\t\t\tdispatchLoadOrders();\r\n\t\t}\r\n\t}, [dispatchLoadOrders, pageData]);\r\n\r\n\tReact.useEffect(() => () => { invalidateData() }, [])\r\n\r\n\tconst history = useHistory();\r\n\r\n\tconst [auth] = useAuth();\r\n\r\n\tuseNotificationHandler(\r\n\t\t\"OrderChanged\",\r\n\t\te => {\r\n\t\t\tconsole.log(\"OrderChanged\", e);\r\n\t\t\tinvalidateData();\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\tif (auth.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\taction={}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{/*userAccessRights === AccessRights.All && (auth.user.roleCode === \"BROKER\" || auth.user.roleCode === \"MEMTRADER\") && (\r\n\t\t\t)*/}\r\n\t\t\t history.push(getOrderBookFEditLocation())}\r\n\t\t\t\t>\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const OrderBookActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default OrderBook;\r\n","import { EditOrder } from \"../../../domestic/orders/types\";\r\nimport { createUseValidator } from \"../../../../core/util/hooks\";\r\nimport { ValidationState } from \"../../../../core/util/types\";\r\nimport { countDecimals } from \"../../../../core/util/functions\";\r\n\r\nexport const orderValidationState: ValidationState = {\r\n\tclientId: true,\r\n\tside: true,\r\n\tqty: true,\r\n\tprice: true,\r\n\tsecurity: true,\r\n\texpiryDate: true,\r\n};\r\n\r\nexport const useOrderValidator = () => {\r\n\r\n\treturn createUseValidator>(\r\n\t\torderValidationState,\r\n\t\t(item, validation) => ({\r\n\t\t\t...validation,\r\n\t\t\tqty: validation.qty && !!item.qty && countDecimals(item.qty) === 0,\r\n\t\t\texpiryDate: validation.expiryDate || item.timeInForce !== \"GTD\",\r\n\t//\t\tprice: validation.price && item.price > 0 && item.orderType === \"LIMIT\",\r\n\t\t\tprice: (validation.price && item.price > 0 && item.orderType === \"LIMIT\") || item.orderType === \"MARKET\",\r\n\t\t})\r\n\t)();\r\n};\r\n\r\n\r\n\r\n//\t\t\t// && !!item.price && countDecimals(item.price) <= 2,\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { SecurityAccounts } from \"../../models\";\r\nimport { SecurityAccFilter } from \"../../../data/domestic/orders/types\";\r\n\r\nconst getStatusLabel = (status?: SecurityAccounts) => (status ? status.accNo : \"\");\r\n\r\nexport const useSecurityAccountsForeign = (filter?: SecurityAccFilter) => {\r\n\r\n\tconst statuses = useSelector(store => store.data.initialData.securityAccounts);\r\n\r\n\tconst [secaccs, getAccLabel ] = useSecurityAccountForeign(statuses,filter );\r\n\r\n\treturn [secaccs, getAccLabel] as [typeof secaccs, typeof getAccLabel];\r\n};\r\n\r\nexport const useSecurityAccountForeign = (secaccs: SecurityAccounts[], filter?: SecurityAccFilter) => {\r\n\r\n\tconst secacc = React.useMemo(() => secaccs.filter(c => filter && c.accUse.includes(filter.accUse)), [secaccs, filter]);\r\n\r\n\tconst secaccLabel = (secacc?: SecurityAccounts) => (secacc ? secacc.accNo : \"\");\r\n\r\n\treturn [secacc, secaccLabel] as [typeof secacc, typeof secaccLabel];\r\n};\r\n\r\n","import React from \"react\";\r\nimport { useSecurityAccounts } from \"../../../data/initialData/hooks/useSecurityAccounts\";\r\nimport { useSecurityAccountsForeign } from \"../../../data/initialData/hooks/useSecurityAccountsForeign\";\r\nimport { SecurityAccounts } from \"../../../data/models\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\nimport { SecurityAccFilter } from \"../../../data/domestic/orders/types\";\r\n//import { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\n\r\ntype RegionSelectPropsType = Omit,\"data\" | \"getLabel\">\r\n& {\r\n\tfilter?: SecurityAccFilter\r\n};\r\n\r\n/* const filterOptions = createFilterOptions({\r\n // matchFrom: 'start',\r\n // stringify: (option: FilmOptionType) => option.title,\r\n limit: 10,\r\n }); */\r\n \r\n\r\nexport const SecurityAccountsSelectForeign: React.FunctionComponent = (\r\n {\r\n filter,\r\n ...props\r\n } \r\n \r\n) => {\r\n const [statuses, renderStatus] = useSecurityAccountsForeign(filter) ;\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(props as any)}\r\n// filterOptions={filterOptions}\r\n />\r\n );\r\n};\r\n\r\n","\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { MoneyAccounts } from \"../../models\";\r\nimport { MoneyAccFilter } from \"../../domestic/orders/types\";\r\n\r\nconst getStatusLabel = (status?: MoneyAccounts) => (status ? status.accNo : \"\");\r\n\r\nexport const useMoneyAccountsForeign = (filter?: MoneyAccFilter) => {\r\n\r\n\tconst statuses = useSelector(store => store.data.initialData.moneyAccounts);\r\n\r\n \tconst [monaccs, getAccLabel ] = useMoneyAccountForeign(statuses,filter );\r\n\r\n\treturn [monaccs, getAccLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n\r\nexport const useMoneyAccountForeign = (monaccs: MoneyAccounts[], filter?: MoneyAccFilter) => {\r\n\r\n//\tconst monacc = React.useMemo(() => monaccs.filter(c => filter && (c.currId===\"00000002\" || c.currId===\"00000009\") && (c.accSide === filter.accSide || c.accSide===\"U\") ), [monaccs, filter]);\r\n\tconst monacc = React.useMemo(() => monaccs.filter(c => filter && c.accUse !== 'D' && (c.accSide === filter.accSide || c.accSide===\"U\") ), [monaccs, filter]);\r\n\r\n\tconst getStatusLabel = (monacc?: MoneyAccounts) => (monacc ? monacc.accNo : \"\");\r\n\r\n\treturn [monacc, getStatusLabel ] as [typeof monacc, typeof getStatusLabel];\r\n};\r\n","import React from \"react\";\r\nimport { useMoneyAccountsForeign } from \"../../../data/initialData/hooks/useMoneyAccountsForeign\";\r\nimport { MoneyAccounts } from \"../../../data/models\";\r\nimport { MoneyAccFilter } from \"../../../data/domestic/orders/types\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\n\r\ntype RegionSelectPropsType = Omit<\r\n AutocompleteSelectType,\r\n \"data\" | \"getLabel\"\r\n> & {filter?: MoneyAccFilter};\r\n\r\nexport const MoneyAccountsSelectForeign: React.FunctionComponent = ({\r\nfilter,\r\n...otherProps\r\n}\r\n) => {\r\n const [statuses, renderStatus] = useMoneyAccountsForeign(filter);\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(otherProps as any)}\r\n />\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { SecurityAccounts } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: SecurityAccounts) => (status ? status.accNo : \"\");\r\n\r\nexport const useSecurityAccountsForDefault = () => {\r\n\tconst statuses = useSelector(store => store.data.initialData.securityAccounts);\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n\r\nexport const useSecurityAccountForDefault = (accUse?: string) => {\r\n\tconst [secaccs] = useSecurityAccountsForDefault();\r\n\r\n\tconst secacc = React.useMemo(() => secaccs.find(c => c.accUse !== \"D\" && c.defFor===1 ), [secaccs, accUse]);\r\n\tconst secaccLabel = React.useMemo(() => getStatusLabel(secacc), [secacc]);\r\n\r\n\treturn [secacc, secaccLabel] as [typeof secacc, typeof secaccLabel];\r\n};\r\n\r\n\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { MoneyAccounts } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: MoneyAccounts) => (status ? status.accNo : \"\");\r\n\r\nexport const useMoneyAccountsForDefault = () => {\r\n\r\n\tconst statuses = useSelector(store => store.data.initialData.moneyAccounts);\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n\r\nexport const useMoneyAccountForDefault = (accUse?: string, currId?: string) => {\r\n\r\n\tconst [monaccs] = useMoneyAccountsForDefault();\r\n\r\n\tconst monacc = React.useMemo(() => monaccs.find(c => (c.accUse !== 'D' && c.accSide !== 'S' && c.defFor === 1 && c.currId!=='00000001') ), [monaccs]);\r\n\t\r\n\tconst monaccbayeur = React.useMemo(() => monaccs.find(c => (c.accUse !== 'D' && c.accSide !== 'S' && c.defFor === 1 && c.currId==='00000002') ), [monaccs]);\r\n\tconst monaccselleur = React.useMemo(() => monaccs.find(c => (c.accUse !== 'D' && c.accSide !== 'B' && c.defFor === 1 && c.currId==='00000002') ), [monaccs]);\r\n\tconst monaccbayusd = React.useMemo(() => monaccs.find(c => (c.accUse !== 'D' && c.accSide !== 'S' && c.defFor === 1 && c.currId==='00000009') ), [monaccs]);\r\n\tconst monaccsellusd = React.useMemo(() => monaccs.find(c => (c.accUse !== 'D' && c.accSide !== 'B' && c.defFor === 1 && c.currId==='00000009') ), [monaccs]);\r\n\r\n\tconst monaccLabel = React.useMemo(() => getStatusLabel(monacc), [monacc]);\r\n\r\n\treturn [monacc, monaccLabel, monaccbayeur, monaccselleur, monaccbayusd, monaccsellusd] as \r\n\t[typeof monacc, typeof monaccLabel, typeof monaccbayeur, typeof monaccselleur, typeof monaccbayusd, typeof monaccsellusd];\r\n};\r\n","import React, { ReactNode } from \"react\";\r\nimport { useOrderValidator } from \"../../../data/foreign/orders/hooks/useOrderValidator\";\r\nimport { useOrderUpsert } from \"../../../data/foreign/orders/hooks/useOrderUpsert\";\r\nimport { EditOrder, OrdersEditAction, MoneyAccFilter, OrderSecurityFilter } from \"../../../data/domestic/orders/types\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Grid, TextField, InputAdornment, Typography } from \"@material-ui/core\";\r\nimport { FabSave } from \"../../components/common/FabSave\";\r\nimport { BoolInput } from \"../../components/common/BoolInput\";\r\nimport { LeavePrompt } from \"../../components/common/LeavePrompt\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { OrderSideSelect } from \"./OrderSideSelect\";\r\nimport { NumberInput } from \"../../components/common/NumberInput\";\r\nimport { DateInput } from \"../../components/common/DateInput\";\r\nimport { orderBookFLocation } from \"./Locations\";\r\nimport { OrderSide } from \"../../../data/models\";\r\nimport { SecuritySelect } from \"../../components/tables/SecurityForeignSelect\";\r\nimport { SecurityAccountsSelect } from \"../../components/common/SecurityAccountsSelect\";\r\nimport { SecurityAccountsSelectForeign } from \"../../components/common/SecurityAccountsSelectForeign\";\r\nimport { MoneyAccountsSelectForeign } from \"../../components/common/MoneyAccountsSelectForeign\";\r\nimport { OrderTypesSelect } from \"../../components/common/OrderTypesSelect\";\r\nimport { TifListSelect } from \"../../components/common/TifListSelect\";\r\nimport { useSecurityAccount } from \"../../../data/initialData/hooks/useSecurityAccounts\";\r\nimport { useSecurityAccountForDefault } from \"../../../data/initialData/hooks/useSecurityAccountsForDefault\";\r\nimport { useMoneyAccount } from \"../../../data/initialData/hooks/useMoneyAccounts\";\r\nimport { useMoneyAccountForDefault } from \"../../../data/initialData/hooks/useMoneyAccountsForDefault\";\r\nimport { Security } from \"@material-ui/icons\";\r\nimport { Status } from \"../../../data/models\";\r\nimport { ExchangeSelect } from \"../../components/common/ExchangeSelect\";\r\nimport { SecuritySimpleFilter } from \"../../../data/initialData/types\";\r\nimport { CustomDialog } from \"../../components/common/CustomDialog\";\r\nimport { useOrderSideStyles } from \"./useOrderRowColor\";\r\n\r\nexport interface EditOrderBasicInfoPageProps {\r\n\torder: EditOrder;\r\n\teditOrder: (field: keyof EditOrder, value: any) => void;\r\n\tchanged: boolean;\r\n\taction: OrdersEditAction;\r\n}\r\n\r\nexport type FundCheckState =\r\n\t| { status: \"INIT\"; message?: string }\r\n\t| { status: \"SHOWMESSAGE\"; message: string }\r\n\t| { status: \"RESUBMITED\"; message?: string }\r\n\t| { status: \"CONFIRMED\"; message?: string };\r\n\r\nexport type ActiveCheckState =\r\n\t| { status: \"INIT\"; message?: string }\r\n\t| { status: \"SHOWMESSAGE\"; message?: string }\r\n\t| { status: \"CANCEL\"; message?: string }\r\n\t| { status: \"CONFIRMED\"; message?: string };\r\n\r\n\r\nexport const EditOrderBasicInfoPage: React.FunctionComponent = props => {\r\n\tconst { getString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n\tconst { action, order, editOrder, changed } = props;\r\n\tconst [auth] = useAuth();\r\n\tconst [validationState, validate] = useOrderValidator();\r\n\tconst [fetchState, upsert] = useOrderUpsert(action);\r\n\tconst history = useHistory();\r\n\tconst sideStyle = useOrderSideStyles();\r\n\r\n\t//\tconst [secAccount, renderStatus] = useSecurityAccount(\"F\"); // Računi hartija i novca\r\n\r\n\tconst [activeCheckState, setActiveCheckState] = React.useState({ status: \"INIT\" });\r\n\r\n\tconst [secAccountDef, secAccountDefName] = useSecurityAccountForDefault(); // Račun hartija default\r\n\r\n\tconst unsavedChanges = fetchState.type === \"not-started\" && changed;\r\n\r\n\tconst handleChange = React.useCallback(\r\n\t\t(event: React.ChangeEvent) => {\r\n\t\t\teditOrder(event.target.name as any, event.target.value);\r\n\t\t},\r\n\t\t[editOrder]\r\n\t);\r\n\r\n\tconst [orderSecurityFilter, setOrderSecurityFilter] = React.useState(\r\n\t\tcreateOrderSecurityFilter()\r\n\t);\r\n\r\n\tconst [monAccountFilter, setMonAccountFilter] = React.useState(\r\n\t\tcreateOrderMoneyAccountFilter(order)\r\n\t);\r\n\r\n\tconst [exchFilter, setexchFilter] = React.useState(\r\n\t\tcreateExchangeFilter(order)\r\n\t);\r\n\r\n\r\n\tReact.useEffect(() => {\r\n\t\tsetOrderSecurityFilter(createOrderSecurityFilter());\r\n\t}, [setOrderSecurityFilter]);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tsetMonAccountFilter(createOrderMoneyAccountFilter(order));\r\n\t}, [setMonAccountFilter, order]);\r\n\r\n\r\n\tconst [monAccountDef, monrenderStatusDef, monaccbayeurdef, monaccselleurdef, monaccbayusddef, monaccsellusddef] = useMoneyAccountForDefault();\r\n\r\n\tconst backLocation = orderBookFLocation;\r\n\r\n\tReact.useEffect(() => {\r\n\t\tsetexchFilter(createExchangeFilter(order));\r\n\t}, [order, setexchFilter]);\r\n\r\n\r\n\tconst saveOrder = React.useCallback(\r\n\t\tasync (order: EditOrder) => {\r\n\t\t\tconst normalized = validate(order);\r\n\t\t\tif (normalized) {\r\n\t\t\t\tconst result = await upsert(normalized);\r\n\t\t\t\tif (result.status === \"CREATED\") {\r\n\t\t\t\t\teditOrder(\"orderId\", result.newId);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t[validate, editOrder, upsert]\r\n\t);\r\n\r\n\r\n\tconst fabClick = React.useCallback(\r\n\t\t(order: EditOrder) => {\r\n\t\t\tif (fetchState.type === \"successful\") {\r\n\t\t\t\thistory.push(backLocation);\r\n\t\t\t} else if (fetchState.type !== \"started\") {\r\n\t\t\t\tsaveOrder(order);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[fetchState, history, backLocation, saveOrder]\r\n\t);\r\n\r\n\tif (!order || auth.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst filtermd = {\r\n\t\tforMD: 'N',\r\n\t}\r\n\r\n\tconst messageelement: ReactNode = (\r\n\t\t<>\r\n\t\t\t
{`${getString(\"orderSecurity\")} ${order.security?.symbol}`}
\r\n\t\t\t
{`${getString(\"orderQty\")}: ${getFormatedNumberString(order.qty)}`}
\r\n\t\t\t
{`${getString(\"orderPrice\")}: ${order.price === undefined || order.price === 0 ? \"Tržišna\" : getFormatedNumberString(order.price, true)} ${order.security?.currCode}`}
\r\n\t\t\t
{`${order.price === undefined || order.price === 0 ? \"\" : getString(\"orderAttrValue\")} ${order.price === undefined || order.price === 0 ? getString(\"orderChecked\") : getFormatedNumberString(order.price * order.qty, true)} ${order.price === undefined || order.price === 0 ? \"\" : order.security?.currCode}`}
\r\n\t\t\r\n\t)\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"side\", e.target.value);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAccId\", secAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAcc\", secAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", order.moneyAccId && order.security?.currId !== monAccountDef?.currId ? order.moneyAccId : monAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", order.moneyAcc && order.security?.currId !== monAccountDef?.currId ? order.moneyAcc : monAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"securityAccId\", order.securityAccId ? order.securityAccId : secAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"securityAcc\", order.securityAcc ? order.securityAcc : secAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", order.moneyAccId && order.security?.currId === monAccountDef?.currId? order.moneyAccId : monAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", order.moneyAcc && order.security?.currId === monAccountDef?.currId ? order.moneyAcc : monAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\tcreateOrderMoneyAccountFilter(order);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tside={order.side}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\r\n\t\t\t\t\t{/* \t\t\t\t\t\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t exchange.exchId === order.exchId}\r\n\t\t\t\t\t\t\t\tonChangeItem={exchange => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"exchId\", exchange?.exchId);\r\n\t\t\t\t\t\t\t\t\tcreateExchangeFilter(order);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t */}\r\n\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t security.securityId === order.security?.securityId}\r\n\t\t\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"symbol\", security?.secData);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"security\", security);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"exchId\", security?.exchId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAccId\", order.securityAccId ? order.securityAccId : secAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAcc\", order.securityAcc ? order.securityAcc : secAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", order.moneyAcc && order.security?.currId !== monAccountDef?.currId? order.moneyAccId : monAccountDef?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", security && security.currId === '00000002' && order.side === OrderSide.Buy ? monaccbayeurdef?.accId :\r\n\t\t\t\t\t\t\t\t\t\tsecurity && security.currId === '00000002' && order.side === OrderSide.Sell ? monaccselleurdef?.accId :\r\n\t\t\t\t\t\t\t\t\t\t\tsecurity && security.currId === '00000009' && order.side === OrderSide.Buy ? monaccbayusddef?.accId :\r\n\t\t\t\t\t\t\t\t\t\t\t\tsecurity && security.currId === '00000009' && order.side === OrderSide.Sell ? monaccsellusddef?.accId : monaccsellusddef?.accId);\r\n\t\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", order.moneyAcc && order.security?.currId !== monAccountDef?.currId ? order.moneyAcc : monAccountDef?.accNo);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", security && security.currId === '00000002' && order.side === OrderSide.Buy ? monaccbayeurdef?.accNo :\r\n\t\t\t\t\t\t\t\t\t\tsecurity && security.currId === '00000002' && order.side === OrderSide.Sell ? monaccselleurdef?.accNo :\r\n\t\t\t\t\t\t\t\t\t\t\tsecurity && security.currId === '00000009' && order.side === OrderSide.Buy ? monaccbayusddef?.accNo :\r\n\t\t\t\t\t\t\t\t\t\t\t\tsecurity && security.currId === '00000009' && order.side === OrderSide.Sell ? monaccsellusddef?.accNo : monaccsellusddef?.accNo);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"preMarket\", security && security.currId !== '00000009' ? 0 : order.preMarket);\r\n\t\t\t\t\t\t\t\t\tcreateOrderMoneyAccountFilter(order);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\trequired={validationState.security !== undefined}\r\n\t\t\t\t\t\t\t\terror={validationState.security !== undefined && !validationState.security}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tproperty=\"qty\"\r\n\t\t\t\t\t\t\t\titem={order}\r\n\t\t\t\t\t\t\t\tvalidationState={validationState}\r\n\t\t\t\t\t\t\t\tonChange={handleChange}\r\n\t\t\t\t\t\t\t\tlabel={getString(\"orderQty\")}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t securityAcc.accId === order.securityAccId}\r\n\t\t\t\t\t\t\t\tonChangeItem={securityAcc => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAccId\", securityAcc?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"securityAcc\", securityAcc?.accNo);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\trequired={validationState.security !== undefined}\r\n\t\t\t\t\t\t\t\terror={validationState.security !== undefined && !validationState.security}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t monAccount.accId === order.moneyAccId}\r\n\t\t\t\t\t\t\t\tonChangeItem={monAccount => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAccId\", monAccount?.accId);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"moneyAcc\", monAccount?.accNo);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\trequired={validationState.security !== undefined}\r\n\t\t\t\t\t\t\t\terror={validationState.security !== undefined && !validationState.security}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t orderTypes.ftValue === order.orderType}\r\n\t\t\t\t\t\t\t\tonChangeItem={orderTypes => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"orderType\", orderTypes?.ftValue);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"price\", order.orderType === \"LIMIT\" ? 0 : order.price)\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tproperty=\"price\"\r\n\t\t\t\t\t\t\t\titem={order}\r\n\t\t\t\t\t\t\t\tvalidationState={validationState}\r\n\t\t\t\t\t\t\t\tonChange={handleChange}\r\n\t\t\t\t\t\t\t\tlabel={getString(\"orderPrice\")}\r\n\t\t\t\t\t\t\t\tmoney\r\n\t\t\t\t\t\t\t\trequired={order.orderType === \"LIMIT\"}\r\n\t\t\t\t\t\t\t\terror={order.orderType === \"LIMIT\" && !validationState.price}\r\n\t\t\t\t\t\t\t\t//\t\t\t\t\t\t\t\tdisabled={order.orderType !== \"LIMIT\" || action === OrdersEditAction.Modify} \r\n\t\t\t\t\t\t\t\tdisabled={order.orderType !== \"LIMIT\"}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t tifList.ftValue === order.timeInForce}\r\n\t\t\t\t\t\t\t\tonChangeItem={tifList => {\r\n\t\t\t\t\t\t\t\t\teditOrder(\"timeInForce\", tifList?.ftValue);\r\n\t\t\t\t\t\t\t\t\teditOrder(\"expiryDate\", tifList?.ftValue !== \"GTD\" ? null : order.expiryDate)\r\n\t\t\t\t\t\t\t\t\teditOrder(\"preMarket\", tifList?.ftValue !== \"DAY\" ? 0 : order.preMarket)\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t editOrder(\"expiryDate\", date)}\r\n\t\t\t\t\t\t\t\trequired={order.timeInForce === \"GTD\"}\r\n\t\t\t\t\t\t\t\terror={order.timeInForce === \"GTD\" && !validationState.expiryDate}\r\n\t\t\t\t\t\t\t\tdisabled={order.timeInForce !== \"GTD\" || action === OrdersEditAction.Modify}\r\n\t\t\t\t\t\t\t\tdisablePast\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tproperty=\"preMarket\"\r\n\t\t\t\t\t\t\t\titem={order}\r\n\t\t\t\t\t\t\t\tonChange={handleChange}\r\n\t\t\t\t\t\t\t\tfalsyValue={0}\r\n\t\t\t\t\t\t\t\tthrutyValue={1}\r\n\t\t\t\t\t\t\t\tlabel={getString(\"orderPreMarket\")}\r\n\t\t\t\t\t\t\t\tdisabled={order.timeInForce !== \"DAY\" || order.security?.currCode !== 'USD'}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{auth.user.confirmOrder === 0 && ( fabClick(order)} />)}\r\n\t\t\t{auth.user.confirmOrder === 1 && ( {\r\n\t\t\t\t\tactiveCheckState.status === \"INIT\" || fetchState.type === \"not-started\" ? setActiveCheckState({ status: \"SHOWMESSAGE\" }) : fabClick(order);\r\n\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t/>)}\r\n\t\t\t\r\n\t\t\t{auth.user.confirmOrder === 1 && ( {\r\n\t\t\t\t\tclose === false ? setActiveCheckState(s => ({ status: \"CONFIRMED\", message: s.message })) : setActiveCheckState(s => ({ status: \"CANCEL\", message: s.message }));\r\n\t\t\t\t\tclose === false ? fabClick(order) : setActiveCheckState(s => ({ status: \"INIT\", message: s.message }));\r\n\t\t\t\t}}\r\n\t\t\t\tdisableBackdropClick\r\n\t\t\t/>)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst createOrderSecurityFilter = (): OrderSecurityFilter | undefined => {\r\n\treturn {\r\n\t\taccUse: \"F\",\r\n\t};\r\n};\r\n\r\nconst createOrderMoneyAccountFilter = (order?: EditOrder): MoneyAccFilter | undefined => {\r\n\treturn order && !order.security && order.side === \"BUY\" ? { accSide: \"B\", curId: \"00000002\" } :\r\n\t\torder && !order.security && order.side === \"SELL\" ? { accSide: \"S\", curId: \"00000002\" } :\r\n\t\t\torder && order.security && order.side === \"BUY\" ? { accSide: \"B\", curId: order.security.currId } :\r\n\t\t\t\torder && order.security && order.side === \"SELL\" ? { accSide: \"S\", curId: order.security.currId } : { accSide: \"B\", curId: \"00000002\" }\r\n};\r\n\r\n\r\n\r\nconst createExchangeFilter = (order?: EditOrder): SecuritySimpleFilter | undefined => {\r\n\treturn order && order.exchId ? { exchId: order.exchId, } : undefined;\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { setNewOrderFetchState } from \"../../../domestic/orders/orderBookDataSlice\";\r\nimport { EditOrder, OrdersEditAction, OrderUpsertResult } from \"../../../domestic/orders/types\";\r\n\r\nimport { upsertOrder } from \"../../../domestic/orders/thunks/upsertOrder\";\r\n\r\n\r\nexport const useOrderUpsert = (action: OrdersEditAction) => {\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.domestic.orderBook.newOrderFetchState\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchUpsertOrder: any = React.useCallback(\r\n\t\t(order: EditOrder) => dispatch(upsertOrder(action, order)),\r\n\t\t[dispatch, action]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tdispatch(setNewOrderFetchState({ type: \"not-started\" }))\r\n\t}, [dispatch])\r\n\r\n\treturn [fetchState, dispatchUpsertOrder] as [typeof fetchState, (order: EditOrder) => Promise]\r\n};\r\n\r\n","import React from \"react\";\r\nimport { EditOrder, OrdersEditAction, OrderMarket } from \"../../../domestic/orders/types\";\r\nimport { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { OrderSide } from \"../../../models\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { useAuth } from \"../../../auth/hooks\";\r\nimport { useOrderForEdit } from \"./useOrderForEdit\";\r\nimport { Status } from \"../../../models\";\r\nimport { useMoneyAccountForDefault } from \"../../../../data/initialData/hooks/useMoneyAccountsForDefault\";\r\nimport { MoneyAccounts, SecurityAccounts } from \"../../../models\";\r\nimport { useSecurityAccountForDefault } from \"../../../../data/initialData/hooks/useSecurityAccountsForDefault\";\r\n\r\nexport const createDefauiltOrder = (user: User, moneyacc?: MoneyAccounts, securityAcc?:SecurityAccounts) : EditOrder => ({\r\n\t\r\n//\tuserId: user.userId,\r\n\tclientId: user.clientId,\r\n\ttimeInForce: \"DAY\",\r\n\torderType: \"LIMIT\",\r\n//\texchId: \"00000001\",\r\n\tqty: 0,\r\n\tprice: 0,\r\n\torderId: \"\",\r\n\tside: OrderSide.Buy,\r\n\ticeberg: Status.Inactive,\r\n\tmarket: OrderMarket.Foreign,\r\n\tmoneyAccId: moneyacc?.accId,\r\n\tsecurityAccId: securityAcc?.accId\r\n});\r\n\r\n\r\nexport const useEditOrder = (action: OrdersEditAction, orderId?: string): EditOrder | undefined => {\r\n\tconst diplayedOrder = useOrderForEdit(action, orderId);\r\n\tconst [auth] = useAuth();\r\n\r\n\tconst [monAccountDef, monrenderStatusDef, monaccbayeurdef, monaccselleurdef, monaccbayusddef, monaccsellusddef] = useMoneyAccountForDefault();\r\n\tconst [secAccountDef, secAccountDefName] = useSecurityAccountForDefault(); // Račun hartija default\r\n\r\n\treturn React.useMemo(() => {\r\n\t\tif ((orderId !== undefined && diplayedOrder === undefined) || auth.status !== \"successful\") {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\r\n\t\tif (orderId === undefined) {\r\n\t\t\tconst defaultOrder = createDefauiltOrder(auth.user, monaccbayeurdef, secAccountDef);\r\n\t\t\treturn { ...defaultOrder };\r\n\t\t}\r\n\t\tconst order = diplayedOrder\r\n\t\t\t? (({ ...diplayedOrder, userId: auth.user.userId } as unknown) as EditOrder)\r\n\t\t\t: undefined;\r\n\r\n\t\tif (order && auth.user.clientId) {\r\n\t\t\torder.clientId = auth.user.clientId;\r\n\t\t}\r\n\r\n\t\treturn order;\r\n\t}, [orderId, diplayedOrder, auth]);\r\n};\r\n\r\nexport const useEditOrderState = (action: OrdersEditAction, orderId?: string) => {\r\n\tconst order = useEditOrder(action, orderId);\r\n\treturn useCopiedState(order);\r\n};\r\n","import { Order, OrdersEditAction } from \"../../../domestic/orders/types\";\r\n// import { getOppositeOrder } from \"../api/getOppositeOrder\";\r\nimport { getOrderApi } from \"../api/getOrder\";\r\nimport { useAuth } from \"../../../auth/hooks\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport React from \"react\";\r\n\r\nexport const useOrderForEdit = (action: OrdersEditAction, ordId?: string) => {\r\n\tconst [auth] = useAuth();\r\n\tconst dispatch = useDispatch();\r\n\tconst [order, setOrder] = React.useState();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (auth.status !== \"successful\" || !ordId) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\tconst load = async () => {\r\n\t\t\tconst newOrder = await dispatch(getOrderApi(auth.user.userId, ordId));\r\n\r\n//\t\t\t\taction === OrdersEditAction.Replay\r\n//\t\t\t\t\t? await dispatch(getOppositeOrder(auth.user.userId, ordId))\r\n//\t\t\t\t\t: await dispatch(getOrderApi(auth.user.userId, ordId));\r\n\r\n\t\t\t\t\tsetOrder(newOrder as any);\r\n\t\t};\r\n\t\tload();\r\n\t}, [dispatch, action, ordId, setOrder, auth]);\r\n\r\n\treturn order;\r\n};\r\n","import OrderBook from \"./OrderBook\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { orderBookFLocation, baseEdit} from \"./Locations\";\r\nimport { EditOrderPage } from \"../orders/EditOrderPage\"\r\n\r\nexport const orderBookFComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: OrderBook,\r\n\t\tisMenuItem: true,\r\n\t\tpath: orderBookFLocation,\r\n\t\tnotifications: true,\r\n\t},\r\n\r\n\t{\r\n\t\tComponent: EditOrderPage,\r\n\t\tisMenuItem: false,\r\n\t\tpath: baseEdit,\r\n\t},\r\n];\r\n\r\n","import React from \"react\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { Card, Grid, CardHeader, Divider, CardContent } from \"@material-ui/core\";\r\nimport { EditOrderBasicInfoPage } from \"./EditOrderBasicInfoPage\";\r\nimport { useEditOrderState } from \"../../../data/foreign/orders/hooks/useEditOrderState\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\n// import { mainBoardLocation } from \"../mainBoard/Locations\";\r\nimport { OrdersEditAction } from \"../../../data/domestic/orders/types\";\r\nimport { orderBookFLocation } from \"./Locations\";\r\nimport { OrderSide } from \"../../../data/models\";\r\nimport { useOrderSideStyles } from \"./useOrderRowColor\";\r\n\r\nexport interface EditOrderPageInfo {\r\n\taction: OrdersEditAction;\r\n\teditPart?: string;\r\n\torderId?: string;\r\n}\r\n\r\nexport interface EditOrderPageProps extends RouteComponentProps { }\r\n\r\nexport const EditOrderPage: React.FunctionComponent = props => {\r\n\tconst pageStyles = usePageStyles();\r\n\tconst { action, orderId } = props.match.params;\r\n\tconst sideStyle = useOrderSideStyles();\r\n\r\n\tconst [order, editOrder, changed] = useEditOrderState(action, orderId);\r\n\r\n\t// \tconst backLocation = action === OrdersEditAction.Replay ? mainBoardLocation : orderBookLocation; ovo kad se bude davao nalog i iz table\r\n\tconst backLocation = orderBookFLocation;\r\n\r\n\tconst pageTitle = orderId\r\n\t\t? action === OrdersEditAction.Verify\r\n\t\t\t? \"orderVerify\"\r\n\t\t\t: \"orderModify\"\r\n\t\t: \"orderCreateTitle\";\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tclassName={order && order.side === OrderSide.Sell ? sideStyle.sell : sideStyle.buy}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t{order && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\n","import React from \"react\";\r\nimport { PaginationTable, PaginationDataProps } from \"../../components/common/PagginationTable\";\r\nimport { PortfolioData } from \"../../../data/domestic/portfolio/types\";\r\nimport { usePortfolioColumns } from \"./usePortfolioReportColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\n\r\nexport interface PortfolioReportProps {\r\n\tuserAccessRights: AccessRights;\r\n\tgetData: () => void;\r\n}\r\n\r\ntype PortfolioReportPropsType = PortfolioReportProps & PaginationDataProps;\r\n\r\nconst PortfolioReportTable: React.FunctionComponent = ({\r\n\tuserAccessRights,\r\n\tgetData,\r\n\t...tableProps\r\n}) => {\r\n\r\n\tconst columns = usePortfolioColumns();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{...tableProps}\r\n\t\t\tgetData={getData}\r\n\t\t\ttitle=\"\"\r\n\t\t\tcolumns={columns}\r\n\t\t\toptions={{\r\n\t\t\t\tactionsColumnIndex: -1,\r\n\t\t\t\tsearch: false,\r\n\t\t\t\ttoolbar: false,\r\n\t\t\t\tpageSize: 20,\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default PortfolioReportTable;\r\n","import { PortfolioData } from \"../../../data/domestic/portfolio/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const usePortfolioColumns = () => {\r\n\tconst { getString, getDateTimeString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfSymbol\"),\r\n\t\t\t\tfield: \"symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfSecName\"),\r\n\t\t\t\tfield: \"secName\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"300px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"300px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"300px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfIsin\"),\r\n\t\t\t\tfield: \"isin\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfQty\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.qty),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfPchPrice\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.pchPrice, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfPchAmt\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.pchAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfMktPrice\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.mktPrice, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfMktAmt\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.mktAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfDiffPerc\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.diffPerc, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"portfDiffAmt\"),\r\n\t\t\t\trender: portfolio => getFormatedNumberString(portfolio.diffAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getDateTimeString, screenExtraSmall ]\r\n\t) as Column[];\r\n};\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { PortfolioFilter } from \"../../../domestic/portfolio/types\";\r\nimport { setFilter, removeFilter, initialState } from \"../../../domestic/portfolio/portfolioUXSlice\";\r\nimport { invalidatePortfolio } from \"../../../domestic/portfolio/portfolioDataSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\n\r\nexport const usePortfolioFilter = () => {\r\n\tconst [storeFilter] = useCurrentPortfolioFilter();\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter, true);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!));\r\n\t\tdispatch(invalidatePortfolio());\r\n\t}, [dispatch, filter]);\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t}, [setCurrentFilter]);\r\n\r\n\treturn [filter, editFilter, dispatchSetFilter, changeState, dispatchResetFilter] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t];\r\n};\r\n\r\nexport const useCurrentPortfolioFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.domestic.portfolio.filter);\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveFilter = React.useCallback(\r\n\t\t(type: keyof PortfolioFilter) => {\r\n\t\t\tdispatch(removeFilter(type));\r\n\t\t\tdispatch(invalidatePortfolio());\r\n\t\t},\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\treturn [filter, dispatchRemoveFilter] as [typeof filter, typeof dispatchRemoveFilter];\r\n};\r\n","import React from \"react\";\r\nimport { Grid, Paper, Button } from \"@material-ui/core\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { PortfolioFilter } from \"../../../data/domestic/portfolio/types\";\r\nimport { PortfolioFilterChipsComponent } from \"./PortfolioFilterChips\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { ExchangeSelect } from \"../../components/common/ExchangeSelect\";\r\nimport { CurrencySelect } from \"../../components/common/CurrencySelect\";\r\nimport { SecuritySelect } from \"../../components/tables/SecurityForeignSelect\";\r\nimport { OnExchangeSelect } from \"../../components/common/OnExchangeSelect\";\r\n\r\ninterface PortfolioFilterEditorProps {\r\n\tfilter?: PortfolioFilter;\r\n\teditFilter: (prop: keyof PortfolioFilter, value: any) => void;\r\n\tsave: () => void;\r\n\treset?: () => void;\r\n}\r\n\r\nexport const PortfolioFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\treset,\r\n}) => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t security.securityId === filter?.security?.securityId}\r\n\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\teditFilter(\"security\", security);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t exchange.exchId === filter?.exchange?.exchId}\r\n\t\t\t\t\t\tonChangeItem={exchange => {\r\n\t\t\t\t\t\t\teditFilter(\"exchange\", exchange);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t currencies.currId === filter?.curency?.currId}\r\n\t\t\t\t\t\tonChangeItem={currencies => {\r\n\t\t\t\t\t\t\teditFilter(\"curency\", currencies);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t\r\n \t\t\t editFilter(\"onExch\", e.target.value)}\r\n\t\t\t\t\t\tonExchange={filter?.onExch}\r\n \t\t\tnullable\r\n \t\t/>\r\n \t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tsave();\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"orderFilterConfirm\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const PortfolioFilterChips = PortfolioFilterChipsComponent;\r\n","import React from \"react\";\r\nimport { Chip, Grid } from \"@material-ui/core\";\r\nimport { PortfolioFilter } from \"../../../data/domestic/portfolio/types\";\r\nimport { useOnExchangeOptionsTranslator } from \"../../../data/initialData/hooks/useOnExchangeOption\";\r\nimport { OnExchange } from \"../../../data/models\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const PortfolioFilterChipsComponent: React.FunctionComponent = ({\r\n\tfilter,\r\n\tremoveFilter,\r\n}) => {\r\n\r\n\tconst onExchangeTranslator = useOnExchangeOptionsTranslator();\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{filter.security && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"security\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.exchange && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"exchange\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.curency && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"curency\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n \t\t{filter.onExch !== undefined && (filter.onExch===OnExchange.yes || filter.onExch===OnExchange.no) && !screenExtraSmall && (\r\n \t\t\r\n \t\t\t removeFilter(\"onExch\")}\r\n \t\t\t/>\r\n \t\t\r\n \t\t)}\r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface PortfolioFilterChipsProps {\r\n\tfilter: PortfolioFilter;\r\n\tremoveFilter: (type: keyof PortfolioFilter) => void;\r\n}\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { usePortfolioFilter, useCurrentPortfolioFilter,} from \"../../../data/foreign/portfolio/hooks/usePortfolioFilter\";\r\nimport { PortfolioFilterEditor, PortfolioFilterChips } from \"./EditPortfolioFilter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const PortfolioFilterButton: React.FunctionComponent = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\tconst [filter, removeFilter] = useCurrentPortfolioFilter();\r\n\t\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\n\r\nconst PortfolioDataFilterEditor: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, , reset] = usePortfolioFilter();\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { PortfolioData, GetPortfolioParams } from \"../../../domestic/portfolio/types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { PortfolioFilter } from \"../../../domestic/portfolio/types\"\r\n\r\nconst getPortfolioDataApi = (\r\n user: User,\r\n page?: number,\r\n itemsPerPage?: number,\r\n filter?: PortfolioFilter,\r\n) =>\r\n{\r\n const params: GetPortfolioParams = {\r\n userid: user.userId,\r\n domfor: \"F\",\r\n secid: filter?.security?.securityId,\r\n exchid: filter?.exchange?.exchId,\r\n currid: filter?.curency?.currId,\r\n onExch: filter?.onExch,\r\n fromrow: page && itemsPerPage ? page * itemsPerPage : 0,\r\n numofrows: itemsPerPage,\r\n };\r\n \r\nconsole.log(params)\r\n\r\nreturn webApiWithResponse({\r\n method: \"GET\",\r\n url: \"trade/getportfoliolist\",\r\n params,\r\n });\r\n};\r\n\r\nexport default getPortfolioDataApi;\r\n\r\n\r\n\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getPortfolioDataApi from \"../api/getPortfolioData\";\r\nimport { PageDataStatus, PageData } from \"../../../models\";\r\nimport { PortfolioData, PortfolioFilter } from \"../../../domestic/portfolio/types\";\r\n\r\nexport const getPortfolioThunk = (\r\n\tpageNumber?: number,\r\n\titemsPerPage?: number,\r\n\tfilter?: PortfolioFilter,\r\n): ThunkType | undefined>> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst user = store.data.auth.current.user;\r\n\tconst portfolioResponse = await dispatch(getPortfolioDataApi(user, pageNumber, itemsPerPage, filter ));\r\n\r\n\tif (!portfolioResponse || portfolioResponse.resCode !== \"OK\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\treturn {\r\n\t\tcurrentPageData: portfolioResponse.obj,\r\n\t\ttotalCount: Number(portfolioResponse.resDesc) || 0,\r\n\t\tstatus: PageDataStatus.DataCurrent,\r\n\t};\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadPortfolioData } from \"../thunks/loadPortfolioData\";\r\nimport { PortfolioData } from \"../../../domestic/portfolio/types\";\r\nimport { PageData } from \"../../../models\";\r\nimport { invalidatePortfolio } from \"../../../domestic/portfolio/portfolioDataSlice\";\r\n\r\nexport const usePortfolioData = () => {\r\n const pageData = useSelector | undefined>(\r\n (s) => s.data.domestic.portfolio.currentPage\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadMarketData = React.useCallback(\r\n () => dispatch(loadPortfolioData()),\r\n [dispatch ]\r\n );\r\n\r\n const dispatchInvalidatePortfolio = React.useCallback(\r\n () => dispatch(invalidatePortfolio()),\r\n [dispatch]\r\n );\r\n\r\n return [pageData, dispatchLoadMarketData, dispatchInvalidatePortfolio] as [\r\n typeof pageData,\r\n typeof dispatchLoadMarketData,\r\n typeof dispatchInvalidatePortfolio,\r\n ];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setData, invalidatePortfolio } from \"../../../domestic/portfolio/portfolioDataSlice\";\r\nimport { setPortfolioIndex } from \"../../../domestic/portfolio/portfolioUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { getPortfolioThunk } from \"./getPortfolioThunk\";\r\n\r\nexport const loadPortfolioData = (\r\n): ThunkType => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\nconsole.log(\"U loadPortfolioData\")\r\n\tconst { pageNumber, itemsPerPage } = store.ux.domestic.portfolio.index;\r\n\tconst { filter } = store.ux.domestic.portfolio;\r\n\r\n\tconst pagedOrders = await dispatch(getPortfolioThunk(pageNumber, itemsPerPage, filter));\r\n\r\n\tif (pagedOrders) {\r\n\t\tdispatch(setData(pagedOrders));\r\n\t}\r\n};\r\n\r\nexport const setPortolioIndexThunk = (index: PageIndex): ThunkType => dispatch => {\r\n\tdispatch(setPortfolioIndex(index));\r\n\tdispatch(invalidatePortfolio());\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { resetOrderIdices } from \"../../../domestic/portfolio/portfolioUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { setPortolioIndexThunk } from \"../thunks/loadPortfolioData\";\r\n\r\nexport const usePortfolioIndex = () => {\r\n\tconst pageIndex = useSelector(s => s.ux.domestic.portfolio.index);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetIndex = React.useCallback((index: PageIndex) => dispatch(setPortolioIndexThunk(index)), [\r\n\t\tdispatch,\r\n\t]);\r\n\tconst dispatchResetIndex = React.useCallback(() => dispatch(resetOrderIdices()), [dispatch]);\r\n\r\n\r\n\treturn [pageIndex, dispatchSetIndex, dispatchResetIndex] as [\r\n\t\ttypeof pageIndex,\r\n\t\ttypeof dispatchSetIndex,\r\n\t\ttypeof dispatchResetIndex\r\n\t];\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { PortfolioFilter } from \"../../../domestic/portfolio/types\"\r\n\r\nexport const getPortfolioReport = (user: User, filter: PortfolioFilter) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/getportfolioreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"F\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\texchid: filter?.exchange?.exchId,\r\n\t\t\tcurrid: filter?.curency?.currId,\r\n\t\t\t\t},\r\n\t});\r\n};\r\n\r\nexport default getPortfolioReport;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadPortfolioReport } from \"../thunks/downloadReport\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const usePortfolioReportDownloader = () => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.portfolio.downloadReportFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => dispatch(downloadPortfolioReport()), [dispatch]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState]\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getPortfolioReport } from \"../api/getPortfolioReport\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setDownloadReportFetchState } from \"../../../domestic/portfolio/portfolioDataSlice\";\r\n\r\nexport const downloadPortfolioReport = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst filter = store.ux.domestic.portfolio.filter;\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setDownloadReportFetchState({ type: \"started\" }));\r\n\tconst portfolioReport = await dispatch(getPortfolioReport(user, filter));\r\n\tif (portfolioReport) {\r\n\t\tfileDownload(new Blob([portfolioReport as any], { type: \"application/pdf\" }), \"Portfolio.pdf\");\r\n\t}\r\n\tdispatch(setDownloadReportFetchState({ type: \"not-started\" }));\r\n};\r\n","import { PortfolioFilter } from \"../../../domestic/portfolio/types\"\r\nimport { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const getPortfolioExcel = (\r\n user: User,\r\n filter: PortfolioFilter\r\n) => {\r\n return httpWebApi({\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n timeout: 60 * 4 * 1000,\r\n url: \"reporting/getportfolioxls\",\r\n params: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"F\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n exchid: filter?.exchange?.exchId,\r\n currid: filter?.curency?.currId,\r\n },\r\n });\r\n};\r\n\r\nexport default getPortfolioExcel;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadPortfolioExcel } from \"../thunks/downloadReportExcel\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const usePortfolioExcelDownloader = () => {\r\n const fetchState = useSelector(\r\n (s) => s.data.domestic.portfolio.downloadXlsFetchState\r\n );\r\n const dispatch = useDispatch();\r\n const download = React.useCallback(\r\n () => dispatch(downloadPortfolioExcel()),\r\n [dispatch]\r\n );\r\n\r\n return [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getPortfolioExcel } from \"../api/getPortfolioExcel\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setDownloadXlsFetchState } from \"../../../domestic/portfolio/portfolioDataSlice\";\r\n\r\nexport const downloadPortfolioExcel = (): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const filter = store.ux.domestic.portfolio.filter;\r\n const user = store.data.auth.current.user;\r\n dispatch(setDownloadXlsFetchState({ type: \"started\" }));\r\n const portfolioXls = await dispatch(getPortfolioExcel(user, filter));\r\n if (portfolioXls) {\r\n fileDownload(\r\n new Blob([portfolioXls as any], {\r\n type: \"application/vnd.openxmlformat\",\r\n }),\r\n \"Portfolio.xlsx\"\r\n );\r\n }\r\n dispatch(setDownloadXlsFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { usePortfolioReportDownloader } from \"../../../data/foreign/portfolio/hooks/usePortfolioReportDownloader\";\r\nimport { usePortfolioExcelDownloader } from \"../../../data/foreign/portfolio/hooks/usePortfolioExcelDownloader\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport ExcelIcon from \"@material-ui/icons/TableChartOutlined\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n\r\nexport const DownloadButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = usePortfolioReportDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null}\r\n\t\t\r\n);\r\n};\r\n\r\n\r\nexport const DownloadExcelButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = usePortfolioExcelDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Card, Divider } from \"@material-ui/core\";\r\nimport PortfolioReportTable from \"./PortfolioReportTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent } from \"../../../core/navigation/types\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { PortfolioFilterButton } from \"./PortfolioReportFilter\"\r\nimport { usePortfolioData } from \"../../../data/foreign/portfolio/hooks/usePortfolioData\";\r\nimport { usePortfolioIndex } from \"../../../data/foreign/portfolio/hooks/usePortfolioIndex\";\r\nimport { PageDataStatus } from \"../../../data/models\";\r\nimport { DownloadButton, DownloadExcelButton } from \"./DownloadButton\";\r\n\r\nconst PortfolioReport: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [pageData, dispatchLoadPortfolio, invalidateData] = usePortfolioData();\r\n\tconst [pageIndex, dispatchSetIndex] = usePortfolioIndex();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (pageData && pageData.status === PageDataStatus.DataInvalidated) {\r\n\t\t\tdispatchLoadPortfolio();\r\n\t\t}\r\n\t}, [dispatchLoadPortfolio, pageData]);\r\n\r\n\tReact.useEffect(() => () => { invalidateData() }, [])\t\r\n\t\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\taction={}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const PortfolioReportActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default PortfolioReport;\r\n","import PortfolioReport from \"./PortfolioReport\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { portfolioFReportLocation } from \"./Locations\";\r\n\r\nexport const portfolioFReportComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: PortfolioReport,\r\n\t\tisMenuItem: true,\r\n\t\tpath: portfolioFReportLocation,\r\n\t},\r\n];\r\n","export const portfolioFReportLocation = \"/foreign/portfolio\"","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\n\r\nexport const getTradeApi = (userId: string, tranid: string) =>\r\n webApi({\r\n method: \"GET\",\r\n url: \"trade/gettran\",\r\n params: {\r\n userId,\r\n tranid,\r\n },\r\n });\r\n\r\nexport default getTradeApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getTradeApi from \"../api/getTrade\";\r\nimport { setDisplayed } from \"../../../domestic/trades/tradesDataSlice\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\n\r\nexport const loadTrade = (tradeId: string): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n dispatch(setDisplayed());\r\n\r\n const trade = await dispatch(getTrade(tradeId));\r\n\r\n dispatch(setDisplayed(trade));\r\n};\r\n\r\nexport const getTrade = (\r\n tradeId: string\r\n): ThunkType> => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const { userId } = store.data.auth.current.user;\r\n return await dispatch(getTradeApi(userId, tradeId));\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\nimport { loadTrade } from \"../thunks/loadTrade\";\r\n\r\nexport const useDisplayTrade = (tradeId?: string) => {\r\n const storeTrade = useSelector(\r\n (store) => store.data.domestic.trades.displayedTrade\r\n );\r\n\r\n const displayedTrade =\r\n storeTrade && storeTrade.tranId === tradeId ? storeTrade : undefined;\r\n\r\n const displatch = useDispatch();\r\n\r\n React.useEffect(() => {\r\n if (tradeId) {\r\n displatch(loadTrade(tradeId));\r\n }\r\n }, [displatch, tradeId]);\r\n\r\n return displayedTrade;\r\n};\r\n","import React from \"react\";\r\nimport { Trades } from \"../../../data/domestic/trades/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useDisplaySingleEmementStyles } from \"../../useDisplaySingleEmementStyles\";\r\n\r\nexport interface DisplayTradeMainAttributesProps {\r\n\ttrade: Trades;\r\n}\r\n\r\nexport const DisplayTradeMainAttributes: React.FunctionComponent = ({\r\n\ttrade,\r\n}) => {\r\n\tconst style = useDisplaySingleEmementStyles();\r\n\tconst { getString, getDateTimeString, getDateString, getFormatedNumberString, getFormatedNumberString4 } = React.useContext(LocalizationContext);\r\n\t\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeNo\")}\r\n\t\t\t\t{trade.clTradeId}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeDescr\")}\r\n\t\t\t\t{trade.tranDesc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeTime\")}\r\n\t\t\t\t{getDateTimeString(trade.tradeTime)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeSettl\")}\r\n\t\t\t\t{getDateString(trade.settlDate, \"DD.MM.YYYY\")}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeSecurity\")}\r\n\t\t\t\t{trade.symbol}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeCurrCode\")}\r\n\t\t\t\t{trade.currency}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeQty\")}\r\n\t\t\t\t {getFormatedNumberString(trade.qty)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradePrice\")}\r\n\t\t\t\t {getFormatedNumberString(trade.price, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.tradeAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeBrokCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.brokCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradebrokCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.brokCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeExchCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.exchCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeExchCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.exchCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeRegCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.regCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeRegCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.regCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeBankCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.bankCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeBankCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.bankCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeVatAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.vatAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeTotComm\")}\r\n\t\t\t\t {getFormatedNumberString(trade.totComm, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeAmtFinal\")}\r\n\t\t\t\t {getFormatedNumberString(trade.totAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeRate\")}\r\n\t\t\t\t {getFormatedNumberString4(trade.rate, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSecurityAcc\")}\r\n\t\t\t\t{trade.securityAcc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderMoneyAcc\")}\r\n\t\t\t\t{trade.moneyAcc}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const printTrade = (user: User, tradeid: string) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/gettradeconfreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\ttradeid,\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default printTrade;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { printTradesThunk } from \"../thunks/printTradesThunk\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\n\r\nexport const useTradesPrinter = (trade?: Trades) => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.trades.printTradeFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => {\r\n\t\t\tdispatch(printTradesThunk(trade));\r\n\t}, [dispatch, trade]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { printTrade } from \"../api/printTrades\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintTradeFetchState } from \"../../../domestic/trades/tradesDataSlice\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\n\r\nexport const printTradesThunk = (trade?: Trades): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\" || !trade || !trade.tranId) {\r\n\t\treturn undefined;\r\n\t}\r\n\tconst lan = store.ux.localization.language\r\n//\tconst filename = `TradingConfirmation${trade.side.trim().toUpperCase()}_${lan.trim().toUpperCase()}_${trade.clTranId}.pdf`\r\n\tconst filename = `TradingConfirmation${lan.trim().toUpperCase()}_${trade.clTradeId}.pdf`\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintTradeFetchState({ type: \"started\" }));\r\n\tconst tradesReport = await dispatch(printTrade(user, trade.tranId));\r\n\tif (tradesReport) {\r\n\t\tfileDownload(new Blob([tradesReport as any], { type: \"application/pdf\" }), filename);\r\n\t}\r\n\tdispatch(setPrintTradeFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { useDisplayTrade } from \"../../../data/foreign/trades/hooks/useDisplayTrades\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { DisplayTradeMainAttributes } from \"./DisplayTradeMainAttributes\";\r\nimport {\r\n ExpansionPanel,\r\n ExpansionPanelSummary,\r\n Typography,\r\n Grid,IconButton,\r\n} from \"@material-ui/core\";\r\nimport { useTradesPrinter } from \"../../../data/foreign/trades/hooks/useTradesPrinter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\n//import PrintIcon from \"@material-ui/icons/PrintOutlined\";\r\n//import { useAuth } from \"../../../data/auth/hooks\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport { CustomDialog } from \"../../components/common/CustomDialog\";\r\n\r\nexport interface DisplayTradeProps {\r\n id?: string;\r\n\tenablePrint?: boolean;\r\n}\r\n\r\nexport const DisplayTrade: React.FunctionComponent = ({\r\n id,\r\n enablePrint,\r\n}) => {\r\n const trade = useDisplayTrade(id);\r\n const { getString } = React.useContext(LocalizationContext);\r\n\tconst [print, fetchState ] = useTradesPrinter(trade);\r\n \r\n //const [auth] = useAuth();\r\n //{auth.status === \"successful\" && auth.user.roleCode == \"MEMTRADER\" && (\r\n\r\n return !trade ? (\r\n <>{\"loading placeholder\"}\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n {getString(\"tableBasciInfo\")}\r\n \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n { fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n\r\n\t \t{/*\r\n */}\r\n\r\n \r\n );\r\n};\r\n\r\nexport const useViewTrade = () => {\r\n const showWithDrawer = React.useContext(DisplayDrawerContext);\r\n return React.useCallback(\r\n (trade: TradeList) => showWithDrawer(),\r\n [showWithDrawer]\r\n );\r\n};\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport CancelIcon from \"@material-ui/icons/CancelOutlined\";\r\nimport { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MaterialTableProps } from \"material-table\";\r\nimport { useViewTrade } from \"./DisplayTrade\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\n\r\nexport function useTradeActions() {\r\n\tconst { getString } = useContext(LocalizationContext);\r\n\tconst onShowTrade = useViewTrade();\r\n\tconst [auth] = useAuth();\r\n\r\n\treturn useMemo[\"actions\"]>(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ticon: () => ,\r\n\t\t\t\ttooltip: getString(\"tradeViewAction\"),\r\n\t\t\t\tonClick: (event, rowData) => onShowTrade(rowData as TradeList),\r\n\t\t\t},\r\n\t\t],\r\n\t\t[onShowTrade, getString, auth]\r\n\t);\r\n}\r\n","import { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const useTradeColumns = () => {\r\n\tconst { getString, getDateTimeString, getFormatedNumberString, getDateString } = React.useContext(LocalizationContext);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeNo\"),\r\n\t\t\t\tfield: \"clTranId\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"160px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeTime\"),\r\n\t\t\t\trender: trade => getDateTimeString(trade.tranTime),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"180px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"180px\",\r\n\t\t\t\t\tminWidth: \"180px\",\r\n\t\t\t\t\twidth: \"180px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"180px\",\r\n\t\t\t\t\tminWidth: \"180px\",\r\n\t\t\t\t\twidth: \"180px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeTime\"),\r\n\t\t\t\trender: trade => getDateString(trade.tranTime),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: !screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeSecurity\"),\r\n\t\t\t\tfield: \"symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeIsin\"),\r\n\t\t\t\tfield: \"isin\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeExchange\"),\r\n\t\t\t\tfield: \"exchCode\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeDescr\"),\r\n\t\t\t\tfield: \"tranDesc\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeQty\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.qty) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderPrice\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.price, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeCurrCode\"),\r\n\t\t\t\tfield: \"curr\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeAmt\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.tradeAmt, true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeComm\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.feesAmt, true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeOrder\"),\r\n\t\t\t\tfield: \"ordNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getDateTimeString, getFormatedNumberString, screenExtraSmall]\r\n\t) as Column[];\r\n};\r\n","import React from \"react\";\r\nimport { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport {\r\n PaginationTable,\r\n PaginationDataProps,\r\n} from \"../../components/common/PagginationTable\";\r\nimport { useTradeActions } from \"./useTradeActions\";\r\nimport { useTradeColumns } from \"./useTradeColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport interface TradeTableProps {\r\n userAccessRights: AccessRights;\r\n getData: () => void;\r\n}\r\n\r\ntype TradeTablePropsType = TradeTableProps & PaginationDataProps;\r\n\r\nconst TradesTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n getData,\r\n ...tableProps\r\n}) => {\r\n const actions = useTradeActions();\r\n const columns = useTradeColumns();\r\n\r\n const theme = useTheme();\r\n const screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={getData}\r\n // immutableData={data}\r\n title=\"\"\r\n columns={columns}\r\n actions={actions}\r\n options={{\r\n// actionsColumnIndex: -1,\r\n\t\t\t\tactionsColumnIndex: screenExtraSmall === true ? 0 : -1 ,\r\n search: false,\r\n toolbar: false,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default TradesTable;\r\n","import { TradeList, GetTradesParams, TradeFilter } from \"../../../domestic/trades/types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\n\r\nconst getTradesWebApi = (\r\n user: User,\r\n page?: number,\r\n itemsPerPage?: number,\r\n filter?: TradeFilter,\r\n) => {\r\n const params: GetTradesParams = {\r\n userid: user.userId,\r\n domfor: \"F\",\r\n numofrows: itemsPerPage,\r\n fromrow: page && itemsPerPage ? page * itemsPerPage : undefined,\r\n secid: filter?.security?.securityId,\r\n exchid: filter?.exchange?.exchId,\r\n currid: filter?.curency?.currId, datefrom: getParamsDateString(filter?.datefrom),\r\n dateto: getParamsDateString(filter?.dateto),\r\n };\r\n\r\n return webApiWithResponse({\r\n method: \"GET\",\r\n url: \"trade/gettranlist\",\r\n params,\r\n });\r\n};\r\n\r\nexport default getTradesWebApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getTrades from \"../api/getTrades\";\r\nimport { PageDataStatus, PageData } from \"../../../models\";\r\nimport { TradeFilter, TradeList } from \"../../../domestic/trades/types\";\r\n\r\nexport const getTradesThunk = (\r\n\tpageNumber?: number,\r\n\titemsPerPage?: number,\r\n\tfilter?: TradeFilter\r\n): ThunkType | undefined>> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst user = store.data.auth.current.user;\r\n\r\n\tconst tradesData = await dispatch(getTrades(user, pageNumber, itemsPerPage, filter));\r\n\r\n\tif (!tradesData || tradesData.resCode !== \"OK\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\treturn {\r\n\t\tcurrentPageData: tradesData.obj,\r\n\t\ttotalCount: Number(tradesData.resDesc) || 0,\r\n\t\tstatus: PageDataStatus.DataCurrent,\r\n\t};\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setTrades } from \"../../../domestic/trades/tradesDataSlice\";\r\nimport { setTradesIndex } from \"../../../domestic/trades/tradesUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { getTradesThunk } from \"./getTradesThunk\";\r\n\r\nexport const loadTrades = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tconst { pageNumber, itemsPerPage } = store.ux.domestic.trades.index;\r\n\tconst { filter } = store.ux.domestic.trades;\r\n\r\n\tconst tradesData = await dispatch(getTradesThunk(pageNumber, itemsPerPage, filter));\r\n\r\n\tif (tradesData) {\r\n\t\tdispatch(setTrades(tradesData));\r\n\t}\r\n};\r\n\r\nexport const setTradesIndexThunk = (index: PageIndex): ThunkType => dispatch => {\r\n\tdispatch(setTradesIndex(index));\r\n\tdispatch(loadTrades());\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { resetTradeIdices } from \"../../../domestic/trades/tradesUXSlice\";\r\nimport { PageIndex } from \"../../../../data/models\";\r\nimport { setTradesIndexThunk } from \"../thunks/loadTrades\";\r\n\r\nexport const useTradeIndex = () => {\r\n const pageIndex = useSelector((s) => s.ux.domestic.trades.index);\r\n\r\n const dispatch = useDispatch();\r\n const dispatchSetIndex = React.useCallback(\r\n (index: PageIndex) => dispatch(setTradesIndexThunk(index)),\r\n [dispatch]\r\n );\r\n const dispatchResetIndex = React.useCallback(\r\n () => dispatch(resetTradeIdices()),\r\n [dispatch]\r\n );\r\n\r\n return [pageIndex, dispatchSetIndex, dispatchResetIndex] as [\r\n typeof pageIndex,\r\n typeof dispatchSetIndex,\r\n typeof dispatchResetIndex\r\n ];\r\n};\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { setFilter, removeFilter, initialState } from \"../../../domestic/trades/tradesUXSlice\"\r\nimport { invalidateTrades } from \"../../../domestic/trades/tradesDataSlice\"\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\nimport { TradeFilter } from \"../../../domestic/trades/types\";\r\n\r\n\r\nexport const useTradesFilter = () => {\r\n\tconst storeFilter = useSelector(store => store.ux.domestic.trades.filter);\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!))\r\n\t\tdispatch(invalidateTrades())\r\n\t}, [dispatch, filter])\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t}, [setCurrentFilter])\r\n\r\n\treturn [\r\n\t\tfilter,\r\n\t\teditFilter,\r\n\t\tdispatchSetFilter,\r\n\t\tchangeState, \r\n\t\tdispatchResetFilter\r\n\t] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t]\r\n};\r\n\r\nexport const useCurrentTradesFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.domestic.trades.filter);\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveFilter = React.useCallback(\r\n\t\t(type: keyof TradeFilter) => {\r\n\t\t\tdispatch(removeFilter(type));\r\n\t\t\tdispatch(invalidateTrades());\r\n\t\t},\r\n\t\t[dispatch]\r\n\t);\r\n\r\n\treturn [filter, dispatchRemoveFilter] as [typeof filter, typeof dispatchRemoveFilter];\r\n};\r\n","import React from \"react\";\r\nimport { Chip, Grid } from \"@material-ui/core\";\r\nimport { TradeFilter } from \"../../../data/domestic/trades/types\"\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const TradesFilterChips: React.FunctionComponent = ({\r\n\tfilter,\r\n\tremnoveFilter,\r\n}) => {\r\n\tconst { getDateString, getString } = React.useContext(LocalizationContext);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{filter.datefrom && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"datefrom\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.dateto && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"dateto\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.security && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"security\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.exchange && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"exchange\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.curency && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"curency\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface TradeFilterChipsProps {\r\n\tfilter: TradeFilter;\r\n\tremnoveFilter: (type: keyof TradeFilter) => void;\r\n}\r\n","import React from \"react\";\r\nimport { Paper, Grid, Button } from \"@material-ui/core\";\r\nimport { DateInput } from \"../../components/common/DateInput\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { isValidDate } from \"../../../core/util/functions\";\r\nimport { TradeFilter } from \"../../../data/domestic/trades/types\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { ExchangeSelect } from \"../../components/common/ExchangeSelect\";\r\nimport { CurrencySelect } from \"../../components/common/CurrencySelect\";\r\nimport { SecuritySelect } from \"../../components/tables/SecurityForeignSelect\";\r\n\r\nexport interface TradesFilterEditorProps {\r\n\tfilter?: TradeFilter;\r\n\teditFilter: (prop: keyof TradeFilter, value: any) => void;\r\n\tsave: () => void;\r\n\treset: () => void;\r\n}\r\n\r\nexport const TradesFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\treset,\r\n}) => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\teditFilter(\"datefrom\", isValidDate(date) ? date.toISOString() : undefined)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\teditFilter(\"dateto\", isValidDate(date) ? date.toISOString() : undefined)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t security.securityId === filter?.security?.securityId}\r\n\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\teditFilter(\"security\", security);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t exchange.exchId === filter?.exchange?.exchId}\r\n\t\t\t\t\t\tonChangeItem={exchange => {\r\n\t\t\t\t\t\t\teditFilter(\"exchange\", exchange);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t currencies.currId === filter?.curency?.currId}\r\n\t\t\t\t\t\tonChangeItem={currencies => {\r\n\t\t\t\t\t\t\teditFilter(\"curency\", currencies);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tsave();\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"orderFilterConfirm\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { useTradesFilter, useCurrentTradesFilter } from \"../../../data/foreign/trades/hooks/useTradesFilter\";\r\nimport { TradesFilterChips } from \"./TradesFilterChips\";\r\nimport { TradesFilterEditor } from \"./TradesFilterEditor\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const TradesFilterButton: React.FunctionComponent = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\tconst [filter, remnoveFilter] = useCurrentTradesFilter();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst TradesFilterDrawer: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, , reset] = useTradesFilter();\r\n\r\n\treturn ;\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\nimport { TradeFilter } from \"../../../domestic/trades/types\";\r\n\r\nexport const getTradeListReport = (user: User, filter: TradeFilter) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/gettranbookreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"F\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tdatefrom: getParamsDateString(filter?.datefrom),\r\n\t\t\tdateto: getParamsDateString(filter?.dateto),\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default getTradeListReport;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadTradesReport } from \"../thunks/downloadReport\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useTradeBookReportDownloader = () => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.trades.printTradeFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => dispatch(downloadTradesReport()), [dispatch]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState]\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getTradeListReport } from \"../api/getTradeListReport\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintTradeFetchState } from \"../../../domestic/trades/tradesDataSlice\";\r\n\r\nexport const downloadTradesReport = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst filter = store.ux.domestic.trades.filter;\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintTradeFetchState({ type: \"started\" }));\r\n\tconst tradeBookReport = await dispatch(getTradeListReport(user, filter));\r\n\tif (tradeBookReport) {\r\n\t\tfileDownload(new Blob([tradeBookReport as any], { type: \"application/pdf\" }), \"TradeBook.pdf\");\r\n\t}\r\n\tdispatch(setPrintTradeFetchState({ type: \"not-started\" }));\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\nimport { TradeFilter } from \"../../../domestic/trades/types\";\r\n\r\nexport const getTradeListExcel = (\r\n user: User,\r\n filter: TradeFilter\r\n) => {\r\n return httpWebApi({\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n timeout: 60 * 4 * 1000,\r\n url: \"reporting/gettranbookxls\",\r\n params: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"F\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tdatefrom: getParamsDateString(filter?.datefrom),\r\n\t\t\tdateto: getParamsDateString(filter?.dateto),\r\n\t\t},\r\n });\r\n};\r\n\r\nexport default getTradeListExcel;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadTradesBookExcel } from \"../thunks/downloadReportExcel\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useTradeBookExcelDownloader = () => {\r\n const fetchState = useSelector(\r\n (s) => s.data.domestic.trades.downloadXlsFetchState\r\n );\r\n const dispatch = useDispatch();\r\n const download = React.useCallback(\r\n () => dispatch(downloadTradesBookExcel()),\r\n [dispatch]\r\n );\r\n\r\n return [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getTradeListExcel } from \"../api/getTradeListExcel\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setDownloadXlsFetchState } from \"../../../domestic/trades/tradesDataSlice\";\r\n\r\nexport const downloadTradesBookExcel = (): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const filter = store.ux.domestic.trades.filter;\r\n const user = store.data.auth.current.user;\r\n dispatch(setDownloadXlsFetchState({ type: \"started\" }));\r\n const dailyTrading = await dispatch(getTradeListExcel(user, filter));\r\n if (dailyTrading) {\r\n fileDownload(\r\n new Blob([dailyTrading as any], {\r\n type: \"application/vnd.openxmlformat\",\r\n }),\r\n \"TradeBook.xlsx\"\r\n );\r\n }\r\n dispatch(setDownloadXlsFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { useTradeBookReportDownloader } from \"../../../data/foreign/trades/hooks/useTradeBookReportDownloader\";\r\nimport { useTradeBookExcelDownloader } from \"../../../data/foreign/trades/hooks/useTradeBookExcelDownloader\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport ExcelIcon from \"@material-ui/icons/TableChartOutlined\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n\r\nexport const DownloadButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useTradeBookReportDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null}\r\n\t\t\r\n);\r\n};\r\n\r\n\r\nexport const DownloadExcelButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useTradeBookExcelDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Card, Divider, Fab } from \"@material-ui/core\";\r\nimport TradesTable from \"./TradesTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent } from \"../../../core/navigation/types\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { useTradesData } from \"../../../data/foreign/trades/hooks/useTradesData\";\r\nimport { useTradeIndex } from \"../../../data/foreign/trades/hooks/useTradesIndex\";\r\nimport { TradesFilterButton } from \"./TradesFilter\";\r\nimport { PageDataStatus } from \"../../../data/models\";\r\nimport { useNotificationHandler } from \"../../../core/notifications/hooks\";\r\nimport { DownloadButton, DownloadExcelButton } from \"./DownloadButton\";\r\n\r\nconst TradesPage: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [pageData, dispatchLoadTradesPage, invalidateData] = useTradesData();\r\n\tconst [pageIndex, dispatchSetIndex] = useTradeIndex();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (pageData && pageData.status === PageDataStatus.DataInvalidated) {\r\n\t\t\tdispatchLoadTradesPage();\r\n\t\t}\r\n\t}, [dispatchLoadTradesPage, pageData]);\r\n\r\n\tReact.useEffect(() => () => { invalidateData() }, [])\t\r\n\r\n\tuseNotificationHandler(\r\n\t\t\"TradeChange\",\r\n\t\te => {\r\n\t\t\tconsole.log(\"TradeChange\", e);\r\n\t\t\tinvalidateData();\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\taction={}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const TradeBookActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default TradesPage;\r\n","import TradesPage from \"./TradesPage\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { tradesFLocation } from \"./Locations\";\r\n\r\nexport const tradesFComponents: NavigationItem[] = [\r\n {\r\n Component: TradesPage,\r\n isMenuItem: true,\r\n path: tradesFLocation,\r\n notifications: true,\r\n },\r\n];\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadTrades } from \"../thunks/loadTrades\";\r\nimport { TradeList } from \"../../../domestic/trades/types\";\r\nimport { PageData } from \"../../../../data/models\";\r\nimport { invalidateTrades } from \"../../../domestic/trades/tradesDataSlice\";\r\n\r\nexport const useTradesData = () => {\r\n\tconst pageData = useSelector | undefined>(\r\n\t\ts => s.data.domestic.trades.currentPage\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchLoadTradesPage = React.useCallback(() => dispatch(loadTrades()), [dispatch]);\r\n\r\n\tconst dispatchInvalidate = React.useCallback(() => dispatch(invalidateTrades()), [dispatch]);\r\n\r\n\treturn [pageData, dispatchLoadTradesPage, dispatchInvalidate] as [\r\n\t\ttypeof pageData,\r\n\t\ttypeof dispatchLoadTradesPage,\r\n\t\ttypeof dispatchInvalidate\r\n\t];\r\n};\r\n","export const tradesFLocation = \"/foreign/trades\";\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\n\r\nexport const getSumTradeApi = (userId: string, tradeid: string) =>\r\n webApi({\r\n method: \"GET\",\r\n url: \"trade/getsumtrade\",\r\n params: {\r\n userId,\r\n tradeid,\r\n },\r\n });\r\n\r\nexport default getSumTradeApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getSumTradeApi from \"../api/getSumTrade\";\r\nimport { setDisplayed } from \"../../../domestic/trades/tradesDataSlice\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\n\r\nexport const loadSumTrade = (tradeId: string): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n dispatch(setDisplayed());\r\n\r\n const trade = await dispatch(getTrade(tradeId));\r\n\r\n dispatch(setDisplayed(trade));\r\n};\r\n\r\nexport const getTrade = (\r\n tradeId: string\r\n): ThunkType> => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const { userId } = store.data.auth.current.user;\r\n return await dispatch(getSumTradeApi(userId, tradeId));\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\nimport { loadSumTrade } from \"../thunks/loadSumTrade\";\r\n\r\nexport const useDisplaySumTrade = (tradeId?: string) => {\r\n const storeTrade = useSelector(\r\n (store) => store.data.domestic.trades.displayedTrade\r\n );\r\n\r\n const displayedTrade =\r\n storeTrade && storeTrade.tranId === tradeId ? storeTrade : undefined;\r\n\r\n const displatch = useDispatch();\r\n\r\n React.useEffect(() => {\r\n if (tradeId) {\r\n displatch(loadSumTrade(tradeId));\r\n }\r\n }, [displatch, tradeId]);\r\n\r\n return displayedTrade;\r\n};\r\n","import React from \"react\";\r\nimport { Trades } from \"../../../data/domestic/trades/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useDisplaySingleEmementStyles } from \"../../useDisplaySingleEmementStyles\";\r\nimport { DisplayBoolNumber } from \"../../components/common/DisplayBoolNumber\";\r\nimport { Status } from \"../../../data/models\";\r\n\r\nexport interface DisplayTradeMainAttributesProps {\r\n\ttrade: Trades;\r\n}\r\n\r\nexport const DisplayTradeMainAttributes: React.FunctionComponent = ({\r\n\ttrade,\r\n}) => {\r\n\tconst style = useDisplaySingleEmementStyles();\r\n\tconst { getString, getDateTimeString, getDateString, getFormatedNumberString, getFormatedNumberString4 } = React.useContext(LocalizationContext);\r\n\t\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeNo\")}\r\n\t\t\t\t{trade.clTradeId}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeDescr\")}\r\n\t\t\t\t{trade.tranDesc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"paymentDataTime\")}\r\n\t\t\t\t{getDateTimeString(trade.tradeTime)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeSettl\")}\r\n\t\t\t\t{getDateString(trade.settlDate, \"DD.MM.YYYY\")}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeSecurity\")}\r\n\t\t\t\t{trade.symbol}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeCurrCode\")}\r\n\t\t\t\t{trade.currency}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeQty\")}\r\n\t\t\t\t {getFormatedNumberString(trade.qty)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradePrice\")}\r\n\t\t\t\t {getFormatedNumberString(trade.price, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.tradeAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeBrokCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.brokCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradebrokCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.brokCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeExchCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.exchCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeBankCommPerc\")}\r\n\t\t\t\t {`${getFormatedNumberString(trade.bankCommPerc, true)} %`}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeBankCommAmt\")}\r\n\t\t\t\t {getFormatedNumberString(trade.bankCommAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeTotComm\")}\r\n\t\t\t\t {getFormatedNumberString(trade.totComm, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeAmtFinal\")}\r\n\t\t\t\t {getFormatedNumberString(trade.totAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderSecurityAcc\")}\r\n\t\t\t\t{trade.securityAcc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"orderMoneyAcc\")}\r\n\t\t\t\t{trade.moneyAcc}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"currCodeSettl\")}\r\n\t\t\t\t{trade.settlCurrency}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeRate\")}\r\n\t\t\t\t {getFormatedNumberString4(trade.rate, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"amountSettl\")}\r\n\t\t\t\t {getFormatedNumberString(trade.settlAmt, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t {getString(\"settlState\")}\r\n \t\t\r\n\t\t \r\n \t\t\r\n\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const printSumTrade = (user: User, tradeid: string) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/getsumtradeconfreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\ttradeid,\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default printSumTrade;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { printTradesSumThunk } from \"../thunks/printTradesSumThunk\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\n\r\nexport const useTradesSumPrinter = (trade?: Trades) => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.trades.printTradeFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => {\r\n\t\t\tdispatch(printTradesSumThunk(trade));\r\n\t}, [dispatch, trade]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { printSumTrade } from \"../api/printSumTrades\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintTradeFetchState } from \"../../../domestic/trades/tradesDataSlice\";\r\nimport { Trades } from \"../../../domestic/trades/types\";\r\n\r\nexport const printTradesSumThunk = (trade?: Trades): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\" || !trade || !trade.tranId) {\r\n\t\treturn undefined;\r\n\t}\r\n\t\r\n\tconst lan = store.ux.localization.language\r\n//\tconst filename = `TradingConfirmation${trade.side.trim().toUpperCase()}_${lan.trim().toUpperCase()}_${trade.clTranId}.pdf`\r\n\tconst filename = `TradingSumConfirmation${lan.trim().toUpperCase()}_${trade.clTradeId}.pdf`\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintTradeFetchState({ type: \"started\" }));\r\n\tconst tradesReport = await dispatch(printSumTrade(user, trade.tranId));\r\n\tif (tradesReport) {\r\n\t\tfileDownload(new Blob([tradesReport as any], { type: \"application/pdf\" }), filename);\r\n\t}\r\n\tdispatch(setPrintTradeFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { useDisplaySumTrade } from \"../../../data/foreign/tradessum/hooks/useDisplaySumTrades\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { DisplayTradeMainAttributes } from \"./DisplayTradeMainAttributes\";\r\nimport {\r\n ExpansionPanel,\r\n ExpansionPanelSummary,\r\n Typography,\r\n Grid,IconButton,\r\n} from \"@material-ui/core\";\r\nimport { useTradesSumPrinter } from \"../../../data/foreign/tradessum/hooks/useTradesSumPrinter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\n//import PrintIcon from \"@material-ui/icons/PrintOutlined\";\r\n//import { useAuth } from \"../../../data/auth/hooks\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport { CustomDialog } from \"../../components/common/CustomDialog\";\r\n\r\nexport interface DisplayTradeProps {\r\n id?: string;\r\n\tenablePrint?: boolean;\r\n}\r\n\r\nexport const DisplayTrade: React.FunctionComponent = ({\r\n id,\r\n enablePrint,\r\n}) => {\r\n const trade = useDisplaySumTrade(id);\r\n const { getString } = React.useContext(LocalizationContext);\r\n\tconst [print, fetchState ] = useTradesSumPrinter(trade);\r\n \r\n //const [auth] = useAuth();\r\n //{auth.status === \"successful\" && auth.user.roleCode == \"MEMTRADER\" && (\r\n\r\n return !trade ? (\r\n <>{\"loading placeholder\"}\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n {getString(\"tableBasciInfo\")}\r\n \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n { fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n\r\n\t \t{/*\r\n */}\r\n\r\n \r\n );\r\n};\r\n\r\nexport const useViewTrade = () => {\r\n const showWithDrawer = React.useContext(DisplayDrawerContext);\r\n return React.useCallback(\r\n (trade: TradeList) => showWithDrawer(),\r\n [showWithDrawer]\r\n );\r\n};\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport CancelIcon from \"@material-ui/icons/CancelOutlined\";\r\nimport { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MaterialTableProps } from \"material-table\";\r\nimport { useViewTrade } from \"./DisplayTrade\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\n\r\nexport function useTradeActions() {\r\n\tconst { getString } = useContext(LocalizationContext);\r\n\tconst onShowTrade = useViewTrade();\r\n\tconst [auth] = useAuth();\r\n\r\n\treturn useMemo[\"actions\"]>(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ticon: () => ,\r\n\t\t\t\ttooltip: getString(\"tradeViewAction\"),\r\n\t\t\t\tonClick: (event, rowData) => onShowTrade(rowData as TradeList),\r\n\t\t\t},\r\n\t\t],\r\n\t\t[onShowTrade, getString, auth]\r\n\t);\r\n}\r\n","import { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const useTradeColumns = () => {\r\n\tconst { getString, getDateTimeString, getFormatedNumberString, getDateString } = React.useContext(LocalizationContext);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeNo\"),\r\n\t\t\t\tfield: \"clTranId\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"160px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"160px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeTime\"),\r\n\t\t\t\trender: trade => getDateTimeString(trade.tranTime),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"180px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"180px\",\r\n\t\t\t\t\tminWidth: \"180px\",\r\n\t\t\t\t\twidth: \"180px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"180px\",\r\n\t\t\t\t\tminWidth: \"180px\",\r\n\t\t\t\t\twidth: \"180px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeTime\"),\r\n\t\t\t\trender: trade => getDateString(trade.tranTime),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"100px\",\r\n\t\t\t\t\tminWidth: \"100px\",\r\n\t\t\t\t\twidth: \"100px\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: !screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeSecurity\"),\r\n\t\t\t\tfield: \"symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeIsin\"),\r\n\t\t\t\tfield: \"isin\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeExchange\"),\r\n\t\t\t\tfield: \"exchCode\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeDescr\"),\r\n\t\t\t\tfield: \"tranDesc\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeQty\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.qty) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"orderPrice\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.price, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeCurrCode\"),\r\n\t\t\t\tfield: \"curr\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeAmt\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.tradeAmt, true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeComm\"),\r\n\t\t\t\trender: trade => getFormatedNumberString(trade.feesAmt, true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tminWidth: \"130px\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeOrder\"),\r\n\t\t\t\tfield: \"ordNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\thidden: screenExtraSmall,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getDateTimeString, getFormatedNumberString, screenExtraSmall]\r\n\t) as Column[];\r\n};\r\n","import React from \"react\";\r\nimport { FMarketListData } from \"../../../data/foreign/mainBoard/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useDisplaySingleEmementStyles } from \"../../useDisplaySingleEmementStyles\";\r\nimport { DisplayBoolNumber } from \"../../components/common/DisplayBoolNumber\";\r\nimport { useOrderSideOptionsTranslator } from \"../../../data/foreign/orders/hooks/useOrderSideOptions\";\r\nimport { Status } from \"../../../data/models\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\n\r\nexport enum DiplayMarketDataMod {\r\n\tFull,\r\n\tPublicData,\r\n}\r\n\r\nexport interface DisplayMarketDataMainAttributesProps {\r\n\tmarketdata: FMarketListData;\r\n\tmod: DiplayMarketDataMod;\r\n}\r\n\r\nexport const DisplayMarketDataMainAttributes: React.FunctionComponent = ({\r\n\tmarketdata,\r\n\tmod,\r\n}) => {\r\n\tconst style = useDisplaySingleEmementStyles();\r\n\tconst { getString, getDateString, getDateTimeString, getFormatedNumberString, getFormatedNumberString4 } = React.useContext(\r\n\t\tLocalizationContext\r\n\t);\r\n\r\n\tconst sideTranslator = useOrderSideOptionsTranslator();\r\n\tconst [auth] = useAuth();\r\n\r\n\tif (!marketdata || auth.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataSymbol\")}\r\n\t\t\t\t{marketdata.symbol}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataIsin\")}\r\n\t\t\t\t{marketdata.isin}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeExchange\")}\r\n\t\t\t\t{marketdata.exchange}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"tradeCurrCode\")}\r\n\t\t\t\t{marketdata.curr}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataName\")}\r\n\t\t\t\t{marketdata.name}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataBestBidQty\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.bestBidQty)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataBestBid\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.bestBid, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataBestAsk\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.bestAsk, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataBestAskQty\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.bestAskQty )}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataPrice\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.price, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataOpenPrice\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.open, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataHighPrice\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.high, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataLowPrice\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.low, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataClosePrice\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.close, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketPreviousClose\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.previousClose, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataChange\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.change, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketDataChangePerc\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.changePerc, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketWeeks52High\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.week52High, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketWeeks52Low\")}\r\n\t\t\t\t{getFormatedNumberString(marketdata.week52Low, true)}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketTime\")}\r\n\t\t\t\t{marketdata.latestTime}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{getString(\"marketSource\")}\r\n\t\t\t\t{marketdata.latestSource}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\n","import React from \"react\";\r\nimport { TradeList } from \"../../../data/domestic/trades/types\";\r\nimport {\r\n PaginationTable,\r\n PaginationDataProps,\r\n} from \"../../components/common/PagginationTable\";\r\nimport { useTradeActions } from \"./useTradeActions\";\r\nimport { useTradeColumns } from \"./useTradeColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport interface TradeSumTableProps {\r\n userAccessRights: AccessRights;\r\n getData: () => void;\r\n}\r\n\r\ntype TradeSumTablePropsType = TradeSumTableProps & PaginationDataProps;\r\n\r\nconst TradesSumTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n getData,\r\n ...tableProps\r\n}) => {\r\n const actions = useTradeActions();\r\n const columns = useTradeColumns();\r\n\r\n const theme = useTheme();\r\n const screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={getData}\r\n // immutableData={data}\r\n title=\"\"\r\n columns={columns}\r\n actions={actions}\r\n options={{\r\n// actionsColumnIndex: -1,\r\n\t\t\t\tactionsColumnIndex: screenExtraSmall === true ? 0 : -1 ,\r\n search: false,\r\n toolbar: false,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default TradesSumTable;\r\n","import { TradeList, GetTradesParams, TradeFilter } from \"../../../domestic/trades/types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\n\r\nconst getSumTradesWebApi = (\r\n user: User,\r\n page?: number,\r\n itemsPerPage?: number,\r\n filter?: TradeFilter,\r\n) => {\r\n const params: GetTradesParams = {\r\n userid: user.userId,\r\n// domfor: \"F\",\r\n numofrows: itemsPerPage,\r\n fromrow: page && itemsPerPage ? page * itemsPerPage : undefined,\r\n secid: filter?.security?.securityId,\r\n exchid: filter?.exchange?.exchId,\r\n currid: filter?.curency?.currId, datefrom: getParamsDateString(filter?.datefrom),\r\n dateto: getParamsDateString(filter?.dateto),\r\n };\r\n\r\n return webApiWithResponse({\r\n method: \"GET\",\r\n url: \"trade/getsumtradelist\",\r\n params,\r\n });\r\n};\r\n\r\nexport default getSumTradesWebApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getTradesSum from \"../api/getTradessum\";\r\nimport { PageDataStatus, PageData } from \"../../../models\";\r\nimport { TradeFilter, TradeList } from \"../../../domestic/trades/types\";\r\n\r\nexport const getTradesSumThunk = (\r\n\tpageNumber?: number,\r\n\titemsPerPage?: number,\r\n\tfilter?: TradeFilter\r\n): ThunkType | undefined>> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst user = store.data.auth.current.user;\r\n\r\n\tconst tradesData = await dispatch(getTradesSum(user, pageNumber, itemsPerPage, filter));\r\n\r\n\tif (!tradesData || tradesData.resCode !== \"OK\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\treturn {\r\n\t\tcurrentPageData: tradesData.obj,\r\n\t\ttotalCount: Number(tradesData.resDesc) || 0,\r\n\t\tstatus: PageDataStatus.DataCurrent,\r\n\t};\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setTrades } from \"../../../domestic/trades/tradesDataSlice\";\r\nimport { setTradesIndex } from \"../../../domestic/trades/tradesUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { getTradesSumThunk } from \"./getTradesSumThunk\";\r\n\r\nexport const loadSumTrades = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tconst { pageNumber, itemsPerPage } = store.ux.domestic.trades.index;\r\n\tconst { filter } = store.ux.domestic.trades;\r\n\r\n\tconst tradesData = await dispatch(getTradesSumThunk(pageNumber, itemsPerPage, filter));\r\n\r\n\tif (tradesData) {\r\n\t\tdispatch(setTrades(tradesData));\r\n\t}\r\n};\r\n\r\nexport const setTradesIndexThunk = (index: PageIndex): ThunkType => dispatch => {\r\n\tdispatch(setTradesIndex(index));\r\n\tdispatch(loadSumTrades());\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { resetTradeIdices } from \"../../../domestic/trades/tradesUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { setTradesIndexThunk } from \"../thunks/loadSumTrades\";\r\n\r\nexport const useTradeSumIndex = () => {\r\n const pageIndex = useSelector((s) => s.ux.domestic.trades.index);\r\n\r\n const dispatch = useDispatch();\r\n const dispatchSetIndex = React.useCallback(\r\n (index: PageIndex) => dispatch(setTradesIndexThunk(index)),\r\n [dispatch]\r\n );\r\n const dispatchResetIndex = React.useCallback(\r\n () => dispatch(resetTradeIdices()),\r\n [dispatch]\r\n );\r\n\r\n return [pageIndex, dispatchSetIndex, dispatchResetIndex] as [\r\n typeof pageIndex,\r\n typeof dispatchSetIndex,\r\n typeof dispatchResetIndex\r\n ];\r\n};\r\n","import React from \"react\";\r\nimport { Chip, Grid } from \"@material-ui/core\";\r\nimport { TradeFilter } from \"../../../data/domestic/trades/types\"\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const TradesFilterChips: React.FunctionComponent = ({\r\n\tfilter,\r\n\tremnoveFilter,\r\n}) => {\r\n\tconst { getDateString, getString } = React.useContext(LocalizationContext);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{filter.datefrom && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"datefrom\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.dateto && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"dateto\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.security && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"security\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.exchange && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"exchange\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.curency && !screenExtraSmall && (\r\n\t\t\t\t\r\n\t\t\t\t\t remnoveFilter(\"curency\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface TradeFilterChipsProps {\r\n\tfilter: TradeFilter;\r\n\tremnoveFilter: (type: keyof TradeFilter) => void;\r\n}\r\n","import React from \"react\";\r\nimport { Paper, Grid, Button } from \"@material-ui/core\";\r\nimport { DateInput } from \"../../components/common/DateInput\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { isValidDate } from \"../../../core/util/functions\";\r\nimport { TradeFilter } from \"../../../data/domestic/trades/types\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { ExchangeSelect } from \"../../components/common/ExchangeSelect\";\r\nimport { CurrencySelect } from \"../../components/common/CurrencySelect\";\r\nimport { SecuritySelect } from \"../../components/tables/SecurityForeignSelect\";\r\n\r\nexport interface TradesFilterEditorProps {\r\n\tfilter?: TradeFilter;\r\n\teditFilter: (prop: keyof TradeFilter, value: any) => void;\r\n\tsave: () => void;\r\n\treset: () => void;\r\n}\r\n\r\nexport const TradesFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\treset,\r\n}) => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\teditFilter(\"datefrom\", isValidDate(date) ? date.toISOString() : undefined)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\teditFilter(\"dateto\", isValidDate(date) ? date.toISOString() : undefined)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t security.securityId === filter?.security?.securityId}\r\n\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\teditFilter(\"security\", security);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t exchange.exchId === filter?.exchange?.exchId}\r\n\t\t\t\t\t\tonChangeItem={exchange => {\r\n\t\t\t\t\t\t\teditFilter(\"exchange\", exchange);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t currencies.currId === filter?.curency?.currId}\r\n\t\t\t\t\t\tonChangeItem={currencies => {\r\n\t\t\t\t\t\t\teditFilter(\"curency\", currencies);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tsave();\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"orderFilterConfirm\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { useTradesFilter, useCurrentTradesFilter } from \"../../../data/foreign/trades/hooks/useTradesFilter\";\r\nimport { TradesFilterChips } from \"./TradesFilterChips\";\r\nimport { TradesFilterEditor } from \"./TradesFilterEditor\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nexport const TradesFilterButton: React.FunctionComponent = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst theme = useTheme();\r\n\tconst screenExtraSmall = useMediaQuery(theme.breakpoints.only('xs'));\r\n\r\n\tconst [filter, remnoveFilter] = useCurrentTradesFilter();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst TradesFilterDrawer: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, , reset] = useTradesFilter();\r\n\r\n\treturn ;\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\nimport { TradeFilter } from \"../../../domestic/trades/types\";\r\n\r\nexport const getTradeSumListReport = (user: User, filter: TradeFilter) => {\r\n\treturn httpWebApi({\r\n\t\tmethod: \"GET\",\r\n\t\tresponseType: \"blob\",\r\n\t\ttimeout: 60 * 4 * 1000,\r\n\t\turl: \"reporting/getsumtradebookreport\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"F\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tdatefrom: getParamsDateString(filter?.datefrom),\r\n\t\t\tdateto: getParamsDateString(filter?.dateto),\r\n\t\t},\r\n\t});\r\n};\r\n\r\nexport default getTradeSumListReport;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadTradesSumReport } from \"../thunks/downloadReport\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useTradeSumBookReportDownloader = () => {\r\n\tconst fetchState = useSelector(\r\n\t\ts => s.data.domestic.trades.printTradeFetchState\r\n\t);\r\n\tconst dispatch = useDispatch();\r\n\tconst download = React.useCallback(() => dispatch(downloadTradesSumReport()), [dispatch]);\r\n\r\n\treturn [download, fetchState] as [typeof download, typeof fetchState]\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getTradeSumListReport } from \"../api/getTradeSumListReport\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setPrintTradeFetchState } from \"../../../domestic/trades/tradesDataSlice\";\r\n\r\nexport const downloadTradesSumReport = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst filter = store.ux.domestic.trades.filter;\r\n\tconst user = store.data.auth.current.user;\r\n\tdispatch(setPrintTradeFetchState({ type: \"started\" }));\r\n\tconst tradeBookReport = await dispatch(getTradeSumListReport(user, filter));\r\n\tif (tradeBookReport) {\r\n\t\tfileDownload(new Blob([tradeBookReport as any], { type: \"application/pdf\" }), \"TradeBook.pdf\");\r\n\t}\r\n\tdispatch(setPrintTradeFetchState({ type: \"not-started\" }));\r\n};\r\n","import { User } from \"../../../auth/types\";\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\nimport { TradeFilter } from \"../../../domestic/trades/types\";\r\n\r\nexport const getTradeSumListExcel = (\r\n user: User,\r\n filter: TradeFilter\r\n) => {\r\n return httpWebApi({\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n timeout: 60 * 4 * 1000,\r\n url: \"reporting/getsumtradebookxls\",\r\n params: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tdomfor: \"F\",\r\n\t\t\tsecid: filter?.security?.securityId,\r\n\t\t\tdatefrom: getParamsDateString(filter?.datefrom),\r\n\t\t\tdateto: getParamsDateString(filter?.dateto),\r\n\t\t},\r\n });\r\n};\r\n\r\nexport default getTradeSumListExcel;\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { downloadTradesSumBookExcel } from \"../thunks/downloadReportExcel\";\r\nimport React from \"react\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\n\r\nexport const useTradeSumBookExcelDownloader = () => {\r\n const fetchState = useSelector(\r\n (s) => s.data.domestic.trades.downloadXlsFetchState\r\n );\r\n const dispatch = useDispatch();\r\n const download = React.useCallback(\r\n () => dispatch(downloadTradesSumBookExcel()),\r\n [dispatch]\r\n );\r\n\r\n return [download, fetchState] as [typeof download, typeof fetchState];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getTradeSumListExcel } from \"../api/getTradeSumListExcel\";\r\nimport fileDownload from \"js-file-download\";\r\nimport { setDownloadXlsFetchState } from \"../../../domestic/trades/tradesDataSlice\";\r\n\r\nexport const downloadTradesSumBookExcel = (): ThunkType => async (\r\n dispatch,\r\n getStore\r\n) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return undefined;\r\n }\r\n\r\n const filter = store.ux.domestic.trades.filter;\r\n const user = store.data.auth.current.user;\r\n dispatch(setDownloadXlsFetchState({ type: \"started\" }));\r\n const dailyTrading = await dispatch(getTradeSumListExcel(user, filter));\r\n if (dailyTrading) {\r\n fileDownload(\r\n new Blob([dailyTrading as any], {\r\n type: \"application/vnd.openxmlformat\",\r\n }),\r\n \"TradeBook.xlsx\"\r\n );\r\n }\r\n dispatch(setDownloadXlsFetchState({ type: \"not-started\" }));\r\n};\r\n","import React from \"react\";\r\nimport { useTradeSumBookReportDownloader } from \"../../../data/foreign/tradessum/hooks/useTradeSumBookReportDownloader\";\r\nimport { useTradeSumBookExcelDownloader } from \"../../../data/foreign/tradessum/hooks/useTradeSumBookExcelDownloader\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\nimport ExcelIcon from \"@material-ui/icons/TableChartOutlined\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\n\r\nexport const DownloadButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useTradeSumBookReportDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null}\r\n\t\t\r\n);\r\n};\r\n\r\n\r\nexport const DownloadExcelButton: React.FunctionComponent = () => {\r\n const [downloader, fetchState] = useTradeSumBookExcelDownloader();\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n return (\r\n\t\t<>\r\n \r\n \r\n \r\n \r\n \r\n {fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null }\r\n\t\t\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Card, Divider, Fab } from \"@material-ui/core\";\r\nimport TradesTable from \"./TradesSumTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent } from \"../../../core/navigation/types\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { useTradesSumData } from \"../../../data/foreign/tradessum/hooks/useTradesSumData\";\r\nimport { useTradeSumIndex } from \"../../../data/foreign/tradessum/hooks/useTradesSumIndex\";\r\nimport { TradesFilterButton } from \"./TradesFilter\";\r\nimport { PageDataStatus } from \"../../../data/models\";\r\nimport { useNotificationHandler } from \"../../../core/notifications/hooks\";\r\nimport { DownloadButton, DownloadExcelButton } from \"./DownloadButton\";\r\n\r\nconst TradesSumPage: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [pageData, dispatchLoadTradesPage, invalidateData] = useTradesSumData();\r\n\tconst [pageIndex, dispatchSetIndex] = useTradeSumIndex();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (pageData && pageData.status === PageDataStatus.DataInvalidated) {\r\n\t\t\tdispatchLoadTradesPage();\r\n\t\t}\r\n\t}, [dispatchLoadTradesPage, pageData]);\r\n\r\n\tReact.useEffect(() => () => { invalidateData() }, [])\t\r\n\r\n\tuseNotificationHandler(\r\n\t\t\"SumTradeChange\",\r\n\t\te => {\r\n\t\t\tconsole.log(\"SumTradeChange\", e);\r\n\t\t\tinvalidateData();\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\taction={}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const TradeBookActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default TradesSumPage;\r\n","import TradesSumPage from \"./TradesSumPage\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { tradesSumFLocation } from \"./Locations\";\r\n\r\nexport const tradesSumFComponents: NavigationItem[] = [\r\n {\r\n Component: TradesSumPage,\r\n isMenuItem: true,\r\n path: tradesSumFLocation,\r\n notifications: true,\r\n },\r\n];\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadSumTrades } from \"../thunks/loadSumTrades\";\r\nimport { TradeList } from \"../../../domestic/trades/types\";\r\nimport { PageData } from \"../../../models\";\r\nimport { invalidateTrades } from \"../../../domestic/trades/tradesDataSlice\";\r\n\r\nexport const useTradesSumData = () => {\r\n\tconst pageData = useSelector | undefined>(\r\n\t\ts => s.data.domestic.trades.currentPage\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchLoadTradesPage = React.useCallback(() => dispatch(loadSumTrades()), [dispatch]);\r\n\r\n\tconst dispatchInvalidate = React.useCallback(() => dispatch(invalidateTrades()), [dispatch]);\r\n\r\n\treturn [pageData, dispatchLoadTradesPage, dispatchInvalidate] as [\r\n\t\ttypeof pageData,\r\n\t\ttypeof dispatchLoadTradesPage,\r\n\t\ttypeof dispatchInvalidate\r\n\t];\r\n};\r\n","export const tradesSumFLocation = \"/foreign/sumtrades\";\r\n","import { User } from \"../../../auth/types\";\r\nimport { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { getParamsDateString } from \"../../../../core/util/functions\";\r\nimport { FMarketListData, FMarketFilter } from \"../types\";\r\n\r\n\r\nexport const getMarketDataApi = (\r\n userId: string, \r\n page?: number,\r\n itemsPerPage?: number,\r\n filter?: FMarketFilter,\r\n defaultOrderStatus?: number,\r\n) => {\r\n\r\n return webApiWithResponse({\r\n method: \"GET\",\r\n url: \"trade/getfmarketdata\",\r\n params: {\r\n userId,\r\n sort: 0,\r\n }\r\n\r\n });\r\n};\r\n\r\nexport default getMarketDataApi;","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getMarketDataApi from \"../api/getMarketData\";\r\nimport { PageDataStatus, PageData } from \"../../../models\";\r\nimport { FMarketListData , FMarketFilter } from \"../../../foreign/mainBoard/types\";\r\n\r\nexport const getMarketDataThunk = (\r\n\tpageNumber?: number,\r\n\titemsPerPage?: number,\r\n\tfilter?: FMarketFilter,\r\n\tdefaultStatus?: number\r\n): ThunkType | undefined>> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst user = store.data.auth.current.user;\r\n\tconst marketDataResponse = await dispatch(getMarketDataApi(user.userId, pageNumber, itemsPerPage, filter, defaultStatus));\r\n\r\n\tif (!marketDataResponse || marketDataResponse.resCode !== \"OK\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\treturn {\r\n\t\tcurrentPageData: marketDataResponse.obj,\r\n\t\ttotalCount: Number(marketDataResponse.resDesc) || 0,\r\n\t\tstatus: PageDataStatus.DataCurrent,\r\n\t};\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setData, invalidateData } from \"../../../foreign/mainBoard/marketsDataSlice\";\r\nimport { setIndex } from \"../../../foreign/mainBoard/marketUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\nimport { getMarketDataThunk } from \"./getMarketDataThunk\";\r\n\r\nexport const loadMarketAllData = (): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tconst { pageNumber, itemsPerPage } = store.ux.foreign.marketData.index;\r\n\tconst { filter } = store.ux.foreign.marketData;\r\n\r\n\r\n\tconst pagedMarketData = await dispatch(getMarketDataThunk(pageNumber, itemsPerPage, filter));\r\n\r\n\tif (pagedMarketData) {\r\n\t\tdispatch(setData(pagedMarketData));\r\n//\t\tdispatch(invalidateData());\r\n\t}\r\n};\r\n\r\nexport const setMarketDataIndexThunk = (index: PageIndex): ThunkType => dispatch => {\r\n\tdispatch(setIndex(index));\r\n\tdispatch(invalidateData());\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadMarketAllData } from \"../thunks/loadMarketAllData\";\r\nimport { FMarketListData } from \"../../../foreign/mainBoard/types\";\r\nimport { PageData, PageDataStatus, PageIndex } from \"../../../models\";\r\nimport { invalidateData } from \"../../../foreign/mainBoard/marketsDataSlice\";\r\n\r\nexport const useMarketData = () => {\r\n const pageData = useSelector | undefined>(\r\n (s) => s.data.foreign.marketData.currentPage\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadMarketDataPage = React.useCallback(\r\n () => dispatch(loadMarketAllData()),\r\n [dispatch]\r\n );\r\n\r\n const dispatchInvalidateMarketData = React.useCallback(\r\n () => dispatch(invalidateData()),\r\n [dispatch]\r\n );\r\n\r\n return [pageData, dispatchLoadMarketDataPage, dispatchInvalidateMarketData] as [\r\n typeof pageData,\r\n typeof dispatchLoadMarketDataPage,\r\n typeof dispatchInvalidateMarketData,\r\n ];\r\n};\r\n\r\n\r\nexport const usePagedData = (index: PageIndex, data?: T[]) => \r\n React.useMemo(() => {\r\n const startIndex = index.itemsPerPage * index.pageNumber\r\n const endIndex = startIndex + index.itemsPerPage\r\n return data && {\r\n currentPageData: data.slice(startIndex, endIndex),\r\n status: PageDataStatus.DataCurrent,\r\n totalCount: data.length\r\n } as PageData\r\n }, [index, data])\r\n\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { FMarketListData } from \"../types\";\r\n\r\nexport const getmarketdatabyidApi = (userid: string, secid: string) =>\r\n webApi({\r\n method: \"GET\",\r\n url: \"trade/getfmarketdatabyid\",\r\n params: {\r\n userid,\r\n secid,\r\n },\r\n });\r\n\r\nexport default getmarketdatabyidApi;\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setDisplayed } from \"../marketsDataSlice\";\r\nimport getmarketdatabyidApi from \"../api/getMarketDataById\";\r\nimport { FMarketListData } from \"../types\";\r\n\r\nexport const loadMarketData = (ordId: string): ThunkType => async dispatch => {\r\n\tdispatch(setDisplayed(undefined));\r\n\r\n\tconst mborder = await dispatch(getMarketData(ordId));\r\n\r\n\tdispatch(setDisplayed(mborder));\r\n};\r\n\r\nexport const getMarketData = (\r\n\tsecid: string\r\n ): ThunkType> => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n \r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t return undefined;\r\n\t}\r\n \r\n\tconst { userId } = store.data.auth.current.user;\r\n\treturn await dispatch(getmarketdatabyidApi(userId, secid));\r\n };\r\n\r\n\r\n\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FMarketListData } from \"../../../foreign/mainBoard/types\";\r\nimport { loadMarketData } from \"../thunks/loadMarketData\";\r\n\r\nexport const useDisplayMarketData = (curid: string) => {\r\n const storeMD = useSelector(\r\n (store) => store.data.foreign.marketData.displayData\r\n );\r\n\r\n console.log(storeMD)\r\n console.log(curid)\r\n\r\n const displayedMarketData =\r\n storeMD && storeMD.securityId === curid ? storeMD : undefined;\r\n\r\n const displatch = useDispatch();\r\n\r\n React.useEffect(() => {\r\n if (curid) {\r\n displatch(loadMarketData(curid));\r\n }\r\n }, [displatch, curid]);\r\n\r\n return displayedMarketData;\r\n};\r\n","import React from \"react\";\r\nimport { useDisplayMarketData } from \"../../../data/foreign/mainBoard/hooks/useDisplayMarketData\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { FMarketListData } from \"../../../data/foreign/mainBoard/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { DisplayMarketDataMainAttributes, DiplayMarketDataMod } from \"./DisplayMarketDataMainAttributes\";\r\nimport { ExpansionPanel, ExpansionPanelSummary, Typography, Grid, IconButton } from \"@material-ui/core\";\r\nimport { useOrderPrinter } from \"../../../data/foreign/orders/hooks/useOrderPrinter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport DownloadIcon from \"@material-ui/icons/CloudDownloadOutlined\";\r\n\r\nexport interface DisplayMDProps {\r\n\tid: string;\r\n\tdisplayMod: DiplayMarketDataMod;\r\n\tenablePrint?: boolean;\r\n}\r\n\r\nexport const DisplayMarketData: React.FunctionComponent = ({\r\n\tid,\r\n\tdisplayMod,\r\n\tenablePrint,\r\n}) => {\r\n\r\nconsole.log(id)\r\nconsole.log(displayMod)\r\n\r\n\tconst marketdata = useDisplayMarketData(id);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n//\tconst [print, fetchState] = useOrderPrinter(marketdata);\r\n\r\nconsole.log(marketdata)\r\n\r\n\treturn !marketdata ? (\r\n\t\t<>{\"loading placeholder\"}\r\n\t) : (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{getString(\"tableBasciInfo\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t{/* fetchState.type !== \"not-started\" ? getString(\"pleaseWait\") : null */}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const useViewMarketData = (displayMod: DiplayMarketDataMod, enablePrint?: boolean) => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\treturn React.useCallback(\r\n\t\t(marketdata: FMarketListData) => showWithDrawer(),\r\n\t\t[showWithDrawer, displayMod]\r\n\t);\r\n};\r\n\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport ShowChartIcon from \"@material-ui/icons/ShowChart\";\r\nimport { FMarketListData } from \"../../../data/foreign/mainBoard/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MaterialTableProps } from \"material-table\";\r\nimport { useMarketSecurityData } from \"../../../data/foreign/mainBoard/hooks/useMarketSecurityData\";\r\nimport { useViewMarketData } from \"./DisplayMarketData\";\r\nimport { DiplayMarketDataMod } from \"./DisplayMarketDataMainAttributes\";\r\n\r\n\r\nexport function useMarketSecurityActions() {\r\n\r\n const { getString } = useContext(LocalizationContext);\r\n const onGetSecurity = useMarketSecurityData();\r\n const onShowOBOrder = useViewMarketData(DiplayMarketDataMod.Full, true);\r\n\r\n return useMemo(() => {\r\n const result: MaterialTableProps[\"actions\"] = [\r\n {\r\n icon: () => ,\r\n tooltip: getString(\"marketDataGraph\"),\r\n onClick: (event, rowData) => onGetSecurity(rowData as FMarketListData),\r\n },\r\n {\r\n icon: () => ,\r\n tooltip: getString(\"marketview\"),\r\n onClick: (event, rowData) => onShowOBOrder(rowData as FMarketListData),\r\n },\r\n ];\r\n return result;\r\n }, [onGetSecurity, getString ]);\r\n}\r\n\r\n","import React from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { FMarketListData } from \"../types\";\r\nimport { setSecurity, setSecuritySymbol, setSecurityName } from \"../marketsDataSlice\";\r\nimport { loadMarketAllData } from \"../../mainBoard/thunks/loadMarketAllData\";\r\n\r\nexport const useMarketSecurityData = () => {\r\n const dispatch = useDispatch();\r\n\treturn React.useCallback((security: FMarketListData) => {\r\n dispatch(setSecurity(security.securityId));\r\n dispatch(setSecuritySymbol(security.symbol));\r\n dispatch(setSecurityName(security.name));\r\n dispatch(loadMarketAllData());\r\n },\r\n [dispatch]\r\n );\r\n};\r\n\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { setIndex } from \"../marketUXSlice\";\r\nimport { PageIndex } from \"../../../models\";\r\n\r\nexport const useMarketDataIndex = () => {\r\n\tconst index = useSelector(s => s.ux.domestic.marketData.index);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetIndex = React.useCallback((index: PageIndex) => dispatch(setIndex(index)), [dispatch]);\r\n\r\n\treturn [index, dispatchSetIndex] as [typeof index, typeof dispatchSetIndex];\r\n};\r\n","export interface TradePricesChartData {\r\n tradeDate: Date,\r\n price: number,\r\n}\r\n\r\nexport interface DayPriceData {\r\n tradeDate: Date,\r\n price: number,\r\n}\r\n\r\n// export enum ChartPeriod { \r\n// Month = 30,\r\n// ThreeMonts = 90,\r\n// HalfYear = 130,\r\n// Year = 365,\r\n// FromYearBeggining = -1,\r\n// All = -2,\r\n//}\r\n\r\nexport enum ChartPeriod { \r\n Day = 'day',\r\n Month = '1m',\r\n ThreeMonths = '3m',\r\n SixMonths = '6m',\r\n Year = '1y',\r\n FromYearBeggining = 'ytd',\r\n TwoYears = '2y',\r\n FiveYears = '5y',\r\n}","import React from \"react\";\r\nimport { TableDataProps } from \"../../components/common/Table\";\r\nimport { useMarketData } from \"../../../data/foreign/mainBoard/hooks/useMarketData\";\r\nimport { FMarketListData } from \"../../../data/foreign/mainBoard/types\";\r\nimport { useMarketDataColumns } from \"./useMarketDataColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport { useMarketSecurityActions } from \"./useMarketSecurityActions\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { PaginationTable } from \"../../components/common/PagginationTable\";\r\nimport { useMarketDataIndex } from \"../../../data/foreign/mainBoard/hooks/useMarketDataIndex\";\r\n\r\nexport interface MarketDataTableProps {\r\n userAccessRights: AccessRights;\r\n}\r\n\r\ntype MarketDataTablePropsType = MarketDataTableProps & TableDataProps;\r\n\r\nexport const MarketDataTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n ...tableProps\r\n}) => {\r\n\r\n const security = useSelector(\r\n\t\tstore => store.data.foreign.marketData.secid\r\n\t); \r\n\r\n const [data, loadAll, all] = useMarketData();\r\n const [index, setIndex] = useMarketDataIndex()\r\n\r\n const columns = useMarketDataColumns(security);\r\n const actions = useMarketSecurityActions();\r\n\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={loadAll}\r\n// pageData={all}\r\n pageData={data}\r\n onPageIndexChange={setIndex}\r\n pageIndex={index}\r\n title=\"\"\r\n columns={columns}\r\n\t\t\tactions={actions}\r\n options={{\r\n toolbar: false,\r\n rowStyle: rowData => {\r\n if(rowData.securityId === security) {\r\n return {background: '#DAF7A6'};\r\n }\r\n return {};\r\n } \r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default MarketDataTable;\r\n","import { FMarketListData } from \"../../../data/foreign/mainBoard/types\";\r\nimport React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { useSelector } from \"react-redux\";\r\nimport MarketDataTable from \"./MarketDataTable\";\r\n\r\nexport const useMarketDataColumns = (symbol?: string) => {\r\n\tconst { getString, getFormatedNumberString, getDateString } = React.useContext(LocalizationContext);\r\n\r\n/*\tconst security = useSelector(\r\n\t\tstore => store.data.foreign.marketData.secid\r\n\t); */\r\n\r\n\tconst now = new Date();\r\n\r\n\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"tradeExchange\"),\r\n\t\t\t\tfield: \"exchange\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"100px\",\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataSymbol\"),\r\n\t\t\t\tfield: \"symbol\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"120px\",\r\n\t\t\t},\r\n\t\t\t{/*\r\n\t\t\t\ttitle: getString(\"marketDataIsin\"),\r\n\t\t\t\tfield: \"isin\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t*/},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataPrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.price,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataVolume\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.volume) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestBid\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.bestBid,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: symbol ? \"#DAF7A6\": \"#e1f5fe\", \r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#e1f5fe\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataBestAsk\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.bestAsk,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n//\t\t\t\t\tbackground: \"#ffebee\",\r\n\t\t\t\t},\r\n\t\t\t}, \r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataOpenPrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.open,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataHighPrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.high,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataLowPrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.low,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataClosePrice\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.close,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketDataChange\"),\r\n\t\t\t\trender: marketdata => getFormatedNumberString(marketdata.change,true) ,\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tpaddingRight: \"10px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketTime\"),\r\n//\t\t\t\trender: (order) => getDateString(now , \"HH.mm.ss\"),\r\n\t\t\t\tfield: \"latestTime\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"200px\",\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: getString(\"marketSource\"),\r\n//\t\t\t\trender: (order) => getDateString(now , \"HH.mm.ss\"),\r\n\t\t\t\tfield: \"latestSource\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"200px\",\r\n\t\t\t},\r\n\t\t],\r\n\t\t[getString, getFormatedNumberString]\r\n\t) as Column[];\r\n};\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const addSecurityApi = (userId: string, secid: string) =>\r\n webApiWithResponse({\r\n method: \"PUT\",\r\n url: \"trade/addsecurityforMD\",\r\n params: {\r\n userId,\r\n secid,\r\n },\r\n });\r\n\r\nexport default addSecurityApi;\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { loadAddSecurity } from \"../../mainBoard/thunks/loadAddSecurity\";\r\nimport { setFetchState } from \"../marketsDataSlice\";\r\nimport { loadMarketAllData } from \"../../mainBoard/thunks/loadMarketAllData\";\r\n\r\nexport const useAddSecurity = () => {\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.foreign.marketData.fetchState\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchAddSecurity: any = React.useCallback(\r\n\t\t(secid: string) => {\r\n\t\t\tdispatch(loadAddSecurity(secid))\r\n dispatch(loadMarketAllData());\r\n\t\t},\r\n\t\t[dispatch ]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tdispatch(setFetchState({ type: \"not-started\" }))\r\n\t}, [dispatch])\r\n\r\n\r\n\treturn [fetchState, dispatchAddSecurity] as [typeof fetchState, typeof dispatchAddSecurity]\r\n};\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { addSecurityApi } from \"../api/addSecurity\";\r\nimport { setFetchState, invalidateData } from \"../marketsDataSlice\";\r\n\r\nexport const loadAddSecurity = ( secid: string) : ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tdispatch(setFetchState({ type: \"started\" }));\r\n\r\n\tvar { user } = store.data.auth.current;\r\n\r\n\tconst result = await dispatch(addSecurityApi(user.userId, secid ))\r\n\r\n\tif (result && result.resCode === \"OK\") {\r\n\t\tdispatch(setFetchState({ type: \"successful\", result: result.resDesc }));\r\n\t\tdispatch(invalidateData());\r\n\t} else \r\n\t{\r\n\t\tdispatch(setFetchState({ type: \"error\", errorCode: result?.resCode }));\r\n\t}\r\n\r\n}\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const removeSecurityApi = (userId: string, secid: string) =>\r\n webApiWithResponse({\r\n method: \"PUT\",\r\n url: \"trade/removesecurityforMD\",\r\n params: {\r\n userId,\r\n secid,\r\n },\r\n });\r\n\r\nexport default removeSecurityApi;\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { loadRemoveSecurity } from \"../../mainBoard/thunks/loadRemoveSecurity\";\r\nimport { setFetchState } from \"../marketsDataSlice\";\r\nimport { loadMarketAllData } from \"../../mainBoard/thunks/loadMarketAllData\";\r\n\r\nexport const useRemoveSecurity = () => {\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.foreign.marketData.fetchState\r\n\t);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveSecurity: any = React.useCallback(\r\n\t\t(secid: string) => {\r\n\t\t\tdispatch(loadRemoveSecurity(secid))\r\n dispatch(loadMarketAllData());\r\n\t\t},\r\n\t\t[dispatch ]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tdispatch(setFetchState({ type: \"not-started\" }))\r\n\t}, [dispatch])\r\n\r\n\r\n\treturn [fetchState, dispatchRemoveSecurity] as [typeof fetchState, typeof dispatchRemoveSecurity]\r\n};\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { removeSecurityApi } from \"../api/removeSecurity\";\r\nimport { setFetchState, invalidateData } from \"../marketsDataSlice\";\r\n\r\nexport const loadRemoveSecurity = ( secid: string\r\n): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tdispatch(setFetchState({ type: \"started\" }));\r\n\r\n\tvar { user } = store.data.auth.current;\r\n\r\n\tconst result = await dispatch(removeSecurityApi(user.userId, secid))\r\n\r\n\r\n\tif (result && result.resCode === \"OK\") {\r\n\t\tdispatch(setFetchState({ type: \"successful\", result: result.resDesc }));\r\n\t\tdispatch(invalidateData());\r\n\t} else \r\n\t{\r\n\t\tdispatch(setFetchState({ type: \"error\", errorCode: result?.resCode }));\r\n\t}\r\n\r\n}\r\n","import React from \"react\";\r\nimport { Grid, Paper, Button } from \"@material-ui/core\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { FMarketFilter } from \"../../../data/foreign/mainBoard/types\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { SecuritySelect } from \"../../components/tables/SecurityForeignSelect\";\r\nimport { useAddSecurity } from \"../../../data/foreign/mainBoard/hooks/useMarketDataAddSecurity\";\r\nimport { useRemoveSecurity } from \"../../../data/foreign/mainBoard/hooks/useMarketDataRemoveSecurity\";\r\n\r\ninterface MainBoardFilterEditorProps {\r\n\tfilter?: FMarketFilter;\r\n\teditFilter: (prop: keyof FMarketFilter, value: any) => void;\r\n\tsave: () => void;\r\n\treset?: () => void;\r\n}\r\n\r\nexport const MainBoardFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\treset,\r\n}) => {\r\n\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst [auth] = useAuth();\r\n\tconst [fetchState, loadAddSecurity] = useAddSecurity();\r\n\tconst [fetchStateRemove, loadRemoveSecurity] = useRemoveSecurity();\r\n\r\n\tconst filtermd = {\r\n\t\tforMD: 'Y',\r\n\t}\r\n\tconst saveAdd = React.useCallback(\r\n\t\tasync (secid: string) => {\r\n\t\t\t\tconst result = await loadAddSecurity(secid);\r\n\t\t\t},\r\n\t\t[loadAddSecurity]\r\n\t); \r\n\r\n\tconst saveRemove = React.useCallback(\r\n\t\tasync (secid: string) => {\r\n\t\t\t\tconst result = await loadRemoveSecurity(secid);\r\n\t\t\t},\r\n\t\t[loadRemoveSecurity]\r\n\t); \r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t security.securityId === filter?.secid}\r\n\t\t\t\t\t\tonChangeItem={security => {\r\n\t\t\t\t\t\t\teditFilter(\"secid\", security?.securityId);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tfilter={filtermd}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tfilter && filter.secid !== undefined && saveAdd(filter.secid);\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tdisabled = {filter === undefined || filter.secid === undefined}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"marketDataAddSecurity\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { FMarketFilter } from \"../types\";\r\nimport { setFilter, initialState } from \"../marketUXSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\n\r\nexport const useMarketDataFilter = () => {\r\n\tconst [storeFilter] = useCurrentMarketDataFilter();\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter, true);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!));\r\n\t}, [dispatch, filter]);\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t}, [setCurrentFilter]);\r\n\r\n\treturn [filter, editFilter, dispatchSetFilter, changeState, dispatchResetFilter] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t];\r\n};\r\n\r\nexport const useCurrentMarketDataFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.domestic.marketData.filter);\r\n\r\n\treturn [filter ] as [typeof filter];\r\n};\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport SettingsOutlinedIcon from '@material-ui/icons/SettingsOutlined';\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\nimport { MainBoardFilterEditor } from \"./EditMainBoardFilter\";\r\nimport { useMarketDataFilter, useCurrentMarketDataFilter,} from \"../../../data/foreign/mainBoard/hooks/useMarketDataFilter\";\r\n\r\nexport const MainBoardSecurity: React.FunctionComponent = () => {\r\n\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst [filter] = useCurrentMarketDataFilter();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst MarketFilterEditor: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, reset] = useMarketDataFilter();\r\n\treturn (\r\n\t\t\r\n\t);\r\n}; \r\n","import { TradePricesChartData, ChartPeriod } from \"../types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { webApi } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const getChartData = (user: User, secid: string, period: ChartPeriod) => {\r\n\treturn webApi({\r\n\t\t\tmethod: \"GET\",\r\n\t\turl: \"trade/getfchartdata\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tsecid,\r\n\t\t\tperiod,\r\n\t\t},\r\n\t});\r\n};\r\n","import React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { ChartPeriod, TradePricesChartData } from \"../types\";\r\nimport { loadGraphData } from \"../thunks/loadGraphData\";\r\n\r\nexport const useGraphData = (graphId: string) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst period = useSelector(s => s.data.foreign.ticker.graphPeriod[graphId]);\r\n\tconst prodId = useSelector(s => s.data.foreign.marketData.secid);\r\n//\tconst prodId = useSelector(s => s.ux.trading.ticker.graphProductId[graphId]);\r\n\tconst data = useSelector(\r\n\t\ts => s.data.foreign.ticker.graphData[graphId || \"\"]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (prodId) {\r\n\t\t\tdispatch(loadGraphData(graphId, prodId, period || ChartPeriod.Month));\r\n\t\t}\r\n\t}, [graphId, period, prodId, dispatch]);\r\n\r\n\tconsole.log(data)\r\n\r\n\treturn [data];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getChartData } from \"../api/getChartData\";\r\nimport { setGraphData } from \"../tickerDataSlice\";\r\nimport { ChartPeriod } from \"../types\";\r\n\r\nexport const loadGraphData = (graphId: string, secid: string, period: ChartPeriod): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\" || !secid) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst { user } = store.data.auth.current;\r\n\tconst graphData = await dispatch(getChartData(user, secid, period));\r\n\r\n\tdispatch(\r\n\t\tsetGraphData({\r\n\t\t\tgraphId: graphId,\r\n\t\t\tdata: graphData || [],\r\n\t\t})\r\n\t);\r\n};\r\n\r\n","import { TradePricesChartData, ChartPeriod } from \"../types\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { webApi } from \"../../../../core/http/httpThunks\";\r\n\r\nexport const getfDayChartData = (user: User, secid: string, date: string) => {\r\n\treturn webApi({\r\n\t\tmethod: \"GET\",\r\n\t\turl: \"trade/getfdaychartdata\",\r\n\t\tparams: {\r\n\t\t\tuserid: user.userId,\r\n\t\t\tsecid,\r\n\t\t\tdate,\r\n\t\t},\r\n\t});\r\n};\r\n","import React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { ChartPeriod, TradePricesChartData, DayPriceData } from \"../types\";\r\nimport { loadGraphDayData } from \"../thunks/loadGraphDayData\";\r\n\r\nexport const useGraphDayData = (graphId: string) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst period = ChartPeriod.Day;\r\n\tconst prodId = useSelector(s => s.data.foreign.marketData.secid);\r\n\tconst data = useSelector(\r\n\t\ts => s.data.foreign.ticker.graphDayData[graphId || \"\"]\r\n\t);\r\n\r\n\r\n\tconst dateGraph = new Date().toISOString();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (prodId) {\r\n\t\t\tdispatch(loadGraphDayData(graphId, prodId, dateGraph));\r\n\t\t}\r\n\t}, [graphId, period, prodId, dispatch]);\r\n\r\n\tconsole.log(data)\r\n\r\n\treturn [data];\r\n};\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getfDayChartData } from \"../api/getfDayChartData\";\r\nimport { setGraphDayData } from \"../tickerDataSlice\";\r\nimport { ChartPeriod } from \"../types\";\r\n\r\nexport const loadGraphDayData = (graphId: string, secid: string, date: string): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\" || !secid) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst { user } = store.data.auth.current;\r\n\tconst graphData = await dispatch(getfDayChartData(user, secid, date));\r\n\r\n\tdispatch(\r\n\t\tsetGraphDayData({\r\n\t\t\tgraphId: graphId,\r\n\t\t\tdata: graphData || [],\r\n\t\t})\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { CardContent, CardHeader, Card, Divider, Typography, Grid } from \"@material-ui/core\";\r\nimport { useGraphData } from \"../../../data/foreign/ticker/hooks/useGraphData\";\r\nimport { useGraphDayData } from \"../../../data/foreign/ticker/hooks/useGraphDayData\";\r\nimport { useGraphPeriod } from \"../../../data/foreign/ticker/hooks/useGraphPeriod\";\r\nimport { ToggleButton, ToggleButtonGroup } from \"@material-ui/lab\";\r\nimport { ChartPeriod } from \"../../../data/foreign/ticker/types\";\r\nimport { CartesianGrid, Line, LineChart, XAxis, Tooltip, YAxis, ResponsiveContainer } from \"recharts\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\n\r\nexport interface ProductGraphProps {\r\n\tgraphId: string;\r\n}\r\n\r\nexport const ProductGraph: React.FunctionComponent = ({ graphId }) => {\r\n\tconst { getString, getDateString, getDateTimeString, getFormatedNumberString } = React.useContext(\r\n\t\tLocalizationContext\r\n\t);\r\n\r\n\tconst securitySymbol = useSelector(\r\n\t\tstore => store.data.foreign.marketData.secsymbol\r\n\t); \t\r\n\tconst securityName = useSelector(\r\n\t\tstore => store.data.foreign.marketData.secname\r\n\t); \t\r\n\r\n\tconst [period, setPeriod] = useGraphPeriod(graphId);\r\n\tconst [data] = useGraphData(graphId);\r\n\tconst [daydata] = useGraphDayData(graphId);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t setPeriod(v)}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tDay\r\n\t\t\t\t\t\t\t\t1M\r\n\t\t\t\t\t\t\t\t3M\r\n\t\t\t\t\t\t\t\t6M\r\n\t\t\t\t\t\t\t\tYTD\r\n\t\t\t\t\t\t\t\t1Y\r\n\t\t\t\t\t\t\t\t2Y\r\n\t\t\t\t\t\t\t\t5Y\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{securitySymbol+' - '+securityName}\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{period===ChartPeriod.Day && \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t date} />\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t [\r\n\t\t\t\t\t\t\t\tgetFormatedNumberString(value as any, true),\r\n\t\t\t\t\t\t\t\tgetString(\"orderPrice\"),\r\n\t\t\t\t\t\t\t]}\r\n//\t\t\t\t\t\t\tlabelFormatter={(date: any) => getDateTimeString(date)}\r\n\t\t\t\t\t\t\tlabelFormatter={(date: any) => date}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t } \r\n\t\t\t{period!==ChartPeriod.Day && \r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\t getDateString(date, \"DD.MM.\")} />\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t [\r\n\t\t\t\t\t\t\t\tgetFormatedNumberString(value as any, true),\r\n\t\t\t\t\t\t\t\tgetString(\"orderPrice\"),\r\n\t\t\t\t\t\t\t]}\r\n//\t\t\t\t\t\t\tlabelFormatter={(date: any) => getDateTimeString(date)}\r\n\t\t\t\t\t\t\tlabelFormatter={(date: any) => getDateString(date)}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t }\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { ChartPeriod } from \"../types\";\r\nimport { setGraphPeriod } from \"../tickerDataSlice\";\r\n\r\nexport const useGraphPeriod = (graphId: string) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst period = useSelector(s => s.data.foreign.ticker.graphPeriod[graphId || \"\"]);\r\n\r\n\tconst dispatchSetPeriod = React.useCallback(\r\n\t\t(newPeriod: ChartPeriod) => {\r\n\t\t\tif (graphId) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tsetGraphPeriod({\r\n\t\t\t\t\t\tgraphId,\r\n\t\t\t\t\t\tdata: newPeriod,\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[dispatch, graphId]\r\n\t);\r\n\r\n\treturn [period || ChartPeriod.Month, dispatchSetPeriod] as [typeof period, typeof dispatchSetPeriod];\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Divider, Card, Typography, Link } from \"@material-ui/core\";\r\nimport MarketDataTable from \"./MarketDataTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent } from \"../../../core/navigation/types\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { MainBoardSecurity } from \"./MainBoardSecurity\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { useNotificationHandler } from \"../../../core/notifications/hooks\";\r\nimport { useMarketData } from \"../../../data/foreign/mainBoard/hooks/useMarketData\";\r\nimport { ProductGraph } from \"./ProductGraph\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { PageDataStatus } from \"../../../data/models\";\r\n\r\nconst MainBoard: PageComponent = ({ userAccessRights }) => {\r\n\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\t const security = useSelector(\r\n\t\tstore => store.data.foreign.marketData.secid\r\n\t); \t\r\n\r\n\t\r\n\tconst [pageData,dispatchLoadMarketDataPage,invalidateData] = useMarketData();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tif (pageData && pageData.status === PageDataStatus.DataInvalidated) {\r\n\t\t\t\tdispatchLoadMarketDataPage();\r\n\t\t}\r\n\t}, [dispatchLoadMarketDataPage, pageData]);\r\n\r\n\tuseNotificationHandler(\r\n\t\t\"MainBoardFChanged\",\r\n\t\te => {\r\n\t\t\tconsole.log(\"MainBoardFChanged\", e);\r\n\t\t\tinvalidateData();\r\n\t\t},\r\n\t\t[]\r\n\t); \r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\t\taction={}\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n \t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{ security && } \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t {getString(\"marketIEX\") }\r\n\t\t\t\r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const MainBoardActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default MainBoard;\r\n\r\n\r\n","import MainBoard from \"./MainBoard\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { mainBoardLocation } from \"./Locations\";\r\n\r\nexport const mainBoardComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: MainBoard,\r\n\t\tisMenuItem: true,\r\n\t\tpath: mainBoardLocation,\r\n\t\tnotifications: true,\r\n\t},\r\n];\r\n","import { getEditLocation } from \"../../../core/util/functions\";\r\n\r\nexport const mainBoardLocation = \"/foreign/mainpanel\"\r\n","import { orderBookFComponents } from \"./orders/navigationComponents\";\r\nimport { portfolioFReportComponents } from \"./portfolio/navigationComponents\";\r\nimport { tradesFComponents } from \"./trades/navigationComponents\";\r\nimport { tradesSumFComponents } from \"./tradessum/navigationComponents\";\r\nimport { mainBoardComponents } from \"./mainBoard/navigationComponents\";\r\n\r\nexport const foreignComponents = [...orderBookFComponents, ...portfolioFReportComponents, ...tradesFComponents, ...tradesSumFComponents,...mainBoardComponents];\r\n","import { makeStyles, Theme, createStyles } from \"@material-ui/core\";\r\nexport const useLoginStyles = makeStyles((theme: Theme) => {\r\n\t\r\n\treturn createStyles({\r\n\t\tloginDrawerPaper: {\r\n\t\t\twidth: \"100vw\",\r\n\t\t\t[theme.breakpoints.only(\"sm\")]: {\r\n\t\t\t\twidth: \"60vw\",\r\n\t\t\t},\r\n\t\t\t[theme.breakpoints.up(\"sm\")]: {\r\n\t\t\t\twidth: \"50vw\",\r\n\t\t\t},\r\n\t\t\t[theme.breakpoints.up(\"lg\")]: {\r\n\t\t\t\twidth: \"30vw\",\r\n\t\t\t},\r\n\t\t},\r\n\t\twraper: {\r\n\t\t\tbackgroundImage: `url(./login-register.jpg)`,\r\n\t\t\theight: \"100vh\",\r\n\t\t},\r\n\t\tformItem: {\r\n\t\t\t\"&:not(:first-child)\": {\r\n\t\t\t\tmarginTop: theme.spacing(2),\r\n\t\t\t},\r\n\t\t\twidth: \"60%\",\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tjustifyContent: \"center\",\r\n\t\t\talignItems: \"center\",\r\n\t\t},\r\n\t\ttextField: {\r\n\t\t\twidth: \"100%\",\r\n\t\t},\r\n\t\tformContainer: {\r\n\t\t\theight: \"100%\",\r\n\t\t},\r\n\t\tlocaleSelection: {\r\n\t\t\twidth: \"60%\",\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tjustifyContent: \"flex-end\",\r\n\t\t\talignItems: \"center\",\r\n\t\t},\r\n\t\talert: {\r\n\t\t\tposition: \"absolute\",\r\n\t\t\ttop: theme.spacing(2),\r\n\t\t\twidth: \"100%\",\r\n\t\t},\r\n\t});\r\n});\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { LoginResponse } from \"../../../models\";\r\nimport { LocalizationLanguage } from \"../../../../core/localization/types\";\r\n\r\nexport const changePassApi = (username: string, password: string, lang: string) =>\r\n\twebApiWithResponse({\r\n\t\tmethod: \"POST\",\r\n\t\turl: \"user/changeuserpass\",\r\n\t\tdata: {\r\n\t\t\tusername,\r\n\t\t\tpassword,\r\n\t\t\tlang,\r\n\t\t},\r\n\t});\r\n","import React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { changePassThunk } from \"../thunks/changePassThunks\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { setChangePassFetchState } from \"../settingsDataSlice\";\r\n\r\nexport const useChangePassHooks = (password: string, newpassword: string) => {\r\n\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.settings.changePassFetchState\r\n\t);\r\n\r\n\tconst errorState = useSelector(\r\n\t\tstore => store.data.settings.errorDesc\r\n\t);\r\n\r\n\tconsole.log(\"Hooks\")\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst dispatcChangePassword: any = React.useCallback(\r\n\t\t() => {\r\n dispatch(changePassThunk( password, newpassword));\r\n\t\t},\r\n\t\t[dispatch,password,newpassword ]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tdispatch(setChangePassFetchState({ type: \"not-started\" }))\r\n\t}, [dispatch])\r\n\r\n\tconst resetState = React.useCallback(() => dispatch(setChangePassFetchState({ type: \"not-started\" })), [\r\n\t\tdispatch,\r\n\t]);\r\n\r\n\r\n\tconsole.log(fetchState)\r\n\r\n\treturn [fetchState, dispatcChangePassword, resetState, errorState ] as [typeof fetchState, typeof dispatcChangePassword, typeof resetState, typeof errorState]\r\n\r\n};\r\n\r\n","import { LocalizationLanguage } from \"../../../../core/localization/types\";\r\nimport { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { changePassApi } from \"../api/changePass\";\r\nimport { setChangePassFetchState, setError } from \"../settingsDataSlice\";\r\nimport { useAuth } from \"../../../../data/auth/hooks\";\r\n\r\nexport const changePassThunk = (\r\n\tpassword: string,\r\n\tlanguage: string\r\n): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst userid = store.data.auth.current.user.userId\r\n\r\n\tdispatch(setChangePassFetchState({ type: \"started\" }));\r\n\t\t\r\n\tconst result = await dispatch(changePassApi(userid, password, language ));\r\n\r\n\tconsole.log(result)\r\n\r\n\tdispatch(setChangePassFetchState(\r\n\t\tresult !== undefined && result.resCode === \"OK\" \r\n\t\t? { type: \"successful\"}\r\n\t\t: { type: \"error\", errorCode: result && result.resCode, errorDesc: result && result.resDesc }\r\n\t\t));\r\n\r\n\tdispatch(setError(\r\n\t\t\tresult !== undefined && result.resDesc !== undefined\r\n\t\t\t? result.resDesc\r\n\t\t\t: \"\"\r\n\t\t\t));\r\n\t\r\n\r\n\t\t/*\tif (result && result.resCode === \"OK\") {\r\n\t\tdispatch(setChangePassFetchState({ type: \"successful\", result: result.resDesc }));\r\n\t} else \r\n\t{\r\n\t\tdispatch(setChangePassFetchState({ type: \"error\", errorCode: result?.resCode }));\r\n\t} */\r\n\r\n};\r\n","import { PasswordChangePage} from \"./PasswordChangePage\";\r\nimport { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { settingsLocation } from \"./Locations\";\r\nimport { PasswordChangeForm } from \"./PasswordChangeForm\";\r\n\r\nexport const passwordchangeComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: PasswordChangeForm,\r\n//\t\tComponent: PasswordChangePage,\r\n\t\tisMenuItem: true,\r\n\t\tpath: settingsLocation,\r\n\t\tnotifications: true,\r\n\t},\r\n\r\n];\r\n\r\n","import React, { useState, useContext } from \"react\";\r\nimport { Grid, CardContent, CardHeader, Card, Divider, TextField, Button } from \"@material-ui/core\";\r\nimport { useLocalizationStore } from \"../../../data/localization/hooks\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useLoginStyles } from \"./useLoginStyles\";\r\nimport { useChangePassHooks } from \"../../../data/settings/passwordchange/hooks/changePassHooks\";\r\nimport { CustomDialog } from \"../../components/common/CustomDialog\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\n\r\nexport const PasswordChangeForm: React.FunctionComponent = props => {\r\n\tconst styles = useLoginStyles();\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst { getString } = useContext(LocalizationContext);\r\n\tconst [password, setPassword] = useState(\"\");\r\n\tconst [newpassword, setNewPassword] = useState(\"\");\r\n\tconst [newpassword1, setNewPassword1] = useState(\"\");\r\n\tconst [fatchstate, setNewPass, reset, errorDesc ] = useChangePassHooks(password, newpassword);\r\n\r\n\tconst handleTBChange = (setter: (value: string) => void) => (event: React.ChangeEvent) =>\r\n\tsetter(event.target.value);\r\n\r\n\tconst handleTBChange1 = (setter: (value: string) => void) => (event: React.ChangeEvent) =>\r\n\tsetter(event.target.value);\r\n\r\n\tconst savePassword = React.useCallback(\r\n\t\tasync () => {\r\n\t\t\t\tconst result = setNewPass(password, newpassword);\r\n\r\n\t\t\t\tconsole.log(result)\r\n\r\n//\t\t\t\tconst result = await setNewPass(password, newpassword);\r\n/*\t\t\t\tif (result && result.resCode !== \"OK\") {\r\n\t\t\t\t\tconst messageError = result. \r\n\t\t\t\t} else \r\n\t\t\t\t{\r\n\t\t\t\t\tconst messageError = \"\";\r\n\t\t\t\t} */\r\n\t\t\t \r\n\t\t\t},\r\n\t\t[setNewPass]\r\n\t); \r\n\r\n\tconst onEnter = (action: () => void) => (e: React.KeyboardEvent) =>\r\n\te.key === \"Enter\" && action();\r\n\r\n//\tconst messageError = (fatchstate.type === \"error\" && fatchstate.errorCode === tate.errorDesc) ? fatchstate.result : \"\"\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\r\n\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n \r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\r\n\t);\r\n};\r\n","import { getEditLocation } from \"../../../core/util/functions\";\r\n\r\nexport const settingsLocation = \"/settings/changepassword\"\r\n\r\n\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { SecurityAccounts } from \"../../../models\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { SecAccountFilter } from \"../types\"\r\n\r\nconst getSecAccountApi = (\r\n user: string,\r\n filter?: SecAccountFilter,\r\n) =>\r\n{\r\n \r\nreturn webApi({\r\n method: \"GET\",\r\n url: \"common/getsecurityaccounts\",\r\n params:{\r\n userid: user,\r\n domfor: filter?.domfor,\r\n }\r\n });\r\n};\r\n\r\nexport default getSecAccountApi;\r\n\r\n\r\n\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getSecAccountApi from \"../api/getSecAccountData\";\r\nimport { setData } from \"../securityAccountsDataSlice\";\r\nimport { SecAccountFilter } from \"../../../../data/settings/securityaccounts/types\";\r\n\r\nexport const loadSecAccounts = (filter?:SecAccountFilter): ThunkType => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return;\r\n }\r\n\r\n const userid = store.data.auth.current.user.userId;\r\n const secAcc = await dispatch(getSecAccountApi(userid, filter));\r\n \r\n dispatch(setData(secAcc || []));\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadSecAccounts } from \"../thunks/loadSecAccounts\";\r\nimport { SecurityAccounts } from \"../../../models\";\r\nimport { SecAccountFilter } from \"../../../../data/settings/securityaccounts/types\";\r\n\r\nexport const useSecAccountData = (filter?:SecAccountFilter) => {\r\n\r\n const allData = useSelector(\r\n (s) => s.data.secAccounts.all\r\n ); \r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadSecAcc = React.useCallback(\r\n () => dispatch(loadSecAccounts(filter)),\r\n [dispatch,filter]\r\n );\r\n\r\n return [allData, dispatchLoadSecAcc] as [\r\n typeof allData,\r\n typeof dispatchLoadSecAcc\r\n ];\r\n};\r\n\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { LoginResponse } from \"../../../models\";\r\nimport { DomForSide } from \"../../../models\";\r\n\r\nexport const setdefsecaccApi = (userid: string, domfor: string, secaccid: string) =>\r\n\twebApiWithResponse({\r\n\t\tmethod: \"PUT\",\r\n\t\turl: \"common/setdefsecacc\",\r\n\t\tparams: {\r\n\t\t\tuserid,\r\n\t\t\tdomfor,\r\n\t\t\tsecaccid,\r\n\t\t},\r\n\t});\r\n\r\n","import React from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { SecurityAccounts } from \"../../../models\";\r\nimport { setSecurityAcc } from \"../securityAccountsDataSlice\";\r\nimport { loadSetDefSecacc } from \"../thunks/loadSetDefSecacc\";\r\n\r\nexport const useSetDefSeccAcc = () => {\r\n \r\n const dispatch = useDispatch();\r\n\treturn React.useCallback((defAccount: SecurityAccounts) => {\r\n console.log(defAccount.accNo)\r\n\r\n dispatch(setSecurityAcc(defAccount.accId));\r\n dispatch(loadSetDefSecacc());\r\n },\r\n [dispatch]\r\n );\r\n};\r\n\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setdefsecaccApi } from \"../api/setdefsecaccData\";\r\nimport { setData } from \"../securityAccountsDataSlice\";\r\nimport { DomForSide } from \"../../../models\";\r\n\r\nexport const loadSetDefSecacc = ((): ThunkType => async (dispatch, getStore) => {\r\n\r\n const store = getStore();\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return;\r\n }\r\n const userid = store.data.auth.current.user.userId;\r\n\r\n const { filter } = store.ux.secAccounts;\r\n\r\n const secid=store.data.secAccounts.secid\r\n\r\n const domfor = filter.domfor ===DomForSide.Domestic ? \"D\" : \"F\" ;\r\n\r\n// dispatch(setData());\r\n\r\n const marketData = await dispatch(setdefsecaccApi(userid, domfor, secid));\r\n \r\n dispatch(setData());\r\n});\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { SecAccountFilter } from \"../types\";\r\nimport { setFilter, removeFilter, initialState } from \"../securityAccountsUXSlice\";\r\nimport { invalidateSecAccount } from \"../securityAccountsDataSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\nimport { loadSecAccounts } from \"../thunks/loadSecAccounts\";\r\n\r\nexport const useSecAccountFilter = () => {\r\n\r\n\tconst [storeFilter] = useCurrentSecAccountFilter();\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter, true);\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!));\r\n\t\tdispatch(loadSecAccounts(filter!));\r\n//\t\tdispatch(invalidateSecAccount());\r\n\t}, [dispatch,setFilter, loadSecAccounts, filter]);\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t\tdispatch(loadSecAccounts(filter));\r\n\t}, [setCurrentFilter, filter]);\r\n\r\n\treturn [filter, editFilter, dispatchSetFilter, changeState, dispatchResetFilter] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t];\r\n};\r\n\r\nexport const useCurrentSecAccountFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.secAccounts.filter);\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveFilter = React.useCallback(\r\n\t\t(type: keyof SecAccountFilter) => {\r\n\t\t\tdispatch(removeFilter(type));\r\n\t\t\tdispatch(loadSecAccounts());\r\n\t\t\t//\t\t\tdispatch(invalidateSecAccount());\r\n\t\t},\r\n\t\t[dispatch,loadSecAccounts]\r\n\t);\r\n\r\n\treturn [filter, dispatchRemoveFilter] as [typeof filter, typeof dispatchRemoveFilter];\r\n};\r\n","import React from \"react\";\r\nimport { Table, TableDataProps } from \"../../components/common/Table\";\r\nimport { useSecAccountData } from \"../../../data/settings/securityaccounts/hooks/useSecAccountData\";\r\nimport { SecurityAccounts } from \"../../../data/models\";\r\nimport { useSecAccountColumns } from \"./useSecAccountColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport { useSecAccountActions } from \"./useSecAccountActions\";\r\nimport { useSecAccountFilter } from \"../../../data/settings/securityaccounts/hooks/useSecAccountFilter\";\r\n\r\nexport interface SecAccTableProps {\r\n userAccessRights: AccessRights;\r\n}\r\n\r\ntype SecAccTablePropsType = SecAccTableProps & TableDataProps;\r\n\r\nexport const SecAccountTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n ...tableProps\r\n}) => {\r\n const [filter] = useSecAccountFilter();\r\n\r\n const [data, loadAll] = useSecAccountData(filter);\r\n\r\n const columns = useSecAccountColumns();\r\n const actions = useSecAccountActions();\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={loadAll}\r\n immutableData={data}\r\n title=\"\"\r\n columns={columns}\r\n actions={actions}\r\n options={{\r\n toolbar: false,\r\n pageSize: 10,\r\n actionsColumnIndex: -1,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default SecAccountTable;\r\n","import { useContext, useMemo } from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport { SecurityAccounts } from \"../../../data/models\";\r\n\r\nexport function useSecAccountColumns() {\r\n const { getString } = useContext(LocalizationContext);\r\n return useMemo(\r\n () => [\r\n {\r\n title: getString(\"portfSecAccount\"),\r\n field: \"accNo\",\r\n },\r\n {\r\n title: getString(\"domForMarket\"),\r\n field: \"accUse\",\r\n },\r\n {\r\n title: getString(\"domForDefDom\"),\r\n field: \"defDom\",\r\n },\r\n {\r\n title: getString(\"domForDefFor\"),\r\n field: \"defFor\",\r\n },\r\n ],\r\n [getString]\r\n ) as Column[];\r\n}\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport { SecurityAccounts } from \"../../../data/models\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Action } from \"material-table\";\r\nimport { useSetDefSeccAcc } from \"../../../data/settings/securityaccounts/hooks/useSetDefSecAcc\";\r\nimport { useSecAccountFilter, useCurrentSecAccountFilter,} from \"../../../data/settings/securityaccounts/hooks/useSecAccountFilter\";\r\n\r\nexport const useSecAccountActions = () => {\r\n const { getString } = useContext(LocalizationContext);\r\n \r\n const onShowBank = useSetDefSeccAcc();\r\n \r\n\r\n return useMemo(() => {\r\n const result: Action[] = [\r\n {\r\n icon: () => ,\r\n tooltip: getString(\"domForChange\"),\r\n onClick: (event, rowData) => onShowBank(rowData as SecurityAccounts),\r\n },\r\n ];\r\n\r\n return result;\r\n }, [onShowBank, getString]);\r\n};\r\n\r\n","import React from \"react\";\r\nimport { DomForSide } from \"../../../models\";\r\nimport { LocalizationContext } from \"../../../../core/localization/Localization\";\r\nimport { exhaustiveCheck } from \"../../../../core/util/functions\";\r\n\r\nexport const useDomForSideOptionsTranslator = () => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\treturn React.useCallback(\r\n\t\t(side: DomForSide) => {\r\n\t\t\tswitch (side) {\r\n\t\t\t\tcase DomForSide.Domestic:\r\n\t\t\t\t\treturn getString(\"domForSideDomestic\");\r\n\t\t\t\tcase DomForSide.Foreign:\r\n\t\t\t\t\treturn getString(\"domforSideForeign\");\r\n\t\t\t\tdefault:\r\n\t\t\t\t\texhaustiveCheck(side);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[getString]\r\n\t);\r\n};\r\n\r\ninterface AccountDomForSideOption {\r\n\tlabel: string;\r\n\tvalue: DomForSide;\r\n}\r\n\r\nexport const useDomForSideOptions = (): AccountDomForSideOption[] => {\r\n\tconst translator = useDomForSideOptionsTranslator();\r\n\treturn React.useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\tlabel: translator(DomForSide.Domestic) as string,\r\n\t\t\t\tvalue: DomForSide.Domestic,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: translator(DomForSide.Foreign) as string,\r\n\t\t\t\tvalue: DomForSide.Foreign,\r\n\t\t\t},\r\n\t\t],\r\n\t\t[translator]\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useDomForSideOptions } from \"../../../data/settings/securityaccounts/hooks/useDomForSideOptions\";\r\nimport { TextField, MenuItem, TextFieldProps } from \"@material-ui/core\";\r\nimport { DomForSide } from \"../../../data/models\";\r\n\r\ninterface DomForSideSelectProps {\r\n\tside?: DomForSide;\r\n\thandleChange: (event: React.ChangeEvent) => void;\r\n\tdisabled?: boolean;\r\n\tnullable?: boolean;\r\n\tclasses?: TextFieldProps['classes']\r\n}\r\n\r\nexport const DomForSideSelect: React.FunctionComponent = ({\r\n\tside,\r\n\thandleChange,\r\n\tdisabled,\r\n\tnullable,\r\n\tclasses,\r\n}) => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst options = useDomForSideOptions();\r\n/*\tconst enchanchedOptions = React.useMemo(() => {\r\n\t\treturn !nullable ? options : [\r\n\t\t\t{\r\n\t\t\t\tlabel: \"--\",\r\n\t\t\t\tvalue: \"\",\r\n\t\t\t},\r\n\t\t\t...options\r\n\t\t]\r\n\t}, [nullable, options]) */\r\n\r\n\tconst enchanchedOptions = React.useMemo(() => {\r\n\t\treturn options \r\n\t}, [ options])\r\n\t\r\n\treturn (\r\n\t\t\r\n\t\t\t{enchanchedOptions.map(option => (\r\n\t\t\t\t\r\n\t\t\t\t\t{option.label}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Grid, Paper, Button } from \"@material-ui/core\";\r\nimport { DomForSideSelect } from \"./DomForSelect\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { SecAccountFilter } from \"../../../data/settings/securityaccounts/types\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { SecAccountFilterChipsComponent } from \"./SecAccountFilterChips\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\n\r\n\r\ninterface SecAccountFilterEditorProps {\r\n\tfilter?: SecAccountFilter;\r\n\teditFilter: (prop: keyof SecAccountFilter, value: any) => void;\r\n\tsave: () => void;\r\n\treset?: () => void;\r\n}\r\n\r\nexport const SecAccountFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\treset,\r\n}) => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst [auth] = useAuth();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\t editFilter(\"domfor\", e.target.value)}\r\n\t\t\t\t\t\t\tside={filter?.domfor}\r\n\t\t\t\t\t\t\tnullable\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tsave();\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"orderFilterConfirm\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const SecAccountFilterChips = SecAccountFilterChipsComponent;\r\n","import React from \"react\";\r\nimport { Chip, Grid } from \"@material-ui/core\";\r\nimport { SecAccountFilter } from \"../../../data/settings/securityaccounts/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useDomForSideOptionsTranslator } from \"../../../data/settings/securityaccounts/hooks/useDomForSideOptions\";\r\n\r\nexport const SecAccountFilterChipsComponent: React.FunctionComponent = ({\r\n\tfilter,\r\n\tremoveFilter,\r\n}) => {\r\n\tconst { getDateString, getString } = React.useContext(LocalizationContext);\r\n\tconst sideTranslator = useDomForSideOptionsTranslator();\r\n\treturn (\r\n\t\t\r\n\t\t\t{filter.domfor && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"domfor\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface SecAccountFilterChipsProps {\r\n\tfilter: SecAccountFilter;\r\n\tremoveFilter: (type: keyof SecAccountFilter) => void;\r\n}\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { useSecAccountFilter, useCurrentSecAccountFilter,} from \"../../../data/settings/securityaccounts/hooks/useSecAccountFilter\";\r\nimport { SecAccountFilterEditor, SecAccountFilterChips } from \"./EditSecAccountFilter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\n\r\nexport const SecAccountFilterButton: React.FunctionComponent = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst [filter, removeFilter] = useCurrentSecAccountFilter();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst SecAccountsFilterEditor: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, , reset] = useSecAccountFilter();\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Divider, Card, Fab } from \"@material-ui/core\";\r\nimport { SecAccountTable } from \"./SecAccountTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent, AccessRights } from \"../../../core/navigation/types\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { SecAccountFilterButton } from \"./SecAccountFilter\"\r\nimport { useSecAccountData } from \"../../../data/settings/securityaccounts/hooks/useSecAccountData\";\r\nimport { useSecAccountFilter } from \"../../../data/settings/securityaccounts/hooks/useSecAccountFilter\";\r\n\r\nconst SecAccountPage: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [filter] = useSecAccountFilter();\r\n\r\n\tconst [data, loadAll] = useSecAccountData(filter);\r\n \r\n\tReact.useEffect(() => {\r\n\t\tloadAll();\r\n\t}, [loadAll ]);\r\n\r\n\tconst history = useHistory();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\taction={}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const SecAccountActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default SecAccountPage;\r\n","import { NavigationItem } from \"../../../core/navigation/types\";\r\nimport SecAccountPage from \"./SecAccountPage\";\r\nimport { secAccountLocation } from \"./Locations\";\r\n\r\nexport const secAccountComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: SecAccountPage,\r\n\t\tisMenuItem: true,\r\n\t\tpath: secAccountLocation,\r\n\t},\r\n];\r\n","\r\nexport const secAccountLocation = \"/settings/securityaccounts\";\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { MoneyAccounts, OrderSide } from \"../../../models\";\r\nimport { User } from \"../../../auth/types\";\r\nimport { MoneyAccountFilter } from \"../types\"\r\n\r\nconst getMoneyAccountApi = (\r\n user: string,\r\n filter?: MoneyAccountFilter,\r\n) =>\r\n{\r\n \r\nreturn webApi({\r\n method: \"GET\",\r\n url: \"common/getmoneyaccounts\",\r\n params:{\r\n userid: user,\r\n domfor: filter?.domfor,\r\n currid: filter?.curency.currId,\r\n buysell: filter?.buysell == OrderSide.Buy ? \"B\" : \"S\" ,\r\n }\r\n });\r\n};\r\n\r\nexport default getMoneyAccountApi;\r\n\r\n\r\n\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport getMoneyAccountApi from \"../api/getMoneyAccountData\";\r\nimport { setData } from \"../moneyAccountsDataSlice\";\r\nimport { MoneyAccountFilter } from \"../types\";\r\n\r\nexport const loadMoneyAccounts = (filter?:MoneyAccountFilter): ThunkType => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return;\r\n }\r\n\r\n const userid = store.data.auth.current.user.userId;\r\n const moneyAcc = await dispatch(getMoneyAccountApi(userid, filter));\r\n \r\n dispatch(setData(moneyAcc || []));\r\n};\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadMoneyAccounts } from \"../thunks/loadMoneyAccounts\";\r\nimport { MoneyAccounts } from \"../../../models\";\r\nimport { MoneyAccountFilter } from \"../../moneyaccounts/types\";\r\n\r\nexport const useMoneyAccountData = (filter?:MoneyAccountFilter) => {\r\n\r\n const allData = useSelector(\r\n (s) => s.data.moneyAccounts.all\r\n ); \r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadMoneyAcc = React.useCallback(\r\n () => dispatch(loadMoneyAccounts(filter)),\r\n [dispatch,filter]\r\n );\r\n\r\n return [allData, dispatchLoadMoneyAcc] as [\r\n typeof allData,\r\n typeof dispatchLoadMoneyAcc\r\n ];\r\n};\r\n\r\n","import { webApiWithResponse } from \"../../../../core/http/httpThunks\";\r\nimport { LoginResponse } from \"../../../models\";\r\nimport { DomForSide } from \"../../../models\";\r\n\r\nexport const setdefmoneyaccApi = (userid: string, domfor: string, curid: string, buysell: string, monaccid: string) =>\r\n\twebApiWithResponse({\r\n\t\tmethod: \"PUT\",\r\n\t\turl: \"common/setdefmonacc\",\r\n\t\tparams: {\r\n\t\t\tuserid,\r\n\t\t\tdomfor,\r\n\t\t\tmonaccid,\r\n\t\t\tcurid,\r\n\t\t\tbuysell,\r\n\t\t},\r\n\t});\r\n\r\n","import React from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { MoneyAccounts } from \"../../../models\";\r\nimport { setMoneyAcc } from \"../moneyAccountsDataSlice\";\r\nimport { loadSetDefMoneyacc } from \"../thunks/loadSetDefMoneyacc\";\r\n\r\nexport const useSetDefMoneyAcc = () => {\r\n \r\n const dispatch = useDispatch();\r\n\treturn React.useCallback((defAccount: MoneyAccounts) => {\r\n console.log(defAccount.accNo)\r\n\r\n dispatch(setMoneyAcc(defAccount.accId));\r\n dispatch(loadSetDefMoneyacc());\r\n },\r\n [dispatch]\r\n );\r\n};\r\n\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { setdefmoneyaccApi } from \"../api/setdefmoneyaccData\";\r\nimport { setData } from \"../moneyAccountsDataSlice\";\r\nimport { DomForSide, OrderSide } from \"../../../models\";\r\n\r\nexport const loadSetDefMoneyacc = ((): ThunkType => async (dispatch, getStore) => {\r\n\r\n const store = getStore();\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return;\r\n }\r\n const userid = store.data.auth.current.user.userId;\r\n\r\n const { filter } = store.ux.moneyAccounts;\r\n\r\n const secid=store.data.moneyAccounts.accountid\r\n\r\n const domfor = filter.domfor ===DomForSide.Domestic ? \"D\" : \"F\" ;\r\n const curid = filter.curency.currId\r\n const buysell = filter.buysell ===OrderSide.Buy ? \"B\" : \"S\" ;\r\n\r\n\r\nconsole.log(domfor)\r\nconsole.log(curid)\r\nconsole.log(buysell)\r\nconsole.log(secid)\r\n\r\n// dispatch(setData());\r\n\r\n const marketData = await dispatch(setdefmoneyaccApi(userid, domfor,curid, buysell,secid));\r\n \r\n dispatch(setData());\r\n});\r\n\r\n\r\n","import { useCopiedState } from \"../../../../core/util/hooks\";\r\nimport { MoneyAccountFilter } from \"../types\";\r\nimport { setFilter, removeFilter, initialState } from \"../moneyAccountsUXSlice\";\r\nimport { invalidatemoneyAccount } from \"../moneyAccountsDataSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport React from \"react\";\r\nimport { loadMoneyAccounts } from \"../thunks/loadMoneyAccounts\";\r\n\r\nexport const useMoneyAccountFilter = () => {\r\n\r\n\tconst [storeFilter] = useCurrentMoneyAccountFilter();\r\n\tconst [filter, editFilter, changeState, setCurrentFilter] = useCopiedState(storeFilter, true);\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst dispatchSetFilter = React.useCallback(() => {\r\n\t\tdispatch(setFilter(filter!));\r\n\t\tdispatch(loadMoneyAccounts(filter!));\r\n//\t\tdispatch(invalidateSecAccount());\r\n\t}, [dispatch,setFilter, loadMoneyAccounts, filter]);\r\n\r\n\tconst dispatchResetFilter = React.useCallback(() => {\r\n\t\tsetCurrentFilter(initialState.filter)\r\n\t\tdispatch(loadMoneyAccounts(filter));\r\n\t}, [setCurrentFilter, filter]);\r\n\r\n\treturn [filter, editFilter, dispatchSetFilter, changeState, dispatchResetFilter] as [\r\n\t\ttypeof filter,\r\n\t\ttypeof editFilter,\r\n\t\ttypeof dispatchSetFilter,\r\n\t\ttypeof changeState,\r\n\t\ttypeof dispatchResetFilter\r\n\t];\r\n};\r\n\r\nexport const useCurrentMoneyAccountFilter = () => {\r\n\tconst filter = useSelector(store => store.ux.moneyAccounts.filter);\r\n\tconst dispatch = useDispatch();\r\n\tconst dispatchRemoveFilter = React.useCallback(\r\n\t\t(type: keyof MoneyAccountFilter) => {\r\n\t\t\tdispatch(removeFilter(type));\r\n\t\t\tdispatch(loadMoneyAccounts());\r\n\t\t\t//\t\t\tdispatch(invalidateSecAccount());\r\n\t\t},\r\n\t\t[dispatch,loadMoneyAccounts]\r\n\t);\r\n\r\n\treturn [filter, dispatchRemoveFilter] as [typeof filter, typeof dispatchRemoveFilter];\r\n};\r\n","import React from \"react\";\r\nimport { Table, TableDataProps } from \"../../components/common/Table\";\r\nimport { useMoneyAccountData } from \"../../../data/settings/moneyaccounts/hooks/useMoneyAccountData\";\r\nimport { MoneyAccounts } from \"../../../data/models\";\r\nimport { useMoneyAccountColumns } from \"./useMoneyAccountColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\nimport { useMoneyAccountActions } from \"./useMoneyAccountActions\";\r\nimport { useMoneyAccountFilter } from \"../../../data/settings/moneyaccounts/hooks/useMoneyAccountFilter\";\r\n\r\nexport interface MoneyAccTableProps {\r\n userAccessRights: AccessRights;\r\n}\r\n\r\ntype MoneyAccTablePropsType = MoneyAccTableProps & TableDataProps;\r\n\r\nexport const MoneyAccountTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n ...tableProps\r\n}) => {\r\n const [filter] = useMoneyAccountFilter();\r\n\r\n const [data, loadAll] = useMoneyAccountData(filter);\r\n\r\n const columns = useMoneyAccountColumns();\r\n const actions = useMoneyAccountActions();\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={loadAll}\r\n immutableData={data}\r\n title=\"\"\r\n columns={columns}\r\n actions={actions}\r\n options={{\r\n toolbar: false,\r\n pageSize: 10,\r\n actionsColumnIndex: -1,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default MoneyAccountTable;\r\n","import { useContext, useMemo } from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport { MoneyAccounts } from \"../../../data/models\";\r\n\r\n\r\nexport function useMoneyAccountColumns() {\r\n const { getString } = useContext(LocalizationContext);\r\n return useMemo(\r\n () => [\r\n {\r\n title: getString(\"portfSecAccount\"),\r\n field: \"accNo\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"400px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"400px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"400px\",\r\n\t\t\t\t},\r\n },\r\n {\r\n title: getString(\"domForCurrCode\"),\r\n field: \"currCode\",\r\n\t\t\t\tsorting: false,\r\n },\r\n {\r\n title: getString(\"domForMarket\"),\r\n field: \"accUse\",\r\n\t\t\t\tsorting: false,\r\n },\r\n {\r\n title: getString(\"domForAccSide\"),\r\n field: \"accSide\",\r\n\t\t\t\tsorting: false,\r\n },\r\n {\r\n title: getString(\"domForDefDom\"),\r\n field: \"defDom\",\r\n\t\t\t\tsorting: false,\r\n },\r\n {\r\n title: getString(\"domForDefFor\"),\r\n field: \"defFor\",\r\n\t\t\t\tsorting: false,\r\n },\r\n ],\r\n [getString]\r\n ) as Column[];\r\n}\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport ViewIcon from \"@material-ui/icons/InputOutlined\";\r\nimport { MoneyAccounts } from \"../../../data/models\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Action } from \"material-table\";\r\nimport { useSetDefMoneyAcc } from \"../../../data/settings/moneyaccounts/hooks/useSetDefMoneyAcc\";\r\n\r\nexport const useMoneyAccountActions = () => {\r\n const { getString } = useContext(LocalizationContext);\r\n \r\n const onShowBank = useSetDefMoneyAcc();\r\n \r\n\r\n return useMemo(() => {\r\n const result: Action[] = [\r\n {\r\n icon: () => ,\r\n tooltip: getString(\"domForChange\"),\r\n onClick: (event, rowData) => onShowBank(rowData as MoneyAccounts),\r\n },\r\n ];\r\n\r\n return result;\r\n }, [onShowBank, getString]);\r\n};\r\n\r\n","import { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { MAccCur } from \"../../models\";\r\n\r\nconst getStatusLabel = (status?: MAccCur) => (status ? status.currCode : \"\");\r\n\r\nexport const useMAccCur = () => {\r\n\tconst statuses = useSelector(store => store.data.initialData.mAccCurr);\r\n\r\n\r\nconsole.log(statuses)\r\n\r\n\treturn [statuses, getStatusLabel] as [typeof statuses, typeof getStatusLabel];\r\n};\r\n","import React from \"react\";\r\nimport { useMAccCur } from \"../../../data/initialData/hooks/useMAccCur\";\r\nimport { MAccCur } from \"../../../data/models\";\r\nimport { AutocompleteSelect, AutocompleteSelectType,} from \"./AutocompleteSelect\";\r\n\r\ntype MAccCurrencySelectPropsType = Omit<\r\n AutocompleteSelectType,\r\n \"data\" | \"getLabel\"\r\n>;\r\n\r\nexport const MAccCurrencySelect: React.FunctionComponent = (\r\n props\r\n) => {\r\n const [statuses, renderStatus] = useMAccCur();\r\n\r\nconsole.log(statuses)\r\n\r\n return (\r\n \r\n data={statuses}\r\n getLabel={renderStatus}\r\n {...(props as any)}\r\n />\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useOrderSideOptions } from \"../../../data/domestic/orders/hooks/useOrderSideOptions\";\r\nimport { TextField, MenuItem, TextFieldProps } from \"@material-ui/core\";\r\nimport { OrderSide } from \"../../../data/models\";\r\n\r\ninterface OrderSideSelectProps {\r\n\tside?: OrderSide;\r\n\thandleChange: (event: React.ChangeEvent) => void;\r\n\tdisabled?: boolean;\r\n\tclasses?: TextFieldProps['classes']\r\n}\r\n\r\nexport const OrderSideSelect: React.FunctionComponent = ({\r\n\tside,\r\n\thandleChange,\r\n\tdisabled,\r\n\tclasses,\r\n}) => {\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst options = useOrderSideOptions();\r\n\tconst enchanchedOptions = React.useMemo(() => {\r\n\t\treturn options }, [options])\r\n\r\n\t\r\n\treturn (\r\n\t\t\r\n\t\t\t{enchanchedOptions.map(option => (\r\n\t\t\t\t\r\n\t\t\t\t\t{option.label}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Grid, Paper, Button } from \"@material-ui/core\";\r\nimport { DomForSideSelect } from \"../secaccountsdef/DomForSelect\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { MoneyAccountFilter } from \"../../../data/settings/moneyaccounts/types\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { MoneyAccountFilterChipsComponent } from \"./MoneyAccountFilterChips\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { MAccCurrencySelect } from \"../../components/common/MAccCurrencySelect\";\r\nimport { OrderSideSelect } from \"./OrderSideSelect\";\r\n\r\n\r\ninterface MoneyAccountFilterEditorProps {\r\n\tfilter?: MoneyAccountFilter;\r\n\teditFilter: (prop: keyof MoneyAccountFilter, value: any) => void;\r\n\tsave: () => void;\r\n\treset?: () => void;\r\n}\r\n\r\nexport const MoneyAccountFilterEditor: React.FunctionComponent = ({\r\n\tfilter,\r\n\teditFilter,\r\n\tsave,\r\n\treset,\r\n}) => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst { getString } = React.useContext(LocalizationContext);\r\n\tconst [auth] = useAuth();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\t editFilter(\"domfor\", e.target.value)}\r\n\t\t\t\t\t\t\tside={filter?.domfor}\r\n\t\t\t\t\t\t\tnullable\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t currencies.currId === filter?.curency.currId}\r\n\t\t\t\t\t\tonChangeItem={currencies => {\r\n\t\t\t\t\t\t\teditFilter(\"curency\", currencies);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\t editFilter(\"buysell\", e.target.value)}\r\n\t\t\t\t\t\t\tside={filter?.buysell}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tsave();\r\n\t\t\t\t\t\t\t\tshowWithDrawer(undefined);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{getString(\"orderFilterConfirm\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const MoneyAccountFilterChips = MoneyAccountFilterChipsComponent;\r\n","import React from \"react\";\r\nimport { Chip, Grid } from \"@material-ui/core\";\r\nimport { MoneyAccountFilter } from \"../../../data/settings/moneyaccounts/types\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useDomForSideOptionsTranslator } from \"../../../data/settings/securityaccounts/hooks/useDomForSideOptions\";\r\n\r\nexport const MoneyAccountFilterChipsComponent: React.FunctionComponent = ({\r\n\tfilter,\r\n\tremoveFilter,\r\n}) => {\r\n\tconst { getDateString, getString } = React.useContext(LocalizationContext);\r\n\tconst sideTranslator = useDomForSideOptionsTranslator();\r\n\treturn (\r\n\t\t\r\n\t\t\t{filter.domfor && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"domfor\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.curency && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"domfor\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{filter.buysell && (\r\n\t\t\t\t\r\n\t\t\t\t\t removeFilter(\"domfor\")}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface MoneyAccountFilterChipsProps {\r\n\tfilter: MoneyAccountFilter;\r\n\tremoveFilter: (type: keyof MoneyAccountFilter) => void;\r\n}\r\n","import React from \"react\";\r\nimport FilterIcon from \"@material-ui/icons/FilterListOutlined\";\r\nimport { IconButton, Grid } from \"@material-ui/core\";\r\nimport { DisplayDrawerContext } from \"../../../layout/DisplayDrawerContext\";\r\nimport { useMoneyAccountFilter, useCurrentMoneyAccountFilter,} from \"../../../data/settings/moneyaccounts/hooks/useMoneyAccountFilter\";\r\nimport { MoneyAccountFilterEditor, MoneyAccountFilterChips } from \"./EditMoneyAccountFilter\";\r\nimport { CustomTooltip } from \"../../components/common/CustomTooltip\";\r\n\r\nexport const MoneyAccountFilterButton: React.FunctionComponent = () => {\r\n\tconst showWithDrawer = React.useContext(DisplayDrawerContext);\r\n\tconst showFilter = React.useCallback(() => showWithDrawer(), [showWithDrawer]);\r\n\r\n\tconst [filter, removeFilter] = useCurrentMoneyAccountFilter();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst MoneyAccountsFilterEditor: React.FunctionComponent = () => {\r\n\tconst [filter, editFilter, save, , reset] = useMoneyAccountFilter();\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Divider, Card, Fab } from \"@material-ui/core\";\r\nimport { MoneyAccountTable } from \"./MoneyAccountTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent, AccessRights } from \"../../../core/navigation/types\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { MoneyAccountFilterButton } from \"./MoneyAccountFilter\"\r\nimport { useMoneyAccountFilter } from \"../../../data/settings/moneyaccounts/hooks/useMoneyAccountFilter\";\r\nimport { useMoneyAccountData } from \"../../../data/settings/moneyaccounts/hooks/useMoneyAccountData\";\r\n\r\nconst MoneyAccountPage: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [filter] = useMoneyAccountFilter();\r\n\r\n\tconst [data, loadAll] = useMoneyAccountData(filter);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tloadAll();\r\n\t}, [loadAll ]);\r\n\r\n\tconst history = useHistory();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\taction={}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const MoneyAccountActions: React.FunctionComponent = () => (\r\n\t\r\n\t \r\n\t\t\r\n\t \r\n\t\r\n );\r\n\r\nexport default MoneyAccountPage;\r\n","import { NavigationItem } from \"../../../core/navigation/types\";\r\nimport MoneyAccountPage from \"./MoneyAccountPage\";\r\nimport { moneyAccountLocation } from \"./Locations\";\r\n\r\nexport const moneyAccountComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: MoneyAccountPage,\r\n\t\tisMenuItem: true,\r\n\t\tpath: moneyAccountLocation,\r\n\t},\r\n];\r\n","\r\nexport const moneyAccountLocation = \"/settings/moneyaccounts\";\r\n","import { makeStyles, Theme, createStyles } from \"@material-ui/core\";\r\nexport const useLoginStyles = makeStyles((theme: Theme) => {\r\n\t\r\n\treturn createStyles({\r\n\t\tloginDrawerPaper: {\r\n\t\t\twidth: \"100vw\",\r\n\t\t\t[theme.breakpoints.only(\"sm\")]: {\r\n\t\t\t\twidth: \"60vw\",\r\n\t\t\t},\r\n\t\t\t[theme.breakpoints.up(\"sm\")]: {\r\n\t\t\t\twidth: \"50vw\",\r\n\t\t\t},\r\n\t\t\t[theme.breakpoints.up(\"lg\")]: {\r\n\t\t\t\twidth: \"30vw\",\r\n\t\t\t},\r\n\t\t},\r\n\t\twraper: {\r\n\t\t\tbackgroundImage: `url(./login-register.jpg)`,\r\n\t\t\theight: \"100vh\",\r\n\t\t},\r\n\t\tformItem: {\r\n\t\t\t\"&:not(:first-child)\": {\r\n\t\t\t\tmarginTop: theme.spacing(2),\r\n\t\t\t},\r\n\t\t\twidth: \"60%\",\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tjustifyContent: \"center\",\r\n\t\t\talignItems: \"center\",\r\n\t\t},\r\n\t\ttextField: {\r\n\t\t\twidth: \"100%\",\r\n\t\t},\r\n\t\tformContainer: {\r\n\t\t\theight: \"100%\",\r\n\t\t},\r\n\t\tlocaleSelection: {\r\n\t\t\twidth: \"60%\",\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tjustifyContent: \"flex-end\",\r\n\t\t\talignItems: \"center\",\r\n\t\t},\r\n\t\talert: {\r\n\t\t\tposition: \"absolute\",\r\n\t\t\ttop: theme.spacing(2),\r\n\t\t\twidth: \"100%\",\r\n\t\t},\r\n\t});\r\n});\r\n","\r\nimport { httpWebApi } from \"../../../../core/http/httpThunks\";\r\nimport { LoginResponse } from \"../../../models\";\r\nimport { LocalizationLanguage } from \"../../../../core/localization/types\";\r\n\r\nexport const otherSettingsApi = (userid: string, confirmOrder: number) =>\r\n\thttpWebApi({\r\n\t\tmethod: \"PUT\",\r\n\t\turl: \"user/setusersettings\",\r\n\t\tparams: {\r\n\t\t\tuserid,\r\n\t\t},\r\n\t\tdata: {\r\n\t\t\tconfirmOrder: confirmOrder,\r\n\t\t},\r\n\t}\r\n\t)\r\n\r\n\r\n\r\n","import React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { otherSettingsThunk } from \"../thunks/otherSettingsThunks\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { FetchStateType } from \"../../../models\";\r\nimport { setConfirmOrderFatchState } from \"../otherSettingsDataSlice\";\r\n\r\nexport const useOtherSettingsHooks = () => {\r\n\r\n\tconst fetchState = useSelector(\r\n\t\tstore => store.data.otherSettings.confirmOrderFetchState\r\n\t);\r\n\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst dispatchConfirmOrder = React.useCallback(\r\n\t\t(confirmOrder: number) => {\r\n dispatch(otherSettingsThunk(confirmOrder));\r\n\t\t},\r\n\t\t[dispatch ]\r\n\t);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tdispatch(setConfirmOrderFatchState({ type: \"not-started\" }))\r\n\t}, [dispatch])\r\n\r\n\r\n\treturn [fetchState, dispatchConfirmOrder ] as [typeof fetchState, typeof dispatchConfirmOrder]\r\n\r\n};\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { otherSettingsApi } from \"../api/otherSettingsApi\";\r\nimport { setConfirmOrderFatchState } from \"../otherSettingsDataSlice\";\r\n\r\nexport const otherSettingsThunk = (\r\n\tconfirmOrder: number,\r\n): ThunkType => async (dispatch, getStore) => {\r\n\tconst store = getStore();\r\n\r\n\tif (store.data.auth.current.status !== \"successful\") {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdispatch(setConfirmOrderFatchState({ type: \"started\" }));\r\n\r\n\tconst userid = store.data.auth.current.user.userId\r\n\t\r\n\tconst result = await dispatch(otherSettingsApi(userid, confirmOrder));\r\n\r\n\tdispatch(setConfirmOrderFatchState(\r\n\t\tresult !== undefined && result.resCode === \"OK\"\r\n\t\t\t? { type: \"successful\" }\r\n\t\t\t: { type: \"error\", errorCode: result && result.resCode, errorDesc: result && result.resDesc }\r\n\t));\r\n\r\n\r\n\r\n};\r\n","import { NavigationItem } from \"../../../core/navigation/types\";\r\nimport { otherSettingsLocation } from \"./Locations\";\r\nimport { OtherSettingsForm } from \"./OtherSettingsForm\";\r\n\r\nexport const otherSettingsComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: OtherSettingsForm,\r\n\t\tisMenuItem: true,\r\n\t\tpath: otherSettingsLocation,\r\n\t\tnotifications: true,\r\n\t},\r\n\r\n];\r\n\r\n","import React, { useState, useContext } from \"react\";\r\nimport { Grid, CardContent, CardHeader, Card, Divider, TextField, Button, Switch, FormControlLabel } from \"@material-ui/core\";\r\nimport { useLocalizationStore } from \"../../../data/localization/hooks\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { useLoginStyles } from \"./useLoginStyles\";\r\nimport { useOtherSettingsHooks } from \"../../../data/settings/otherSettings/hooks/otherSettingsHooks\";\r\nimport { CustomDialog } from \"../../components/common/CustomDialog\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { User } from \"../../../data/auth/types\";\r\nimport { useAuth } from \"../../../data/auth/hooks\";\r\nimport { BoolInput } from \"../../components/common/BoolInput\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\n\r\nexport const OtherSettingsForm: React.FunctionComponent = props => {\r\n\tconst styles = useLoginStyles();\r\n\tconst pageStyles = usePageStyles();\r\n\tconst { getString } = useContext(LocalizationContext);\r\n\r\n\tconst [auth] = useAuth();\r\n\r\n\r\n\r\n\tconst confirmOrder = useSelector(s => s.data.otherSettings.confirmOrder);\r\n\r\n\tconst [fatchstate, setconfirORder] = useOtherSettingsHooks();\r\n\r\n\tconst [checked, setChecked] = useState(auth.status===\"successful\" && auth.user.confirmOrder===1 ? true : false );\r\n\r\n\r\n\tconst switchHandler = (event: any) => {\r\n\t\tlet confirm = 1;\r\n\t\tchecked === true ? confirm = 0 : confirm = 1;\r\n\t\tsetChecked(event.target.checked);\r\n\t\tsaveConfirmOrder(confirm)\r\n\t};\r\n\r\n\r\n\tconst saveConfirmOrder = React.useCallback(\r\n\t\tasync (confirmOrder) => {\r\n\t\t\tconst result = setconfirORder(confirmOrder);\r\n\t\t},\r\n\t\t[setconfirORder]\r\n\t);\r\n\r\n\tconst onEnter = (action: () => void) => (e: React.KeyboardEvent) =>\r\n\t\te.key === \"Enter\" && action();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tlabel={getString(\"confirmOrderSetting\")}\r\n\t\t\t\t\t\t/>\r\n\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\r\n\t);\r\n};\r\n","import { getEditLocation } from \"../../../core/util/functions\";\r\n\r\nexport const otherSettingsLocation = \"/settings/other\"\r\n\r\n\r\n","import { passwordchangeComponents } from \"./passwordchange/navigationComponents\";\r\nimport { secAccountComponents } from \"./secaccountsdef/navigationComponents\";\r\nimport { moneyAccountComponents } from \"./moneyaccountdef/navigationComponents\";\r\nimport { otherSettingsComponents } from \"./othersettings/navigationComponents\";\r\n\r\nexport const settingsComponents = [...passwordchangeComponents, ...secAccountComponents, ...moneyAccountComponents, ...otherSettingsComponents];\r\n\r\n","import { webApi } from \"../../../../core/http/httpThunks\";\r\nimport { CashBalanceData } from \"../types\";\r\n\r\nexport const getCashBalanceApi = (userId: string) =>\r\n\twebApi({\r\n\t\tmethod: \"GET\",\r\n\t\turl: \"trade/getcashballist\",\r\n\t\tparams: {\r\n\t\t\tuserId,\r\n\t\t},\r\n\t});\r\n\r\nexport default getCashBalanceApi;\r\n\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../../core/store/reducers\";\r\nimport { loadCashBalanceData } from \"../thunks/loadCashBalanceData\";\r\nimport { CashBalanceData } from \"../types\";\r\n\r\nexport const useCashBalanceData = () => {\r\n const allData = useSelector(\r\n (s) => s.data.reports.cashBalList.all\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadCashBalanceAll = React.useCallback(\r\n () => dispatch(loadCashBalanceData()),\r\n [dispatch]\r\n );\r\n\r\n return [allData, dispatchLoadCashBalanceAll] as [\r\n typeof allData,\r\n typeof dispatchLoadCashBalanceAll\r\n ];\r\n};\r\n\r\n","import { ThunkType } from \"../../../../core/store/reducers\";\r\nimport { getCashBalanceApi } from \"../api/getCashBalanceData\";\r\nimport { setData } from \"../cashBalListDataSlice\";\r\n\r\nexport const loadCashBalanceData = (): ThunkType => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return;\r\n }\r\n\r\n dispatch(setData());\r\n\r\n const { userId } = store.data.auth.current.user;\r\n const cashBalList = await dispatch(getCashBalanceApi(userId));\r\n\r\n dispatch(setData(cashBalList || []));\r\n};\r\n","import React from \"react\";\r\nimport { Table, TableDataProps } from \"../../components/common/Table\";\r\nimport { useCashBalanceData } from \"../../../data/reports/cashBalList/hooks/useCashBalanceData\";\r\nimport { CashBalanceData } from \"../../../data/reports/cashBalList/types\";\r\nimport { useCashBalanceColumns } from \"./useCashBalanceColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\n\r\nexport interface CashBalanceTableProps {\r\n userAccessRights: AccessRights;\r\n}\r\n\r\ntype CashBalanceTablePropsType = CashBalanceTableProps & TableDataProps;\r\n\r\nexport const CashBalanceListTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n ...tableProps\r\n}) => {\r\n const [data, loadAll] = useCashBalanceData();\r\n\r\n const columns = useCashBalanceColumns();\r\n// const actions = useBankActions();\r\n// const onDeleteBank = useDeleteBankAction();\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={loadAll}\r\n immutableData={data}\r\n title=\"\"\r\n columns={columns}\r\n // actions={actions}\r\n options={{\r\n toolbar: false,\r\n pageSize: 10,\r\n actionsColumnIndex: -1,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default CashBalanceListTable;\r\n","import React from \"react\";\r\nimport { useContext, useMemo } from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport { CashBalanceData } from \"../../../data/reports/cashBalList/types\";\r\n\r\nexport function useCashBalanceColumns() {\r\n\tconst { getString, getDateTimeString, getFormatedNumberString } = React.useContext(LocalizationContext);\r\n\r\n return useMemo(\r\n () => [\r\n {\r\n title: getString(\"cashBank\"),\r\n field: \"bank\",\r\n },\r\n {\r\n title: getString(\"cashAccNo\"),\r\n field: \"accNo\",\r\n },\r\n {\r\n title: getString(\"cashCurrCode\"),\r\n field: \"currCode\",\r\n\t\t\t\twidth: \"80px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"80px\",\r\n\t\t\t\t},\r\n },\r\n {\r\n title: getString(\"cashAccUse\"),\r\n field: \"accUse\",\r\n },\r\n {\r\n\t\t\t\ttitle: getString(\"cashCurrentAmt\"),\r\n\t\t\t\trender: cash => getFormatedNumberString(cash.currentAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n {\r\n\t\t\t\ttitle: getString(\"cashSellNetAmt\"),\r\n\t\t\t\trender: cash => getFormatedNumberString(cash.sellNetAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n maxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tmaxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n {\r\n\t\t\t\ttitle: getString(\"cashBuyNetAmt\"),\r\n\t\t\t\trender: cash => getFormatedNumberString(cash.buyNetAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n maxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tmaxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n {\r\n\t\t\t\ttitle: getString(\"cashSettledAmt\"),\r\n\t\t\t\trender: cash => getFormatedNumberString(cash.settledAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n maxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tmaxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n {\r\n\t\t\t\ttitle: getString(\"cashSellOrdAmt\"),\r\n\t\t\t\trender: cash => getFormatedNumberString(cash.sellOrdAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n maxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tmaxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n {\r\n\t\t\t\ttitle: getString(\"cashBuyOrdAmt\"),\r\n\t\t\t\trender: cash => getFormatedNumberString(cash.buyOrdAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n maxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tmaxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n {\r\n\t\t\t\ttitle: getString(\"cashBankAmt\"),\r\n\t\t\t\trender: cash => getFormatedNumberString(cash.bankAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n maxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tmaxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n {\r\n title: getString(\"cashImportTime\"),\r\n field: \"importTime\",\r\n },\r\n {\r\n\t\t\t\ttitle: getString(\"cashAvailAmt\"),\r\n\t\t\t\trender: cash => getFormatedNumberString(cash.availAmt, true),\r\n\t\t\t\tsorting: false,\r\n\t\t\t\tcellStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n maxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n//\t\t\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\t\t\ttextAlign: \"end\",\r\n\t\t\t\t\tmaxWidth: \"130px\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\r\n ],\r\n [getString]\r\n ) as Column[];\r\n}\r\n","import { NavigationItem } from \"../../../core/navigation/types\";\r\nimport CashBalanceListPage from \"./CashBalanceListPage\";\r\nimport { cashBalanceListLocation } from \"./Locations\";\r\n\r\nexport const cashBalanceComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: CashBalanceListPage,\r\n\t\tisMenuItem: true,\r\n\t\tpath: cashBalanceListLocation,\r\n\t},\r\n/*\t{\r\n\t\tComponent: EditBankPage,\r\n\t\tisMenuItem: false,\r\n\t\tpath: editRouter,\r\n\t}, */\r\n];\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Divider, Card, Fab } from \"@material-ui/core\";\r\nimport BanksTable from \"./CashBalanceListTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent, AccessRights } from \"../../../core/navigation/types\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\n\r\nconst CashBalanceListPage: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst history = useHistory();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CashBalanceListPage;\r\n","import { getEditLocation } from \"../../../core/util/functions\";\r\n\r\nexport const cashBalanceListLocation = \"/reports/cashbalance\";\r\n//export const getBankEditLocation = (id?: string) => getEditLocation(cashBalanceListLocation, undefined, id);\r\n\r\n//export const editRouter = getBankEditLocation(\":bankId?\");\r\n","import { cashBalanceComponents } from \"./cashballist/navigationComponents\";\r\n\r\nexport const reportsComponents = [...cashBalanceComponents];\r\n","import { webApi } from \"../../../core/http/httpThunks\";\r\nimport { EmpContactData } from \"../types\";\r\nimport { User } from \"../../auth/types\";\r\n\r\nconst getSupportApi = (\r\n user: string,\r\n) =>\r\n{\r\n \r\nreturn webApi({\r\n method: \"GET\",\r\n url: \"common/getempcontacts\",\r\n params:{\r\n userid: user,\r\n }\r\n });\r\n};\r\n\r\nexport default getSupportApi;\r\n\r\n\r\n\r\n\r\n","import React from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { loadSupport } from \"../thunks/loadSupport\";\r\nimport { EmpContactData } from \"../types\";\r\n\r\nexport const useSupportData = () => {\r\n\r\n const allData = useSelector(\r\n (s) => s.data.support.all\r\n ); \r\n\r\n console.log(\"hooks 3\")\r\n\r\n const dispatch = useDispatch();\r\n const dispatchLoadSupport = React.useCallback(\r\n () => dispatch(loadSupport()),\r\n [dispatch]\r\n );\r\n\r\n return [allData, dispatchLoadSupport] as [\r\n typeof allData,\r\n typeof dispatchLoadSupport\r\n ];\r\n};\r\n\r\n","import { ThunkType } from \"../../../core/store/reducers\";\r\nimport getSupportApi from \"../api/getSupportData\";\r\nimport { setData } from \"../supportDataSlice\";\r\n\r\nexport const loadSupport = (): ThunkType => async (dispatch, getStore) => {\r\n const store = getStore();\r\n\r\n if (store.data.auth.current.status !== \"successful\") {\r\n return;\r\n }\r\n\r\n const userid = store.data.auth.current.user.userId;\r\n console.log(\"load 1\")\r\n const support = await dispatch(getSupportApi(userid));\r\n console.log(\"load 2\")\r\n \r\n dispatch(setData(support || []));\r\n};\r\n","import React from \"react\";\r\nimport { Table, TableDataProps } from \"../../components/common/Table\";\r\nimport { useSupportData } from \"../../../data/support/hooks/useSupportData\";\r\nimport { EmpContactData } from \"../../../data/support/types\";\r\nimport { useSupportColumns } from \"./useSupportColumns\";\r\nimport { AccessRights } from \"../../../core/navigation/types\";\r\n\r\nexport interface SupportTableProps {\r\n userAccessRights: AccessRights;\r\n}\r\n\r\ntype SupportTablePropsType = SupportTableProps & TableDataProps;\r\n\r\nexport const SupportTable: React.FunctionComponent = ({\r\n userAccessRights,\r\n ...tableProps\r\n}) => {\r\n\r\n const [data, loadAll] = useSupportData();\r\n\r\n const columns = useSupportColumns();\r\n\r\n return (\r\n \r\n {...tableProps}\r\n getData={loadAll}\r\n immutableData={data}\r\n title=\"\"\r\n columns={columns}\r\n options={{\r\n toolbar: false,\r\n pageSize: 10,\r\n actionsColumnIndex: -1,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default SupportTable;\r\n","import { useContext, useMemo } from \"react\";\r\nimport { LocalizationContext } from \"../../../core/localization/Localization\";\r\nimport { Column } from \"material-table\";\r\nimport { EmpContactData } from \"../../../data/support/types\";\r\n\r\n\r\nexport function useSupportColumns() {\r\n const { getString } = useContext(LocalizationContext);\r\n return useMemo(\r\n () => [\r\n {\r\n title: getString(\"empName\"),\r\n field: \"empName\",\r\n\t\t\t\tsorting: false,\r\n\t\t\t\twidth: \"400px\",\r\n\t\t\t\tcellStyle: {\r\n\t\t\t\t\tmaxWidth: \"400px\",\r\n\t\t\t\t},\r\n\t\t\t\theaderStyle: {\r\n\t\t\t\t\tmaxWidth: \"400px\",\r\n\t\t\t\t},\r\n },\r\n {\r\n title: getString(\"empTel\"),\r\n field: \"empTel\",\r\n\t\t\t\tsorting: false,\r\n },\r\n {\r\n title: getString(\"empMob\"),\r\n field: \"empMob\",\r\n\t\t\t\tsorting: false,\r\n },\r\n ],\r\n [getString]\r\n ) as Column[];\r\n}\r\n","import { NavigationItem } from \"../../../core/navigation/types\";\r\nimport SupportPage from \"./SupportPage\";\r\nimport { supportLocation } from \"./Locations\";\r\n\r\nexport const contactsComponents: NavigationItem[] = [\r\n\t{\r\n\t\tComponent: SupportPage,\r\n\t\tisMenuItem: true,\r\n\t\tpath: supportLocation,\r\n\t},\r\n];\r\n","import React from \"react\";\r\nimport { Grid, CardContent, CardHeader, Divider, Card, Fab } from \"@material-ui/core\";\r\nimport { SupportTable } from \"./SupportTable\";\r\nimport { usePageStyles } from \"../../pageStyles\";\r\nimport { PageComponent, AccessRights } from \"../../../core/navigation/types\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { PageTitle } from \"../../components/common/PageTitle\";\r\nimport { useSupportData } from \"../../../data/support/hooks/useSupportData\";\r\n\r\nconst SupportPage: PageComponent = ({ userAccessRights }) => {\r\n\tconst pageStyles = usePageStyles();\r\n\r\n\tconst [data, loadAll] = useSupportData();\r\n\r\n\tReact.useEffect(() => {\r\n\t\tloadAll();\r\n\t}, [loadAll ]);\r\n\r\n\tconst history = useHistory();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\n\r\nexport default SupportPage;\r\n","\r\nexport const supportLocation = \"/support\";\r\n","import { contactsComponents } from \"./contacts/navigationComponents\";\r\n\r\nexport const supportComponents = [...contactsComponents];\r\n\r\n","import { domesticComponents } from \"../domestic/domesticNavigationItems\";\r\nimport { foreignComponents } from \"../foreign/foreignNavigationItems\";\r\nimport { settingsComponents } from \"../settings/settingsNavigationItems\";\r\nimport { reportsComponents } from \"../reports/reportsNavigationItems\";\r\nimport { supportComponents } from \"../support/supportNavigationItems\"\r\n\r\nexport const appComponents = [\r\n ...domesticComponents,\r\n ...foreignComponents,\r\n ...settingsComponents,\r\n ...reportsComponents,\r\n ...supportComponents,\r\n]","import { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\nimport { UserMenuItem } from \"../../models\";\r\n\r\nexport const useUserMenuItems = () => {\r\n\tconst menuItems = useSelector(store => store.data.initialData.userMenu);\r\n\r\n\treturn [menuItems] as [typeof menuItems];\r\n};\r\n","import React from \"react\";\r\nimport { PageComponent } from \"../../core/navigation/types\";\r\n\r\nexport const UnderConstruction: PageComponent = ({ userAccessRights }) => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
{`Under construction`}
\r\n\t\t\t
{`User access rights: ${userAccessRights}`}
\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\"\r\nimport AccountingIcon from \"@material-ui/icons/AssignmentOutlined\";\r\nimport CliringIcon from \"@material-ui/icons/AccountBalanceOutlined\";\r\nimport BusinessIcon from \"@material-ui/icons/BusinessOutlined\";\r\nimport ReportIcon from \"@material-ui/icons/AssessmentOutlined\";\r\nimport SurveillanceIcon from \"@material-ui/icons/DvrOutlined\";\r\nimport DashboardIcon from \"@material-ui/icons/DashboardOutlined\";\r\n\r\nexport type IconDictionary = {\r\n [k: string]: React.FunctionComponent\r\n}\r\n\r\nexport const iconDictionary: IconDictionary = {\r\n \"00000001\": BusinessIcon,\r\n \"00000002\": DashboardIcon,\r\n \"00000003\": CliringIcon,\r\n \"00000004\": SurveillanceIcon,\r\n \"00000005\": ReportIcon,\r\n \"00000006\": AccountingIcon,\r\n}","import { appComponents } from \"../appNavigationItems\";\r\nimport React from \"react\";\r\nimport { MenuItemType, SubmenuMenuItemType, LinkMenuItemType } from \"../../../core/navigation/types\";\r\nimport { useUserMenuItems } from \"../../../data/initialData/hooks/useUserMenuItems\";\r\nimport { UnderConstruction } from \"../../underConstruction/UnderConstruction\";\r\nimport { iconDictionary } from \"../menuIcons\";\r\nimport { AuthorizationState } from \"../../../data/auth/types\";\r\n\r\nexport const useNavigationItems = (onMenu?: boolean) =>\r\n\tReact.useMemo(() => [...appComponents.filter(c => onMenu === undefined || c.isMenuItem === onMenu)], [\r\n\t\tonMenu,\r\n\t]);\r\n\r\nexport const useMenuItems = (): MenuItemType[] => {\r\n\tconst [userMenuItems] = useUserMenuItems();\r\n\tconst navigationItems = useNavigationItems(true);\r\n\r\n\tconst sortedUserItems = React.useMemo(() => {\r\n\t\tconst sorted = [...userMenuItems];\r\n\t\tsorted.sort((a, b) => a.level - b.level);\r\n\t\treturn sorted;\r\n\t}, [userMenuItems]);\r\n\r\n\treturn React.useMemo(\r\n\t\t() =>\r\n\t\t\tsortedUserItems.reduce((acc, item) => {\r\n\t\t\t\tconst menuItem: MenuItemType = {\r\n\t\t\t\t\tkey: item.miId,\r\n\t\t\t\t\ttitle: item.miName,\r\n\t\t\t\t\taccessRights: item.readOnly,\r\n\t\t\t\t\tpath: item.path,\r\n\t\t\t\t\tComponent:\r\n\t\t\t\t\t\tnavigationItems.find(i => i.path === item.path)?.Component || UnderConstruction,\r\n\t\t\t\t\titems: [],\r\n\t\t\t\t\ttype: item.path ? \"Link\" : \"Menu\",\r\n\t\t\t\t\ticon: iconDictionary[item.miId],\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst parrent = findMenuItem(acc, i => i.key === item.parentId);\r\n\t\t\t\tif (parrent && parrent.type === \"Menu\") {\r\n\t\t\t\t\tparrent.items.push(menuItem);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tacc.push(menuItem);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn acc;\r\n\t\t\t}, []),\r\n\t\t[sortedUserItems, navigationItems]\r\n\t);\r\n};\r\n\r\nexport const useLinkMenuItems = (): LinkMenuItemType[] => {\r\n\tconst menuItems = useMenuItems();\r\n\treturn React.useMemo(() => filterdMenuItem(menuItems, item => item.type === \"Link\"), [\r\n\t\tmenuItems,\r\n\t]) as LinkMenuItemType[];\r\n};\r\n\r\nconst findMenuItem = (\r\n\titems: MenuItemType[],\r\n\tpredicate: (item: MenuItemType) => boolean\r\n): MenuItemType | undefined => {\r\n\tconst submenues = items.filter(i => i.type === \"Menu\") as SubmenuMenuItemType[];\r\n\tlet found = submenues.find(predicate) as MenuItemType | undefined;\r\n\r\n\tif (found !== undefined) {\r\n\t\treturn found;\r\n\t}\r\n\r\n\tfor (let submenu of submenues) {\r\n\t\tfound = findMenuItem(submenu.items, predicate);\r\n\t\tif (found) {\r\n\t\t\treturn found;\r\n\t\t}\r\n\t}\r\n\r\n\treturn undefined;\r\n};\r\n\r\nconst filterdMenuItem = (\r\n\titems: MenuItemType[],\r\n\tpredicate: (item: MenuItemType) => boolean,\r\n\tstart: MenuItemType[] = []\r\n) => {\r\n\tlet result = start.concat(items.filter(predicate));\r\n\tconst submenues = items.filter(i => i.type === \"Menu\") as SubmenuMenuItemType[];\r\n\r\n\tfor (let submenu of submenues) {\r\n\t\tresult = filterdMenuItem(submenu.items, predicate, result);\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n\r\nexport const useShouldConnectNotifications = () => {\r\n\tconst navigationItems = useNavigationItems();\r\n\tconst notificationItems = React.useMemo(() => navigationItems.filter(n => n.notifications), [\r\n\t\tnavigationItems,\r\n\t]);\r\n\tconst [menuItems] = useUserMenuItems();\r\n\treturn React.useMemo(() => menuItems.some(mi => notificationItems.some(n => n.path === mi.path)), [\r\n\t\tmenuItems,\r\n\t\tnotificationItems,\r\n\t]);\r\n};\r\n","import React from \"react\";\r\nimport { MenuList } from \"../core/navigation/MenuItemComponents\";\r\nimport { useMenuItems } from \"../views/navigation/hooks/useNavigationItems\";\r\n\r\nexport const NavList: React.FunctionComponent = () => {\r\n\tconst menuItems = useMenuItems();\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n","import { makeStyles, Theme, createStyles, Grid } from \"@material-ui/core\";\r\n\r\nexport const useNavDrawerStyles = makeStyles((theme: Theme) => {\r\n\tconst { permanentBreakpoint, fullWidth } = theme.navDrawer;\r\n\r\n\treturn createStyles({\r\n\t\tdrawer: {\r\n\t\t\t[permanentBreakpoint]: {\r\n\t\t\t\t// width: hiddenWidth,\r\n\t\t\t\t// \"&:hover\": {\r\n\t\t\t\t// \twidth: fullWidth,\r\n\t\t\t\t// \ttransition: theme.transitions.create(\"width\", {\r\n\t\t\t\t// \t\teasing: theme.transitions.easing.sharp,\r\n\t\t\t\t// \t\tduration: theme.transitions.duration.enteringScreen,\r\n\t\t\t\t// \t}),\r\n\t\t\t\t// },\r\n\t\t\t\t// \"&:not(:hover)\": {\r\n\t\t\t\t// \ttransition: theme.transitions.create(\"width\", {\r\n\t\t\t\t// \t\teasing: theme.transitions.easing.sharp,\r\n\t\t\t\t// \t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t\t\t// \t}),\r\n\t\t\t\t// },\r\n\t\t\t\twidth: fullWidth,\r\n\r\n\t\t\t\tflexShrink: 0,\r\n\t\t\t\toverflowX: \"hidden\",\r\n\t\t\t\t// \"& + main\": {\r\n\t\t\t\t// \twidth: `calc(100% - ${hiddenWidth}px)`,\r\n\t\t\t\t// \ttransition: theme.transitions.create(\"width\", {\r\n\t\t\t\t// \t\teasing: theme.transitions.easing.sharp,\r\n\t\t\t\t// \t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t\t\t// \t}),\r\n\t\t\t\t// },\r\n\t\t\t\t// \"&:hover + main\": {\r\n\t\t\t\t// \twidth: `calc(100% - ${fullWidth}px)`,\r\n\t\t\t\t// \ttransition: theme.transitions.create(\"width\", {\r\n\t\t\t\t// \t\teasing: theme.transitions.easing.sharp,\r\n\t\t\t\t// \t\tduration: theme.transitions.duration.enteringScreen,\r\n\t\t\t\t// \t}),\r\n\t\t\t\t// },\r\n\t\t\t\t// \"&:not(:hover) .MuiCollapse-container\": {\r\n\t\t\t\t// \tdisplay: \"none\",\r\n\t\t\t\t// }\r\n\t\t\t\t\"& + main\": {\r\n\t\t\t\t\twidth: `calc(100% - ${fullWidth}px)`,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tdrawerPaper: {\r\n\t\t\twidth: fullWidth,\r\n\t\t\t// \"&:hover\": {\r\n\t\t\t// \twidth: fullWidth,\r\n\t\t\t// \ttransition: theme.transitions.create(\"width\", {\r\n\t\t\t// \t\teasing: theme.transitions.easing.sharp,\r\n\t\t\t// \t\tduration: theme.transitions.duration.enteringScreen,\r\n\t\t\t// \t}),\r\n\t\t\t// },\r\n\t\t\t// \"&:not(:hover)\": {\r\n\t\t\t// \ttransition: theme.transitions.create(\"width\", {\r\n\t\t\t// \t\teasing: theme.transitions.easing.sharp,\r\n\t\t\t// \t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t\t// \t}),\r\n\t\t\t// },\r\n\t\t\t// [permanentBreakpoint]: {\r\n\t\t\t// \twidth: hiddenWidth,\r\n\t\t\t// },\r\n\t\t\toverflowX: \"hidden\",\r\n\t\t},\r\n\t\tmenuItem: {\r\n\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\tpaddingLeft: theme.spacing(2),\r\n\t\t},\r\n\t\tnestedMenuItem: {\r\n\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\tpaddingLeft: theme.spacing(4),\r\n\t\t},\r\n\t\tnestedMenuItem2: {\r\n\t\t\twhiteSpace: \"nowrap\",\r\n\t\t\tpaddingLeft: theme.spacing(6),\r\n\t\t},\r\n\t\tlogo: {\r\n\t\t\tmarginLeft: `auto`,\r\n\t\t\twidth: \"90%\",\r\n\t\t},\r\n\r\n\r\n\t});\r\n});\r\n","import React from \"react\";\r\nimport { Drawer, useTheme, useMediaQuery, List,ListItem ,ListItemText } from \"@material-ui/core\";\r\nimport { NavList } from \"./NavList\";\r\nimport { useNavDrawerStyles } from \"./NavDrawerStyles\";\r\nimport { useAuth } from \"../data/auth/hooks\";\r\n\r\ninterface NavDrawerProps {\r\n\topen: boolean;\r\n\ttoggleOpen: () => void;\r\n}\r\n\r\nexport const NavDrawer: React.FunctionComponent = props => {\r\n\tconst { open, toggleOpen } = props;\r\n\tconst styles = useNavDrawerStyles();\r\n\tconst theme = useTheme();\r\n\tconst permanentDrawer = useMediaQuery(theme.navDrawer.permanentBreakpoint);\r\n\r\n\tconst [auth] = useAuth();\r\n\r\n\tif (auth.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tlet bddlogo2 = auth.user.hasLogo === 2 || auth.user.hasLogo === 3 ? require(\"'../../../public/\"+auth.user.companyId+\"_logo2.jpg\") : 0\r\n\r\n\t\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { createMuiTheme, ThemeProvider } from \"@material-ui/core\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { StoreType } from \"../core/store/reducers\";\r\n\r\ndeclare module \"@material-ui/core/styles/createMuiTheme\" {\r\n\tinterface Theme {\r\n\t\tnavDrawer: {\r\n\t\t\tfullWidth: number;\r\n\t\t\thiddenWidth: number;\r\n\t\t\tpermanentBreakpoint: string;\r\n\t\t};\r\n\t}\r\n\tinterface ThemeOptions {\r\n\t\tnavDrawer?: {\r\n\t\t\tfullWidth: number;\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport const ThemeComponent: React.FunctionComponent = (props) => {\r\n\tconst colorBdd = useSelector(\r\n\t\t(store) => store.ux.auth.colorBdd\r\n\t);\r\n\r\n\r\n\tconst theme = createMuiTheme({\r\n\t\tpalette: {\r\n\t\t\tprimary: {\r\n\t\t\t\tmain: colorBdd ? colorBdd : \"#133D8D\", //ilirika \r\n//\t\t\t\tmain: \"#133D8D\", //ilirika\r\n\t\t\t\t///\t\t\tmain: \"#0091d0\",\r\n\t\t\t\t//\t\t\tmain: \"#00897B\",\r\n\t\t\t},\r\n\t\t\tsecondary: {\r\n\t\t\t\tmain: \"#f58345\",\r\n\t\t\t\t//\t\t\tmain: \"#772E25\",\r\n\t\t\t},\r\n\t\t\twarning: {\r\n\t\t\t\tmain: \"#ff0000\",\r\n\t\t\t\t//\t\t\tmain: \"#772E25\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tnavDrawer: {\r\n\t\t\tfullWidth: 240,\r\n\t\t},\r\n\t});\r\n\r\n\ttheme.navDrawer.permanentBreakpoint = theme.breakpoints.up(\"md\");\r\n\ttheme.navDrawer.hiddenWidth = theme.spacing(7);\r\n\r\n\treturn {props.children};\r\n};\r\n","import React from \"react\";\r\nimport { DisplayDrawerContext } from \"./DisplayDrawerContext\";\r\nimport { Drawer } from \"@material-ui/core\";\r\nimport { Theme, makeStyles, createStyles } from \"@material-ui/core\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/CloseOutlined\";\r\n\r\nexport const useDisplayDrawerStyles = makeStyles((theme: Theme) => {\r\n\treturn createStyles({\r\n\t\tloginDrawerPaper: {\r\n width: \"100vw\",\r\n [theme.breakpoints.only(\"sm\")]: {\r\n width: \"60vw\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"50vw\",\r\n },\r\n [theme.breakpoints.up(\"lg\")]: {\r\n width: \"30vw\",\r\n },\r\n\t\t\tpaddingTop: \"40px\",\r\n\t\t\tpaddingLeft: \"10px\",\r\n\t\t\tpaddingRight: \"10px\",\r\n\t\t\tpaddingBottom: \"10px\",\r\n\t\t\toverflowX: \"hidden\",\r\n },\r\n\r\n\t\tdrawerPaper: {\r\n width: \"100vw\",\r\n [theme.breakpoints.only(\"sm\")]: {\r\n width: \"60vw\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"50vw\",\r\n },\r\n [theme.breakpoints.up(\"lg\")]: {\r\n width: \"30vw\",\r\n },\r\n\t\t\tpaddingTop: \"40px\",\r\n\t\t\tpaddingLeft: \"10px\",\r\n\t\t\tpaddingRight: \"10px\",\r\n\t\t\tpaddingBottom: \"10px\",\r\n\t\t\toverflowX: \"hidden\",\r\n\t\t\t// display: \"flex\",\r\n\t\t\t// flexDirection: \"column\",\r\n\t\t\t// justifyContent: \"center\",\r\n\t\t},\r\n\t\theader: {\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tjustifyContent: \"flex-end\",\r\n\t\t\t//padding: \"10px\",\r\n\t\t\tposition: \"fixed\",\r\n\t\t\ttop: \"5px\",\r\n\t\t\tright: \"10px\",\r\n\t\t},\r\n\t\tcloseButton: {\r\n\t\t\tpadding: \"5px\",\r\n\t\t},\r\n\t\tcloseIcon: {\r\n\t\t\theight: \"1.2rem\",\r\n\t\t\twidth: \"1.2rem\",\r\n\t\t}\r\n\t});\r\n});\r\n\r\nexport const DisplayDrawer: React.FunctionComponent = ({ children }) => {\r\n\tconst [displayContent, setDisplayContext] = React.useState();\r\n\tconst styles = useDisplayDrawerStyles();\r\n\tconst close = React.useCallback(() => setDisplayContext(undefined), [setDisplayContext]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t{displayContent}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { CssBaseline, makeStyles, createStyles, Theme } from \"@material-ui/core\";\r\nimport { useToggleState } from \"../core/util/hooks\";\r\nimport { MainBar } from \"./MainBar\";\r\nimport { NavDrawer } from \"./NavDrawer\";\r\nimport { ThemeComponent } from \"./Theme\";\r\nimport { DisplayDrawer } from \"./DisplayDrawer\";\r\n\r\nconst useStyles = makeStyles((theme: Theme) => {\r\n\treturn createStyles({\r\n\t\troot: {\r\n\t\t\tdisplay: \"flex\",\r\n\t\t},\r\n\t\tmainContent: {\r\n\t\t\twidth: \"100%\",\r\n\t\t},\r\n\t});\r\n});\r\n\r\nexport const ContentLayout: React.FunctionComponent = props => {\r\n\tconst styles = useStyles();\r\n\tconst [drawerOpen, toggleDrawerOpen] = useToggleState(false);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
{props.children}
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst ThemedContentLayout: React.FunctionComponent = props => (\r\n\t\r\n\t\t{props.children}\r\n\t\r\n);\r\n\r\nexport default ThemedContentLayout;\r\n","import { makeStyles, Theme, createStyles } from \"@material-ui/core\";\r\nexport const useLoginStyles = makeStyles((theme: Theme) => {\r\n\t\r\n\treturn createStyles({\r\n\t\tloginDrawerPaper: {\r\n\t\t\twidth: \"100vw\",\r\n\t\t\t[theme.breakpoints.only(\"sm\")]: {\r\n\t\t\t\twidth: \"60vw\",\r\n\t\t\t},\r\n\t\t\t[theme.breakpoints.up(\"sm\")]: {\r\n\t\t\t\twidth: \"50vw\",\r\n\t\t\t},\r\n\t\t\t[theme.breakpoints.up(\"lg\")]: {\r\n\t\t\t\twidth: \"30vw\",\r\n\t\t\t},\r\n\t\t},\r\n\t\twraper: {\r\n\t\t\tposition: \"relative\", // Dodajemo kako bi video mogao biti pozadina\r\n\t\t\theight: \"100vh\", // Podesite visinu na 100vh da pokrije celu visinu ekrana\r\n\t\t },\r\n\r\n\t\tvideoBackground: {\r\n\t\t\tposition: \"absolute\",\r\n\t\t\ttop: \"50%\",\r\n\t\t\tleft: \"50%\",\r\n\t\t\twidth: \"100%\",\r\n\t\t\theight: \"100%\",\r\n\t\t\tobjectFit: \"cover\", // Osigurava da video popuni celu pozadinu\r\n\t\t\ttransform: \"translate(-50%, -50%)\", // Centriranje videa\r\n\t\t\tzIndex: -1, // Video ide ispod sadržaja\r\n\t\t },\r\n\t \r\n\t\t videoBackgroundFallback: {\r\n\t\t\tposition: \"absolute\",\r\n\t\t\ttop: \"50%\",\r\n\t\t\tleft: \"50%\",\r\n\t\t\twidth: \"100%\",\r\n\t\t\theight: \"100%\",\r\n\t\t\tobjectFit: \"cover\",\r\n\t\t\ttransform: \"translate(-50%, -50%)\",\r\n\t\t\tzIndex: -1,\r\n\t\t },\r\n\t\t \r\n\t\tformItem: {\r\n\t\t\t\"&:not(:first-child)\": {\r\n\t\t\t\tmarginTop: theme.spacing(2),\r\n\t\t\t},\r\n\t\t\twidth: \"60%\",\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tjustifyContent: \"center\",\r\n\t\t\talignItems: \"center\",\r\n\t\t},\r\n\t\ttextField: {\r\n\t\t\twidth: \"100%\",\r\n\t\t},\r\n\t\tformContainer: {\r\n\t\t\theight: \"100%\",\r\n\t\t},\r\n\t\tlocaleSelection: {\r\n\t\t\twidth: \"60%\",\r\n\t\t\tdisplay: \"flex\",\r\n\t\t\tjustifyContent: \"flex-end\",\r\n\t\t\talignItems: \"center\",\r\n\t\t},\r\n\t\talert: {\r\n\t\t\tposition: \"absolute\",\r\n\t\t\ttop: theme.spacing(2),\r\n\t\t\twidth: \"100%\",\r\n\t\t},\r\n\t});\r\n});\r\n\r\n\r\n","import React from \"react\";\r\nimport { AuthorizationState } from \"../../data/auth/types\";\r\nimport { LocalizationContext } from \"../../core/localization/Localization\";\r\nimport { Alert } from \"@material-ui/lab\";\r\n\r\nexport interface LoginErrorProps {\r\n\tauth: AuthorizationState;\r\n\tclassName?: string;\r\n}\r\n\r\nexport const LoginError: React.FunctionComponent = ({ auth, className }) => {\r\n const { getErrorString } = React.useContext(LocalizationContext);\r\n\r\n\tif (auth.status !== \"failed\") {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{getErrorString(auth.error)}\r\n\t\t\r\n\t);\r\n};\r\n","import React, { useState, useContext } from \"react\";\r\nimport { useLocalizationStore } from \"../../data/localization/hooks\";\r\nimport { useAuth, useLastLoginUsername } from \"../../data/auth/hooks\";\r\nimport { LocalizationContext } from \"../../core/localization/Localization\";\r\nimport { LocalizationLanguage } from \"../../core/localization/types\";\r\nimport { TextField, Grid, Button } from \"@material-ui/core\";\r\nimport { ToggleButtonGroup, ToggleButton } from \"@material-ui/lab\";\r\nimport { useLoginStyles } from \"./useLoginStyles\";\r\nimport { LoginError } from \"./LoginError\";\r\n\r\nconst handleTBChange = (setter: (value: string) => void) => (event: React.ChangeEvent) =>\r\n\tsetter(event.target.value);\r\n\r\nconst onEnter = (action: () => void) => (e: React.KeyboardEvent) =>\r\n\te.key === \"Enter\" && action();\r\n\r\nexport const LoginForm: React.FunctionComponent = props => {\r\n\tconst styles = useLoginStyles();\r\n\tconst { getString } = useContext(LocalizationContext);\r\n\t// const lastUsername = useLastLoginUsername();\r\n\tconst [local, setLocal] = useLocalizationStore();\r\n\tconst [username, setUsername] = useState(\"\");\r\n\tconst [password, setPassword] = useState(\"\");\r\n\tconst [authState, sendLogin] = useAuth();\r\n\r\n\tconst loading = authState.status === \"pending\";\r\n\tconst error = authState.status === \"failed\";\r\n\tconst login = () => sendLogin(username, password, local, \"W\");\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t setLocal(v)} size=\"small\">\r\n\t\t\t\t\tEN\r\n\t\t\t\t\tSR\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Drawer, CssBaseline } from \"@material-ui/core\";\r\nimport { LoginForm } from \"./LoginForm\";\r\nimport { useLoginStyles } from \"./useLoginStyles\";\r\n\r\nexport const LoginPage: React.FunctionComponent = props => {\r\n\tconst styles = useLoginStyles();\r\n\tconst [isVideoAvailable, setIsVideoAvailable] = useState(false);\r\n\r\n\tconst basePath = process.env.PUBLIC_URL || '';\r\n\r\n\tuseEffect(() => {\r\n\t\t// Provera dostupnosti video fajla\r\n\t\tconst checkVideoAvailability = async () => {\r\n\t\t\ttry {\r\n\t\t\t\tconst response = await fetch(`${basePath}/log-in-video.mp4`, { method: \"HEAD\" });\r\n\t\t\t\tsetIsVideoAvailable(response.ok); // Ako je video dostupan, postavlja na true\r\n\t\t\t} catch {\r\n\t\t\t\tsetIsVideoAvailable(false); // Ako fetch ne uspe, postavlja na false\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tcheckVideoAvailability();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t{isVideoAvailable ? (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tVaš preglednik ne podržava video tag.\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\n\r\n","import React from \"react\";\r\nimport { Switch, Route } from \"react-router-dom\";\r\nimport {\r\n useNavigationItems,\r\n useLinkMenuItems,\r\n} from \"./hooks/useNavigationItems\";\r\n//import MainBoard from \"../trading/mainBoard/MainBoard\"\r\nimport { useAuth } from \"../../data/auth/hooks\";\r\n\r\nexport const PageRouterSwitch = () => {\r\n const linkMenuItems = useLinkMenuItems();\r\n const editComponents = useNavigationItems(false);\r\n const [auth] = useAuth();\r\n \r\n if (auth.status !== \"successful\") {\r\n\t\treturn null;\r\n\t}\r\n \r\n return (\r\n \r\n {editComponents.map((Item) => (\r\n \r\n ))}\r\n {linkMenuItems.map((Link) => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport Collapse from \"@material-ui/core/Collapse\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardActions from \"@material-ui/core/CardActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport { SnackbarContent } from \"@material-ui/core\";\r\nimport { useSnackbarMessage } from \"../../data/snackbar/hooks/useSnackbarMessage\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\troot: {\r\n\t\t[theme.breakpoints.up(\"sm\")]: {\r\n\t\t\tminWidth: \"344px !important\",\r\n\t\t},\r\n\t\twidth: \"100%\",\r\n\t},\r\n\twarning: {\r\n\t\tbackgroundColor: theme.palette.warning.light,\r\n\t},\r\n\terror: {\r\n\t\tbackgroundColor: theme.palette.error.main,\r\n\t},\r\n\ttypography: {\r\n\t\tfontWeight: \"bold\",\r\n\t},\r\n\tactionRoot: {\r\n\t\tpadding: \"8px 8px 8px 16px\",\r\n\t\tjustifyContent: \"space-between\",\r\n\t},\r\n\ticons: {\r\n\t\tmarginLeft: \"auto\",\r\n\t},\r\n\texpand: {\r\n\t\tpadding: \"8px 8px\",\r\n\t\ttransform: \"rotate(0deg)\",\r\n\t\ttransition: theme.transitions.create(\"transform\", {\r\n\t\t\tduration: theme.transitions.duration.shortest,\r\n\t\t}),\r\n\t},\r\n\texpandOpen: {\r\n\t\ttransform: \"rotate(180deg)\",\r\n\t},\r\n\tcollapse: {\r\n\t\tpadding: 16,\r\n\t},\r\n\tcheckIcon: {\r\n\t\tfontSize: 20,\r\n\t\tcolor: \"#b3b3b3\",\r\n\t\tpaddingRight: 4,\r\n\t},\r\n\tbutton: {\r\n\t\tpadding: 0,\r\n\t\ttextTransform: \"none\",\r\n\t},\r\n\tbackground: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tmessage: {\r\n\t\twidth: \"100%\",\r\n\t\tpadding: 0,\r\n\t},\r\n}));\r\n\r\nexport const CollapsableMessage = React.forwardRef((props: any, ref) => {\r\n\tconst classes = useStyles();\r\n\tconst { closeSnackbar } = useSnackbar();\r\n\tconst [expanded, setExpanded] = useState(false);\r\n\tconst [snackbarMessage, dismiss, setShoenId] = useSnackbarMessage(props.message);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tsetShoenId(props.id);\r\n\t\tif (Notification.permission === \"granted\" && snackbarMessage) {\r\n\t\t\tnew Notification(snackbarMessage.title, {\r\n\t\t\t\ticon: process.env.PUBLIC_URL + \"favicon.ico\",\r\n\t\t\t\tbody: snackbarMessage.message.join(\"\\r\\n\")\r\n\t\t\t});\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleExpandClick = () => {\r\n\t\tsetExpanded(!expanded);\r\n\t};\r\n\r\n\tconst handleDismiss = () => {\r\n\t\tdismiss();\r\n\t\tcloseSnackbar(props.id);\r\n\t};\r\n\r\n\tconst expandClassName = expanded ? `${classes.expand} ${classes.expandOpen}` : classes.expand;\r\n\tconst cardClassName = React.useMemo(() => snackbarMessage?.type === \"error\" ? classes.error : classes.warning, [])\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{snackbarMessage?.title}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{snackbarMessage?.message.map((line, i) => (\r\n\t\t\t\t\t\t\t\t{line}\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t/>\r\n\t);\r\n});\r\n","import React from \"react\";\r\nimport { SnackbarMessage } from \"../types\";\r\nimport { dismiss, setShownId } from \"../snackbarDataSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { StoreType } from \"../../../core/store/reducers\";\r\n\r\nexport const useNextMessage = (max: number) => {\r\n\tconst messages = useSelector(store => store.data.snackbar.messages);\r\n\r\n\tconst shownMessage = React.useMemo(() => {\r\n\t\tfor (let i = 0; i < messages.length && i < max; i++) {\r\n\t\t\tif (!messages[i].shownId) {\r\n\t\t\t\treturn messages[i];\r\n\t\t\t}\r\n }\r\n return undefined;\r\n\t}, [messages, max]);\r\n\r\n\treturn [shownMessage] as [typeof shownMessage];\r\n};\r\n\r\nexport const useSnackbarMessage = (id: string) => {\r\n\tconst messages = useSelector(store => store.data.snackbar.messages);\r\n\tconst message = messages.find(m => m.id === id);\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst dismissMessage = React.useCallback(() => {\r\n\t\tif (message) {\r\n\t\t\tdispatch(dismiss(message.id));\r\n\t\t}\r\n }, [message, dispatch]);\r\n\r\n\tconst dispatchSetShownId = React.useCallback((shownId: string) => {\r\n\t\tif (message) {\r\n\t\t\tdispatch(setShownId({\r\n messageId: message.id,\r\n shownId: shownId\r\n }));\r\n\t\t}\r\n\t}, [message, dispatch]);\r\n\r\n\treturn [message, dismissMessage, dispatchSetShownId] as [typeof message, typeof dismissMessage, typeof dispatchSetShownId];\r\n};\r\n","import React from \"react\";\r\nimport { useNextMessage } from \"../../data/snackbar/hooks/useSnackbarMessage\";\r\nimport { SnackbarProvider, useSnackbar } from \"notistack\";\r\nimport { CollapsableMessage } from \"./CollapsableMessage\";\r\n\r\nexport const SnackbarMessages: React.FunctionComponent = ({ children }) => (\r\n\t }\r\n\t>\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t\r\n);\r\n\r\nexport const MessageQueueManager: React.FunctionComponent = () => {\r\n\tconst [message] = useNextMessage(3);\r\n\r\n\tconst { enqueueSnackbar } = useSnackbar();\r\n\tReact.useEffect(() => {\r\n\t\tif (message !== undefined) {\r\n\t\t\tenqueueSnackbar(message.id, {\r\n\t\t\t\tpersist: true,\r\n\t\t\t});\r\n\t\t}\r\n\t}, [message, enqueueSnackbar]);\r\n\treturn null;\r\n};\r\n","import React from \"react\";\r\nimport { ContentLayout } from \"../layout/ContentLayout\";\r\nimport { LoginPage } from \"./login/LoginPage\";\r\nimport { PageRouterSwitch } from \"./navigation/PageRouterSwitch\";\r\nimport { useAuth } from \"../data/auth/hooks\";\r\nimport { ThemeComponent } from \"../layout/Theme\";\r\nimport { SnackbarMessages } from \"./snackbar/SnackbarMessages\";\r\nimport { NotificationContextProvider } from \"../core/notifications/NotificationContext\";\r\nimport { appConfig } from \"../core/config/config\";\r\nimport { canRecieveNotifications } from \"../core/notifications/hooks\";\r\nimport { IdleTimerContainer } from \"../layout/UserAvatar\";\r\n\r\n\r\nexport const ContentRoot: React.FunctionComponent = props => {\r\n\tconst [auth] = useAuth();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{auth.status === \"successful\" ? (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport \"./main.css\"\n\nReactDOM.render(, document.getElementById(\"root\"));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import React from \"react\";\r\nimport StoreProvider from \"./core/store/StoreProvider\";\r\nimport { HashRouter as Router } from \"react-router-dom\";\r\nimport { LocalizationContextProvider } from \"./core/localization/Localization\";\r\nimport { ContentRoot } from \"./views/ContentRoot\";\r\nimport { appConfig } from \"./core/config/config\"\r\n\r\nexport default () => (\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\n","var map = {\n\t\"./ERSTE_logo1.jpg\": 725,\n\t\"./ILIRIK_logo1.jpg\": 726,\n\t\"./M&V_logo1.jpg\": 727\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 724;","module.exports = \"data:image/jpeg;base64,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\"","module.exports = \"data:image/jpeg;base64,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\"","module.exports = \"data:image/jpeg;base64,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\""],"sourceRoot":""}