{"version":3,"sources":["utils/functions/enums.ts","gateways/RfpGateway/rfp.types.ts","contexts/AppContext.ts","views/features/Markets/MarketsGridNew/MarketsTable.module.scss","gateways/RfpGateway/rfpConstants.ts","utils/functions/subscriptionUtils.ts","contexts/DashboardContext.ts","store/authStore.tsx","views/features/Dashboard/Header/components/SettingsModal/SettingsModule.module.scss","utils/functions/calculations.ts","store/tradingAccountStore.tsx","views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber.tsx","utils/hooks/useObservable.ts","setup/routes.ts","store/WatchListStore/watchListStore.tsx","utils/functions/WatchlistUtils.ts","utils/hooks/useForceRerender.ts","shared/Button/Button.tsx","utils/functions/Nullable.ts","setup/config.ts","utils/hooks/useSelectedTradingAccount.tsx","views/features/Dashboard/TradeTicket/TradeTicket.module.scss","views/features/Dashboard/Watchlist/WatchList.module.scss","utils/functions/Ioc.ts","store/accountStatusStore.tsx","views/features/Dashboard/InstrumentSearch/InstrumentSearch.module.scss","store/tradingViewStore.ts","contexts/RfpGatewayContext.ts","utils/hooks/usePromiseFactory.ts","shared/Modal/Modal.tsx","store/OrderStore/orderStore.initial.ts","store/OrderStore/orderStore.tsx","store/OrderStore/orderStore.helpers.ts","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/InfoElement.tsx","views/features/Dashboard/CloseTradeTicket/ClosePositionTicket.module.scss","utils/hooks/useShortTranslation.ts","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/OrderInformation.module.scss","setup/i18n.ts","views/components/BidAskSpread/BidAskSpread.module.scss","pages/TradersGym/TradersGymContext.tsx","views/features/Dashboard/PositionsPanel/PositionGrid/PositionGrid.module.scss","views/features/Dashboard/Watchlist/WatchlistsDropDown/WatchlistsDropDown.module.scss","views/features/Dashboard/Watchlist/Lists/WatchlistEdit.module.scss","views/components/WtrPopup/WtrPopup.tsx","views/features/Dashboard/PositionsPanel/PositionsPanel.module.scss","views/components/InstrumentSummary/InstrumentHeader.module.scss","utils/functions/Lazy.ts","shared/Button/index.ts","views/features/Dashboard/Header/AccountPanel/MarginLevel.module.scss","views/features/Dashboard/TradeBoard/TradeBoardHeader/TradeBoardHeader.module.scss","views/components/Permissions/config.types.ts","contexts/InstrumentContext.ts","setup/subscriptionsConfig.ts","views/features/Markets/NewsWidget/NewsWidgetStyles.module.scss","views/features/Dashboard/ChartPanel/NewOrderModals/ConfirmOrderModal/ConfirmOrderModal.module.scss","utils/mutations/useSaveUserPreferences.ts","views/features/Dashboard/Header/components/AccountMenuPopupSection.module.scss","views/features/Dashboard/Settings/settingsOptions.ts","store/QuoteStore/quoteStore.ts","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeTicket.module.scss","utils/functions/StringUtils.ts","views/features/Dashboard/Header/Header.module.scss","pages/Signals/SignalsList/SignalsList.module.scss","views/components/Community/components/CommunityList/CommunityList.module.scss","views/features/Dashboard/Header/AccountPanel/RemainingVolume.module.scss","gateways/RfpGateway/RfpGateway.ts","views/features/Markets/MarketsGrid/MarketsGrid.module.scss","views/features/Dashboard/Watchlist/Instrument/Instrument.module.scss","utils/hooks/watchlist/useSaveWatchlistToPreferences.tsx","views/features/Dashboard/PositionsPanel/Grids/helpers.ts","views/features/Markets/MarketsGridNew/components/TableSettingsModal.module.scss","store/PipsStore/pipStore.initial.ts","store/PipsStore/pipStore.tsx","views/features/Dashboard/Dashboard.module.scss","utils/hooks/useForceCloseModal.ts","shared/LiveChat/LiveChat.module.scss","store/PositionsStore/positionsStore.tsx","utils/functions/uniqueId.ts","store/createSelectors.tsx","utils/hooks/useSubscriptionInfo.ts","pages/Signals/SignalsList/SignalPercentElement/SignalPercentElement.module.scss","views/features/Dashboard/Header/AccountPanel/CurrencyStats.module.scss","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeButtons/OneClickTradeButtons.module.scss","views/features/Markets/Markets.module.scss","views/components/FeedbackModal/FeedbackModal.module.scss","views/features/Dashboard/Header/AccountPanel/TradingAccounts/TradingAccounts.module.scss","pages/Subscriptions/SubscriptionSelector/TierTile.module.scss","views/components/MarketItemFormatter/useMarketItemsMap.ts","utils/hooks/useOrderTicketAccess.tsx","contexts/WindowContext.ts","utils/hooks/useGetTranslatedWLName.ts","utils/functions/isWindowStyles.ts","contexts/ChartContext.ts","utils/functions/TypeUtils.ts","views/features/Dashboard/TradeBoard/TradeBoard.module.scss","views/features/Dashboard/CloseTradeTicket/CancelOrderTicket.module.scss","utils/hooks/useSubscriptionModal.ts","contexts/MarginRulesContext.ts","utils/functions/Observables.ts","views/features/Dashboard/ChartPanel/NewOrderModals/DetachedModal/DetachedModal.module.scss","shared/WtrTooltip/WtrTooltip.tsx","store/create.tsx","views/components/Tooltip/Tooltip.tsx","utils/functions/chartIqTimeZone.ts","utils/hooks/preferences/useFillContextsFromPreferences.ts","pages/TradersGym/Positions/GymTradingPosition.ts","views/components/MoneyFormatter/MoneyFormatter.tsx","utils/functions/marketItems/marketItemGroupMapFormatter.ts","pages/Subscriptions/SubscriptionSelector/SubscriptionSelector.module.scss","utils/functions/constants.ts","views/components/CloseButton/CloseButton.tsx","store/OrderStore/orderStore.types.ts","views/features/Dashboard/Header/components/SettingsModal/TwoFactorAuthentication/TwoFactorAuthModal.module.scss","views/features/Dashboard/Watchlist/SearchResult/SearchResult.module.scss","views/features/Dashboard/Watchlist/WatchlistHeader/WatchlistHeader.module.scss","shared/WtrToggle/WtrToggle.module.scss","views/components/ContactModal/ContactModal.module.scss","views/components/Loading/Loading.tsx","views/components/GroupBadge/InstrumentIcon.tsx","pages/TradersGym/Accounts/GymTradingManager.ts","gateways/TfboGateway/TfboGateway.types.ts","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeDropdown/OneClickTradeDropdown.module.scss","pages/Signals/SignalsList/SignalsFilter/SignalsFilter.module.scss","utils/functions/PromiseFactory.ts","views/features/Dashboard/Watchlist/AddToWatchlist/AddToWatchlist.tsx","views/features/Dashboard/Watchlist/Lists/WatchlistsList.tsx","views/components/DailyPercent/DailyPercent.tsx","views/components/InstrumentSummary/InstrumentHeader.tsx","views/features/Dashboard/Watchlist/CreateWatchlistButton/CreateWatchlistButton.module.scss","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/InfoElement.module.scss","views/components/NotificationModal/NotificationModal.module.scss","views/components/ReconnectModal/ReconnectModal.module.scss","views/features/Markets/MarketsGridNew/components/DraggableTableHeader.tsx","views/features/Markets/MarketsGridNew/components/DragAlongCell.tsx","shared/WtrModal/index.ts","contexts/MarginRequirementsContext.tsx","utils/hooks/usePreferredFeedId.ts","views/components/ToastNotificationContent/ToastNotificationContent.tsx","utils/functions/toastNotificationUtils.tsx","views/features/Markets/MarketsGridNew/components/LowOrHigh.tsx","views/features/Markets/MarketsGridNew/components/SellOrBuyButton.tsx","views/features/Dashboard/Navigation/Items/Signals.module.scss","pages/Tutorials/Tutorials.module.scss","views/features/Dashboard/ChartPanel/NewOrderModals/ClosedTicketModal/ClosedTicketModal.module.scss","views/features/Markets/MarketsGridNew/components/NewWatchlistsList.module.scss","shared/AccountStatusCTA/AccountStatusCTA.module.scss","views/features/Dashboard/Navigation/Items/Item.module.scss","shared/Checkbox/Checkbox.module.scss","pages/Subscriptions/CurrencyDetails/CurrencyDetails.module.scss","views/components/WtrDropdown/WtrDropdown.tsx","utils/hooks/useLogout.ts","utils/hooks/system/useSwitchMode.tsx","views/features/Dashboard/TradeTicket/NumberInput/FormattedNumberInput/FormattedNumberInput.tsx","views/features/Dashboard/TradeTicket/NumberInput/LotsAwareInput/LotsAwareInput.tsx","views/features/Dashboard/TradeTicket/NumberInput/NumberInput.tsx","shared/Button/Button.module.scss","views/components/Shared/TradingSessionTooltip.module.scss","views/components/Notifications/components/NotificationsList/NotificationsList.module.scss","views/features/Dashboard/Header/components/AccountMenuPopup.module.scss","pages/Subscriptions/Carousel/Carousel.module.scss","utils/hooks/useGridHeight.tsx","views/features/Markets/MarketsGridNew/components/SettingTrigger.tsx","utils/hooks/useTimeSessions.ts","views/features/Dashboard/PositionsPanel/Grids/components/CalcSwapValue.tsx","views/features/Dashboard/Watchlist/CreateWatchlistButton/CreateWatchlistButton.tsx","pages/TradersGym/Positions/GymPositionUtils.ts","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/utils.ts","views/features/Dashboard/Watchlist/Lists/WatchlistsList.module.scss","views/components/ToastNotificationContent/ToastNotificationContent.module.scss","views/features/Dashboard/TradeTicket/NumberInput/NumberInput.module.scss","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/SessionInformation/WeekInformation.module.scss","views/features/Dashboard/Header/AccountPanel/AccountStats.module.scss","pages/Subscriptions/SubscriptionAlert/SubscriptionAlert.module.scss","chartiq/GridViewCharts/ChartUtils.tsx","utils/functions/subscriptionManager.ts","views/components/Resizable/WtrResizable.tsx","views/components/Resizable/config.ts","gateways/UserPreferencesGateway/defaultCFDPreference.ts","utils/functions/fillUserPrefLocally.ts","shared/WtrModal/WtrModal.tsx","views/features/Dashboard/Newsfeed/Newsfeed.module.scss","pages/TradersGym/HistoryData/GymRefQuotesStore.ts","views/components/GroupBadge/GroupBadge.module.scss","views/components/DailyPercent/DailyPercent.module.scss","views/components/Notifications/components/NotificationsItem/NotificationsItem.module.scss","views/features/Dashboard/Header/AccountPanel/AccountPanel.module.scss","components/InfoModal/InfoModal.module.scss","views/features/Dashboard/Navigation/Items/SignalsPopup.module.scss","layouts/AuthLayout/AuthLayout.module.scss","pages/Calendar/Calendar.module.scss","views/features/DashboardContainerComponent/DashboardContainerComponent.module.scss","views/features/Dashboard/PositionsPanel/Grids/components/SettingsGrid.tsx","views/features/Dashboard/PositionsPanel/Grids/components/renderClearFilters.tsx","utils/hooks/useMoneyFormatter.tsx","images/metals.svg","images/forex.svg","images/crypto.svg","images/energy.svg","images/indices.svg","views/features/Dashboard/PositionsPanel/Grids/components/LimitProfitLossButton.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CloseIcon.tsx","shared/AccountStatusCTA/AccountStatusCTA.tsx","setup/credentials.ts","utils/hooks/useDynamicWatchLists.tsx","views/components/Shared/TradingSessionTooltip.tsx","utils/functions/closeChildWindows.ts","utils/functions/sortSearchResults.ts","views/components/DetachIcon/DetachIcon.tsx","utils/functions/getAccountStats.ts","utils/hooks/useSubscriptionConstraints.ts","utils/hooks/useHandleSubscriptionConstraints.ts","utils/functions/OrderedSet.ts","pages/TradersGym/HistoryData/GymHistoryDataStore.ts","pages/TradersGym/HistoryData/GymHistoryManager.ts","views/features/Dashboard/Watchlist/EmptySearch/EmptySearch.module.scss","views/features/Markets/MarketSignals/MarketSignalsGate/MarketSignalsGate.module.scss","views/features/Markets/MarketSignals/MarketSignals.module.scss","views/features/Dashboard/Header/components/AccountIconAndTier.module.scss","images/commodities.svg","images/et-fs.svg","images/stocks.svg","utils/functions/uniqueArticle.ts","views/features/Dashboard/Newsfeed/NewsKeywords.tsx","images/loader_dark.svg","images/loader_light.svg","utils/functions/getTimeFrameTranslation.ts","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/MarginRequirements/MarginRequirements.module.scss","views/features/Dashboard/Navigation/RightNavigation/Items/Item.module.scss","pages/Signals/SignalsEmptyState/SignalsEmptyState.module.scss","views/features/Markets/MarketsGridNew/components/MarketsEmptyState.module.scss","views/components/SearchableList/SearchableList.module.scss","views/components/Notifications/components/NotificationsIcon/NotificationsIcon.module.scss","views/components/Notifications/Notifications.module.scss","views/components/LangSelect/LangSelect.module.scss","views/features/Dashboard/Navigation/Navigation.module.scss","views/features/Dashboard/Navigation/IconToggles/OneClickTradingToggle.module.scss","pages/Subscriptions/SubscriptionAlert/OrHzDivider/OrHzDivider.module.scss","views/features/Dashboard/PositionsPanel/Grids/components/CurrentPrice.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcGrossPL.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcNetPL.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcPLPips.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcComment.tsx","views/features/Dashboard/PositionsPanel/Grids/components/EditIcon.tsx","views/features/Markets/NewsWidget/NewsPopup.tsx","shared/WtrSlider/WtrSlider.tsx","utils/mutations/useRefreshJWTToken.tsx","utils/hooks/useStorageDOMEvents.ts","views/features/Dashboard/TradeTicket/LimitProfitLoss/utils.ts","views/features/Dashboard/Watchlist/Instrument/Instrument.tsx","views/components/BidAskSpread/BidAskSpread.tsx","utils/hooks/useHandleOrderConstraint.ts","utils/hooks/useIsInViewport.ts","views/components/GroupBadge/GroupBadge.tsx","views/features/Markets/NewsWidget/NewsArticle.tsx","views/components/JapanNewsDisclaimer/JapanNewsDisclaimer.tsx","utils/hooks/useUpdateSBWatchlistInstruments.tsx","views/features/Dashboard/Watchlist/SearchResult/SearchResult.tsx","views/features/Dashboard/Watchlist/EmptySearch/EmptySearch.tsx","utils/functions/getSearchResults.ts","views/features/Dashboard/Watchlist/WatchlistsDropDown/WatchlistsDropDown.tsx","views/components/GroupBadge/MarketItemIcon.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/DetachedModal/DetachedModal.tsx","utils/mutations/useUpdateUserPrefPips.tsx","views/features/Markets/MarketsGridNew/hooks/useClickOutside.ts","utils/hooks/usePlayNotificationSound.ts","images/risers.svg","images/fallers.svg","images/most-volatiles.svg","utils/hooks/useSignalsAccessRestriction.tsx","utils/functions/submitDynamicForm.ts","utils/hooks/useWindowSize.ts","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/MarginRequirements/RequirementLine.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/MarginRequirements/MarginRequirements.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/SessionInformation/WeekInformation.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/ModalOrderInformation.tsx","shared/ConditionalWrapper/ConditionalWrapper.tsx","shared/Modal/DraggableModalDialog/DraggableModalDialog.tsx","views/features/ThinkPortal/IframeThinkPortal.module.scss","views/components/Community/components/CommunityIcon/CommunityIcon.module.scss","views/features/Dashboard/Header/components/AccountMenu.module.scss","views/features/Dashboard/Header/AccountPanel/TradingAccounts/SubscriptionOptions.module.scss","pages/Calendar/Insights.module.scss","views/features/Dashboard/CloseTradeTicket/CancelOrderTicket.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/ConfirmOrderModal/ConfirmOrderModal.tsx","views/features/Dashboard/CloseTradeTicket/ClosePositionTicketHeader.tsx","views/features/Dashboard/CloseTradeTicket/ClosePositionTicket.tsx","images/tiers/tier1.svg","images/tiers/tier2.svg","images/tiers/tier3.svg","views/features/Dashboard/TradeTicket/index.tsx","pages/Signals/SignalsEmptyState/SignalsEmptyState.tsx","images/loader.svg","images/grab-indicator.svg","images/comment.svg","images/empty-notification-list.svg","images/flags/eur.svg","images/flags/gbp.svg","images/flags/aud.svg","images/flags/cad.svg","images/flags/chf.svg","images/flags/nzd.svg","images/flags/sgd.svg","images/flags/zar.svg","images/flags/usd.svg","images/flags/jpy.svg","views/components/Loading/Loading.module.scss","views/features/Dashboard/Watchlist/AddToWatchlist/AddToWatchlist.module.scss","views/components/CloseButton/CloseButton.module.scss","views/features/Dashboard/TradeTicket/TradeTicketCalendar/TradeTicketCalendar.module.scss","pages/Signals/SignalsList/SortingChevronIcons/SortingChevronIcons.module.scss","pages/Subscriptions/SubscriptionDetails/SubscriptionDetails.module.scss","views/components/userGuideModal/UserGuideModal.module.scss","pages/TradersGym/Accounts/ServiceIssuesModal/ServiceIssuesModal.module.scss","views/components/LangSelect/LangSelect.tsx","pages/TradersGym/Player/GymDataItemPlayer.ts","shared/LiveChat/config.ts","shared/LiveChat/Horizontal.tsx","shared/LiveChat/Vertical.tsx","shared/LiveChat/LiveChat.tsx","views/components/InputError/InputError.tsx","utils/hooks/useResizableContainersWidth.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/OrderInformation.tsx","utils/queries/useSignals.tsx","utils/mutations/useSubmitFeedback.tsx","views/components/FeedbackModal/FeedbackModal.tsx","views/components/SearchableList/SearchableList.tsx","views/components/Fragment.tsx","utils/functions/simulateClick.ts","views/features/Dashboard/InstrumentSearch/InstrumentSearch.tsx","contexts/NotificationsContext.tsx","views/components/Notifications/components/NotificationsIcon/NotificationsIcon.tsx","views/components/Notifications/components/NotificationsItem/NotificationsItem.tsx","views/components/Notifications/components/NotificationsList/NotificationsList.tsx","views/components/Notifications/Notifications.tsx","views/components/Community/components/CommunityList/CommunityList.tsx","utils/hooks/useCountryPrivacyPolicy.ts","views/components/Community/components/CommunityIcon/CommunityIcon.tsx","views/components/Community/Community.tsx","views/features/Dashboard/Header/components/SettingsModal/PlatformSettings.tsx","utils/functions/passwordValidation.ts","utils/queries/useGetMFAEnabled.tsx","views/features/Dashboard/Header/components/SettingsModal/MFAManagement.tsx","views/features/Dashboard/Header/components/SettingsModal/SecuritySettings.tsx","views/features/Dashboard/Header/components/SettingsModal/TradingSettings.tsx","views/features/Dashboard/Header/components/SettingsModal/AvatarIcons.tsx","utils/mutations/useGetPhoneCodesAndFlags.ts","views/features/Dashboard/Header/components/SettingsModal/ProfileSettings.tsx","utils/mutations/useChangePassword.tsx","views/features/Dashboard/Header/components/SettingsModal/PasswordSettings.tsx","views/features/Dashboard/Header/components/SettingsModal/SettingsModal.tsx","views/features/Dashboard/Header/components/SettingsOptions.tsx","views/features/Dashboard/Header/components/AccountUserIcon/AccountUserIcon.tsx","views/features/Dashboard/Header/components/AccountMenuPopup.tsx","views/features/Dashboard/Header/components/AccountMenu.tsx","views/features/Dashboard/Header/AccountPanel/AccountStats.tsx","views/features/Dashboard/Header/AccountPanel/RemainingVolume.tsx","images/flags/index.ts","views/features/Dashboard/Header/components/AccountCurrency.tsx","views/features/Dashboard/Header/components/AccountIconAndTier.tsx","views/features/Dashboard/Header/AccountPanel/TradingAccounts/SubscriptionOptions.tsx","utils/hooks/system/useSwitchAccount.tsx","views/features/Dashboard/Header/AccountPanel/TradingAccounts/TradingAccounts.tsx","views/features/Dashboard/Header/AccountPanel/CurrencyStats.tsx","views/features/Dashboard/Header/AccountPanel/AccountPanel.tsx","views/features/Dashboard/Header/Header.tsx","views/features/Dashboard/Navigation/Items/Item.tsx","views/features/Dashboard/Navigation/Items/Trade.tsx","views/features/Dashboard/Navigation/Items/Markets.tsx","views/components/SearchInput/useOutsideAlerter.tsx","components/InfoModal/InfoModal.tsx","views/features/Dashboard/Navigation/Items/Signals.tsx","views/features/Dashboard/Navigation/Items/SignalsPopup.tsx","views/features/Dashboard/Navigation/Items/Calendar.tsx","views/features/Dashboard/Navigation/Items/Management.tsx","views/features/Dashboard/Navigation/Items/Guide.tsx","pages/TradersGym/Positions/GymPositionManager.ts","pages/TradersGym/Accounts/GymTradingAccount.ts","pages/TradersGym/Accounts/GymAccountUtils.ts","utils/hooks/useEnableTradersGym.ts","views/features/Dashboard/Navigation/Items/TradersGym.tsx","shared/WtrToggle/WtrToggle.tsx","views/features/Dashboard/Navigation/IconToggles/ThemeToggle.tsx","views/features/Dashboard/Navigation/IconToggles/OneClickTradingToggle.tsx","views/features/Dashboard/Navigation/Navigation.tsx","shared/Checkbox/Checkbox.tsx","utils/functions/stripHtmlTags.ts","pages/Subscriptions/Carousel/Carousel.tsx","pages/Subscriptions/CurrencyDetails/CurrencyDetails.tsx","utils/functions/currencyPairsUtils.ts","utils/subscriptions/useSubscribe.tsx","utils/subscriptions/useChangeTier.tsx","pages/Subscriptions/SubscriptionSelector/TierTile.tsx","pages/Subscriptions/SubscriptionSelector/SubscriptionSelector.tsx","pages/Subscriptions/SubscriptionDetails/SubscriptionDetails.tsx","utils/subscriptions/useCancelSubscription.tsx","utils/subscriptions/useStopSubscription.tsx","utils/subscriptions/useResumeSubscription.tsx","pages/Subscriptions/SubscriptionAlert/OrHzDivider/OrHzDivider.tsx","pages/Subscriptions/SubscriptionAlert/SubscriptionAlert.tsx","utils/hooks/useHandleSubscribeResponse.ts","utils/hooks/useHandleDemoPendingExpiry.ts","utils/subscriptions/useFetchSubscriptionStatus.tsx","pages/Subscriptions/SubscriptionChecker/SubscriptionChecker.tsx","views/components/NotificationModal/NotificationModal.tsx","views/components/userGuideModal/UserGuide.tsx","views/components/ContactModal/ContactModal.tsx","views/components/ReconnectModal/ReconnectModal.tsx","utils/hooks/watchlist/useWatchlistSync.ts","layouts/AuthLayout/AuthLayout.tsx","pages/Signals/helpers.ts","views/features/Dashboard/TradeTicket/TradeTicketCalendar/TradeTicketCalendar.tsx","views/features/Dashboard/TradeTicket/LimitProfitLoss/LimitProfitLoss.tsx","views/features/Dashboard/TradeTicket/TradeTicket.tsx","utils/functions/translateDate.ts","utils/hooks/usePresentTradeEvent.ts","utils/hooks/useSubscribeTradeEvent.ts","utils/functions/Dispatcher.ts","pages/TradersGym/HistoryData/GymHistoryRequest.ts","views/features/Dashboard/PositionsPanel/Grids/components/Change.tsx","views/features/Dashboard/PositionsPanel/Grids/components/GymRemoveModal.tsx","views/features/Dashboard/PositionsPanel/Grids/components/PositionSearch.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcDistanceToMarket.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/ClosedTicketModal/ClosedTicketModal.tsx","views/features/Dashboard/Header/AccountPanel/MarginLevel.tsx","utils/functions/documentUtils.ts","pages/TradersGym/Accounts/ServiceIssuesModal/ServiceIssuesModal.tsx","views/features/Dashboard/TradeBoard/TradeBoardHeader/TradeBoardHeader.tsx","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeDropdown/OneClickTradeDropdown.tsx","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeButtons/OneClickTradeButtons.tsx","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeTicket.tsx","gateways/RfpGateway/rfpTrades.ts","views/features/Dashboard/TradeBoard/TradeBoardItem/TradeBoardItem.tsx","views/features/Dashboard/TradeBoard/TradeBoard.tsx","views/features/Dashboard/PositionsPanel/Grids/Position/usePositionGridColumn.tsx","views/features/Dashboard/PositionsPanel/Grids/Position/usePositionTable.tsx","views/features/Dashboard/PositionsPanel/Grids/Position/PositionTable.tsx","views/features/Dashboard/PositionsPanel/Grids/Order/useOrderGridColumn.tsx","views/features/Dashboard/PositionsPanel/Grids/Order/useOrderTable.tsx","views/features/Dashboard/PositionsPanel/Grids/Order/OrderTable.tsx","views/features/Dashboard/PositionsPanel/Grids/components/infoIcon.tsx","views/features/Dashboard/PositionsPanel/Grids/Closed/useClosedGridColumn.tsx","views/features/Dashboard/PositionsPanel/Grids/Closed/useClosedTable.tsx","views/features/Dashboard/PositionsPanel/Grids/Closed/ClosedTable.tsx","views/features/Dashboard/PositionsPanel/PositionsPanel.tsx","views/features/Dashboard/Watchlist/WatchlistHeader/WatchlistHeader.tsx","views/features/Dashboard/Watchlist/DetachWatchList/components/DetachWatchlistPercentChange.tsx","views/features/Dashboard/Watchlist/DetachWatchList/useDetachWatchListColumn.tsx","views/features/Dashboard/Watchlist/DetachWatchList/useDetachWatchList.tsx","views/features/Dashboard/Watchlist/DetachWatchList/DetachWatchList.tsx","views/features/Dashboard/Watchlist/Lists/WatchlistEdit.tsx","views/features/Dashboard/Watchlist/Watchlist.tsx","views/features/Dashboard/Navigation/RightNavigation/Items/Item.tsx","views/features/Dashboard/Navigation/RightNavigation/Items/Trade.tsx","views/features/Dashboard/Navigation/RightNavigation/Items/Info.tsx","views/features/Dashboard/Navigation/RightNavigation/Items/News.tsx","views/features/Dashboard/Navigation/RightNavigation/RightNavigation.tsx","pages/Signals/SignalsList/SignalPercentElement/SignalPercentElement.tsx","pages/Signals/SignalsList/SortingChevronIcons/SortingChevronIcons.tsx","pages/Signals/SignalsList/SignalsFilter/SignalsFilter.tsx","pages/Signals/SignalsList/SignalsList.tsx","views/components/EmptyNews/EmptyNews.tsx","views/features/Dashboard/Newsfeed/Newsfeed.tsx","views/components/ThemeWrapper/ThemeWrapper.module.scss","shared/WtrModal/WtrModal.module.scss","views/components/InputError/InputError.module.scss","views/components/JapanNewsDisclaimer/JapanNewsDisclaimer.module.scss","views/components/DetachIcon/DetachIcon.module.scss","views/features/Dashboard/TradeTicket/NumberInput/FormattedNumberInput/FormattedNumberInput.module.scss","shared/WtrTooltip/WtrTooltip.module.scss","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/MarginRequirements/RequirementLine.module.scss","docs/sound.wav","shared/WtrSlider/WtrSlider.module.scss","views/features/Markets/MarketSignals/MarketSignalsList/MarketsSignalsList.module.scss","images/feedbackStars/oneStar.png","images/feedbackStars/twoStars.png","images/feedbackStars/threeStars.png","images/feedbackStars/fourStars.png","images/feedbackStars/fiveStars.png","views/features/Dashboard/Header/components/AccountUserIcon/AccountUserIcon.module.scss","views/features/Dashboard/Header/components/AccountCurrency.module.scss","docs/Web-User-Guide-Japan.pdf","images lazy /^/.//.*/.svg$/ groupOptions: {} namespace object","index.scss","setup/gtm.ts","webpack:///./src/workers/BinaryRfpClient.worker.ts?c2be","workers/BinaryRfpClient.worker.ts","gateways/RfpGateway/BinaryRfpGateway.ts","setup/registerIcons.ts","setup/monitoring.ts","setup/axios.ts","views/components/ThemeWrapper/ThemeWrapper.tsx","utils/functions/subscrOpParamsPersistHelper.ts","gateways/errorMessages.ts","gateways/RfpGateway/websocket.ts","utils/functions/getUrlWithAppendedQueryString.ts","utils/queries/useApplicationStatus.tsx","utils/queries/useUserProfile.tsx","utils/queries/useUserStats.tsx","utils/hooks/preferences/useStoreAndLoadPreferences.ts","utils/hooks/preferences/useUpdatePipsPreferences.ts","utils/queries/useUserPreferences.tsx","utils/mutations/useExchangeSSOCode.tsx","utils/queries/useAggreementStatus.tsx","utils/hooks/system/useInitialize.tsx","views/components/Permissions/withLiveAccount_inDemoMode.ts","views/components/Permissions/withLiveAccount_inLiveMode.ts","views/components/Permissions/withoutLiveAccount_inDemoMode.ts","views/components/Permissions/withoutLiveAccount_inLiveMode.ts","views/components/Permissions/AccountStatusHandler.tsx","utils/mutations/useSetupMFA.tsx","utils/mutations/useSetMFAStatus.tsx","views/features/Dashboard/Header/components/SettingsModal/TwoFactorAuthentication/TwoFactorAuthModal.tsx","utils/functions/changeLanguageForPortal.ts","views/components/AuthGuard/AuthGuard.tsx","utils/functions/lazyRetry.ts","views/features/Dashboard/Dashboard.tsx","views/features/Markets/NewsWidget/NewsWidget.tsx","views/features/Markets/MarketSignals/MarketSignalsGate/MarketSignalsGate.tsx","views/features/Markets/MarketSignals/MarketSignalsList/MarketSignalsList.tsx","views/features/Markets/MarketSignals/MarketSignals.tsx","store/MarketTableFilterStore/marketTableFilterStore.ts","views/features/Markets/MarketsGrid/utils.ts","views/features/Markets/MarketsGridNew/components/FilterBar.tsx","views/features/Markets/MarketsGridNew/components/PercentChange.tsx","views/features/Markets/MarketsGridNew/components/TableSettingsModal.tsx","views/features/Markets/MarketsGridNew/components/VolativityProgressBar.tsx","views/features/Markets/MarketsGridNew/components/NewWatchlistsList.tsx","views/features/Markets/MarketsGridNew/components/AddToWatchlistWrapper.tsx","views/features/Markets/MarketsGridNew/components/MarketsEmptyState.tsx","views/features/Markets/MarketsGridNew/MarketsTable.tsx","views/components/MarketItemFormatter/useMarketItemFormatter.ts","views/features/Markets/Markets.tsx","utils/functions/postMessageToTp.ts","utils/functions/handleDepositRedirect.ts","views/features/ThinkPortal/IframeThinkPortal.tsx","utils/queries/useCalendarToken.tsx","pages/Calendar/Insights.tsx","pages/Calendar/Calendar.tsx","utils/mutations/useGenerateSSOToken.tsx","utils/hooks/useFetchDataFromYoutube.ts","pages/Tutorials/SingleTutorial.tsx","pages/Tutorials/Tutorials.tsx","views/features/DashboardContainerComponent/DashboardContainerComponent.tsx","Content.tsx","utils/hooks/usePageVisibility.ts","App.tsx","workers/serviceWorkerContainer.ts","index.tsx","shared/NewUpdateNotification/utils.ts"],"names":["MarketsGroupName","MarketsGroupTooltips","MarketsGroupPeriod","AppComponentType","MarginAccountType","QuantityType","PhoneNumbers","ApplicationStatus","ChartTimezone","TicketLayout","GridType","TradingPositionType","stopLossTypes","TradingPositionLimitType","TradingPositionSide","TradingAccountType","QUANTITY_TYPE","LOTS","AMOUNT","SignalType","ThaiPriceType","RFPDataObjectType","RFPConnectionErrorType","AccountMarketType","PositionSide","SubscriptionAction","TradingPositionState","defaultValues","Lazy","isLoading","isArabic","localStorage","getItem","accessToken","appTheme","accountStats","autoShowModal","statusModal","noDemoAccountModal","unapprovedAppModal","insufficientFundModal","incompleteApplication","resetAccountModal","underReviewModal","successfulActCreation","feedbackModal","contactModal","openSettings","reconnectModal","ipLocation","email","emailVerification","feedbackResponse","firstName","isLoggedIn","isTwofaEnabled","lastName","loginResponse","loginResponseStatus","modalId","phoneNumber","phone","phoneCountryCode","resetPasswordInfo","selectedLanguage","twofaBarcodeKey","twofaSecretKey","userPreferences","userId","isChildWindow","tradingMode","userPreferenceError","languageSettings","isJapanAccount","agreementPendingVersion","userCountryISO","countryData","subscriptionInfo","subscriptionModal","canFetchSubscrInfo","currentlySelectedSignal","limitProfitLossValues","octStoredValues","AppContextProvider","ObservableObject","this","_instance","getValue","m_propertyValues","value","raiseAndSetIfChanged","setItem","toUpperCase","_this$m_propertyValue","_this$m_propertyValue2","isOpen","reason","constructor","super","clone","reset","defaultVals","logout","_AppContextProvider","createContext","Resolver","isSet","isRegistered","resolve","instance","module","exports","concat","process","REACT_APP_RFP_STOMP_WEBPROXY","RFP","tfboLoginResponse","tfboEndpointResponse","ping","pong","getFeedIds","getMarketItems","getMarketItemsInfo","getTradingAccounts","getTradingProviders","manageHistory","manageHistoryDate","manageQuotes","manageTradingNews","manageMarketWinNews","getNewsGroups","getMarketWatchIntervals","getMarketWatchCategories","getMarketWatchSnapshots","getMarketWatchSubscription","getMarketWatchDynamicSubscription","getTTSessionTimes","rfpServerNames","requestRfpServerNames","queueDemoAccountParams","queueErrors","queueFeedIds","queueHistoricalDataUpdates","queueInfos","queueMarketItems","queueMarketItemsInfo","queueQuotes","queueTradingAccountsError","queueSessionTimes","queueTradingAccount","queueTradingAccountProperties","queueTradingProvider","queueTradingAccountLogin","queueTierInfo","queueTradingAccountInstruments","queueTradingNews","queueMarketWinNews","queueTradingNewsConfig","queueTradingNewsGroup","queueTradeEvent","queueTradeEventExt","queueTradingPositionUpdates","queueMarketWatchCategories","queueMarketWatchIntervals","queueMarketWatchItem","queueMarketWatchItems","queueHistorySize","queueHistoryStartDate","queuePreviousDayClosePrice","queueTierUpdateInfo","tradingAccountLogin","tradingAccountLogout","TTWatchList","requestTTWatchList","TTMarginRules","requestTTMarginRules","requestFutureMargin","futureMargin","closeTrade","connect","editOrder","editPosition","newOrder","newTrade","partialClose","updateQuantityType","All","HistoryTickItems","HistoryTick","HistorySize","PriceQuote","TfboLoginResponse","TfboEndpointResponse","Pong","FeedInfos","TradingAccount","TradingAccountLogin","TradingAccountLogout","TradingProvider","TradeEvent","TradingPosition","MarketWatchIntervals","MarketWatchCategories","MarketWatchItem","MarketWatchItems","RFPNews","MarketItem","MarketItemsRecord","HistoryTimescaleStartDate","TradingAccountsError","TTSessionTimes","SubscriptionStatus","ACCOUNT_SUBSCRIPTION_STATUS_WITH_TIER_INFO","Active","shouldShowTierIcon","status","includes","SubscriptionModalReason","UserOperationType","defaultSubscriptionModalState","text","instrument","defaultSubscriptionInfo","tier","tierNum","nextTier","enabled","TTTier","expiryDate","startDate","isDemoUnlimited","maxVolume","usedVolume","remainingVolume","getInstrumentMinTier","instrumentCode","instrumentList","_instrumentList$find","find","code","minTier","getTierNumFromName","parseInt","charAt","length","getFormattedDateHelper","datetime","formatString","globalLocale","moment","locale","format","formattedDate","getGeneralFormatDate","date","includeHM","arguments","undefined","isJapanFormat","JAPAN_DATETIMES_FORMAT","JAPAN_DATE_FORMAT","GENERAL_DATETIMES_FORMAT","GENERAL_DATE_FORMAT","getSubscriptionExpiryDate","endOfMonth","endOf","unix","getSubscriptionStartDate","startOfMonth","startOf","checkIsVolumeUnlimited","checkIsVolumeExceeded","_subscriptionInfo$tie","checkIsTierOrderSizeExceeded","orderSize","_tiers$find","currentTier","orderMaxLimit","tiers","id","maxPerOrder","checkIsGlobalOrderSizeExceeded","isNaN","GLOBAL_MAX_ORDER_SIZE","checkHasSubscriptionOptions","subscriptionStatus","Unpaid","Stopped","getSubscriptionConstraints","marketItems","operation","_getInitModalPropsByS","statusBasedReason","getInitModalPropsByStatus","checkIsOperationGranted","CLOSE","CANCEL","Existing","checkIsInstrumentAllowed","currentTierNum","instrumentMinTier","Instrument","canSeeSubscriptionDetails","checkMustShowTierSelector","modalReason","SubscriptionForExistingUser","ManageSubscription","UpgradeSubscription","Volume","OrderSizeUpgradable","SubscribeFromAlert","UpgradeToAccessGym","checkMustShowAlert","SubscriptionForNewUser","SubscriptionForUnpaidUser","Renewal","Cancelled","Terminated","ChangeTierResponse","SubscribeResponse","ConfirmStop","ConfirmRestart","SubscriptionDetails","CancelSubscriptionResponse","StopSubscriptionResponse","RestartSubscriptionResponse","NoSuperiorTiers","SystemError","OrderSizeGlobal","NotAuthorized","IncorrectParamsForBJP","GymNotAccessibleForTier","JapanAccountEmptyApplicationStatus","statusToReasonMap","Suspended","NoRecord","Incomplete","displayVolumeInfo","amount","appContextProvider","i18n","t","formatNumberWithCommas","getUpdatedSubscrInfoObject","updateProps","infoObject","getStatusRelatedSubscrInfoUpdate","getActiveTier","_infoObject$tier","toLowerCase","getNextMonthTier","getTierDisplayName","tierId","tierKey","tiersKeysMap","getTierNameByNumber","tierNumber","getMinReqTierDisplayText","getAnyLiveUserAccount","appContext","_appContext$accountSt","liveAccountForDemo","_ref2","account","type","accountNumber","toString","checkHasUserDemoAccount","_appContext$accountSt2","_ref3","getJPAcctIdForTierInfoRequest","_appContext$accountSt3","_appContext$accountSt4","liveJapanSubscriptionAccount","_ref4","platformAccountType","PlatformAccountType","ThinkTrader","getJPAcctIdForTierInfoRequestFromTradingAccounts","tradingAccounts","_liveJapanSubscriptio","_ref5","accountType","accountMarketType","Japan","presentComponentType","Watchlist","alreadyEstablished","accountValues","balance","margin","freeMargin","marginLevel","equity","pl","organizationName","orderModalOpenedFrom","updateMarketWatchItem","marketWatchIntervals","marketWatchCategories","marketWatchItem","marketWatchItems","marketWatchRisers","daily","weekly","marketWatchRisersSB","marketWatchFallers","marketWatchFallersSB","marketWatchMostVolatile","marketWatchMostVolatileSB","closedTable","historicalData","detailedInformation","defaultWatchLists","mainPanelView","marketItemsInfo","multiCharts","newChart","notificationMessage","notificationType","tradeNews","openTable","orderTable","orderType","quantityType","notificationSoundMuted","notificationSoundVolume","tradeFromChartEnabled","rfpConnectionError","selectedTradingAccount","selectedInstrument","selectedSymbol","selectedPosition","selectedNewsContent","symbolChanged","toggleOverlay","positionProfitLosses","tradingAccount","tradingPositions","tradingPositionsArr","tradingPositionsLength","twoFactorAuthModalToggle","startTradingNow","watchlist","hsSubs","instruments","orderConfirm","new","edit","cancel","close","oneClickTrading","keyPress","marketIndex","rfpGatewayProvider","inactiveTime","inactiveModal","openOrder","openOrderInformation","toggleAccordionMenu","inputValidation","amountLots","limitStop","addProfit","addLoss","closeQuantity","highAmount","orderValue","takeProfit","stopLoss","closePosition","label","trade","toggleOrdersTFC","toggleTradesTFC","emptyChartModal","currentPrice","isEdit","dragPosition","showProfitLoss","activeIndex","gridClicked","selectedSymbolUpdated","getOrderInfo","instrumentLastTrade","settingsOptions","gridChartsChanged","showOrderTicket","showOrderInformation","showCloseTicket","showClosedPositionTicket","showConfirmTicket","tradeInformation","showCancelTicket","gridButton","modifyTicket","gridChartInitialLoad","crossHairState","showNewsFeed","selectedType","maximizeGrid","applicationStatus","chartTimezone","initialTimezone","headerSelected","closeLength","ticketLoad","typeOfOrder","userGuide","modalToggle","closeOrder","newOrderModalToggle","orderTicket","confirmOrder","notification","isActive","message","reconnection","isReconnecting","count","loadingState","accountPopupToggle","tfboConnectionError","ssoTradingAccount","previousDayClosePrices","closeAllOtherTabs","DashboardContextProvider","getTradingPositions","_","Error","Object","values","newWatchlist","filter","v","i","a","findIndex","_id","addPreviousDayClosePrices","_DashboardContextProvider","TradingMode","storedTradingMode","Live","initialStateAuthStore","isAuthenticated","userStats","userProfile","USER_EMAIL_KEY","isDemoMode","Demo","isLiveMode","isMFAEnabled","setupMFA","disableMFA","reinitialize","isSouthAfricaAccount","isRfpConnected","accountAvatar","userPhoneNumbers","mobile","mobileCountryCode","authStore","create","set","setTradingMode","setApplicationStatus","setUserProfile","setUserProfileProp","prop","state","setUserStats","setUserStatsProp","setIsAuthenticated","setIsMFAEnabled","setSetupMFA","setDisableMFA","setReinialize","setIsJapanAccount","setIsSouthAfricaAccount","setIsRfpConnected","setAccountAvatar","setPhoneNumbers","createSelectors","getFormattedSpreadValue","marketItem","askPrice","bidPrice","language","_spreadSplit$1$length","_spreadSplit$","spreadValue","calculateSpreadValue","spreadString","toFixed","separatorIndex","lastIndexOf","spreadSplit","split","spreadWithDecimal","toLocaleString","_marketItem$marketIte","marketItemInfoDecPrecision","marketItemInfo","decimalPrecision","decPrec","decimal","getMarketItemTickSize","Math","pow","calcInitialLimitValue","_ref","price","isBuy","pipSize","defaultPips","isTakeProfit","TakeProfit","pipValue","NaN","calculateInitialStopLossValue","initialStopLossValueObj","quote_value","parseFloat","limitPrice","side","initialValue","calculateInitialTakeProfitValue","initialStopLossTakeProfitObj","getInstrumentDetails","symbol","Array","isArray","information","_tradingAccount$","getTradingInstrument","tradingInstruments","getMarketItem","feedId","rfpGateway","_rfpGateway","RfpGateway","convertAmountToLot","roundLot","_marketItem$marketIte2","tickSize","getMarketItemPipSize","_marketItem$marketIte3","min","calcPipCost","priceQuote","getCurrentPrice","lastBid","b","onePip","preCalcPL","baseCurrency","calculateMarginImpact","marginRequirement","marginImpact","marginReq","getMarginImpact","convertToBaseCurrency","qCcy","convertLotToAmount","lot","MarketItemType","isMarketItemType","flags","findCommonMarketItem","fSymbol","sSymbol","first","second","mapMarketItems","forEach","item","grp","push","res","mt1","base","bCcy","quoteCode","mt2","closePrice","quoteCurrency","SpreadBetting","mt","baseAccountCurrency","homeCurrencyConversionRate","lastQuoteBaseCcy","pair","inverse","info","getQuotePrices","mtPair","getEstOffset","executed","offset","getTimezoneOffset","timeZone","str","timeZoneName","h","m","match","hour","e","console","warn","Date","getNYTimezoneOffset","addZero","val","updateDateWithHoursAndMinutes","hours","minutes","utcTimeOffset","daysOffset","newDate","setDate","getDate","setHours","setMinutes","setSeconds","convertTradingSessions","sessions","trading","map","session","start","end","time","tradeSessions","timezone","serverTimeZone","lastSunday","getLastSunday","currentDate","offsetToLastSunday","getDay","lastSundayDate","index","startHour","startMinute","endHour","endMinute","openDate","closeDate","openDayOfWeek","closeDayOfWeek","getHourAndMinutes","ts1","day","getFullYear","getMonth","schedule","pushTradingSession","getHours","getMinutes","ts2","applyEmptySessions","addEmptySession","dayOfWeek","emptyTimeSession","tradingSession","prevSession","getTime","key","getCurrentPriceKey","mapQuotesPrices","get","calcPipsAtPrice","getPositionPipsChange","position","_position$cP","openPrice","oP","cP","mul","updatePosition","open","pending","profit","calcProfit","grossProfit","floor","netProfit","comm","swap","netPL","grPL","posId","activePositions","pos","_position$dec","_position$marketItem","tradingInstrument","quantity","qty","dec","pips","basePositionCurrency","FUTURE","tickValue","currentProfitOrStopPrice","progression","fillQuantity","collection","_tradingAccount$tradi","_detailedInformation$","max","minL","rndLot","maxL","getDefaultAmount","_qty$toString$split$","decLength","Number","getAllLotsAtAccount","amounts","_tradingAccount$tradi2","_detailedInformation$2","currenciesMap","EUR","USD","JPY","NZD","AUD","ZAR","CHF","GBP","defineBaseCurrencySymbol","formatter","abs","formatNumberAsMoney","currency","num","_num","formatAsMoney","selectedTradingAccountNumber","_num2","getMarginCalculationType","marginCalculationType","getEffectiveSize","marginAccountType","accountId","openPositions","majoritySide","totalBuy","totalSell","aId","Hedged","Unhedged","getHedgedTradeQuantity","effectiveSize","numberInputQuantity","isSquare","instrumentMarginReq","sizeOfPosition","calcPercentChange","calcPercentChangeAtParams","op","updateCurrentPrice","c","isPending","getAdditionalSubscriptionPairs","additionalSubscriptionPair","Set","baseCcyPos","baseCcyAcct","add","calculateEquity","profitLoss","calculateFreeMargin","accountMcLevel","usedMargin","calculateMarginLevel","SBCLeaner","name","result","endsWith","replace","getLanguageToUse","lang","initialStateTradingAccountStore","selected","selectedAccountStats","accounts","currentAccountUrl","isSpreadBetting","isJapanSpread","isJapanSubscription","isFundedTrader","isOneClickTradingActive","sessionId","tradingAccountStore","persist","immer","setSelected","setAccountMarketType","setSelectedAccountStats","setAccounts","setCurrentAccountUrl","setAccountStats","setIsFundedTrader","setIsOneClickTradingActive","setSessionId","storage","createJSONStorage","useStorageDOMEvents","formattedNumber","isSpreadBettingAccount","order","gridChartMenu","instrumentColorTradeBoard","_marketItem$decPrec","spanElementStyles","orderTicketBigSymbol","fontSize","fontWeight","orderTicketSmallSymbol","gridChartMenuBigSymbol","display","width","gridChartMenuSmallSymbol","gridChartMenuDot","watchlistBigSymbolLongNumber","color","watchlistBigSymbolShortNumber","watchlistSmallSymbolLongNumber","watchlistSmallSymbolShortNumber","separator","isCommaSeparator","numArray","addedLength","formatPosition","formatLength","decimalFormat","firstNum","secondNum","formattedArr","React","createElement","style","numDecimals","numPastDecimal","splice","direction","localizeNumber","_language","Intl","NumberFormat","minimumFractionDigits","localizeDecimalSeparator","replaceAllThousandSeparators","_localStorage$getItem","replaceAll","revertToTraditionalNumberFormat","Hooks","observable","subscriptionHandler","dependencies","subscriptionRef","useRef","current","subscribe","onNext","onError","onComplete","useEffect","unsubscribe","webTraderPath","webTraderDetachedPath","Routes","login","forgotPassword","registered","twoFactorAuthentication","sso","agreeToTermsAndConditions","trader","tradersGym","charts","feedback","markets","calendar","settings","detached","guide","openAccount","uploadDocuments","funds","reports","signals","tutorials","error","newWindow","DETACHED_SUB_ROUTES","Charts","Trade","OneClickTrade","Positions","initialStateWatchListStore","currentWatchList","childWatchlistName","watchlists","watchlistsOrder","showWatchListPanel","watchListStore","getCurrentWatchList","setCurrentWatchList","watchlistsCount","watchlistInstrumentCount","getWatchlist","getWatchlistInstruments","getWatchlistsContainsInstrument","hasWatchlists","isWatchlistNameExists","getWatchlists","getWatchlistsOrder","getSelectedWatchlist","addEmptyWatchlist","DEFAULT_FEED_ID","sortOrder","WATCHLIST_SORT_ORDER","NONE","sortValue","WATCHLIST_SORT_VALUE","INSTRUMENT","addWatchlist","data","uniqueWatchlists","self","w","setWatchlists","setWatchlistsOrder","setWatchlistsForAllTradingModes","LIVE","DEMO","removeWatchlist","orderedWatchlists","setSortOrder","addInstruments","setInstruments","reorderWatchlistInstruments","fromIndex","toIndex","slice","removed","removeInstruments","filteredInstruments","inst","some","removeAllInstruments","moveInstruments","fromWatchlist","destinationWatchlist","fromWatchlistInstruments","destinationWatchlistInstruments","isInstrumentExistsInWatchlist","isInstrumentExistsInAnyWatchlist","renameWatchlist","oldName","newName","removeAllWatchlists","setShowWatchListPanel","show","partialize","commonFxSymbols","MAX_WATCHLISTS_ALLOWED","MAX_INSTRUMENTS_ALLOWED","MAX_INSTRUMENTS_ALLOWED_JP","ASCENDING","DESCENDING","CODE","CHANGE","LAST_PRICE","convertTWatchlistsToWatchListData","_code","_name","_feedId","_sortOrder","_sortValue","getDefaultJapanWatchlists","preferredFeedId","japanWatchlists","element","_rank","watchlistRank","keys","sort","getDefaultCFDWatchlist","isSpreadBettingWatchlist","isJapanSpreadWatchlist","fXSymbols","spreadBettingFxSymbols","japanSpreadFxSymbols","defaultArray","newInstrumentEntry","defaultWatchlistPreference","translatedName","defineSortOrder","createNewWatchlist","isCustom","dynamicWatchlistPreference","instrumentExistsInDynamicWatchlists","watchList","items","title","japanSpreadWatchlistName","useForceRerender","mounted","setValue","useState","now","Button","className","labelClass","disabled","onClick","icon","iconOnhover","size","variant","smallFont","isFullWidth","children","disabledOnHover","labelIcon","setLabelIcon","_className","cn","styles","button","outlineDisabled","fullWidth","event","aria-label","onMouseEnter","onMouseLeave","FontAwesomeIcon","buttonLabel","Nullable","requireNonNull","m_value","isPresent","run","consumer","runNullable","predicate","empty","mapper","of","flatMap","coalesce","mapNullable","getOrThrow","throwable","orElse","other","orElseGet","orElseGetNullable","orElseRun","runnable","equals","_len","_key","_empty","_Nullable","twoFAHost","getConfig","SUPPORT_EMAIL_GENERAL","SUPPORT_EMAIL_JAPAN","tfboSourceParam","SUBSCR_MGMT_PROV","JAPAN_DATETIME_FORMAT","ENVIRONMENT_NAME","_process","_process$env","REACT_APP_ENV","isProduction","isPreviewProduction","versionNumber","MFA_ACCESS_TOKEN_KEY","ACCESS_TOKEN_KEY","REFRESH_TOKEN_KEY","signalsBpKey","signalsBpVal","TV_UAT_REDIRECT_LOGIN_URL","TV_PROD_REDIRECT_LOGIN_URL","useSelectedTradingAccount","useContext","DashboardContext","use","DefaultResolver","resolverDelegate","m_resolverDelegate","_iterator$next","next","resolveAll","_iterator$next2","list","iterator","_iterator$next3","DependencyContainer","m_resolver","m_services","m_registeredServices","Map","register","impl","has","services","prototype","resolver","registerSingle","service","serviceFunc","newInstance","initialStateAccountStatusStore","checkApplicationStatus","userProfileInfo","checkAccountStatus","infoMessage","showModal","hasLiveAccount","hasDemoAccount","hasAnyAccount","permissions","accountMenuAction","accountMenuLabel","marginLevelAction","marginLevelLabel","signalsAction","tradeButtons","mainMenuAction","addAccount","manageFunds","portalPage","notificationBell","canTrade","isTraderGymActive","unlockGym","accountStatusStore","setCheckApplicationStatus","response","setStatus","newStatus","setIsTraderGymActive","setUserProfileInfo","user","setCheckAccountStatus","setHasLiveAccount","setHasDemoAccount","setInfoMessage","infoMessageToChange","setPermissions","permission","setShowModal","toShowModal","setTradingAccount","setShowAccountStatus","setCanTrade","setUnlockGym","TradingViewStore","isSearchOpen","firstPressedButton","isPreselectedInstrument","compSymbol","isCompSymbolMode","ticketLayout","dockStylesTicket","haveSearchForPositions","setDockStylesTicket","setIsPreselectedInstrument","setOpenOrderInformation","setIsSearchOpen","setIsCompSymbolMode","setFirstPressedButton","setCompSymbol","setTicketLayout","setHaveSearchForPositions","RfpGatewayContext","promiseFactory","promiseFactoryRef","PromiseFactory","assign","rest","AppContext","dialogClassName","BootstrapModal","Body","Header","Title","Footer","Dialog","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","initialState","Buy","Market","isPreservedValue","amountInfo","step","openPriceInfo","isTriggered","potentialProfitLoss","stopLossInfo","takeProfitInfo","limitsOnly","isPositionDraggingDisabled","stopLossType","action","ActionType","unknown","tradingPosition","currentQuote","isSignalOrder","orderStore","resetExceptSide","setAction","setTradingPosition","setTradingInstrument","setCurrentQuote","setMarketItem","setTradeProps","setAmountInfo","setOpenPriceInfo","setTakeProfitInfo","setStopLossInfo","setIsSignalOrder","fillStoreFromPosition","limitsType","compareLimits","restTradingPosition","GymTradingPosition","eT","prc","sl","tp","takeProfitPips","StopLoss","stopLossPips","createTradeRequestObject","currentPriceQuote","tradeObject","_current$stopLossInfo","_current$stopLossInfo2","_current$takeProfitIn","_current$takeProfitIn2","editState","isMarketOrder","stopLevel","limitLevel","trailingStop","_current$stopLossInfo3","_current$takeProfitIn3","Trailing","_currentPriceQuote$b","_currentPriceQuote$a","_currentPriceQuote$a2","_currentPriceQuote$b2","_current$openPriceInf","_current$openPriceInf2","commonProps","reqId","getSeconds","acctId","_current$amountInfo$a","_current$amountInfo","_current$openPriceInf3","_state$marketItem3","_state$marketItem4","_current$amountInfo4","_current$amountInfo5","_state$marketItem","_state$marketItem2","_current$amountInfo2","_current$openPriceInf4","_current$amountInfo3","priceLevel","expiration","tradeSide","tradeSize","tradeType","lotAmountQty","InfoElement","setRed","setRedPL","setRedPip","showMarginTooltip","valueClassName","useTranslation","tradingViewStore","infoElementUndock","infoElement","infoGroup","WtrPopup","content","popupText","trigger","red","green","infoElementValue","useShortTranslation","languageString","tt","options","HASH","charLength","random","genRandonNumber","HttpApi","LanguageDetector","initReactI18next","ChainedBackend","init","react","useSuspense","transKeepBasicHtmlNodesFor","backend","backends","LocalStorageBackend","HttpBackend","backendOptions","expirationTime","defaultVersion","loadPath","detection","lookupQuerystring","lookupLocalStorage","lookupCookie","caches","fallbackLng","interpolation","escapeValue","supportedLngs","getEnabledLangOptions","keySeparator","ns","TradersGymContext","TradersGymContextProvider","gymTradingAccount","lastHistoryTick","spreadPriceDif","simulation","simulationList","isOpenCreateSimulationModal","simulationsManager","searchInstrumentSelected","isOpenResetTradersGymModal","isPlaying","tradersGymContext","setTradersGymContext","convertHistoryTickToPriceQuote","historyTick","_tradersGymContext$sp","priceOffset","f","high","l","low","openTime","priceQuoteInThrottle","setGymProps","Provider","getLastPriceQuote","updateGymPriceQuote","setTimeout","quote","resetOrderStore","getPositions","_tradersGymContext$gy","_tradersGymContext$gy2","_tradersGymContext$gy3","_tradersGymContext$gy4","closed","closedPositions","SemanticUiPopup","Content","m_function","supplier","input","loadValue","IStatusConfigEnum","WatchlistMap","ObservableMap","m_instrumentComparator","entry","ObservableSet","instrumentComparator","InstrumentContextProvider","m_instruments","m_watchlists","m_groups","m_recentlyViewedInstruments","m_instrumentSearchInputFocusDelegate","config","m_watchlistComparator","val1","val2","watchlistComparator","trim","from","entries","ObservableQueue","watchlistExists","getInstrument","delete","addInstrumentToWatchlist","watchlistName","removeInstrumentFromWatchlist","focusInstrumentSearchInput","instrumentSearchInputFocusDelegate","fnc","groupingProperty","_instrument$groupingP","updateGroups","_instrument$groupingP2","instrumentContext","tierIcons","tier1","tier1Icon","tier2","tier2Icon","tier3","tier3Icon","pricePerMonth","currencyPairs","minPerOrder","monthlyAmount","maxPosition","maxOpenInstrumentPosition","reduce","accumulator","totalNumberOfTiers","HIGHEST_TIER_ID","TIERS_WITH_GYM_ACCESS","useSaveUserPreferences","useMutation","mutationKey","mutationFn","async","preferences","_preferences$user_pre","_preferences$user_pre2","liveCFDWatchlist","user_prefs","_type","_lastUsedWatchlist","convertUserPref","JSON","stringify","axios","url","method","headers","Authorization","SHA384","params","preference","btoa","encodeURIComponent","hasBrackets","LanguageCodes","languageOptions","shortText","ENGLISH","rfpLang","captchaLang","signalsLang","calendarLang","tradingView","CHINESE_SIMPLIFIED","CHINESE_TRADITIONAL","DEUTSCH","JAPANESE","VIETNAMESE","THAI","PORTUGUESE","ARABIC","ITALIAN","SPANISH","allowedLanguages","enabledLangOptions","languageOption","getInactivityLogoutOptions","getAccountIconOptions","image","avatar","src","rfpLangMap","acc","captchaLangMap","signalsLangMap","calendarLangMap","tradingViewLangMap","calcBuyDirection","previousQuote","prevBuyDirection","quoteStore","quotes","setQuote","_state$quotes$quote$c","_state$quotes$quote$c2","_state$quotes$quote$c3","_state$quotes$quote$c4","_state$quotes$quote$c5","prevSellDirection","sellDirection","buyDirection","maxVolatility","setMaxVolatility","StringUtils","String","compare","every","compValue","template","context","returnValue","isNullOrWhiteSpace","regex","RegExp","exec","lastIndex","search","isString","equalsIgnoreCase","isNullOrEmpty","evaluateTemplate","m_eventEmitter","m_debugHandler","m_config","m_connectionInfo","EventEmitter","debugHandler","on","listener","eventEmitter","once","off","removeAllListeners","emit","err","debug","useSaveWatchlistToPreferences","mutate","savePreferences","store","hidePopup","popup","document","getElementsByClassName","addCommas","isPipsChange","_current$toString$spl","_current$toString$spl2","closeAllTickets","dashboardContext","positionTableObj","Lots","Amount","onDate","change","grossPL","comment","dividend","pipsChange","orderTableObj","expiryOn","distanceToMarket","createdOn","closedTableObj","closeOn","closedTime","setStopLossPips","setTakeProfitPips","pipStore","forceCloseModal","modalBackdrop","modal","initialStatePositionsStore","panelSize","positionTab","gridHeight","positionPanelHeight","showPositionsBottomPanel","positionsStore","setPositionTab","tab","setWatchListPanelSize","setGridHeight","setShowPositionsBottomPanel","uniqueId","r","_store","k","getState","s","useSubscriptionInfo","usePromiseFactory","forceRerender","useObservable","getPropertyChangeStream","throttle","useMarketItemsMap","useMemo","createMarketItemCodeMap","useOrderTicketAccess","statusStore","gymContext","realTradingAccount","DETACHED_WINDOW_TRADE","DETACHED_WINDOW_CHARTS","DETACHED_WINDOW_POSITIONS","childWindowTypeMap","detachedChartsWindow","window","location","origin","detachedTradeWindow","detachedPositionsWindow","detachedWatchlistWindow","WindowContextProvider","_defaultWindowProps","_default","m_window","opener","parent","m_children","m_childWindows","childWindowSubscriptions","m_windowEventHandlers","ev","m_type","globalThis","parentName","hasOwnProperty","windowEventHandlers","eventName","handler","removeEventListener","addEventListener","childWindowType","TypeUtils","is","subject","href","callback","createAppStateManager","requestState","createEvent","initEvent","dispatchEvent","openChildWindow","windowProps","windowName","default","promise","reject","childWindow","windowFeatures","childContext","sender","isResolved","contexts","app","chart","ChartContextProvider","dashboard","marginRules","MarginRulesContextProvider","_WindowContextProvider","features","height","left","top","menubar","toolbar","resizable","useGetTranslatedWLName","isWindowStyles","styleClass","windowStyleClass","activeChart","layout","isEmpty","chartParams","periodicityChartId","getHistorySizeRecord","historySizeRecords","setHistorySizeRecord","historySize","addChartPanelTab","setSingleActiveChart","setActiveChart","resetActiveChart","setSymbol","indexOf","setLayout","_ChartContextProvider","evaluator","object","inherited","propertyNames","getOwnPropertyNames","getPrototypeOf","apply","useSubscriptionModal","setModalStateProps","setProps","modalState","setIsModalOpen","setModalReason","resetModalStateProps","futureMarginReqId","futureMarginValue","resetFutureMargin","getPositionSideValue","BUY","Sell","SELL","PSD_UNKNOWN","_MarginRulesContextProvider","Observable","ObservableFns","Subject","m_subject","newValue","oldValue","setter","propertyName","props","Proxy","target","receiver","_len2","_key2","bind","currentValue","m_valueComparator","comparator","additions","_len3","_key3","_len4","_key4","deletions","clear","changeStream","m_keyComparator","keyComparator","getRealKey","updates","realKey","_len5","_key5","m_maxLength","m_items","maxLength","dequeue","pop","enqueue","_len6","_key6","enqueuedItems","unshift","removedItems","_len7","_key7","WtrTooltip","wtrTooltip","storeResetFns","resetAllStores","resetFn","stateCreator","_create","setState","Tooltip","forwardRef","ref","BootstrapTooltip","convertChartTimeZone","NYT","GMT","Local","useFillContextsFromPreferences","dynamicWatchLists","useDynamicWatchLists","userPrefs","_preferences$platform","_preferences$platform2","_preferences$platform3","_preferences$platform5","_preferences$platform6","_preferences$platform7","_preferences$trading","_preferences$trading2","_preferences$trading3","_preferences$trading6","_preferences$trading7","_preferences$trading10","_preferences$trading11","_preferences$trading14","_preferences$trading15","_preferences$platform8","_preferences$platform9","_preferences$platform10","_preferences$platform11","platform","lastLoggedAct","demo","live","isLastLoggedAccountSpreadBetting","accountTypes","_preferences$platform4","isLastLoggedAccountJapanSpread","JapanSpread","theme","getCurrentTheme","matchMedia","matches","_preferences$trading$","_preferences$trading4","_preferences$trading5","_preferences$trading8","_preferences$trading9","_preferences$trading12","_preferences$trading13","_preferences$trading16","_preferences$trading17","_mode","_quantityType","_notificationSoundMuted","_notificationSoundVolume","_tradeFromChartEnabled","inactivity","cfdWatchlists","filteredByModeWatchlists","existingWatchlist","_grossProfit","_simulationId","_lastDataClosePrice","_lastDataCloseTime","deepCopy","_this$type","copyPos","simulationId","oT","cT","openAskPrice","openBidPrice","closeAskPrice","closeBidPrice","tpInPips","slInPips","dataObjectType","cancelRequestSent","dataItem","accountCurrency","lastDataCloseTime","lastDataClosePrice","updateActivePosition","updatePendingPosition","hasStopLoss","closeTime","setPositionInClosedState","hasTakeProfit","storePosition","shouldSetInOpenState","Limit","Stop","GymPositionUtils","validateMargin","removePositionStore","deleted","calcUsedMargin","_this$qCcy","effectivePrice","GymRefQuotesStore","sharedInstance","getPrice","FOREX","leverage","multiplayer","calcProfitOnClosedPositionWithAccountCurrency","calcInPips","digits","canceled","plPositionCurrency","buildKey","ignoreProps","positionId","positionData","parse","_position$type","removeItem","MoneyFormatter","money","Fragment","all","createMarketItemGroupMap","createMarketItemGroupTableData","changeMap","volatilityMap","tableItem","fullName","volatility","ccy","sell","buy","createMarketItemCodes","createMarketWatchItemCodes","Tier","createMarketItemTierMap","Tier1","Tier2","Tier3","createMarketItemsArrayFromCodes","codes","marketsItemMap","BASE_DOCUMENT_TITLE","instrumentGroupProps","Forex","forex","ForexSB","Indices","indices","IndicesSB","Stocks","stocks","Energy","energy","EnergySB","Commodities","commodities","Crypto","crypto","Metals","metals","MetalsSB","Shares","CFD","efts","ETFs","SUPPORTED_RESOLUTIONS","CloseButton","tooltipID","isItClosed","buttonPositioning","OverlayTrigger","placement","delay","hide","overlay","rectangle","Loading","loader","whiteLoader","loaderSVG","alt","InstrumentIcon","isJapanSubscriptionAccount","iconSrc","setIconSrc","isRendered","setIsRendered","group","category","displayName","iconModule","defaultIcon","loadIcon","GroupBadge","groupName","GymTradingManager","restorePosition","positionManager","GymHistoryManager","requestRefQuotes","modifyPosition","partialClosePosition","deletePosition","AccountTradingType","m_singletonPromises","m_thottledPromises","executor","Promise","singleton","timeout","finally","interval","round","clearInterval","_PromiseFactory","AddToWatchlist","maxReached","selectedTradingAccountWatchlist","allWatchlists","saveWatchlistToPreferences","then","exists","existsInWatchlistIcon","handleRemoveFromWatchlist","updatePreferenceObject","addToWatchlistIcon","handleAddToWatchlist","WatchlistsList","getTranslatedWLName","selectedWatchlist","titleContainer","titleWatchlist","watchlistContainer","watchlistData","maxInstruments","isInstrumentExistInWatchlist","maxItemContainer","itemContainer","watchlistItem","cursor","maxErrorMessage","DailyPercent","_dailyPercent","dailyValue","dailyPercent","previousClosePrice","dailyPercentage","positive","negative","InstrumentHeader","memo","_instrumentGroupProps","_low$toString","_high$toString","showButtons","resizeHeader","headerActions","undock","showBidAskSpread","bidAskSpreadData","onCloseButtonCLick","redirectFromDashboard","rfpGatewayContext","openWatchlist","setOpenWatchlist","setCreate","listName","setListName","setDisabled","setCurrentPriceQuote","subIdRef","setHigh","setLow","nameError","setNameError","maxWatchlistsError","setMaxWatchlistsError","activeTradingAccount","usePreferredFeedId","isTradersGymActive","traderGymPriceQuote","closedTicket","send","existsInWatchlist","useCallback","DisplayIcon","instrumentExists","handleOpenWatchlistMenu","_e","preferenceToUpdate","isMaxedOut","handleAddNewWatchlist","newWatchlistEntry","unsubscribePriceQuote","subscribePriceQuote","tooltip","watchlistsNames","inWatchlist","thisArray","join","dangerouslySetInnerHTML","__html","resizedWrapper","wrapper","Undock","undocked","headerContainer","infoIcon","handleOpenInfoClick","iconContainer","instrumentStats","shortInstrumentName","TradingSessionTooltip","instrumentFullName","iconGroup","onClose","popupContainer","watchlistsListContainer","CreateWatchlistButton","handleCreateWatchlist","closeTicket","iconDetached","iconAtached","Dock","createContainer","createHeader","inputContainer","inputTitle","errorInput","onChange","messageRow","errorMessage","inputCount","buttonContainer","handleCancelWatchlist","verifyWatchlistName","BidAskSpread","isBidAskDisabled","highLowBox","textTitleLow","lowValue","textTitleHigh","highValue","buttons","showPriceStats","spreadPosition","resizeButton","showInstrumentName","showButtonText","onChartClick","log","buttonsClass","bidAskSpreadButtons","prevProps","nextProps","DraggableTableHeader","_asc$desc","header","table","attributes","isDragging","listeners","transform","useSortable","column","opacity","CSS","Translate","transition","whiteSpace","getSize","zIndex","colSpan","tableHeader","isPlaceholder","align_left","getToggleSortingHandler","flexRender","columnDef","getContext","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","resizer","columnResizeDirection","ltr","rtl","getIsResizing","isResizing","thElem","columnSizingHandler","columnSizing","getBoundingClientRect","setColumnSizing","prevSizes","headerWrapper","userSelect","asc","desc","getIsSorted","dragColumnButton","DragAlongCell","cell","handleSelectedInstrument","setNodeRef","overflow","textOverflow","lineHeight","tableData","td","ACCOUNT_MARKET_TYPES_NOT_ALLOWED","MarginRequirementsContext","MarginRequirementsContextProvider","marginRulesContext","MarginRulesContext","setSelectedTradingAccount","doesRulesApply","setDoesRulesApply","marginRequirementsToApply","setMarginRequirementsToApply","detailedInfo","selectedMarketItem","selectedAccountDetailedInformation","matchingRule","rule","requirementsToApply","payload","UniqueId","selectedAccountNumber","setPreferredFeedId","preferredFeed","TYPE_TO_CLASS_SUFFIX_MAP","success","danger","fatal","ToastNotificationContent","body","toastTitle","messageContainer","addToastNotification","duration","notificationId","Store","addNotification","insert","container","animationIn","animationOut","dismiss","showIcon","removeNotification","removeToastNotification","toastNotificationId","LowOrHighType","LowOrHigh","marketItemCode","Low","SellOrBuyType","SellOrBuyButton","tooltipTimestamp","tooltipTitle","timeUpdate","typeButton","testButton","typeValue","WtrDropdown","SemanticUiDropdown","useLogout","chartContext","ChartContext","windowContext","WindowContext","saveUserPreference","history","useHistory","logOut","closeChildWindows","promises","disconnect","allSettled","credentials","clearCredentials","sessionStorage","useSwitchMode","mode","reload","useSwitchToDemo","switchMode","click","useSwitchToLive","FormattedNumberInput","isAllowed","allowNegative","NumericFormat","thousandSeparator","decimalSeparator","decimalScale","floatValue","onValueChange","LotsAwareInput","formattedValue","setFormattedValue","prevValue","setPrevValue","prevQuantityType","setQuantityType","_state$current$amount","formatValue","lotValue","amountValue","NumberInput","lotAware","incrementor","amountErrorClass","allowNegativeValues","handleIsAllowed","Infinity","findNextValue","isIncrement","quantityValues","_quantityValues$find","_quantityValues$slice","reverse","hasError","stopPropagation","decrementQuantity","incrementQuantity","useGridHeight","rowVirtualizer","windowHeaderHeight","documentHeight","documentElement","clientHeight","isSafari","test","navigator","userAgent","getTotalSize","SettingTrigger","handleShowColumnChooser","marginLeft","useTimeSessions","getNextOpenTradingSessions","tradingSessions","nextDay","j","ts","getOpenTime","intervalToDuration","formatted","formatDuration","days","timeFromNow","fromNow","findLastTradingSession","nextTradingSession","getClosesTime","isWorkingTime","getNextOpenDate","nextOpenTradingSessions","orgTime","currentTime","CalcSwapValue","record","row","original","isGroupRow","updatedStyles","wrapperClasses","errorCreateWatchlist","createWatchListUpdated","createWatchList","plusIcon","createFooter","errorFooter","bottomFooterTitle","createErrorMessage","_account$tradingInstr","instrumentDetails","minAmount","generatePositionId","positionType","storeInstrumentsOCTValue","obj","getSavedInstrumentsOCTValue","RFP_TIMING_INTERVAL","ChartUtils","priceType","chartId","arr","subscriptionId","ctx","textHight","textAlign","globalAlpha","fillStyle","xL","yL","fitTextOnCanvas","textBaseline","fillText","text1","text2","y","fontsize","fontface","font","measureText","selectors","minFontSizeRange","_minFontSizeRange$max","_minFontSizeRange$min","maxFontSize","minFontSize","outputDiv","querySelector","clientWidth","textWidth","scrollWidth","textHeight","scrollHeight","getComputedStyle","getPropertyValue","didIncrementFont","ceil","_chartPeriods","timeScale","rfpTimeInterval","getRFPTimingInterval","getSecondsFromTimeInterval","chartPeriods","chartPeriod","historicalOnly","createChartTicks","ONE_MONTH","setUTCMinutes","getUTCMinutes","setUTCDate","getUTCDate","periodicity","ONE_MIN","TWO_MIN","THREE_MIN","FIVE_MIN","TEN_MIN","FIFTEEN_MIN","THIRTY_MIN","SIXTY_MIN","TWO_HOURS","THREE_HOURS","FOUR_HOURS","EIGHT_HOURS","ONE_DAY","ONE_WEEK","extractValues","period","timeUnit","minHistoryTicks","getSelectionLabel","getChartLabel","historyTicks","DT","Open","High","Close","volume","chartTicks","dateString","getUTCFullYear","getUTCMonth","padStart","tick","chartTick","keyShowPositions","keyShowOrders","TTSubscriptionManager","priceFeed","getHistoryRequestId","timescale","watchPriceQuote","subscribeForPriceQuotes","unwatchPriceQuote","createPriceFeed","updatePositionSubscriptions","_TTSubscriptionManager","getStoredSizes","storedString","WtrResizable","panelName","enableResizing","setSidePanelWidth","setNewsPanelHeight","isInitialMount","getWtrResizableConfig","minWidth","maxWidth","enable","right","bottom","topRight","bottomRight","bottomLeft","topLeft","handleClasses","positionsGrid","minHeight","maxHeight","tradeTicket","marketsGroups","marketsNews","simulationsList","simulationsGrid","signalsList","signalsOverview","keyToFetch","panelKey","enabledDirections","x","getEnabledResizeDirection","defaultSize","setPanelSize","_getStoredSizes","newSize","newWidth","_rest$defaultSize","newHeight","_rest$defaultSize2","storeDimensions","newObject","newStoredString","ReResizable","onResizeStop","handleResizeStop","_direction","d","prevSize","getSavedPreferencesForUser","fillUserPrefLocally","localUserPref","parsedUserPref","meta","app_version","lastModified","getMilliseconds","_gmtOffset","os","version","cfd","templates","studyTemplates","drawingTemplates","settingsTemplate","loadUserPrefLocally","WtrModal","wtrModal","SemanticUiModal","Description","Actions","refQuotes","addTicks","buildRefQuoteKey","dataItems","searchDataItem","mid","midVal","SettingGrid","_appContext$isChildWi","setShowSettingsModal","columns","getAllLeafColumns","settingsRef","useClickOutside","changeCaption","caption","translations","lots","onToggleChange","columnVisibility","getToggleVisibilityHandler","tableSettingsPopup","tableSettingsPopupPositionChild","tableSettingsPopupPosition","tableSettingsTitle","tableSettingOptionsContainer","isDisabledJapan","isDisabled","checkboxContainer","htmlFor","checkbox","checked","getIsVisible","optionText","disabledCheckbox","checkmark","RenderClearFilters","columnFilters","setColumnFilters","periodDropdownRef","InstrumentContext","orderTicketAccess","iconValue","setIconValue","emptyFilteredStateMessage","emptyStateMessage","handleStartTrading","openPeriodDropdown","periodDropDownComponent","dataset","hasOpenedDropDown","emptyGridContainer","emptyIcon","emptyStateMessageLink","getTimeFrameTranslation","startTrading_Inactive","startTrading_Active","useMoneyFormatter","LimitProfitLossButton","_record$position3","_record$position4","gridType","isEmptyTrailingLoss","_record$position5","_record$position6","_record$position7","_record$decPrec","plusContainer","plusButton","_record$position","_record$position2","tradingPositionState","Order","Position","Normal","positions","openTicket","plusTheme","profitValues","CloseIcon","_info$row","gym","iconStyle","marginRight","triggerContainer","showClose","allPositions","AccountStatusCTA","isFullHeight","fullHeight","CredentialsManager","Buffer","decodeData","_credentials","creds","password","createdAt","prepareAndEncodeData","getCredentials","setCredentials","isSpreadBettingAcc","comingFromPreferences","dynamicWatchlists","currentDynamicWatchlists","codes_csv","watchListName","_appContext$userPrefe","_appContext$userPrefe2","_appContext$userPrefe3","_dashboardContext$wat","minutesFromCurrentTime","workingTime","workingTimeText","nextOpenDateText","nextClosesDateText","nextDateText","ttSessionInfoContainer","ttSessionMarketStatusInfo","gray","sessionIcon","childWindows","sortSearchResults","searchString","instrumentA","instrumentB","instrumentScore","exchangeTicker","substring","codeA","codeB","localeCompare","DetachIcon","windowType","detachWatchlistHandler","APPROVED","LEVEL1_APPROVED","FUNDED_TRADER","innerHeight","innerWidth","hasThinkTraderLiveAccount","hasApprovedLiveAccount","isApproved","printAccountName","isLiveAccount","isJapanSpreadAccount","defaultName","useSubscriptionConstraints","getConstraints","useHandleSubscriptionConstraints","handleSubscriptionsConstraints","constraint","OrderedSet","equalsFn","addAll","found","hasAll","remove","foundIdx","removeAll","toArray","GymHistoryDataStore","request","addDataItems","endTime","delegates","subDataId","subSizeId","subscribeFor","historyTicksReceived","historySizeReceived","addDelegate","delegate","removeDelegate","sendHistoryRequest","historyRequest","historySubscription","Snapshot","requestHistoryData","dataStore","getHistoryRequest","_this$data$get","startsWith","kTPRefQuotes","historyDataRejected","historyTickItems","refQuotesUpdated","historyDataUpdated","pairs","makeRefQuoteRequest","startTime","tradeTime","GymHistoryRequest","destructor","unsubscribeFor","uniqueRecord","recordsArray","newsKeywords","LCO","NGAS","WTC","WTI","AUS200","ES","SPX500","US30","YM","NAS100","NQ","ESTX50","FD","GER30","UK100","FRA40","US2000","ZAR40","JPN225","HK50","CHINA50","XAUUSD","XAGUSD","XPTUSD","BTCUSD","ETHUSD","getKeywords","_newsKeywords$code","_newsKeywords$code$sl","_newsKeywords$code$sl2","CurrentPrice","prevState","setPrevState","_record$subRows","subRows","colorValue","alignRight","greenCurrent","redCurrent","CalcGrossPl","totalPl","gridRecord","_gridRecord$position","_gridRecord$position2","grossPLValue","getToggleExpandedHandler","CalcNetPl","netPLValue","CalcPLPips","profitLossPipsValue","CalcComment","_record$comment","EditIcon","gymTradingPositions","currentTradingPositions","openRemoveModal","setOpenRemoveModal","GymRemoveModal","Popup","PopupContainer","openPositionInformation","openOrderDetails","iconWrapper","openMarketInformation","_tradersGymContext$si","_tradersGymContext$si2","currentSimulationId","getSimulationWithId","openModifyTicket","pinned","editTheme","NewsPopup","setOpen","article","setArticle","news","Modal","centered","onHide","handleClose","modalContainer","heading","headline","textContainer","bodyText","WtrSlider","wtrSlider","Slider","useRefreshJWTToken","tokenPair","refreshToken","useErrorBoundary","_error$response","storageEventCallback","storeName","getOptions","rehydrate","storeInstrumentsPipsValue","getSavedInstrumentsPipsValue","windows","onRemovalFromWatchlist","dynamicallyRemoveItemFromWatchlist","showRemoveOption","isInViewport","useIsInViewport","handleChartClick","isSelected","isInstrument","isGrid","selectStyle","nonHighlightSelected","highlightSelected","rightHandContainer","windowContainer","showActions","data-testid","TickerInfo","windowTickerInfo","badge","tickerContainer","instrumentInfo","instrumentCodeAndSessionIconContainer","Symbol","symbolDescription","data-tip","data-for","tradeMeasure","profitTradeMeasure","dispatcher","headerSpreadPosition","tradingPositionSide","storeMarketItem","handleOrderConstraint","useHandleOrderConstraint","prevBid","setPrevBid","previousBid","setPreviousBid","prevAsk","setPrevAsk","previousAsk","setPreviousAsk","selectedQuantity","displayPriceA","displayPriceB","instrumentZero","getPathname","pathname","bidNumber","askNumber","toDate","instrumentColor","instrumentGrey","instrumentRedHighlighted","instrumentRed","instrumentGreenHighlighted","instrumentGreen","buttonStyles","resizedButton","orderButton","windowInstrumentButton","gridChartInstrumentButton","instrumentButton","orderButtonStyles","orderButtonModal","borderButton","orderGrey","orderRed","orderGreen","handleButtonClick","handleTradeSideClick","_selectedInstrument$d","spreadButton","checkboxPrice","checkboxPriceBuy","checkboxPriceSell","sellContainer","sellLabel","sellNumber","showPrice","buttonToolTip","isOpenMarket","notOrder","tickerActionsModify","tickerActions","spread","orderPosition","orderPositionModal","windowSpread","highlightSpread","rightHandSpread","headerTickerButtons","windowInstrumentPosition","instrumentPosition","isIntersecting","setIsIntersecting","observer","IntersectionObserver","observe","hideIconForNonJapan","groupIcon","NewsArticle","customWidth","articleContainer","handleClickedArticle","articleText","getFormattedNewsArticleTime","JapanNewsDisclaimer","openDisclaimerMessage","setOpenDisclaimerMessage","disclaimerMessage","useUpdateSBWatchlistInstruments","shouldUpdate","wlInstruments","SearchResult","onUpdateWatchlist","searchTerm","resultContainer","leftContainer","textGroup","renderMatchingCode","unhighlighted","highlighted","matchText","renderMatchingName","upperName","resultName","startIndex","endIndex","matchName","resultItem","resultItemContainer","existsIcon","EmptySearch","invalidSearchTerm","emptyStateContainer","noMatch","tickerMessage","getSearchResults","isTicker","isCode","isName","WatchlistsDropDown","typedValue","changeValue","setIsOpen","handleModify","verifyWatchlist","setCurrentItemWatchList","handleCreateWatchListClose","changeWatchlistName","renameCurrentWatchlist","removeCurrentWatchlist","openModify","invalidRemoveName","allWatchlistsCount","matchingValue","watchlistOrder","sensors","useSensors","useSensor","PointerSensor","updatedWatchlists","_watchlistOrderNew","watchlistOrderNew","watchlistIds","orderMap","_orderMap$get","_orderMap$get2","rearrangedWatchlists","el","inputStyleSelector","costInput","costInputModal","lightErrorInput","SortableItem","Transform","tierName","listContainer","listContainerActive","iconLarge","active","handleEditLayer","editView","createWLContainer","createWatchlistItems","createWatchlistTitle","inputBox","inputWrapper","modifyErrorMessage","inputContainerText","deleteWatchlist","disableBtn","openModal","popupFooter","cancelButton","saveButton","classList","autoFocus","DndContext","collisionDetection","closestCenter","onDragEnd","over","wls","oldIndex","newIndex","updatedArray","movedItem","newItems","modifiers","restrictToVerticalAxis","SortableContext","strategy","verticalListSortingStrategy","removeWatchlistModal","scrollable","removeModalTitle","actionButtons","handleRemoveWatchlist","images","etf","CORN","SOYBEAN","WHEAT","ADAUSD","ALGOUSD","ATOMUSD","AVAXUSD","BATUSD","BCHUSD","BNBUSD","DASHUSD","DOGEUSD","DOTUSD","EOSUSD","LINKUSD","LTCUSD","MANAUSD","MATICUSD","OMGUSD","SANDUSD","SHIBUSD","SOLUSD","UNIUSD","USDC","USDT","XLMUSD","XMRUSD","XRPUSD","XTZUSD","ZECUSD","BRENT","equities","AAPL","ABNB","AMZN","BABA","GOOG","GS","META","MSFT","TSLA","UBER","V","AUDCAD","AUDCHF","AUDJPY","AUDNZD","AUDUSD","CADCHF","CADJPY","CHFJPY","EURAUD","EURCAD","EURCHF","EURCZK","EURGBP","EURHUF","EURJPY","EURNOK","EURNZD","EURPLN","EURSEK","EURSGD","EURTRY","EURUSD","EURZAR","GBPAUD","GBPCAD","GBPCHF","GBPHUF","GBPJPY","GBPNZD","GBPUSD","GBPZAR","NZDCAD","NZDCHF","NZDJPY","NZDUSD","USDBRL","USDCAD","USDCHF","USDCNH","USDHKD","USDHUF","USDJPY","USDMXN","USDNOK","USDSEK","USDSGD","USDTRY","USDZAR","ESH24","FDXH4","FFIH4","GER40","NQH24","SPAIN35","TAIEX","USDINDEX","VIX","YMH24","COOPER","XAUEUR","MarketInstrumentIcon","groupLowerCased","DetachedModal","successTitle","successAction","hideAction","dockAction","withPadding","buttonDisabledClass","isError","noBody","modalHeader","noPadding","modalTitle","dockIconContainer","hideClosePosition","modalBody","modalFooter","useUpdateUserPrefPips","saveUserPreferences","checkForSVG","handleClickOutside","contains","tagName","handleKeyPress","notificationSound","Audio","sound","usePlayNotificationSound","isMuted","soundVolume","muted","play","useSignalsAccessRestriction","queryClient","useQueryClient","useQuery","_response$data","allowed","initialData","getQueryData","submitDynamicForm","acceptCharset","form","appendChild","submit","removeChild","useWindowSize","windowSize","setWindowSize","handleResize","RequirementLine","rangeMin","rangeMax","isLastRange","line","MarginRequirements","_marginRequirementsCo","_marginRequirementsCo2","_marginRequirementsCo3","_marginRequirementsCo4","_marginRequirementsCo5","marginRequirementsContext","tierValues","instrumentRndLotValue","lastLotsIndex","margins","tierRequirements","infoTooltip","marginValue","WeekInformation","dayAndTimeWrapper","valuesWrapper","_marketItem$tradingSe","getTradingSessionInfo","ModalOrderInformation","_appContext$subscript","setMax","setMin","swapL","setSwapL","swapS","setSwapS","setRndLot","setSpread","symbolDigits","setSymbolDigits","setTickSize","setTickValue","setCurrency","threeDaySwap","setThreeDaySwap","setMarginReq","swapTypeValueText","rolloverCalcType","fetchInfoParams","spreadVal","calculateSpread","_info$swpL$toString$s","_info$swpL$toString$s2","_info$swpS$toString$s","_info$swpS$toString$s2","_info$sDig","_info$tickSize","_info$tickValue","_info$ccy","_info$marginReq","rnd","maxAmount","plDecPrec","swpL","psDecPrec","swpS","sDig","undockedContainer","formattedSwapInfo","translateThreeDaysSwapValue","sector","translateSector","exchangeCountryCode","translateCountryCode","ConditionalWrapper","condition","DraggableModalDialog","nodeRef","Draggable","ModalDialog","CancelOrderTicket","cancelExpiry","setCancelExpiry","resizeText","setResizeText","isSummaryPosition","isIndividualPosition","allOrdersLength","isAllOrders","setQuantity","_change","positionsDelegate","positionOpened","_sender","_position","hideComponent","positionDeleted","_selectedTradingAccou","firstPosition","selectedInstrumentDetails","instrumentRndLot","_selectedInstrumentDe","amtDPrec","_selectedInstrumentDe2","lotDPrec","closePositions","closeGymPosition","selectedAccount","summaryParams","trAccountId","typeOfPosition","_selectedPosition$","_selectedPosition$2","_selectedPosition$3","_selectedPosition$4","resizeHeaderText","ticketInfo","closeContainer","closeContainerModal","closeFields","amountInput","footer","orderModalFooter","modalPartialButtons","disableButton","closeButtonLocation","dockClosePosition","ConfirmOrderModal","_tradeRequest$priceLe","_selectedMarketItem$d","_selectedMarketItem$d2","tradeRequest","updateUserPrefPips","orderSide","convertDate","setConvertDate","setMarginImpact","_tradeRequest$expirat","confirm","newConvertDate","currentDatetime","expWeekDatetime","expMonthDatetime","baseDatetime","subCodes","addAdditionalSubPairsCodes","subId","showInvalidNotification","currentOrderType","formatText","calcMarketOrderVal","orderVal","calcNonMarketOrderVal","calculateOrderValue","impact","hedgedTradeQuantity","convertedToBaseCurrencyImpact","orderPrice","animation","modalDialog","dialogAs","fieldContainer","confirmField","getAccountType","providerAccountId","calculateQuantity","_size","ticketButton","editOrderTicket","ticketButtonClose","tradeRequestObject","checkAlpha","buildPendingPosition","updatePositions","buildPosition","_tradeRequest$limitLe","_tradeRequest$stopLev","instrumentTrade","lastTrade","ClosePositionTicketHeader","titleWrapper","ClosePositionTicket","_allTradingPositions$","qtyMin","setQtyMin","qtyMax","setQtyMax","qtyStep","setQtyStep","qtyRndLot","setQtyRndLot","qtyError","setQtyError","allTradingPositions","setPrice","setQuantityValues","pL","setPL","avgPrice","setAvgPrice","posSide","setPosSide","summaryPrice","setSummaryPrice","summaryPL","setSummaryPL","summaryAmount","setSummaryAmount","preFormattedPL","setPreFormattedPL","isDisableButton","setIsDisableButton","formatNumber","clickedInstrument","hasAmountError","allPositionsLength","isAllPositions","mi","undockTicketLayout","dockTicketLayout","accountBaseCurrency","calcPotentialProfitLoss","priceValue","clickedInst","_selectedTradingAccou2","stpL","sellAmount","buyAmount","decimalPec","calAmount","calculateSide","_selectedTradingAccou3","summaryAmountLot","_pos$grossProfit","pLValue","sellPL","buyPL","summaryPriceValue","_pos$grossProfit2","_pos$grossProfit3","handleClosePosition","positionAmount","partialParams","closeTicketButton","ticketInfoModal","orderQuantityLabels","modalOrderQuantityLabels","isAmountValidByStep","validateQuantity","errorValidation","undockedPartialButtons","summaryTicket","modalContainerSummary","closeContainerSummary","Trans","i18nKey","numPositions","modalInfoPosition","SignalsEmptyState","clearFilters","handleClearFilters","showButton","LangSelect","defaultLang","selection","customIcon","itemWrapper","itemWrapper_active","dropdownItem","inline","defaultValue","handleChange","changeLanguage","dropdownIcon","DataItemPlayerStatus","PlayerDataItem","TP_PLAYER_EMPTY_INDEX","TP_PLAYER_MAX_SPEED","onTick","playerCurrentIndex","waitingData","playerRequest","didCalledInitialRequest","_playerDataItems","waitingState","Unknown","hasDataItems","playerItemsCount","_this$playerDataItems","_this$playerDataItems2","playerDataItems","GymDataItemPlayer","_this","playerDataItemsMap","_autoPlayingSpeed","_playerStatus","_simulation","timer","canPlayPrevious","playerItem","getPlayerSelectedSymbol","buildGymSymbol","playerStatus","Playing","playPrevious","Pause","notifyCurrentIndexChanged","playNext","pause","setInWaitingState","playerWaitingStateChanged","recoverFromWaitingState","getCurrentHistoryTick","getTimerTimeInterval","autoPlayingSpeed","invalidateTimer","startTimer","changeTimeScale","playerTimeScaleChanged","_playerItem$playerDat","_playerItem$playerDat2","resetPlayerDataItems","removeAllItems","resetPlayerDataItem","resetPlayerDataItemWithGuid","guid","setNewPlayerDataItem","playerDataItem","setCurrentItemIndex","forceNotifyCurrentIndexChanged","playerCurrentIndexChanged","playerCurrentIndexChangedForControls","Buffering","playerStatusChanged","playerReadyToPlay","setInterval","destroy","playerDidReachEnd","telegram","twitter","seaConfig","channels","CONFIG","ja","Horizontal","onZDClick","onToggle","isHover","setIsHover","horizontal","rel","zendesk","iconLight","onMouseOver","triggerIcon","Vertical","liveChatRef","mouseDown","tooltipTranslations","vertical","expandCollapse","LiveChat","menuStyle","zdOpen","languageToUse","zE","oldScript","getElementById","zEACLoaded","zEWebpackACJsonp","zEmbed","script","onload","toggleState","handleZDClick","liveChat","InputError","useResizableContainersWidth","hasModal","windowWidth","setWindowWidth","handleWindowResize","resizableContainersWidthRestriction","OrderInformation","activeState","additionalSubscriptionPairValue","setAdditionalSubscriptionPairValue","pipPL","setPipPL","percentageChange","setPercentageChange","redPip","pendingAmountLot","setPendingAmountLot","matchedAmountLot","setMatchedAmountLot","matchedPendingOrder","setMatchedPendingOrder","matchedOpenPosition","setMatchedOpenPosition","setActive","setUsedMargin","setComment","orderMenuState","positionMenuState","calculateUsedMargin","marginIdentifier","convertedToBase","hedged","updateCommentValue","matchedPosition","percentChange","_position$pips","pipPlVal","amountLot","_selectedMarketItem$c","_openedInstrument","_pendingInstrument","pendingOrders","openedInstrument","pendingInstrument","formatValueAsMoney","commission","_matchedOpenPosition$","_matchedOpenPosition$2","_matchedOpenPosition$3","_matchedOpenPosition$4","_matchedOpenPosition$5","_matchedOpenPosition$6","_matchedOpenPosition$7","commandValue","positionMsg","marginUsedMsg","_pos$marketItem$decPr","_pos$marketItem","_pos$prc","_pos$prc2","_pos$openBidPrice","_pos$openAskPrice","toLocaleUpperCase","elementContainer","emptyContainer","chartMessage","emptyButtonContainer","_pos$marketItem$decPr2","_pos$marketItem2","createdOnDate","dockedContainer","accordion","openMarketInfo","openPositionInfo","openOrderInfo","useSignals","queryKey","closestExpiry","signal","expiry","Report","isBefore","getNextExpiry","staleTime","diff","filteredProductMap","productMap","product","sbSymbol","assetId","StartDate","subtract","EndDate","LanguageCode","AssetIds","IncludeExpired","Period","Count","mapped","Product","description","slug","Group","Category","status_text","confidence","cacheTime","useSubmitFeedback","parameters","FeedbackModal","showFeedbackModal","feedbackInput","setFeedbackInput","ratingStars","setRatingStars","fill","emptyStar","showFeedbackSubmitScreen","setShowFeedbackSubmitScreen","starsImage","setStarsImage","submitFeedback","handleCancelFeedback","backdrop","feedbackHeader","feedbackModalTitle","closeIcon","submittedContainer","thankYouMessage","commentIcon","appreciateMessage","ratingContainer","questionText","starContainer","star","idx","oneStar","twoStars","threeStars","fourStars","fiveStars","fullStar","handleRatingClick","visibility","feedbackContainer","textArea","footerContainer","prefix","handleFeedbackSubmit","score","mapFeedbackScore","comments","onSuccess","SearchableListInput","searchInputElementRef","inputHasValue","setInputHasValue","inputElementAttributes","inputAttributes","searchInput","onInputChange","evnt","onInputElementChange","inputThrottling","onBlur","inputContainerElementAttributes","inputContainerAttributes","searchInputContainer","focus","onOpen","searchIconAttributes","classNames","searchIcon","faSearch","clearIconAttributes","_attributes","faTimes","autoComplete","spellCheck","SearchableListResult","renderedResults","setRenderedResults","SearchableList","renderedResultsSubjectRef","formElementRef","filterData","clickHandler","searchableInputAttributes","onInputFocus","onFocus","_event$target","filteredData","render","_event$target2","onSubmit","preventDefault","simulateMouseEvent","coordX","coordY","MouseEvent","view","bubbles","cancelable","clientX","clientY","MegaMenu","ReactMegaMenu","m_activeRowKey","mouseLeave","activate","section","controllerRef","getSections","setActiveSection","activateItemByKey","activeRow","InstrumentSearch","selectedTradingAccountWatchlists","instrumentGroups","groups","maxWatchlistLimit","displayStateRef","isSearchbarOpen","isGymActive","focusSearch","groupTranslations","CryptoSB","controller","for","selectedGroup","selectedWatchlistManagementInstrument","maxWatchlistNameLength","searchListFilter","_instrument$code","_instrument$fullName","_instrument$grp","_instrument$exchangeT","viewInstrument","placeholder","searchContainer","searchMatches","megaMenuControllerRef","instrumentSearchController","tableContainerRef","instrumentsByGroup","searchMatch","instrumentsPanel","lastClickedCell","setLastClickedCell","newInstruments","recentlyViewedInstruments","isShowRecentlyViewed","valueComparator","ArrayStore","showEmptyState","renderSymbolColumn","upperSearch","notHighlighted","instrumentContainer","instrumentText","instrumentSymbol","instrumentFullNameTrim","renderNameColumn","renderWatchlistColumn","watchlistNames","handleCellClick","rowId","columnId","closest","querySelectorAll","watchlistAddRemoveIcon","data-rowid","data-colid","triggerLastClickedCell","cellSelector","onCellClick","maxInstrumentsPerWatchlist","columnHelper","createColumnHelper","accessor","instrumentCell","enableHiding","minSize","watchlistCell","useReactTable","getCoreRowModel","rows","getRowModel","useVirtualizer","estimateSize","getScrollElement","overscan","virtualRows","getVirtualItems","emptyState","emptyStateText","emptyStateSearchString","overflowY","virtualRow","data-index","measureElement","tableRow","getVisibleCells","newWatchlistNameRef","watchlistNameElementRef","duplicateWatchlistNameRef","allWatchlistsLocal","watchlistPanel","addToWatchlistPanel","hidden","itemContent","textCenter","textBold","itemContentHeader","isWatchlistMaxed","disableIcon","disabledIcon","maxedContainer","rerender","updateWatchlist","maxedItemContent","addToWatchlistContainer","selectWatchlistName","limitMessage","createWatchlist","onNewWatchlistNameChange","inputExlpanation","maxWatchlistError","borderTop","actionButtonContainer","onCreateWatchlistSaveClick","megaMenuItems","selectedStyling","selectedTier","isTier","allLabel","megaMenuProps","styleConfig","containerProps","menuPanel","menuProps","groupPanel","menuItemProps","menuItemSelectedProps","contentProps","instrumentPanel","NotificationType","defaultContext","notifications","addNotifications","resetNotifications","NotificationsContext","NotificationsContextProvider","setNotifications","newValues","prevValues","NotificationsIcon","messageCount","iconContainerClicked","notificationIcon","newMessageBadge","NotificationsItem","IconMap","alert","NotificationsList","hasNotifications","notificationRef","emptyList","emptyListIcon","emptyText","emptySubText","Notifications","openNotifications","setOpenNotifications","shouldDisplayNotifications","PENDING_REVIEW","handleRedirect","OpenAccount","timestamp","containter","completeAppBtn","marginRightSafari","basic","UserNotificationsIcon","UserNotificationsList","CommunityList","handleToggleOpen","upvoty","communityRef","upvotyLink","setUpvotyLink","privacyPolicyLink","useCountryPrivacyPolicy","_result$account$organ","_result$account","_result$account$organ2","organization","privateKey","token","jwt","sign","redirectUri","popupIsArabic","wrapperItems","handleAcademyClick","Tutorials","itemNoBorder","CommunityIcon","Community","PlatformSettings","setOpenSettings","handleCloseModal","setTheme","fillContextsFromPreferences","handleThemeSwitch","invertedSetting","platformTab","profileSetingsHeader","platformTabName","profileSetingsContent","settingsPairs","settingsPairsName","settingsPairsImgDropdown","dropdownMenuLangWrapper","_event","initialSettingLanguage","dropdownMenu","dropdownMenuLang","settingsPairsTheme","borderBottom","additionalPadding","settingsThemeWrapper","singlethemeWrapper","inactive","themeImage","themeImageLight","themeRadioWrapper","themeRadioName","themeImageDark","themeImageSystem","settingsPairsPhone","isPasswordSingleDigit","isPasswordValidLength","isPasswordSingleUpperLetter","isPasswordSpecialCharacters","isPasswordLowercaseLetter","useGetMFAEnabled","queryFn","MFAManagement","Radio","toggle","toggleMFA","SecuritySettings","handleUpdatePasswordSettings","invalid","setInvalid","dontMatch","setDontMatch","setErrorMessage","inactivityLogout","setInactivityLogout","showPasswordPopup","setShowPasswordPopup","currentPassword","setCurrentPassword","newPassword","setNewPassword","confirmPassword","setConfirmPassword","passwordValidations","setPasswordValidations","validSatisfied","lowercaseSatisfied","uppercaseSatisfied","digitSatisfied","specialSatisfied","checkContainer","toggleButtonChecked","toggleButton","findDefaultInactivity","intactivityValue","dropdownMenuSecurity","TradingSettings","setSettings","setShowInfoModalBackground","showInfoModalBackground","playSound","volumeScale","setVolumeScale","soundMuted","setSoundMuted","divRefArrow","qunatityTypeButton","handleQuantityTypeChange","RFPConnection","updatedQuantityType","handleOneClickTradingChange","updatedSettings","infoModalWrapper","buttonsContainer","infoModalWrapperBackground","settingsQuantityButtons","quantityButton","quantityButtonSelected","outerCircle","innerCircle","showConfirmModal","handleTradeFromChart","newStateTradeFromChart","rangeContainer","handleChangeMute","newMuted","slider","onAfterChange","AvatarIcons","avatarPath","findImage","currentImage","useGetPhoneCodesAndFlags","showUnused","HandleChangeTypes","ProfileSettings","dropdownOptionsRef","openImgModal","setOpenImgModal","imgModal","setImgModal","changeInPhone","setChangeInPhone","changeInPhoneSecond","setChangeInPhoneSecond","isLoadingSaveData","setIsLoadingSaveData","avatarFromPrefs","isLoadingFlagsAndCodes","fetchPhoneCodesAndFlags","justifyContentFlexEnd","onClickOpenImgModal","dropdownIconWrapper","defaultImage","dropdownDefaultImage","imgContainer","PhoneNumber","number","handleUpdateSettings","AccountAvatar","settingsPairsMeta","useChangePassword","new_password","PasswordSettings","changePassword","inputTypeCurrentPassword","setInputTypeCurrentPassword","inputTypeNewPassword","setInputTypeNewPassword","uppercaseCheck","setUppercaseCheck","lowercaseCheck","setLowercaseCheck","numberCheck","setNumberCheck","specialCheck","setSpecialCheck","passwordLenghtCheck","setPasswordLenghtCheck","setIsDisabled","handleChangeInput","isLengthValid","isLowercaseValid","isUppercaseValid","isDigitValid","isSpecialCharValid","isNewPasswordValid","validationFailed","validationSucceed","platformTabSecurity","passwordInputWrapper","newPasswordInput","invalidPassword","eyeIcon","showCurrentPassword","showNewPassword","settingsPairPassword","conditionSuccess","settingsButtonsPassword","handleUpdatePassword","TabsEnum","SettingsModal","setResetIdleTimer","setFullname","setEmail","initialSettings","parseSettings","activeTab","setActiveTab","passwordSettings","setPasswordSettings","tabs","platformSettings","tradingSettings","securitySettings","activeTier","settingsMain","settingsWrapper","settingsNavigation","settingsModalHeader","optionsContainer","profileContainer","profileSettingsBG","profileImage","profileImageInfo","profileName","profileEmail","tabName","tabDisplayText","settingsTabContainer","settingsTabOption","settingsTabContainerIcon","settingsTabContainerLabel","SettingsOptions","setAccountPopupIsOpen","handleTpRedirectReports","handleTpRedirectManageFunds","switchToLive","switchToDemo","last","iconContainerWrapper","settingsIcon","handleOnClickSettings","logoutAccount","AccountUserIcon","accountPopupIsOpen","AccountMenuPopup","userIconContainer","userIconContainerFullWidth","switchButtonContainer","switchToRealMoney","fund","Deposits","accountStatus","Reports","Funds","AccountMenu","userIconContainerClicked","AccountStats","valueColoring","coloring","parsedValue","statsContainer","statsLabel","RemainingVolume","iconButton","remainVolPercent","colorStatusIndicator","orange","hasUpgradeButton","valueContainer","statusIndicator","marginPercent","toggleIcon","viewDetailsContainer","btnViewDetails","handleShowDetails","contentContainer","progressBarContainer","progressWrapper","Progress","percent","progressBar","handleUpgradeClick","CAD","SGD","AccountCurrency","getCurrencyFlag","flag","AccountIconAndTier","outline","customCurrency","isForJapanSubscriptionAccount","isNotListOfSelectedTradingMode","Loader","imageWrapper","imageOutline","SubscriptionOptions","hasManageSubscriptionOption","optionsWrapper","option","handleManageClick","handleStopClick","useSwitchAccount","selectedTradingMode","mutateAsync","selectedIndex","newAccount","acct_id","_appContext$email","activeMenuItem","switchAccounts","accountsList","isLiveMenu","showAddAccount","hasJapanSpread","showAddJapanAccount","hasNoDemoAccount","hasSubscriptionOptions","isCurrentAccount","accountsListItem","accountInfo","currentAcc","ttAccountId","rfpDnsName","rfpUrlsObj","handleSwitchAccounts","stats","addAccountContainer","handleAddAccountClick","addLiveAccount","addDemoAccount","accountName","classNameAccountType","TRADING_ACCOUNTS_TYPES","CurrencyStats","setActiveMenuItem","accountTypeStyling","hasTradingAccountsError","setHasTradingAccountsError","accountFlag","exclamationIcon","currencyIcon","accountTypeBadge","accountIdAndType","accountTradingMode","menuHeader","menuItem","activeLineIndicator","TradingAccounts","AccountPanel","_dashboardContext$acc","isSearchBarOpen","isMenuOpen","setIsMenuOpen","accountProfitLoss","calculatedEquity","calculatedFreeMargin","calculatedMarginLevel","isAccountPanelOpen","availableMargin","mustShowRemainingVolume","triggerAccountBalance","accountPanelButton","handleToggleAccountPanel","buttonToggleIcon","accountStatsWrapper","iconPlusEqual","MarginLevel","formattedValues","isGymPresenter","showSearch","isInTradersGymMode","resetIdleTimer","setIsSearchbarOpen","useIdleTimer","onIdle","debounce","startManually","logoContainer","logo","expandedInstrumentSearchContainer","instrumentSearchContainer","handleCloseClick","gridViewCharts","onTradePage","updateSymbol","symbols","newChartId","selectedSymbols","noop","Item","route","component","skipIndicator","itemClass","containerClass","iconClass","preClick","disableTooltip","refNeeded","setParentRef","parentRef","itemDisabled","itemLoading","indicator","iconDisabled","iconLoading","Markets","useOutsideAlerter","InfoModal","arrow","closeInfoModal","additionalPositioning","childRef","parentPosition","setParentPosition","calculateParentPosition","parentCenterY","offsetHeight","childHeight","childwidth","offsetWidth","contentWrapper","Signals","signalPopupRef","openSignalPopup","setOpenSignalPopup","createRef","isUserAllowedToAccessSignals","refetch","balanceCheck","signalsAccessSecondCheck","modalMessage","handleSignalPopupCta","Calendar","Management","deposits","fork","CompleteOnboarding","relevantStep","UploadDocuments","statusPage","Status","handleAccountClick","Guide","handleClick","GymPositionManager","player","oldPosState","changed","calcGrossProfit","storeAccount","positionClosed","positionUpdated","notifyAccountUpdate","validatePendingPosition","validateOpenPosition","positionRestored","prevPosition","positionModified","posCopy","restoreTradingPosition","deletePositionById","_this$account$activeP","deleteAllPositionsWithSimulationId","allPosition","deleteAllPositions","marginCall","shouldPresentLiquidationMsg","positionManagerMarginCall","GymTradingAccount","deposit","GYM","credit","providerId","_balance","checkForMarginCall","CustomEvent","marginSum","positionUsedMargin","accountData","copyAccount","resetAccount","removeAllSimulations","GymAccountUtils","emailId","defaultLeverage","charCodeAt","useEnableTradersGym","setIsTradeGymActive","canEnableTradersGym","skipJapanTierValidation","convertEmailToId","gymAccount","restoreAccount","_userProfile$country$","_userProfile$country","accountBalance","country","demoBalance","createAccount","TradersGym","traderGymPopupRef","openTradersGymPopup","setOpenTradersGymPopup","enableTradersGym","closeTradersGymPopup","handlePreClick","handleTradersGymPopupCta","WtrToggle","activeBackgroundStyling","horizontalStyling","faIcon","ThemeToggle","isDarkTheme","inverted","OneClickTradingToggle","openActivateModal","setOpenActivateModal","updateOneClickTrading","handleCancel","handleActivate","Navigation","helpOpen","setHelpOpen","pageTitlePrefix","updateDocumentTitle","navContainer","navMenuItemsContainer","mainMenu","toggles","Checkbox","isChecked","labelContents","checkedValue","isLabelContentsInteractive","checkboxId","constrainedLabel","unCheckedIcon","checkedIcon","Carousel","selectedTierInfo","onMoreDetails","currentIndex","setCurrentIndex","tierPerksTranslations","carouselData","isCurrencySlide","perkValue","tierInfo","viewDetails","details","caroucel","noDetailsTopMargin","_item","handleCarouselClick","carouselDot","CurrencyDetails","onGoBack","contentClassName","modalContent","detailsModalHeader","backButton","detailsModalBody","scroll","tableContainer","generateFXMaxPositionTable","array","translationFunc","tableContent","limits","limitEntry","leadCurrency","inputData","fxPair","secondaryCurrency","pairLimit","existingLeadEntry","generateFXMaxPositionArray","useSubscribe","provider","requestedTier","source","useChangeTier","TierTile","onSelectTier","isNewUser","showCurrencyPairs","showMaxVolume","showOrderSize","tileContainer","selectorIndicator","selectorTitle","selectedText","defaultText","tileSection","tierIcon","tierTitle","padded","tradableCurrencyPairs","SubscriptionSelector","preselectedTier","startFromTierNum","onCancel","modalView","setModalView","hasUserAgreement","setHasUserAgreement","setSelectedTier","isRequesting","setIsRequesting","disabledTierId","isConfirmDisabled","changeTier","handleSelectTier","handleSubscribe","handleMoreDetails","handleConfirmSubscribe","_data$action","_data$action2","_data$action3","fields","handleClickAgreementBox","isDowngrade","isUpgrade","subscribeButtonText","courseName","CTA_TRANS_TEXTS","ctaText","tierInfoContainer","tilesContainer","isCurrentTier","titleText","isNewSubscribe","isTierChange","confirmButtonText","modalText","modalExplanation","confirmModalHeader","confirmModalBody","confitmTextWrapper","courseChangeTitle","_subscriptionInfo$sta","handleGoBack","startDatetime","expiryDatetime","subscriptionTerm","currencyValueCell","btnViewCurrencyDetails","handleCurrencyDetailsClick","detailsRows","detailsTable","useCancelSubscription","useStopSubscription","useResumeSubscription","OrHzDivider","divider","SubscriptionAlert","onConfirm","RESPONSE_TITLE_MAP","stopped","notAllowed","noRecord","restarted","remainingBalance","RESPONSE_MESSAGE_MAP","STATUS_MESSAGE_MAP","STATUS_TITLE_MAP","setMessage","setTitle","cancelSubscription","stopSubscription","resumeSubscription","japanSpreadAccount","_accountStats$find","ta","handleConfirm","handleSubscribeClick","handleResumeConfirm","handleOpenLiveAccountClick","handleLogoutClick","handleNotNowClick","columnButtons","subscriptionDetailsContent","detailsText","useHandleSubscribeResponse","useLocation","queryParams","URLSearchParams","subscribeOpStatus","subscribeOpProviderStatus","useHandleDemoPendingExpiry","subscriptionCheckStatus","triggerDemoExpiryNotifications","useFetchSubscriptionStatus","SubscriptionChecker","setSubscrInfoProps","checkStatus","setCheckStatus","isFetching","fetchSubscriptionStatus","nextMonthTier","handleCancelModal","statusRelatedUpdates","currentSubscriptionTier","nextSubscriptionTier","initModalProps","mustShowSelector","mustShowAlert","startTierNum","newTierNum","possibleMinTier","NotificationModal","isBackdrop","dialog","notificationModal","UserGuide","fileSrc","userGuideJapanPDF","modalSize","ContactModal","showContactModal","supportEmail","countriesInfos","UK","AU","showCustomCountry","IT","BR","SA","CY","JA_INTL","ContactOption","hasPhonePlus","optionContainer","dir","headerText","JA_LOCAL","mailLink","ReconnectModal","reconnectAttemptsCounter","isOnline","setIsOnline","captchaRef","reconnectIntervalMilliseconds","reconnectAttemptsLimit","reconnectAttemptsLimitReached","setReconnectAttemptsLimitReached","reconnectionInProcess","refreshJWTToken","connected","handleRetry","handleReconnect","attemptReconnect","rfpPayload","username","authToken","connectResult","AuthenticationFailed","attemptsLimitReached","startAttemptTimestamp","reconnectInterval","handleLogout","failedIcon","faWifiSlash","faSync","spin","REACT_APP_DISABLE_CAPTCHA","HCaptcha","sitekey","onVerify","useWatchlistSync","isJapanDemo","hasNoWatchLists","isJapanLiveWithNoLiveAccounts","_account$watchlist$0$","_account$watchlist$","AuthLayout","hasHeaderSearch","hasMainNav","hasHeader","hasPositions","notificationConfig","ReactNotifications","detachContainer","detachContainerScroll","navigation","getRelevantPrice","priceKey","getRelevantFormattedPrice","TradeTicketCalendar","selectedDate","handleDateSelection","handleCloseCalendar","datePickerLocale","calendarContainer","DatePicker","minDate","endDate","calendarClassName","calendarInput","onClickOutside","LimitProfitLoss","pnlTextColor","onEnabled","setPipValue","isPriceChanged","setIsPriceChanged","isPipsFocused","setIsPipsFocused","updatePipStore","getPipsValue","localPrefs","parsedPrefs","handlePipValueChange","handlePipsChange","fieldGroup","Dropdown","handleStopLossTypeChange","fieldWrapper","numberInputWrapper","subLabel","subText","TradeTicket","_current$takeProfitIn5","_current$openPriceInf5","_current$stopLossInfo4","_current$stopLossInfo6","_current$openPriceInf6","_current$openPriceInf11","_current$openPriceInf12","_current$openPriceInf13","_current$amountInfo15","_current$amountInfo16","_current$amountInfo17","_current$amountInfo18","_current$amountInfo19","_current$amountInfo20","_current$takeProfitIn6","_current$takeProfitIn7","_current$takeProfitIn8","_current$takeProfitIn9","_current$takeProfitIn10","_getOpenPrice3","_current$stopLossInfo7","_current$stopLossInfo8","_current$stopLossInfo9","_current$stopLossInfo10","_current$stopLossInfo11","_getOpenPrice4","_current$amountInfo21","_current$openPriceInf14","_current$takeProfitIn11","_current$stopLossInfo12","_current$takeProfitIn12","_current$stopLossInfo13","isStopLossActive","isTakeProfitActive","isCancellingOrder","hedgedSquareQuantity","setHedgedSquareQuantity","calculatedEffectiveSize","setCalculatedEffectiveSize","defaultGTC","showCalendar","setShowCalendar","setSelectedDate","dateText","setDateText","potentialProfitColor","setPotentialProfitColor","potentialLossColor","setPotentialLossColor","pipCost","setPipCost","marginUsage","setMarginUsage","unhedgedMarginUsage","setUnhedgedMarginUsage","setMarginCalculationType","setFreeMargin","prevMarketItemCode","setPrevMarketItemCode","insufficientMargin","isOneClickTradingEnabled","translateDate","localLocale","nonArabicFormattedQuickDates","week","month","calendarOptions","orderTypeOptions","_current$limitsOnly","handleCancelButtonClick","gymNormalizePrice","gymNormalizePriceQuote","lastPriceQuote","updatePipCost","updateMarginImpact","updateFreeMargin","validateOpenPrice","_instrument","stepAmount","_parsedPrefs$user_pre","_parsedPrefs$user_pre2","_parsedPrefs$user_pre3","setInitialQuantityGroup","updateAmountInfo","calculateLimitStopPrice","_getOpenPrice","getOpenPrice","potentialPL","validateTakeProfit","_current$takeProfitIn4","_getOpenPrice2","validateStopLoss","_current$stopLossInfo5","_current$openPriceInf7","_current$amountInfo6","_current$amountInfo7","_current$amountInfo8","_current$amountInfo9","_current$openPriceInf8","positiveSubText","negativeSubText","formatAsCurrency","_current$amountInfo10","_current$amountInfo11","_current$openPriceInf9","_current$openPriceInf10","marginCalcType","tradeQuantity","unhedgedMarginImpact","_current$amountInfo12","_current$amountInfo13","isLimit","quantities","defQuantity","formatAndDisplayDate","newDateText","getReformattedDate","submitOrderRequest","isInstrumentOpenPosition","_current$amountInfo14","activeTradingPositions","showPopup","showAmount","containerUndock","sideCloseButton","tradeTicketButton","handleOrderTypeChange","calendarIcon","handleShowCalendar","handleDateValueChange","calendarOption","_user_prefs$trading$s","noMargin","rowMiddle","infoRow","infoLabel","popupMessage","fieldTakeProfitStopLoss","handleTakeProfitEnabled","handleStopLossEnabled","tradersGymField","handleConfirmButtonCLick","messageBody","messageType","expDateStr","formattedExpDateStr","expDate","formatDateExpNotifyBody","handleStateDispatch","eventCallback","usePresentTradeEvent","tradeEvent","events","DispatchHandler","m_lastDataUpdate","m_lastDispatch","m_isDispatching","m_asyncPromise","lastDispatch","setMilliseconds","dispatchInterval","m_data","m_timeoutInterval","freeze","queue","dispatchable","stop","doDispatch","runAsync","lastDataUpdate","dispatch","_this$m_data$get","catch","dispatchAction","Dispatcher","m_handlers","m_isRunning","m_dispatchInterval","m_timerInterval","setHandler","removeHandler","setHandlers","handlers","getHandler","hasHandler","clearHandlers","handlerId","runHandlers","isReady","currentTradeTimeMillis","_historyRequest$start","_historyRequest$endTi","generateUniqueHistoryId","cloneWithNewRequestId","cloneObj","suffix","PercentChange","isNumberPositive","deleteClosedPosition","SharedModal","modalRemoveOption","modalTopHeader","removeMessage","modifyFooter","SharedButton","handleCancelRemove","handleRemoveItem","PositionSearch","_columnFilters$find","haveX","setHaveX","instrumentName","searchBox","notEmpty","prev","onFilterChange","clearSearchIcon","CalcDistanceToMarket","lowestDTM","highestDTM","ClosedTicketModal","_data$0$prc","_data$0$prc2","_data$0$openBidPrice","_data$0$openAskPrice","_data$0$cP","_data$0$cP2","_data$0$closeBidPrice","_data$0$closeAskPrice","_data$2","setShowClosedPositionTicket","setAmount","amountOrLots","_data$","amountDecPrec","formattedOpenTime","formattedCloseTime","_gymContext$tradersGy","_gymContext$tradersGy2","_gymContext$tradersGy3","getSimulationName","progressBarMargin","progressIndicator","gymPresenter","progressPercent","dividerShort","japanPositioningShortDiv","dividerLong","japanPositioningLongDiv","marginCallStopOut","marginCallJapan","japanText","stopOut","updateDocumentTitleWithPriceQuote","titlePrefix","ServiceIssuesModal","TradeBoardHeader","isWatchlistSearchOpen","handleWatchlistSearchToggle","handleReloadWatchlist","isDynamicWatchlist","storeWatchlists","setOpenModify","setCreateWatchList","setWatchlistName","setTypedValue","searchResults","setSearchResults","searchValue","setSearchValue","showEmptySearchState","setShowEmptySearchState","setInvalidRemoveName","searchInputRef","watchlistNameRef","handleSaveWatchlist","newWatchlistName","wlCount","editWatchlistIcon","nameExists","maxWatchlists","headerButtonsWrapper","watchlistSearchContainer","resetWatchlistSearch","searchTitle","inputIcon","clearSearchInput","deleteIcon","openSearchInput","results","sorted","hiddenScroll","boxSearch","modalWatchlist","modifyWatchlistModalBody","modifyWatchlist","modifyInputContainer","modifyErrorInput","modifyInput","inputLimit","buttonDiv","modifyButton","handleCloseModifyModal","originalName","OneClickTradeDropdown","handleQuantityChange","formattedQuantity","handleInputChange","wrongQuantityError","dropdownOpen","setDropdownOpen","dropdownStyle","dropdownError","dropdown","dropdownRef","closeOpenDropdown","_dropdownRef$current","readOnly","inputSkeleton","Skeleton","baseColor","highlightColor","optionSelected","pound","points","OneClickTradeButtons","handleBuySellClick","hoverClasses","instrumentIcon","faArrowAltUp","faArrowAltDown","handleBuySellButtonClick","closedMarketContainer","closedMarket","containerSelected","tradeButtonContainer","sellLabelContainer","upDownIcon","priceContainer","buyLabelContainer","TradeState","OneClickTradeTicket","_dashboardContext$sel","handleInstrumentChange","isDetached","requestId","tradeState","Default","lastRequestTime","octStoredValue","setSelectedQuantity","setWrongQuantityError","isFirstRender","setIsFirstRender","storedOCTValue","selectedTradingAccountId","asyncWait","ms","subTradeEventIdRef","getQuantityValues","_octStoredValue$selec","convertedValue","Submitted","inputValue","_value$split$1$length","_value$split$","getDefQuantityValue","quantityValue","defValue","_storedOCTValue$selec","isQuantityValid","containerLimited","containerDetached","removeIconContainer","removeIcon","instrumentHeader","timeInMillis","orderRequestObject","orderConfirmObj","stopLossValues","buttonHover","spreadHover","loadingContainer","loadingIcon","submittedText","_e$target$value$match","isValid","modalRemoveWatchlist","TradeBoardItem","onInstrumentChange","TradeBoard","updateSBWatchlistInstruments","setIsDynamicWatchlist","setIsWatchlistSearchOpen","subscribeToNewInstruments","initialChartSymbol","instrumentHandlers","subIdItemsRef","unsubscribeInstruments","watchlistContainerDetach","marketTickerContainer","windowMarketTickerContainer","noScrollBar","instrumentsContainer","mktItem","addInstrumentContainer","centeredText","addInstrument","addInstrumentIcon","addInstrumentTitle","iconC","aria-hidden","emptyTitle","usePositionGridColumn","symbolCell","getCanExpand","getIsExpanded","symbolText","verticalCenterAlign","renderValue","Change","enableSorting","CalcNetPL","horizontalCenterAlign","maxSize","usePositionTable","_useSelectedTradingAc","openPositionsBySymbol","oldestDate","newestDate","valueOf","codeOrTicker","sumValue","headID","Exposure","Previous","positionLength","_position$currentPric","_position$netProfit","_position$grossProfit","_position$oP","currentChange","onDateTranslated","parentItem","NetPL","GrossPL","PositionTable","showSettingsModal","columnResizeMode","setColumnVisibility","globalFilter","setGlobalFilter","highlightPosition","setHighlightPosition","expanded","setExpanded","sorting","setSorting","columnOrder","setColumnOrder","isMozilla","havePositions","setHavePositions","localDataOrder","parsedData","getSortedRowModel","onSortingChange","onExpandedChange","getSubRows","onColumnVisibilityChange","getFilteredRowModel","onColumnFiltersChange","onGlobalFilterChange","onColumnOrderChange","getExpandedRowModel","debugTable","localData","localSortingData","setItemToStorage","MouseSensor","TouchSensor","KeyboardSensor","tableContainerHeight","positionPageTableWrapper","restrictToHorizontalAxis","arrayMove","tableContainerVirtualStyles","stickyHeader","getHeaderGroups","headerGroup","horizontalListSortingStrategy","positionClass","tableRowTransparent","useOrderGridColumn","_getValue","useOrderTable","columnOptionExpired","setColumnOptionExpired","pendingPositionsBySymbol","expiredOrder","expiredDate","nearestExpDate","oldestCreatedDate","farthestExpDate","newestCreatedDate","isGTC","gtcIndex","expiredDateValue","squareAmount","ExpiryOnTranslated","Type","TypeTranslated","_marketItem$decPrec2","_position$prc$toFixed","_position$prc","_position$tp$toFixed","_position$tp","_position$sl$toFixed","_position$sl","createdOnTranslated","typeTranslated","OrderTable","InfoIcon","onInfoClick","iconTheme","useClosedGridColumn","useClosedTable","closedPositionsBySymbol","todayDate","todayDateFormat","closeDateFormat","subtractWeek","oneWeekDate","subtractMonth","oneMonthDate","setMonth","subtractMonths","threeMonthDate","getYTD","subtractYear","yearDate","setFullYear","mapClosedData","_position$oP$toFixed","_position$cP$toFixed","openOnTranslated","closedOnTranslated","ClosedTable","closedPositionsPeriodDropdown","setPositionData","tableOrEmptyState","setTableOrEmptyState","useImperativeHandle","exportToExcel","worksheetData","excelObject","worksheet","XLSX","json_to_sheet","workbook","book_new","book_append_sheet","PositionsPanel","closedTableRef","showPositions","setShowPositions","gridLengths","setGridLengths","closeDateOptions","todaysPositions","lastWeek","weeklyPositions","isBetween","lastMonth","monthlyPositions","lastThreeMonths","lastThreeMonthPositions","year","lastYearPositions","ytd","yearToDatePositions","openLength","pendingLength","setTab","tabIndex","gridLayout","reserveSpaceHelper","tabLabelValue","tabLabel","tools","handleCloseFilter","upward","closeDropdown","downLoadIcon","handleDownloadClick","loadingImage","lightLoader","darkLoader","loadingText","WatchlistHeader","editLayer","setSort","headerEdit","watchlistAccordion","editInstrument","windowInstrument","handleInstrumentClick","instrumentChevron","columnLabelContainer","columnLabel","DetachWatchlistPercentChange","ask","bid","calcChangePercentage","useDetachWatchListColumn","sortingRef","MarketItemIcon","sortingFn","rowA","rowB","useDetachWatchList","confirmOrderTicket","DetachWatchList","WatchlistEdit","window1","availableWatchlistsForMoveOperation","setOpenMove","handleSelectAllWatchListElements","handleWatchListSelection","resetEditLayer","editOptionContainer","actionRow","selectAll","editOptionCheckboxContainer","textAll","move","editOptionIcons","editBarText","editHeader","windowEditHeader","editIcon","windowHeader","openModalTitle","removeButton","removeItemsIcon","WatchListCategories","windowWatchListCategories","WatchListCategoriesChildEdit","windowEditDragContainer","instrumentBox","DragDropContext","destination","Droppable","droppableId","provided","windowMarketTickerContainerEdit","MarketTickerContainer","droppableProps","innerRef","draggableId","editContainer","windowEditContainer","draggableProps","dragHandleProps","SymbolDescription","grabIndicatorContainer","grabIndicator","sortedInstruments","setSortedInstruments","setAvailableWatchlistsForMoveOperation","setEditLayer","setRemoveItem","deletedItems","setDeletedItems","setRemoveAll","openMove","setSelectedWatchlist","timeoutRef","showToast","setShowToast","handleDelete","isItemArray","itemAsArray","prevDeleted","clearTimeout","sortWatchlistInstruments","handleMoveClose","editWatchlistButton","headerDynamic","emptyWindowContainer","notSticky","instrumentTitle","Container","fluid","containerFluid","toast","toastLeft","toastRight","toastButton","instrumentChecked","updatedRemoveItem","removeAttribute","moveModalHeader","moveModalTitle","isSomeOfTheElementsExistsInWatchlist","moveWatchlist","moveToWatchlist","toWatchlistInstruments","toWatchlist","originalList","RightNavItem","tooltipText","RightNavTrade","handleClickTrade","RightNavInfo","handleClickInfo","RightNavNews","handleClickNews","RightNavigation","Info","News","SignalPercentElement","barCount","hasHorizontalLayout","oneBar","twoBars","threeBars","fourBars","containerHorizontalLayout","signalBars","sizingBox","firstBar","bar","secondBar","thirdBar","fourthBar","fifthBar","SortingChevronIcons","sortType","chevronIcon","SignalsFilter","filterConditions","handleChangeSlider","handleChangeDropdown","triggerAnimation","availableAssetsClassOptions","statusOptions","easeInAnimation","easeOutAnimation","onAnimationEnd","range","marks","20","40","60","80","100","allowCross","confidenceRange","signalsFilterDropDown","assetClass","initialFiltersState","SignalsList","hasFilter","hasHorizontalConfidenceLayout","doNavigate","loading","hasBorder","isFilterOpen","setIsFilterOpen","setTriggerAnimation","sortingDirection","fieldName","setFilterConditions","getValueToSort","sortSignals","signalList","matchConfidence","matchAssetClass","matchOrder","sortedData","currentSignal","nextSignal","currentSignalValue","nextSignalValue","hasFilters","border","filterIconHolder","handleOpenFilter","filterIcon","hasFiltersIndicator","dropdownName","scrollableWrapper","signalsTable","tableHeadersRow","handleClickSort","sortingChevtonsContainer","signalData","_appContext$currently","_signalData$marketIte","_signalData$marketIte2","signalItem","handleSignalClick","signalsItemWrapper","confidencePercent","orderStats","EmptyNews","Newsfeed","liveTradeNews","matchingArticles","setMatchingArticles","updateCode","filterCode","formattedCode","newsFilter","matchingRecords","keywords","newsfeedContainer","webpackAsyncContext","req","__webpack_require__","o","ids","tagManagerArgs","gtmId","TagManager","initialize","Worker_fn","Worker","BinaryRfpClientWorkerState","ProtobufSchema","_jsonDefinitions","_root","_types","_ProtobufSchema","RfpBinaryMessagesJson","protobuf","Root","fromJSON","WrapperMessage","lookupType","worker","BinaryRfpClientWorker","m_socketClient","m_state","disconnected","m_stateStream","m_debugStream","m_dataStream","m_subscriptionStreams","m_appInBackgroundMode","m_lastInBackgroundModeTimestamp","setIsInBackgroundMode","performance","stateStream","debugStream","client","WebSocket","connectionTimeoutMilliseconds","pongTimeoutMilliseconds","connectionTimeout","pongTimeout","lastFrameTime","isMonitoringMainThread","checkMainThread","reconnect","requestAnimationFrame","resetConnectionTimeout","pingRequest","types","fromObject","commandId","Command","PING","binaryType","onopen","onmessage","ArrayBuffer","uint8ArrData","Uint8Array","decode","stream","onerror","onclose","requireConnectedClient","bytes","encode","finish","subscribeForData","unsubscribeForData","complete","command","connectedAction","disconnectedAction","readyState","OPEN","args","stripObjectFunctions","rfpClient","createWorkerModule","expose","BinaryRfpGatewayConfig","defaultFeedId","baseUrl","webSocket","maxRequestsPerSecond","autoReconnect","feedDelay","TT_WATCH_LIST","isoCode","codesCsv","RFP_SERVERS","RfpServers","rfpServer","rfpServerName","TT_MARGIN_RULES","marginRule","scheduleEnabled","dayIndexesSundayFirst","dayValues","FUTURE_MARGIN","_data$margin","FutureMargin","TT_SESSION_TIMES","HS_START_DATE","HistoryStartDate","timeInterval","intervalMin","TFBO_LOGIN","tfbo_session_id","tfboSessionId","tfbo_token","tfboToken","TFBO_ENDPOINT","restApiURL","uploadDocsURL","exchangeRateURL","REQ_QUOTES","RequestQuotes","Action","SUBSCRIBE","UNSUBSCRIBE","PONG","FEED_INFO","feeds","feedInfo","feedID","initialGroup","feedIds","HS_TICK","firstItem","continuousFlag","contFlag","MKT_ITEM","MarketItems","baseCcy","groupCode","isin","marginType","pipSizeH","tradable","wlRank","subscriptionCounter","MKT_ITEM_INFO","MarketItemsInfo","MarketItemInfo","MarketItemsInfoRecord","QUOTE","Quote","TR_ACCOUNTS_ERROR","TR_ACCOUNT","AccountType","TR_PROVIDER","uniqueName","TR_ACCOUNT_LOGIN_INFO","TradingAccountLoginInfo","loggedOn","ACCT_TIER_INFO","AccountTierInfo","ttAcctId","usedUnits","availableUnits","maxUnits","TR_ACCOUNT_INSTRUMENTS","TradingInstruments","_rshMap","minLot","maxLot","stepLot","lotDecPrec","pipPos","rshL","rshLong","rshS","rshShort","swapLong","swapShort","trPeriod","tradingPeriod","mtReqMx","mtValOne","mtReqOne","mtValTwo","mtReqTwo","mtValThree","mtReqThree","mtValFour","mtReqFour","mtValFive","mtReqFive","mtValSix","mtReqSix","NEWS_ARTICLE","currencies","newsCurrency","newsCategoryId","newsTypeId","revision","MKTWIN_NEWS","MarketWinNews","codeId","priority","TRADE_EVENT","TradeEventMsgType","msgType","eventType","EventType","EVT_TYPE_ERROR","HS_SIZE","rfpTimingInterval","TRADE_EVENT_EXT","TradeEventExt","orderId","eventEntry","TradeEventEntry","POSITION","POSITIONS","isJapaneseUser","floorValueIfNeedIt","PositionState","CLOSED","PositionType","CMD_INFO","ClientCommandResult","clReqId","msg","objId","topic","subType","ERROR","SessionError","MKTW_INTERVALS","intervalLength","MKTW_CATEGORIES","categories","itemsCount","dynamic","MKTW_ITEM","MKTW_ITEMS","dynamic_category","dynamicCategory","totNumMsgs","msgNum","PREV_DAY_CLOSE_PRICE","PreviousDayClosePrice","_messageMapper","RequestHistory","Timescale","TS_UNKNOWN","PriceType","RHPT_UNKNOWN","expDt","isFinite","RequestNewTrade","TradeSide","TSD_UNKNOWN","TradeType","TTP_UNKNOWN","root","ProtoVer","lookupTypeOrEnum","LoginMode","LocalizationLang","LoginRequest","AuthTokenLoginRequest","RequestTfboLogin","RequestTfboEndpoint","Ping","SSOLoginRequest","LoginResponse","QuoteServiceStatus","RequestHistoryStartDate","RequestFeeds","FeedInfo","RequestMarketItems","RequestMarketItemsInfo","RequestTradingProviders","RequestTradingAccounts","RequestRfpServers","RequestLoginTradingAccount","RequestLogoutTradingAccount","RequestAccountTierInfo","RequestTTWatchList","RequestTTMarginRules","RequestFutureMargin","VTUpdateTradingAccountQuantityType","VTUpdateTradingAccount","RequestPreviousDayClosePrice","TradingInstrument","DemoAccountParam","DemoAccountParams","TradingAccountProperty","TradingAccountProperties","RequestNewOrder","RequestEditPosition","RequestEditOrder","RequestCloseTrade","RequestCloseTradePartial","RequestMarketWatchIntervals","RequestMarketWatchCategories","RequestMarketWatchSnapshots","RequestMarketWatchSubscription","RequestMarketWatchDynamicSubscription","TradingAccountNotFound","TradingAccountDeleted","RequestTTSessionTimes","RequestNews","RequestMarketWinNews","RequestNewsGroups","RequestNewsConfig","NewsArticles","NewsFilterGroup","NewsFilterGroups","NewsFilterEntry","NewsFilterEntries","TierUpdatePush","REQ_FEEDS","REQ_MKT_ITEMS","REQ_MKT_ITEMS_INFO","REQ_TR_ACCOUNTS","REQ_TR_PROVIDERS","SNAPSHOT","mapHistoryPriceType","mapHistoryTimescale","Subscribe","countBars","tickCount","REQ_HISTORY","REQ_TT_SESSION_TIMES","REQ_HS_START_DATE","REQ_NEWS","msgCount","REQ_MKTWIN_NEWS","REQ_LOGIN_TR_ACCOUNT","tradingAccountId","REQ_LOGOUT_TR_ACCOUNT","REQ_TT_WATCH_LIST","REQ_RFP_SERVERS","acctIds","REQ_TT_MARGIN_RULES","REQ_FUTURE_MARGIN","REQ_ACCT_TIER_INFO","REQ_CLOSE_TRADE","REQ_EDIT_ORDER","mapOrderExpiration","REQ_EDIT_POS","reqNewTrade","mapTradeSide","mapTradeType","REQ_NEW_ORDER","REQ_NEW_TRADE","REQ_CLOSE_POS_PART","reqCloseTrade","REQ_MKTW_INTERVALS","REQ_MKTW_CATEGORIES","REQ_MKTW_SNAPSHOTS","categoryName","REQ_MKTW_SUBSCRIPTION","REQ_MKTW_DYNAMIC_SUBSCRIPTION","REQ_UPD_TR_ACCOUNT","accId","REQ_PREV_DAY_CLOSE_PRICE","decodeMessage","UPDATE_ACCT_TIER","RfpDataMessageMapId","objType","CMD_UNKNOWN","PriceQuoteSubscription","gateway","m_gateway","m_subscriptions","sendPriceQuoteRequest","Unsubscribe","subscription","onPriceQuote","func","dispose","DataObjectSubscription","onDataObject","rfpDataType","PriceFeed","m_id","m_stream","m_subscriptionDelegate","subscriptionDelegate","subscriptionStreamDelegate","pipe","subscriptions","newSubscriptions","existingSubscriptions","HistoryFeed","m_fetchTicksDelegate","fetchTicksDelegate","ticks","fetchTicks","historyFeedSubscription","timeoutDelay","hsReqId","WorkerRfpClient","m_worker","m_workerState","m_promiseFactory","m_subscriptionCommandIds","m_workerDebugSubscription","m_workerStateSubscription","setAppInBackgroundMode","errorCallback","startWorker","observableSubscription","hasSubscription","stopWorker","spawn","WebWorker","Thread","terminate","BinaryRfpGateway","m_dataObjectSubscriptions","m_priceFeedConfigTemplate","m_historyFeedConfigTemplate","m_subscriptionMessageStream","_this$m_socketClient","m_currentPrices","m_historyData","m_mapMarketItems","subscriptionMessageStream","m_priceStream","m_historyStream","m_priceFeeds","m_historyFeeds","m_isAppInBackgroundMode","m_feedIds","m_maxRequestFrequency","m_priceQuoteSubscriptions","m_marketItemsRecord","m_lastRequestTime","m_reconnectHandler","m_quotesInterval","nextCommandId","subscriptionStream","_data$historyTicks","priceFeedId","subscriptionsByFeedId","priceStream","historyFeedId","historyFeed","fetchHistoryTicks","historyStream","connectPayloadProvider","_this$connectionInfo","_this$connectionInfo2","_this$connectionInfo3","connectionInfo","connectPayload","wsDisconnect","enableSSO","sso_token","wsConnect","decodedMessage","_ProtobufSchema$rshMa","rshData","rshMap","adjustedPips","connectTimeout","wsSubscribe","_data$error","ConnectionToServerClosed","wsUnsubscribe","LOGIN","_data$fundedTrader","rfpUrl","login_mode","loginMode","fundedTrader","AuthenticationTimeout","loginRequest","REQ_LOGIN_AUTH_TOKEN","protoVer","ONE","wsSend","feedIdsSubscription","feed","RequestFeedIdsTimeout","simulateQuotes","discError","feedIdentifier","priceFeedConfigTemplate","requestTfboLogin","tfboLoginRequest","REQ_TFBO_LOGIN","requestTfboEndpoint","REQ_TFBO_ENDPOINT","deletePriceFeed","createHistoryFeed","historyFeedConfigTemplate","deleteHistoryFeed","isHistoryFeedOwned","timeoutPromise","item1","item2","historyFeeds","subscripions","_historyTickItems$his","_this$m_feedIds","feedInfos","wrapperMessage","messageMapper","commandIds","mapperFnc","subscribedCommandIds","wsHasSubscription","_this$m_priceFeeds","_this$m_historyFeeds","_this$m_feedIds2","dataObjectSubscriptions","setPriceQuote","websocketUrl","library","faCalendar","fasCalendar","fasTimes","fasPen","fasTimesCircle","fasSearch","falSearch","farSearch","faPencil","faArrowDownToLine","fasChevronLeft","fasChevronRight","falChevronLeft","falChevronRight","fasPlusCircle","fasInfoCircle","fasExternalLinkAlt","falExternalLinkAlt","farExternalLinkAlt","fasCog","fasUser","faGripDotsVertical","falTimes","fasList","fasGripDotsVertical","falGripDotsVertical","falList","falNewspaper","faGlobe","farGlobe","fasGlobe","farPlusCircle","falPlusCircle","faEye","farEye","falEye","falEyeSlash","fasEyeSlash","farEyeSlash","faFileAlt","farCircleXmark","fasCircleXmark","falCircleXmark","falXmark","faCheckCircle","farTasks","falTasks","fasTasks","faHistory","fasChartPie","farChartPie","falChartPie","falPlus","faCaretUp","faSpinner","faCaretDown","faClipboardList","faExclamationCircle","faPauseCircle","faPen","falPen","farTimesCircle","fasCaretLeft","fasCaretRight","faSquare","fasCheckSquare","faBell","farBell","falBell","faPlayCircle","fasArrowLeft","faSun","faBrightness","faMoon","farCreditCard","faTwitter","faTelegram","faLine","faCommentAltDots","fasCommentAltDots","faDumbbell","faCommentDots","fasCommentDots","fasDumbbell","falDumbbell","farDumbbell","fasPlayCircle","fasPauseCircle","faStepBackward","faStepForward","faGamepad","faRedo","farMoneyBillWave","falMoneyBillWave","fasMoneyBillWave","faCheck","faSignal","fasSignal","faFilter","falFilter","faChevronUp","faChevronDown","farChevronDown","farXmark","farSignalSlash","fasSignalSlash","falSignalSlash","falFilterSlash","farLock","faLock","farShield","falShield","faBookReader","faGripVertical","faBolt","faBookOpenCover","falBookOpenCover","faNewspaper","faArrowRightArrowLeft","faPlus","faCirclePlus","faMinus","farKey","farChartColumn","faCircleMinus","fasFileArrowUp","falFileArrowUp","farFileArrowUp","fasChartColumn","falChartColumn","fasShield","farDesktop","fasDesktop","falDesktop","fasKey","falKey","faTruck","faTrashAlt","faAngleUp","faAngleDown","faAngleRight","faExclamationTriangle","faExchange","faInfoCircle","faChartCandlestick","fasChartCandlestick","fasPlus","faMoneyBill1","faSquareArrowDownLeft","faSquareArrowUpRight","fasMoneyBill1","faPenLine","faEllipsisV","faGrid","faFunction","faGear","falInfoCircle","farArrowRightArrowLeft","farInfoCircle","faBoltSlash","faChartTreeMap","faMessageDots","fasMessageDots","faArrowRightFromBracket","faPhone","falUser","faEnvelope","faVolume","faVolumeSlash","fasLayerPlus","farLayerPlus","falLayerPlus","farInfo","falInfo","fasInfo","faQuestionCircle","farTrash","falTrash","fasTrash","faClone","faPeopleGroup","falPeopleGroup","fasPeopleGroup","fasCircleQuestion","falCircleQuestion","faCircleQuestion","fasClapperboardPlay","falClapperboardPlay","farClapperboardPlay","faMoneyBillTrendUp","farExlamationTriangle","farBookOpenCover","faSparkles","faArrowLeft","faCalendarAlt","farPlusLarge","falPlusLarge","fasPlusLarge","farEquals","falEquals","fasEquals","fasCircleCheck","falCircle","farXmarkLarge","falXmarkLarge","fasXmarkLarge","farSquareArrowUpRight","farSquareArrowDownLeft","fasSquareArrowUpRight","fasSquareArrowDownLeft","falSquareArrowUpRight","falSquareArrowDownLeft","fasShieldKeyhole","farShieldKeyhole","falShieldKeyhole","farChartCandlestick","farCircle","fasCircle","falTrashCanCheck","fasListUl","falListUl","farListUl","falClockRotateLeft","fasClockRotateLeft","farClockRotateLeft","faPenToSquare","initApm","serviceName","serverUrl","serviceVersion","environment","refreshTokenPromise","defaults","baseURL","withCredentials","retryRequest","originalRequest","_retried","interceptors","_config$url","_response$data2","_response$data2$paylo","_originalRequest$url","_originalRequest$url2","retried","_error$response2","_originalRequest$url3","_originalRequest$url4","ThemeWrapper","isJapanese","isThai","isVietnamese","isArab","isTraditionalChinese","isSimplifiedChinese","fullHeightWidth","subscribeOpsPersistHelper","initStatusName","initProviderStatusName","queryPersistAppendix","RFP_TRADING_ACCOUNT","TFBO_CONNECTION_ERROR","TFBO_GET_USER_RECONNECTING","TFBO_GET_USER","TFBO_GET_ACCOUNT_STATS_RECONNECTING","USER_PREFERENCES","i18next","loadLanguages","connectWebSocket","instrumentContextProvider","dashboardContextProvider","marginRulesContextProvider","existingValue","freshNewsArr","oldAccount","oldPos","Risers","Daily","dailyRisers","weeklyRisers","RisersSB","Fallers","dailyFallers","weeklyFallers","FallersSB","dailyMostVolatile","weeklyMostVolatile","MostVolatileSB","prevClose","onConnected","feedReq","feedSubscription","MostVolatile","Weekly","rfpNews","tradingProvider","_savedPreferences$use","_savedPreferences$use2","_savedPreferences$use3","savedPreferences","lastLoggedAcc","newWatchList","codesArray","newCode","currentMarginRules","currentFutureMargin","serverNames","marketItemsRecord","mktwatchItem","mktwatchItems","previousDayClosePrice","tierUpdateInfo","loginCred","skip_tfbo_login","captcha_response","getUrlWithAppendedQueryString","currentUrl","extraQueryString","hasCurrentUrlQuestMark","URL","useApplicationStatus","useUserProfile","useUserStats","useStoreAndLoadPreferences","limitProfitLossStoredValues","newUserPreferences","_savedPreferences$use4","_savedPreferences$use5","_savedPreferences$use6","_savedPreferences$use7","_savedPreferences$use8","storedStopLossValueType","stopLossValueType","storedTakeProfitValueType","takeProfitValueType","filteredSBWatchlistAccountPref","useUpdatePipsPreferences","pipsObject","_appContext$userPrefe4","_appContext$userPrefe5","useUserPreferences","opts","storeAndLoadPreferences","updatePipsPreferences","preferencesData","decodeURIComponent","atob","useExchangeSSOToken","ssoCode","useAggreementStatus","ALLOWED_TRADING_ACCOUNT_TYPES","useInitialize","isInitializedRef","fetchUserPreferences","fetchProfile","_data$country$code","_data$country","code2","fetchUserStats","stat","accountTradingType","CE","fetchApplicationStatus","application_status","fetchAggrementStatus","customerVersion","latestVersion","exchangeSSOCode","useExchangeSSOCode","query","ssoEmail","updateLanguageSettings","connectRfp","setCustomContext","setUserContext","rfpUrlStorage","_storedData$email","storedData","_storedData$email2","getSessionId","go","withLiveAccount_inDemoMode","EMPTY","DUPLICATE","INCOMPLETE","PENDING_ID_ADDRESS","PENDING_ID","PENDING_ADDRESS","PENDING_APPROPRIATENESS_TEST","PENDING_PROPER_DOCUMENTS","PENDING_RG227","PENDING_BLURRY_CROPPED_ID","PENDING_BLURRY_POA","MANUAL_DOCS","PENDING_E_VERIFICATION","PENDING_TRANSLATION","PENDING_KYC","DENIED","PENDING_TRANSFER","PENDING_NEW_TnC_ACCEPTANCE","FAILED","PENDING","INTERNAL_TESTING","PENDING_IP_MISMATCH","PENDING_DOB_MISMATCH","PENDING_DOB_ADDRESS_MISMATCH","PENDING_ADDRESS_MISMATCH","PENDING_E_VERIFICATION_RETRY","PENDING_SOF","PENDING_NO_KYC_DOCS","PENDING_EMAIL","PENDING_NO_ID","withLiveAccount_inLiveMode","withoutLiveAccount_inDemoMode","withoutLiveAccount_inLiveMode","AccountStatusHandler","tierWatchlist","setTierWatchlist","statEntry","_statEntry$account","_dashboardContext$tra","lastLogged","_account$accountNumbe","_dashboardContext$tra2","_dashboardContext$tra3","Tier0","accountIDs","_dashboardContext$tra4","_account$accountNumbe2","_dashboardContext$tra5","_dashboardContext$tra6","useSetupMFA","useSetMFAStatus","TwoFactorAuthModal","setCode","setError","generateKey","enableMFA","isLoadingManage","mfaModal","closeModal","qrCode","OTPInput","inputType","numInputs","renderInput","inputStyle","otpInput","containerStyle","otpContainer","shouldAutoFocus","actions","languages","changeLangForPortal","AuthGuard","Component","isValidSession","Route","Redirect","to","lazyRetry","componentImport","storageKey","hasRefreshed","_component$default","handleImportError","ChartPanel","lazy","Dashboard","showTradeNewsfeed","openOrderTicket","useSubscribeTradeEvent","localLanguage","isChanged","filteredWatchlists","hasItem","instruName","errorNotifRef","visibleNotif","isTradingConstrained","userOperation","leftPanel","Switch","exact","path","tradeLeftPanel","tradeLeftPanelOpen","tradeLeftPanelClose","rightPanel","rightTopPanel","chartPanel","panelBackground","ticket","showTicket","ticketPanel","rightNav","positionsBottomPanel","positionsBottomPanelOpen","positionsBottomPanelClose","ordersPanel","NewsWidget","withDetails","filterOption","setFilterOption","listOfArticles","setListOfArticles","selectedArticle","setSelectedArticle","emptyContainerMessage","dropdownOptions","formatCode","formattedCodes","keyword","currentPositions","currentPosition","span","contents","halfWidth","contentsAndDisclaimer","width50","jpNewsWrapper","newsWrapper","createNewSimulation","disclaimerMessageWrapper","articleDetails","MarketSignalsGate","isLiveAccountApproved","setLabel","unlockIcon","ctaButton","handleCTAButtonClick","MarketSignalsList","MarketSignals","gateContainer","fakeList","gate","marketTableFilterStore","isCurrencyOpen","toggleOpenCurrency","isExchangeCountryCodeOpen","isSectorOpen","isCategoryOpen","isPeriodOpen","setExchangeCountryCode","toggleOpenExchangeCountryCode","setSector","toggleOpenSector","ALL","setCategory","toggleOpenCategory","setPeriod","toggleOpenPeriod","closeAllFilters","setAllFiltersToDefault","TRANSLATIONS_KEY_MAP","ETF","Equities","countrycode","DE","FI","FR","GB","HK","NL","US","ZA","Financials","Industrials","Materials","Technology","Utilities","translateMarketTerm","termType","termKey","_TRANSLATIONS_KEY_MAP","translationKey","FilterBar","selectedCategory","selectedCategoryTranslatedLabel","sectors","exchangeCountryCodes","periods","popupPosition","onClickSetSector","onClickSetExchangeCountry","onClickSetCurrency","onClickSetCategory","onClickSetPeriod","sectorsJSXMap","bold","exchangeCountriesJSXMap","currenciesJSXMap","categoriesJSXMap","periodsJSXMap","filterOptionGroupWrapper","filterOptionGroup","filterLabel","filterControl","filterListWrapper","filterList","TableSettingsModal","isDynamicCategorySelected","isChangeDisabled","VolatilityProgressBar","ProgressBar","NewWatchlistsList","instrumentExistsInWatchlist","AddToWatchlistWrapper","openWatchlistMenu","setOpenWatchlistMenu","duplicateName","setDuplicateName","handleOpenWatchlist","resizedCancelBtn","resizedSaveBtn","alreadyExists","maxWatchlistsReached","checkWatchlistValidation","MarketsEmptyState","noResultsIcon","MarketsTable","_sorting$","_sorting$2","translatedMarketGroups","newsPanelHeight","useMarketItemFormatter","currencyFilter","exchangeCountryCodeFilter","periodFilter","categoryFilter","sectorFilter","setForceRerender","setLoading","setEmptyState","codesComparison","setCodesComparison","isVolatileSelected","selectedCategoryTranslated","scrollTo","filteredArray","dataMap","categoryArray","isScrolling","marketPageTableWrapper","_marketGroupsRef$curr","_marketGroupsRef$curr2","marketGroupsRef","selectedMarketsGroupName","setSelectedMarketsGroupName","_JSON$parse","_JSON$parse$Risers","_JSON$parse2","_JSON$parse2$Fallers","_JSON$parse3","_JSON$parse3$MarketsG","risersArray","risersSBArray","fallersArray","fallersSBArray","mostVolatileArray","mostVolatileSBArray","marketFilters","riserPeriod","riserCategory","marketWatch","_riserCategory$items","riserSBCategory","_riserSBCategory$item","fallerPeriod","fallerCategory","_fallerCategory$items","fallerSBCategory","_fallerSBCategory$ite","mvPeriod","mvCategory","_mvCategory$items","mvSBCategory","_mvSBCategory$items","dynamicGroups","risers","fallers","mostVolatile","dynamicSBGroups","constantGroups","groupA","groupB","spreadBettingGroups","marketGroups","marketGroup","marketGroupsFiltered","marketTabs","categoryGroupContainer","positionTypeOption","labelText","marketsWrapper","jpNews","newsAndSignals","newsOrSignalsColumn","postMessageToTP","tpIframe","contentWindow","postMessage","handleDepositRedirect","actionType","IframeThinkPortal","componentType","showLoader","setShowLoader","tpPostMessageListener","tradingAccountIdsKey","navigateToPortalPage","transactionId","displayNone","useCalendarToken","page","Insights","setUrl","iframeContainerRef","usi","iframeContainer","iframeEdit","allowFullScreen","frameBorder","scrolling","FallBackCalendar","containerRef","languageMap","it","th","innerHTML","fallBackCalendar","calRef","toggleAttribute","defer","parentNode","culture","ar","useGenerateSSOToken","useFetchDataFromYoutube","fetch","json","SingleTutorial","openVideo","videoArticle","descriptionWrapper","videoId","setVideoId","errorFromYoutube","handleOpenVideo","handleCloseVideo","allow","loadingTutorials","setIsOpenServiceIssuesModal","video","_video$snippet","_video$snippet2","_video$snippet2$thumb","_video$snippet2$thumb2","_video$snippet3","embedVideo","snippet","resourceId","thumbnails","maxres","DashboardContainerComponent","generateSSOToken","renderDisplayInit","Portal","toRender","toDisplay","portalIframeComponents","thinkPortalAuth","fullWidthHeight","Login","MobileView","ForgotPassword","TwoFactorAuthentication","Agreement","NewTraderWindow","AccountStatusModal","App","marginRulesProvider","setAttribute","Suspense","fallback","ApmRoute","visibilityChange","QueryClient","ROUTES_ALLOWED_ON_MOBILE","pageHiddenStatus","_document","_document2","_document3","msHidden","webkitHidden","initialHidden","hiddenStatus","setHiddenStatus","handleVisibilityChange","usePageVisibility","isMobile","reactDeviceDetect","QueryClientProvider","Boolean","hostname","dependencyContainer","setResolver","createRoot","Router","serviceWorker","registration","getRegistration","waiting","showSkipWaitingPrompt","notificationDialog","update","refreshing","ready","unregister","child"],"mappings":"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,IAAKsV,EACLyM,MAAOzM,EACP2M,WAAYzD,EAAqBC,KACjCyD,WAAYvD,EAAqBC,WACjC2E,UAAU,IAGCC,EAA6BA,CACzCpB,EACAgB,EACAj3B,EACAqrB,KAEO,CACNrrB,WAAYA,EACZ61B,QAASI,EACTpiB,IAAKojB,EACLrB,MAAOqB,EACPnB,WAAYoB,EAAgB7L,GAC5B0K,WAAYvD,EAAqBC,aAItB6E,EAAsCA,CAClDnO,EACA+H,EACA9F,KAEA,IAAIhC,GAAS,EAMb,OALI8H,EAAW3vB,OAAS,IAAM6pB,GAC7B8F,EAAW5U,QAASib,IACbA,EAAUC,MAAMv2B,KAAMsb,GAAwBA,EAAKkb,QAAUtO,KAAOC,GAAS,KAG9EA,GAGFwN,EAAyB,CAC9B,WACA,WACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,UAGYc,EAA2B,sEAClCb,EAAiC,CACtC,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,W,iCCvQD,6CAEe,SAASc,IACvB,MAAMC,EAAUpJ,kBAAO,IAChB,CAAEqJ,GAAYC,mBAASpZ,KAAKqZ,OAUnC,OARAjJ,oBAAU,KACT8I,EAAQnJ,SAAU,EAEX,KACNmJ,EAAQnJ,SAAU,IAEjB,IAEI,KACFmJ,EAAQnJ,SACXoJ,EAASnZ,KAAKqZ,U,8BChBjB,6DAwFeC,IA/DuB1f,IAe/B,IAfgC,UACtC2f,EAAS,WACTC,EAAU,SACVC,GAAW,EAAK,MAChBzoB,EAAK,QACL0oB,EAAO,KACPC,EAAI,YACJC,EAAW,KACXC,EAAO,KAAI,KACXxvB,EAAI,QACJy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,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,MAGb,CACCvuC,GAAI,QACJ0e,IAAK,aACLwvB,cAAe,IACfC,cAAe,KACfC,YAAa,IACbnuC,YAAa,IACbouC,cAAexqC,IAAKC,EAAE,iBACtBwqC,YAAa,IACbhkC,YAAa,CACZ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEDikC,0BAA2B,CAC1B,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,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,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,CACCvzB,IAAK,GACLxqB,MAAO,GACP69C,MAAO,CAAEC,QAAQ,EAAMC,IAAK,oBAE7B,C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B,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,oBAAqB,CACpB,KACA,IAED,mBAAoB,CACnB,KACA,IAED,mBAAoB,CACnB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,yBAA0B,CACzB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,eAAgB,CACf,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,2BAA4B,CAC3B,KACA,KAED,qBAAsB,CACrB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,kBAAmB,CAClB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,iBAAkB,CACjB,KACA,KAED,YAAa,CACZ,KACA,KAED,oBAAqB,CACpB,KACA,KAED,eAAgB,CACf,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,kBAAmB,CAClB,KACA,KAED,gBAAiB,CAChB,KAED,oBAAqB,CACpB,KAED,kBAAmB,CAClB,KACA,KAED,eAAgB,CACf,KAED,qBAAsB,CACrB,IACA,GAED,wBAAyB,CACxB,KACA,KAED,eAAgB,CACf,KACA,KAED,wBAAyB,CACxB,KACA,KAED,gCAAiC,CAChC,KAED,eAAgB,CACf,KAED,cAAe,CACd,KAED,gBAAiB,CAChB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,cAAe,CACd,KAED,0BAA2B,CAC1B,KACA,KAED,uBAAwB,CACvB,KAED,sBAAuB,CACtB,KACA,KAED,iBAAkB,CACjB,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,yBAA0B,CACzB,KACA,KAED,8BAA+B,CAC9B,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,gBAAiB,CAChB,KAED,kBAAmB,CAClB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,eAAgB,CACf,KAED,oBAAqB,CACpB,KAED,qBAAsB,CACrB,KAED,mBAAoB,CACnB,KACA,KAED,eAAgB,CACf,KAED,uBAAwB,CACvB,KAED,gBAAiB,CAChB,KACA,KAED,gBAAiB,CAChB,KACA,KAED,eAAgB,CACf,KAED,uBAAwB,CACvB,KACA,KAED,eAAgB,CACf,KAED,+BAAgC,CAC/B,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,sBAAuB,CACtB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,yBAA0B,CACzB,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,oBAAqB,CACpB,KAED,oBAAqB,CACpB,KAED,oBAAqB,CACpB,KAED,oCAAqC,CACpC,KACA,KAED,mBAAoB,CACnB,KACA,KAED,mBAAoB,CACnB,KACA,MAGF,SAAS63J,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEh4J,EAAK83J,GAC9B,OAAO7iH,QAAQ97D,UAAU28D,MAAK,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Ach9K,GACpBrjB,KAAKw6L,gBAAgBz8K,IAAI,GAADpc,OAAI0hB,EAAW0yB,EAAC,KAAAp0C,OAAI0hB,EAAWuN,GAAKvN,GAGrDs5K,UAAUlD,GACjB,OAAOz5L,KAAK0hL,eAAe57K,QAAQ9F,KAAKs4C,OAAOgoJ,aAAc7G,GAK9D,aAAqB1+K,GAUpB,OAAO/a,KAAK0hL,eAAe1/G,KAAKjnD,GA2BzBmiL,YACPxY,EACAx8H,GAEA,OAAOloD,KAAK0hL,eAAexqJ,UAAUwtJ,EAASx8H,GAGvCm1I,cAAc3Y,GACrB,OAAO1kL,KAAK0hL,eAAenqJ,YAAYmtJ,GAGhCsb,kBAAkBtb,GACzB,OAAO1kL,KAAK0hL,eAAekY,gBAAgBlV,GAGpC8X,eACP,OAAOx8L,KAAK0hL,eAAepzG,c,uJCpkH7BiyH,KAAQpvK,IACPqvK,KACAC,KACAC,MACAC,MACAC,MACAC,MACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAlB,MACAmB,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,MACAC,MACAC,KACAC,MACAC,KACAC,KACAC,MACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAX,MACAC,KACAW,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,KACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,MACAC,MACAviD,MACAC,MACAuiD,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAD,KACAE,KACAC,KACAC,MACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAd,KACAe,KACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,M,cCrcclsB,OAdAmsB,aAAQ,CAEtBC,YAAa,aAGbC,UAAWhtM,yCAGXitM,eAAgBlqK,IAGhBmqK,YAAaltM,e,UCJd,IAAImtM,GANJjzJ,KAAMkzJ,SAASC,QAAUrtM,gCACzBk6C,KAAMkzJ,SAASE,iBAAkB,EACjCpzJ,KAAMkzJ,SAAS/yJ,QAAQ,gBAAkB,mBAMzC,MAAMkzJ,GAAgBC,GACjBA,EAAgBC,SACZ,MAGRD,EAAgBC,UAAW,EAEtBN,KAGJA,GAAsBjzJ,aAAM,CAC3BC,IAAK,gBACLC,OAAQ,OACR7gB,KAAM,CACLv+B,YAAaF,aAAaC,QAAQkoC,KAClCgtD,aAAcn1F,aAAaC,QAAQmoC,QAElCo5B,KAAMh5C,IACR,GAAoB,OAAb,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKhd,QAMR,OALAxL,aAAa4D,QAAQukC,IAAkB3f,EAAIiW,KAAKv+B,aAChDF,aAAa4D,QAAQwkC,IAAmB5f,EAAI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","file":"static/js/main.db829f77.chunk.js","sourcesContent":["export enum MarketsGroupName {\n\tRisers = 'Risers',\n\tFallers = 'Fallers',\n\tMostVolatile = 'Most volatile',\n\tRisersSB = 'Risers SB',\n\tFallersSB = 'Fallers SB',\n\tMostVolatileSB = 'Most volatile SB',\n\tCommodities = 'Commodities',\n\tCrypto = 'Crypto',\n\tCryptoSB = 'CryptoSB',\n\tEnergy = 'Energy',\n\tEnergySB = 'EnergySB',\n\tCFD = 'CFD',\n\tETF = 'ETF',\n\tForex = 'Forex',\n\tForexSB = 'ForexSB',\n\tIndices = 'Indices',\n\tIndicesSB = 'IndicesSB',\n\tMetals = 'Metals',\n\tMetalsSB = 'MetalsSB',\n\tStocks = 'Stocks',\n\tEquities = 'Equities',\n\tTier1 = 'Tier1',\n\tTier2 = 'Tier2',\n\tTier3 = 'Tier3',\n}\nexport enum MarketsGroupTooltips {\n\tRisers = 'RISERS_TOOLTIP',\n\tFallers = 'FALLERS_TOOLTIP',\n\t'Most volatile' = 'MOST_VOLATILE_TOOLTIP',\n\t'Risers SB' = 'RISERS_TOOLTIP',\n\t'Fallers SB' = 'FALLERS_TOOLTIP',\n\t'Most volatile SB' = 'MOST_VOLATILE_TOOLTIP',\n\tCommodities = 'COMMODITIES_TOOLTIP',\n\tCrypto = 'CRYPTO_TOOLTIP',\n\tCryptoSB = 'CRYPTO_TOOLTIP',\n\tEnergy = 'ENERGY_TOOLTIP_CFD',\n\tEnergySB = 'ENERGY_TOOLTIP',\n\tCFD = 'SHARE_TOOLTIP_CFD',\n\tETF = 'ETF_TOOLTIP_CFD',\n\tForex = 'FOREX_TOOLTIP_CFD',\n\tForexSB = 'FOREX_TOOLTIP',\n\tIndices = 'INDICES_TOOLTIP',\n\tIndicesSB = 'INDICES_TOOLTIP_SB',\n\tMetals = 'METALS_TOOLTIP',\n\tMetalsSB = 'METALS_TOOLTIP_SB',\n\tEquities = 'SHARE_TOOLTIP_CFD',\n}\n\nexport enum Topic {\n\tUnknown = 0,\n\tQuotes = 1,\n\tHistory = 2,\n\tAlarms = 3,\n\tTrading = 4,\n\tNews = 5,\n\tConnection = 6,\n\tService = 7,\n}\n\nexport enum Result {\n\tUnknown = 0,\n\tOK = 1,\n\tERROR = 2,\n}\nexport enum SubType {\n\tUnknown = 0,\n\tSUB = 1,\n\tUNSUB = 2,\n\tCL_REQ = 3,\n\tNONE = 4,\n}\n\nexport enum MarketsGroupPeriod {\n\tDaily = 1440,\n\tWeekly = 10080,\n}\n\nexport enum RequestState {\n\tNone,\n\tInProgress,\n\tSuccess,\n\tError,\n}\n\nexport enum AppComponentType {\n\tUploadDocuments = 10,\n\tOpenAccount = 20,\n\tCompleteOnboarding = 30,\n\tFunds = 40,\n\tReports = 50,\n\tDeposits = 60,\n\tWatchlist = 70,\n\tMarkets = 80,\n\tStatus = 90,\n\tCalendar = 100,\n\tPortal = 110,\n\tTradersGym = 120,\n\tSignals = 130,\n\tTutorials = 140,\n}\n\n/** MarginAccountType The flag which describes the account level setting for margin calculations (0: Hedged, 1: Unhedged, 2: Japan) */\nexport enum MarginAccountType {\n\tHedged = 0,\n\tUnhedged = 1,\n\tJapan = 2,\n}\n\nexport enum QuantityType {\n\tAmount = 1,\n\tLots = 2,\n}\n\n//Support contact phone numbers per region\nexport enum PhoneNumbers {\n\tUK = '44 203 514 2374',\n\tAU = '61 3 9093 3400',\n\tSA = '27 10 446 5933',\n\tCY = '357 252 621 49',\n\tES = '34 911 984 469',\n\tIT = '39 023 0579033',\n\tBR = '55 11 4858 4252',\n\tJA_INTL = '81 0120 010 097',\n\tJA_LOCAL = '03-6866-2804',\n}\n\n//Application Statuses\nexport enum ApplicationStatus {\n\tEMPTY = 'EMPTY',\n\tAPPROVED = 'APPROVED',\n\tFUNDED_TRADER = 'FUNDED_TRADER',\n\tPENDING = 'PENDING',\n\tINCOMPLETE = 'INCOMPLETE',\n\tPENDING_REVIEW = 'PENDING_REVIEW',\n\tPENDING_PROPER_DOCUMENTS = 'PENDING_PROPER_DOCUMENTS',\n\tPENDING_APPROPRIATENESS_TEST = 'PENDING_APPROPRIATENESS_TEST',\n\tPENDING_TRANSLATION = 'PENDING_TRANSLATION',\n\tPENDING_RG227 = 'PENDING_RG227',\n\tPENDING_BLURRY_CROPPED_ID = 'PENDING_BLURRY_CROPPED_ID',\n\tPENDING_BLURRY_POA = 'PENDING_BLURRY_POA',\n\tPENDING_ADDRESS = 'PENDING_ADDRESS',\n\tPENDING_ID = 'PENDING_ID',\n\tPENDING_E_VERIFICATION = 'PENDING_E_VERIFICATION',\n\tPENDING_E_VERIFICATION_RETRY = 'PENDING_E_VERIFICATION_RETRY',\n\tPENDING_ID_ADDRESS = 'PENDING_ID_ADDRESS',\n\tLEVEL1_APPROVED = 'LEVEL1_APPROVED',\n\tPENDING_KYC = 'PENDING_KYC',\n\tMANUAL_DOCS = 'MANUAL_DOCS',\n\tDENIED = 'DENIED',\n\tPENDING_TRANSFER = 'PENDING_TRANSFER',\n\tPENDING_NEW_TnC_ACCEPTANCE = 'PENDING_NEW_TnC_ACCEPTANCE',\n\tFAILED = 'FAILED',\n\tINTERNAL_TESTING = 'INTERNAL_TESTING',\n\tPENDING_IP_MISMATCH = 'PENDING_IP_MISMATCH',\n\tPENDING_DOB_MISMATCH = 'PENDING_DOB_MISMATCH',\n\tPENDING_DOB_ADDRESS_MISMATCH = 'PENDING_DOB_ADDRESS_MISMATCH',\n\tPENDING_ADDRESS_MISMATCH = 'PENDING_ADDRESS_MISMATCH',\n\tPENDING_SOF = 'PENDING_SOF',\n\tPENDING_NO_KYC_DOCS = 'PENDING_NO_KYC_DOCS',\n\tPENDING_EMAIL = 'PENDING_EMAIL',\n\tPENDING_NO_ID = 'PENDING_NO_ID',\n\tDUPLICATE = 'DUPLICATE',\n}\n\n//Chart Timezone\nexport enum ChartTimezone {\n\tLocal = 'Local',\n\tGMT = 'UTC',\n\tNYT = 'America/New_York',\n}\n\nexport enum TicketLayout {\n\tDock = 'Dock',\n\tUndock = 'Undock',\n}\n\nexport enum GridType {\n\tPosition = 'position',\n\tOrder = 'order',\n\tClose = 'close',\n}\n\nexport enum TradingPositionType {\n\tMarket = 'MARKET',\n\tLimit = 'LIMIT',\n\tStop = 'STOP',\n}\nexport enum stopLossTypes {\n\tNormal = 'NORMAL',\n\tTrailing = 'TRAILING',\n}\n\nexport enum TradingPositionLimitType {\n\tStopLoss = 'StopLoss',\n\tTakeProfit = 'TakeProfit',\n}\n\nexport enum TradingPositionSide {\n\tBuy = 'BUY',\n\tSell = 'SELL',\n}\n\nexport enum TradingAccountType {\n\tDEMO = 'DEMO',\n\tLIVE = 'LIVE',\n\tGYM = 'GYM',\n}\n\nexport const QUANTITY_TYPE: { [key: string]: string } = {\n\tLOTS: 'Lots',\n\tAMOUNT: 'Amount',\n};\n\nexport enum TradingValueType {\n\tPRICE = 'PRICE',\n\tPIPS = 'PIPS',\n}\n\nexport enum SignalType {\n\tLiveTrade = 9,\n\tBuyLimit = 16,\n\tSellLimit = 14,\n\tBuyStop = 15,\n\tSellStop = 13,\n}\n\nexport enum ThaiPriceType {\n\tBuy = 'ซื้อ',\n\tSell = 'ขาย',\n}\n\nexport enum WatchListCountries {\n\tAU,\n\tCN,\n\tDE,\n\tES,\n\tHK,\n\tID,\n\tNL,\n\tNZ,\n\tPH,\n\tTH,\n\tTW,\n\tZA,\n}\n","import { Result, Topic, SubType, TradingPositionSide, TradingPositionType } from '../../utils/functions/enums';\n\nexport enum RFPDataObjectType {\n\tAll,\n\tHistoryTickItems,\n\tHistoryTick,\n\tHistorySize,\n\tPriceQuote,\n\tTfboLoginResponse,\n\tTfboEndpointResponse,\n\tPong,\n\tFeedInfos,\n\tMarketItemsRecord,\n\tMarketItem,\n\tMarketItemsInfoRecord,\n\tMarketItemInfo,\n\tTradingAccount,\n\tTradingAccountLogin,\n\tTradingInstruments,\n\tTradingProvider,\n\tTradeEvent,\n\tTradingPosition,\n\tMarketWatchIntervals,\n\tMarketWatchCategories,\n\tMarketWatchItem,\n\tMarketWatchItems,\n\tRFPNews,\n\tClientCommandResult,\n\tSessionError,\n\tHistoryTimescaleStartDate,\n\tTradingAccountsError,\n\tTradingAccountLogout,\n\tTTSessionTimes,\n}\n\nexport interface RFPDataObject {\n\tdataObjectType: RFPDataObjectType;\n}\n\nexport interface ClientCommandResult extends RFPDataObject {\n\treqId?: string;\n\tfeedId?: string;\n\tcode?: string;\n\tmsg?: string;\n\n\tobjId: string;\n\n\ttopic: Topic;\n\tresult: Result;\n\tsubType: SubType;\n}\n\nexport interface SessionError extends RFPDataObject {\n\terror?: string;\n}\n\nexport interface RFPLoginPayload {\n\tusername: string;\n\tpassword: string;\n\ttradingMode: TradingMode;\n}\n\nexport interface RFPConnectPayload {\n\tusername: string;\n\tpassword?: string;\n\tauthToken?: string;\n\tsso_token?: string;\n\ttradingMode: TradingMode;\n\tenableSSO?: boolean;\n\tlang?: string;\n\tskip_tfbo_login: boolean;\n\tcaptcha_response?: string;\n\trfpUrl?: string;\n}\n\nexport enum RFPConnectionErrorType {\n\tAuthenticationFailed = 'Error: Authentication failed.',\n\tAuthenticationTimeout = 'Error: Authentication timeout.',\n\tRequestFeedIdsTimeout = 'Error: Timeout requesting feedIDs.',\n\tConnectionToServerClosed = 'Connection to server closed',\n}\n\nexport interface RFPConnectResult {\n\tsuccess: boolean;\n\tstatus: number;\n\temail?: string | null | undefined;\n\ttfboSessionId?: string | null | undefined;\n\ttfboToken?: string | null | undefined;\n\terror?: string | null | undefined;\n\tprop?: { [k: string]: string } | null | undefined;\n\tlogin_mode?: TradingMode | null | undefined;\n\tfundedTrader?: boolean | null | undefined;\n\trfpUrl?: string | null | undefined;\n}\n\nexport const TRADING_MODE_LIVE = 'LIVE';\nexport const TRADING_MODE_DEMO = 'DEMO';\n\nexport type TradingMode = typeof TRADING_MODE_LIVE | typeof TRADING_MODE_DEMO;\n\ninterface RFPWebProxyHeaders {\n\t'heart-beat': string;\n\t'user-name': string;\n\tversion: string;\n\tsubscription?: any;\n}\n\nexport interface Frame {\n\tbody: string;\n\tcommand: string;\n\theaders: RFPWebProxyHeaders;\n\tack?: (headers: unknown) => void;\n\tnack?: (headers: unknown) => void;\n}\n\nexport interface FeedInfo {\n\tfeedID: string;\n\tinitialGroup: null;\n\tname: string;\n\tvariant: null;\n}\n\nexport interface FeedInfos extends RFPDataObject {\n\tfeedIds: FeedInfo[];\n}\n\nexport interface TradingProvider extends RFPDataObject {\n\tdescription: string;\n\tdisplayName: string;\n\tfeedID: string;\n\tid: number;\n\tuniqueName: string;\n}\n\n// These fields are finally working as expected for field accountMarketType on account.\nexport enum AccountMarketType {\n\tCFD = 0,\n\tAustralia = 1,\n\tAfrica = 2,\n\tJapan = 3,\n\tSpreadBetting = 4,\n\tJapanSpread = 5,\n}\n\nexport interface RFPTradingAccountsError {\n\tdataObjectType: RFPDataObjectType;\n\tproviderId: number;\n\terrorMessage: string;\n}\n\nexport interface TradingAccount extends RFPDataObject {\n\taccountType: 'DEMO' | 'LIVE' | 'GYM';\n\tbalance: number;\n\tbaseCurrency: string;\n\tcredit: number;\n\tequity: number;\n\tfreeMargin: number;\n\tgrossProfit: number;\n\tid: number;\n\tleverage: number;\n\tmarginLevel: number;\n\tpreferredFeed: string;\n\tproviderAccountId: string;\n\taccountNumber?: number;\n\tproviderId: number;\n\tusedMargin: number;\n\tmarginCalculationType?: number;\n\tval?: MarketItem;\n\ttradingInstruments?: TradingInstruments;\n\tactivePositions: Record;\n\tclosedPositions: Record;\n\tnetProfit: number;\n\tisJapanAccount: boolean;\n\tenabled: boolean;\n\taccountMarketType: AccountMarketType;\n\tisLoggedIn: boolean;\n}\n\nexport interface QuantityTypeUpdate {\n\tquantityType: number;\n\taccId: number;\n}\n\nexport interface DemoAccountParams {\n\tdefaultCode: string;\n\tinstruments: { code: string }[];\n\tmsgType: number;\n\ttpId: number;\n}\n\nexport interface NewsSubscriptionRequest {\n\taction: SubscriptionAction;\n\tmsgCount: number;\n}\n\nexport interface MarketWinNewsSubscriptionRequest {\n\tsubscribe: boolean;\n}\n\nexport interface NewsApiResponse {\n\tlimit: number;\n\toffset: number;\n\trequest: [];\n\tsorOrder: string;\n\tsortBy: string;\n\tsortOrder: string;\n}\n\nexport interface RFPNews extends RFPDataObject {\n\tbody: string;\n\tcountry?: string;\n\tcurrencies?: string[];\n\theadline: string;\n\tid: number;\n\tnewsCategoryId?: string;\n\tnewsTypeId?: string;\n\trevision?: number;\n\ttime: Long;\n\texternalLinkUrl?: string;\n}\n\nexport interface MarketItemsRecord extends RFPDataObject {\n\tmarketItems: MarketItem[];\n}\n\nexport interface MarketItem extends RFPDataObject {\n\tbCcy: string;\n\tccy: string;\n\tcode: string;\n\tdecPrec: number;\n\tdisplayName: string;\n\tfullName: string;\n\tfeedId: string;\n\tflags: number;\n\tgrp: string;\n\tisin: string;\n\tmarginType: number;\n\tpipSizeH: string;\n\tqCcy: string;\n\tquoteCurrency?: string; //TODO remove this field, as it does not appear to be sent by RFP\n\ttickSize: number;\n\ttradable?: boolean | null | undefined;\n\texchangeCountryCode?: string | null | undefined;\n\tsector?: string | null | undefined;\n\texchangeTicker?: string | null | undefined;\n\tvolatility?: string | number;\n\tpercentChange?: string | number;\n\tmarketItemInfo?: MarketItemInfo | null;\n\tminTier?: number | null;\n\tcategory?: string;\n\twatchlistRank?: number | null;\n\tsubscriptionCounter: number;\n\taccountMarketType: AccountMarketType;\n\taccountType: AccountMarketType;\n\ttradingSessions?: TradingSessions;\n\trolloverCalcType: number;\n}\n\nexport enum DayOfWeek {\n\tSunday = 0,\n\tMonday = 1,\n\tTuesday = 2,\n\tWednesday = 3,\n\tThursday = 4,\n\tFriday = 5,\n\tSaturday = 6,\n}\n\nexport interface TradingSession {\n\tisOpen: boolean;\n\tday: DayOfWeek;\n\topenDate: Date;\n\tcloseDate: Date;\n\tschedule: { start: string; end: string };\n}\n\nexport interface TradingSessions {\n\t//Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday\n\tsessions: TradingSession[][];\n\ttimezone: string;\n\tutcTimeOffset: number; // in hours\n}\n\nexport interface MarketItemsInfoRecord extends RFPDataObject {\n\tmarketItemsInfo: MarketItemInfo[];\n}\n\nexport interface MarketItemInfo extends RFPDataObject {\n\tcode: string;\n\tdecimalPrecision: string;\n\tfeedId: string;\n\tformatLength: string;\n\tformatPosition: string;\n\tpipSize: string;\n\ttickSize: string;\n}\n\nexport interface SelectedSymbol {\n\t[chartId: string]: MarketItem;\n}\n\nexport interface TradingAccountLoginRequest {\n\taction: 'Login';\n\ttradingAccountId: number;\n}\n\nexport interface TradingAccountLogoutRequest {\n\tacct_id: number;\n}\nexport interface RequestTTWatchList {\n\tisoCode: string;\n}\n\nexport interface RequestRfpServerNames {\n\treqId: string;\n\tacctIds: string[];\n}\n\nexport interface TTWatchListItem {\n\ttitle: string;\n\torder: number;\n\tcodes_csv: any;\n}\n\nexport interface TTWatchList {\n\tisoCode: string;\n\titems: TTWatchListItem[];\n}\n\nexport interface RFPServerItem {\n\tttAccountId: string;\n\trfpServerName: string;\n\trfpDnsName: string;\n}\nexport interface RfpServerNames {\n\treqId: string;\n\trfpServerNames: RFPServerItem[];\n}\n\nexport interface TradingAccountLogin extends RFPDataObject {\n\taccountId: number;\n\terror: null | string;\n\tloggedOn: boolean;\n}\n\nexport interface AccountTierRequest {\n\taccountId: string;\n}\n\nexport interface AccountTierResponse {\n\taccountId: string;\n\terror: string;\n\tenabled: boolean;\n\ttier: number;\n\tusedUnits: number;\n\tavailableUnits: number;\n\tmaxUnits: number;\n}\n\nexport interface TradingInstruments extends RFPDataObject {\n\taccount: number;\n\tinstruments: {\n\t\t[key: string]: Instrument;\n\t};\n}\n\nexport interface Instrument {\n\tamtDPrec: number;\n\tccy: string;\n\tcode: string;\n\tgrp: string;\n\tlotDPrec: number;\n\tmaxL: number;\n\tminL: number;\n\tpipPos: number;\n\trndLot: number;\n\trshL: number;\n\trshS: number;\n\tsDig: number;\n\tstpL: number;\n\tswpL: number;\n\tswpS: number;\n\ttrPeriod: string;\n\ttickValue?: number;\n\ttickSize?: number;\n\tmarginReq?: number;\n\n\tmaxAmount: number;\n\tminAmount: number;\n\tstepAmount: number;\n\n\tthreeDaySwap: string;\n\n\tmtReqMx: number;\n\tmtValOne: number;\n\tmtReqOne: number;\n\tmtValTwo: number;\n\tmtReqTwo: number;\n\tmtValThree: number;\n\tmtReqThree: number;\n\tmtValFour: number;\n\tmtReqFour: number;\n\tmtValFive: number;\n\tmtReqFive: number;\n\tmtValSix: number;\n\tmtReqSix: number;\n}\n\nexport interface RequestTTMarginRules {\n\taccountId: number;\n}\n\nexport interface TTMarginRuleItem {\n\tid: number;\n\tname: string;\n\tinstruments: string;\n\ttierValues: string;\n\ttierRequirements: string;\n\tscheduleEnabled: number;\n\tdayIndexesSundayFirst: string;\n\tdayValues: string;\n}\n\nexport interface TTMarginRules {\n\taccountId: number;\n\titems: TTMarginRuleItem[];\n}\n\nexport enum PositionSide {\n\tPSD_UNKNOWN = 0,\n\tBUY = 1,\n\tSELL = 2,\n}\n\n/*REQ_FUTURE_MARGIN*/\nexport interface RequestFutureMargin {\n\tacctId: number;\n\tamount: number;\n\tsymbol: string;\n\treqId: string;\n\tside: PositionSide;\n}\n\n/*FUTURE_MARGIN*/\nexport interface FutureMargin {\n\tmargin: number;\n\treqId: string;\n}\n\nexport interface HistoryRequest {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\tpriceType: PriceType;\n\ttimescale: TimeScale;\n\ttickCount?: number;\n\tstartTime?: number;\n\tendTime?: number;\n}\n\nexport interface HistorySubscription extends HistoryRequest {\n\taction: SubscriptionAction;\n}\n\nexport interface HistoryRequestStartDate {\n\tfeedId: string;\n\tcode: string;\n\ttimeInterval: number; //interval_min\n}\n\nexport interface HistoryTimescaleStartDate extends RFPDataObject {\n\tfeedId: string;\n\tcode: string;\n\ttimeInterval: number; //interval_min\n\ttime: number; //time in seconds\n}\n\nexport type PriceQuote = RFPDataObject & {\n\t/** ask */\n\ta: number;\n\t/** bid */\n\tb: number;\n\t/** symbol */\n\tc: string;\n\t/** feed ID */\n\tf: string;\n\t/** high */\n\th: number;\n\t/** low */\n\tl: number;\n\t/** timestamp */\n\tt: number;\n};\n\nexport type PriceType = 'Bid' | 'Ask' | 'Average';\n\nexport type TimeScale =\n\t| 'TS_1MIN'\n\t| 'TS_2MIN'\n\t| 'TS_3MIN'\n\t| 'TS_5MIN'\n\t| 'TS_10MIN'\n\t| 'TS_15MIN'\n\t| 'TS_30MIN'\n\t| 'TS_1HOUR'\n\t| 'TS_2HOUR'\n\t| 'TS_3HOUR'\n\t| 'TS_4HOUR'\n\t| 'TS_6HOUR'\n\t| 'TS_8HOUR'\n\t| 'TS_12HOUR'\n\t| 'TS_1DAY'\n\t| 'TS_1WEEK'\n\t| 'TS_1MONTH';\n\nexport interface HistoryTick extends RFPDataObject {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\n\tcontinuousFlag: number;\n\ttimescale: TimeScale;\n\n\topen: number;\n\thigh: number;\n\tlow: number;\n\tclose: number;\n\n\tcloseTime: number;\n\tvolume: number;\n\n\topenTime: number;\n}\n\nexport interface HistoryTickItems extends RFPDataObject {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\ttimeScale: TimeScale;\n\n\thistoryTicks: HistoryTick[];\n}\n\nexport interface HistorySize extends RFPDataObject {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\trfpTimingInterval: number;\n\tduration: number;\n\tsize: number;\n}\n\nexport interface FeedSubscription {\n\tfeedId: string;\n}\n\nexport interface RFPRequestTTSessionTimes {\n\tcode: string;\n}\n\nexport interface RFPSessionTimes extends RFPDataObject {\n\tserverTimeZone: string;\n\tsymbol: string;\n\ttrading: string;\n}\n\nexport interface SocketHeaders {\n\tAuthorization: string;\n}\n\nexport interface QuoteSubscription {\n\taction: SubscriptionAction;\n\tfeedId: string;\n\tmarketItems: MarketItem[];\n}\n\nexport enum SubscriptionAction {\n\tSubscribe,\n\tUnsubscribe,\n\tSnapshot,\n}\n\nexport interface RFPInfo {\n\tclReqId: string;\n\tcode: string | null;\n\tfeedId: string | null;\n\tmsg: string;\n\tobjId: null;\n\tresult: string;\n\tsubType: string;\n\ttopic: string;\n}\n\nexport interface IChartParameters {\n\tfunc: string;\n\tsymbol: string;\n\tperiod: number;\n\ttimeUnit: string;\n\tinterval: number;\n\tstart: string;\n\tend: string;\n}\n\nexport interface RFPLoginError {\n\terror: string;\n\tmessage: string;\n\tpath: string;\n\tstatus: number;\n\ttimestamp: string;\n}\n\nexport interface RFPLoginSuccess {\n\taccessToken: string;\n\temail: string;\n\tid: number;\n\troles: string[];\n\ttfboSessionId: string;\n\ttfboToken: string;\n\ttokenType: 'Bearer';\n\tusername: string;\n}\n\nexport enum TradingPositionState {\n\topen = 'OPEN',\n\tpending = 'PENDING',\n\tclosed = 'CLOSED',\n\tcanceled = 'CANCELED',\n\tdeleted = 'DELETED',\n}\n\n// export enum LocalizationLang {\n// 'none' = ProtobufSchema.types.LocalizationLang.,\n// 'en' = 'en',\n// 'zh-Hans' = 'cn',\n// 'zh-Hant' = 'ct',\n// 'de' = 'de',\n// 'ms-MY' = 'ms_MY',\n// 'pt-BR' = 'pt_BR',\n// 'th' = 'th',\n// 'vi' = 'vi',\n// 'ar-SA' = 'ar_SA',\n// 'ja' = 'ja'\n// }\n\nexport interface TradingPosition extends RFPDataObject {\n\taId: number;\n\tstate: TradingPositionState;\n\tside: TradingPositionSide;\n\tcode: string;\n\tf: string;\n\ttype?: TradingPositionType;\n\toP?: number;\n\tcP?: number;\n\tprc?: number;\n\tcomm?: number;\n\tswap?: number;\n\tqty?: number;\n\toT?: number;\n\tcT?: number;\n\teT?: number;\n\tsl?: number;\n\ttp?: number;\n\tposId?: number;\n\tqCcy?: string;\n\tdec?: number;\n\tgrossProfit?: number;\n\tdividend?: number;\n\tmarketItem?: MarketItem;\n\tcurrentPrice?: number;\n\tpips?: number;\n\tadditionalSubscriptionPair: Set;\n\tnetProfit?: number;\n\tcomment?: string;\n\tcancelRequestSent?: boolean;\n\topenAskPrice?: number;\n\topenBidPrice?: number;\n\tcloseAskPrice?: number;\n\tcloseBidPrice?: number;\n\ttrailingStop?: number;\n}\n\nexport type orderTypes = 'market' | 'limit' | 'stop' | '';\n\nexport interface NewOrderRequest {\n\treqId: number;\n\tacctId: number;\n\tfeedId: string;\n\tcode: string;\n\ttradeSize: number;\n\ttradeSide: 'BUY' | 'SELL' | 'NEW';\n\ttradeType: 'STOP' | 'LIMIT';\n\texpiration?: OrderExpiration;\n\tlimitLevel?: number;\n\tstopLevel?: number;\n\tpriceLevel?: number;\n\ttrailingStop?: number;\n}\n\nexport interface EditOrderRequest {\n\treqId: number;\n\tacctId: number;\n\tposId: number;\n\tpriceLevel?: number;\n\texpiration?: OrderExpiration;\n\tlimitLevel: string | number | null;\n\tstopLevel: string | number | null;\n\ttrailingStop?: string | number | null;\n}\n\nexport interface NewPositionRequest {\n\treqId: number;\n\tacctId: number;\n\tfeedId: string;\n\tcode: string;\n\ttradeSize: number;\n\ttradeSide: 'BUY' | 'SELL' | 'NEW';\n\tlimitLevel?: number;\n\tstopLevel?: number;\n\ttrailingStop?: number;\n}\n\nexport interface EditPositionRequest {\n\treqId: number;\n\tacctId: number;\n\tposId: number;\n\tlimitLevel: string | null;\n\tstopLevel: string | null;\n\ttrailingStop?: string | null;\n}\n\nexport interface CloseTradeRequest {\n\tposId: number;\n\ttrAccountId: number;\n}\n\nexport interface PartialCloseRequest {\n\tposId: number;\n\ttrAccountId: number;\n\tamount: number;\n}\n\nexport interface MarketWatchSnapshotsRequest {\n\tcategoryName: string;\n\tintervalLength: number;\n}\n\nexport interface MarketWatchIntervals extends RFPDataObject {\n\tfeedId: string;\n\tintervalLength: number[];\n}\n\nexport interface MarketWatchCategory {\n\tname?: string | null | undefined;\n\tintervalLength?: number | null | undefined;\n\titemsCount?: number | null | undefined;\n\tdynamic?: boolean | null | undefined;\n}\n\nexport interface MarketWatchCategories extends RFPDataObject {\n\tfeedId: string;\n\tcategories: MarketWatchCategory[];\n}\n\nexport interface MarketWatchItem extends RFPDataObject {\n\tfeedId?: string | null | undefined;\n\tcode?: string | null | undefined;\n\tintervalLength?: number | null | undefined;\n\tvolatility?: number | null | undefined;\n\tpercentChange?: number | null | undefined;\n\thigh?: number | null | undefined;\n\tlow?: number | null | undefined;\n\tbid?: number | null | undefined;\n\task?: number | null | undefined;\n}\n\nexport interface MarketWatchItems extends RFPDataObject {\n\tfeedId: string;\n\tdynamic_category: string | null | undefined;\n\tcategory: string;\n\ttotNumMsgs: number;\n\tmsgNum: number;\n\titems: MarketWatchItem[];\n}\n\nexport interface MarketWatchSubscriptionRequest {\n\tcode: string[];\n\tintervalLength: number;\n\tsubscribe: boolean;\n}\n\nexport interface MarketWatchDynamicSubscriptionRequest {\n\tcategory: string;\n\tintervalLength: number;\n\tsubscribe: boolean;\n}\n\nexport interface Ping {}\n\nexport interface Pong extends RFPDataObject {}\n\nexport interface TfboLoginResponse extends RFPDataObject {\n\tsuccess: boolean;\n\terror: string;\n\ttfbo_session_id: string;\n\ttfbo_token: string;\n}\n\nexport interface TfboEndpointResponse extends RFPDataObject {\n\trestApiURL: string;\n\tuploadDocsURL: string;\n\texchangeRateURL: string;\n}\n\nexport interface TradeRequest {\n\tquantity: number;\n\tquantityType: string;\n\tsl: string;\n\ttp: string;\n\ttypeOfOrder: orderTypes;\n\tacctId?: number;\n\ttradeType?: string;\n\texpiration?: OrderExpiration;\n\tposId?: number;\n\tcode?: string;\n\tlotAmountQty?: number;\n\ttradeSize?: number;\n\tlimitLevel?: number;\n\tstopLevel?: number;\n\tpriceLevel?: number;\n\ttradeSide?: string;\n}\n\nexport interface TradeEvent extends RFPDataObject {\n\tmessage?: string | null;\n\tmessageType?: string | null;\n\trequestId?: string | number | null;\n\tevents?: Array<{ message?: string | null; error?: string | null; messageType?: string | null }>;\n}\n\nexport interface InstrumentLastTrade {\n\t[instrument: string]: TradeRequest;\n}\n\nexport type PositionState = 'OPEN' | 'PENDING' | 'CLOSED' | null;\n\nexport type OrderExpiration = 'EXP_DAY' | 'EXP_WEEK' | 'EXP_MONTH' | 'EXP_GTC' | 'CUSTOM' | number | null;\n\nexport interface PreviousDayClosePriceRequest {\n\tcode: string[];\n}\n\nexport interface PreviousDayClosePriceItem {\n\tcode?: string | null;\n\tprevClose?: number | null;\n}\nexport interface PreviousDayClosePrice {\n\tfeedId?: string;\n\titem?: PreviousDayClosePriceItem[];\n}\n\nexport interface PreviousDayClosePrices {\n\t[instrument: string]: number;\n}\n\nexport interface TierUpdateInfo {\n\taccountId: number;\n\ttierNum: number;\n}\n","import { createContext } from 'react';\nimport clone from 'clone';\n\nimport { Resolver } from '../utils/functions/Ioc';\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { Optional } from '../utils/functions/Nullable';\nimport { ObservableObject } from '../utils/functions/Observables';\nimport { TfboApiMethodMeta } from '../gateways/TfboGateway/TfboGateway.types';\nimport {\n\tlimitProfitLossValues,\n\toctStoredValues,\n\tTPreferenceResponse,\n} from '../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport { SubscriptionInfo, SubscriptionModalState } from '../utils/functions/subscriptionUtils';\nimport { SignalsListType } from '../pages/Signals/Signals';\n\nexport type TAppTheme = 'light' | 'dark' | string;\n\nexport type TTradingMode = 'LIVE' | 'DEMO';\n\nexport type TAppCountry = {\n\tid: number;\n\ttext: string;\n\tvalue: string;\n\tcode: string;\n\tphoneCode: string;\n\tliveCurrency: string;\n\tdemoCurrency: string;\n};\n\nexport type TAppPhoneCode = {\n\ttext: string;\n\tvalue: string;\n};\n\nexport type TAppCurrency = {\n\tcountryId: number;\n\tcurrency: string;\n};\n\ntype TGetUserIpResponsePayloadResult = (typeof TfboApiMethodMeta)['utility.getUserIp']['responsePayload']['result'];\n\ntype TLoginResponsePayloadResult = (typeof TfboApiMethodMeta)['authentication.login']['responsePayload']['result'];\n\ntype TLoginResponseStatus = (typeof TfboApiMethodMeta)['authentication.login']['responsePayload']['status'];\n\ntype TFeedbackResponsePayloadResult = (typeof TfboApiMethodMeta)['profile.feedback']['responsePayload']['result'];\n\ntype TForgotPasswordResponsePayloadResult =\n\t(typeof TfboApiMethodMeta)['authentication.forgotPassword']['responsePayload']['result'];\n\ntype TSendEmailVerificationResponsePayloadResult =\n\t(typeof TfboApiMethodMeta)['emailValidation.sendVerificationCode']['responsePayload']['result'];\n\ntype TAccountStatsResponsePayloadResult = (typeof TfboApiMethodMeta)['account.stats']['responsePayload']['result'];\n\ntype TAppContextProperties = {\n\tisLoading: boolean;\n\taccessToken: Optional;\n\n\tfeedbackModal: boolean;\n\tcontactModal: boolean;\n\topenSettings: boolean;\n\tstatusModal: boolean;\n\treconnectModal: boolean;\n\tappTheme: TAppTheme;\n\taccountStats: TAccountStatsResponsePayloadResult['data'];\n\tipLocation: Optional;\n\temail: Optional;\n\tuserId: Optional;\n\tuserCountryISO: Optional;\n\tcountryData: Optional;\n\temailVerification: Optional;\n\tfeedbackResponse: Optional;\n\tfirstName: Optional;\n\tisLoggedIn: boolean;\n\tisTwofaEnabled: boolean;\n\tisArabic: boolean;\n\tlastName: Optional;\n\tloginResponse: Optional;\n\tloginResponseStatus: Optional;\n\tmodalId: Optional;\n\tphoneNumber: { phone: string; phoneCountryCode: number };\n\tresetPasswordInfo: Optional;\n\tselectedLanguage: string;\n\ttwofaBarcodeKey: Optional;\n\ttwofaSecretKey: Optional;\n\tuserPreferences: TPreferenceResponse | null;\n\tisChildWindow: Optional;\n\ttradingMode: TTradingMode;\n\tuserPreferenceError: boolean;\n\tlanguageSettings: string;\n\tisJapanAccount: boolean;\n\tagreementPendingVersion: string | null;\n\tsubscriptionInfo: SubscriptionInfo | null;\n\tsubscriptionModal: SubscriptionModalState | null;\n\tcanFetchSubscrInfo: boolean;\n\tcurrentlySelectedSignal: SignalsListType | null;\n\tlimitProfitLossValues: limitProfitLossValues | null;\n\toctStoredValues: octStoredValues | null;\n};\n\nconst defaultValues = new Lazy(() => {\n\treturn {\n\t\tisLoading: false,\n\t\tisArabic: localStorage.getItem('language') === 'ar-SA',\n\t\taccessToken: null,\n\t\tappTheme: localStorage.getItem('wt-theme') || 'light',\n\t\taccountStats: [],\n\t\tautoShowModal: false,\n\t\tstatusModal: false,\n\t\tnoDemoAccountModal: false,\n\t\tunapprovedAppModal: false,\n\t\tinsufficientFundModal: false,\n\t\tincompleteApplication: false,\n\t\tresetAccountModal: false,\n\t\tunderReviewModal: false,\n\t\tsuccessfulActCreation: false,\n\t\tfeedbackModal: false,\n\t\tcontactModal: false,\n\t\topenSettings: false,\n\t\treconnectModal: false,\n\t\tipLocation: null,\n\t\temail: null,\n\t\temailVerification: null,\n\t\tfeedbackResponse: null,\n\t\tfirstName: null,\n\t\tisLoggedIn: false,\n\t\tisTwofaEnabled: false,\n\t\tlastName: null,\n\t\tloginResponse: null,\n\t\tloginResponseStatus: null,\n\t\tmodalId: null,\n\t\tphoneNumber: { phone: '', phoneCountryCode: 0 },\n\t\tresetPasswordInfo: null,\n\t\tselectedLanguage: 'English',\n\t\ttwofaBarcodeKey: null,\n\t\ttwofaSecretKey: null,\n\t\tuserPreferences: null,\n\t\tuserId: null,\n\t\tisChildWindow: false,\n\t\ttradingMode: 'LIVE',\n\t\tuserPreferenceError: false,\n\t\tlanguageSettings: '',\n\t\tisJapanAccount: false,\n\t\tagreementPendingVersion: null,\n\t\tuserCountryISO: null,\n\t\tcountryData: null,\n\t\tsubscriptionInfo: null,\n\t\tsubscriptionModal: null,\n\t\tcanFetchSubscrInfo: false,\n\t\tcurrentlySelectedSignal: null,\n\t\tlimitProfitLossValues: {},\n\t\toctStoredValues: {},\n\t};\n});\n\ninterface IAppContext extends TAppContextProperties {\n\treset(): void;\n\tlogout(): void;\n}\n\nexport class AppContextProvider\n\textends ObservableObject\n\timplements IAppContext\n{\n\tprivate m_propertyValues: TAppContextProperties;\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new AppContextProvider();\n\t});\n\n\tpublic static get instance(): AppContextProvider {\n\t\treturn this._instance.getValue();\n\t}\n\n\tpublic get isLoading(): boolean {\n\t\treturn this.m_propertyValues.isLoading;\n\t}\n\n\tpublic set isLoading(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isLoading', value, this.m_propertyValues.isLoading, (value) => {\n\t\t\tthis.m_propertyValues.isLoading = value;\n\t\t});\n\t}\n\n\tpublic get isArabic(): boolean {\n\t\treturn this.m_propertyValues.isArabic;\n\t}\n\n\tpublic set isArabic(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isArabic', value, this.m_propertyValues.isArabic, (value) => {\n\t\t\tthis.m_propertyValues.isArabic = value;\n\t\t});\n\t}\n\n\tpublic get userPreferenceError(): boolean {\n\t\treturn this.m_propertyValues.userPreferenceError;\n\t}\n\n\tpublic set userPreferenceError(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('userPreferenceError', value, this.m_propertyValues.userPreferenceError, (value) => {\n\t\t\tthis.m_propertyValues.userPreferenceError = value;\n\t\t});\n\t}\n\n\tpublic get languageSettings(): string {\n\t\treturn this.m_propertyValues.languageSettings;\n\t}\n\n\tpublic set languageSettings(value: string) {\n\t\tthis.raiseAndSetIfChanged('languageSettings', value, this.m_propertyValues.languageSettings, (value) => {\n\t\t\tthis.m_propertyValues.languageSettings = value;\n\t\t});\n\t}\n\n\tpublic get accessToken(): Optional {\n\t\treturn this.m_propertyValues.accessToken;\n\t}\n\n\tpublic set accessToken(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('accessToken', value, this.m_propertyValues.accessToken, (value) => {\n\t\t\tthis.m_propertyValues.accessToken = value;\n\t\t});\n\t}\n\n\tpublic get appTheme(): TAppTheme {\n\t\treturn this.m_propertyValues.appTheme;\n\t}\n\n\tpublic set appTheme(value: TAppTheme) {\n\t\tlocalStorage.setItem('wt-theme', value);\n\t\tthis.raiseAndSetIfChanged('appTheme', value, this.m_propertyValues.appTheme, (value) => {\n\t\t\tthis.m_propertyValues.appTheme = value;\n\t\t});\n\t}\n\n\tpublic get accountStats(): TAccountStatsResponsePayloadResult['data'] {\n\t\treturn this.m_propertyValues.accountStats;\n\t}\n\n\tpublic set accountStats(value: TAccountStatsResponsePayloadResult['data']) {\n\t\tthis.raiseAndSetIfChanged('accountStats', value, this.m_propertyValues.accountStats, (value) => {\n\t\t\tthis.m_propertyValues.accountStats = value;\n\t\t});\n\t}\n\n\tpublic get ipLocation(): Optional {\n\t\treturn this.m_propertyValues.ipLocation;\n\t}\n\n\tpublic set ipLocation(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('ipLocation', value, this.m_propertyValues.ipLocation, (value) => {\n\t\t\tthis.m_propertyValues.ipLocation = value;\n\t\t});\n\t}\n\n\tpublic get email(): Optional {\n\t\treturn this.m_propertyValues.email;\n\t}\n\n\tpublic set email(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('email', value, this.m_propertyValues.email, (value) => {\n\t\t\tthis.m_propertyValues.email = value;\n\t\t});\n\t}\n\n\tpublic get countryData(): Optional {\n\t\treturn this.m_propertyValues.countryData;\n\t}\n\n\tpublic set countryData(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('countryData', value, this.m_propertyValues.countryData, (value) => {\n\t\t\tthis.m_propertyValues.countryData = value;\n\t\t});\n\t}\n\n\tpublic get userCountryISO(): Optional {\n\t\treturn this.m_propertyValues.userCountryISO;\n\t}\n\n\tpublic set userCountryISO(value: Optional) {\n\t\tif (value) {\n\t\t\t// Setup is Japan Account\n\t\t\tthis.m_propertyValues.isJapanAccount = value.toUpperCase() === 'JP';\n\t\t}\n\n\t\tthis.raiseAndSetIfChanged('userCountryISO', value, this.m_propertyValues.userCountryISO, (value) => {\n\t\t\tthis.m_propertyValues.userCountryISO = value;\n\t\t});\n\t}\n\n\tpublic get userId(): Optional {\n\t\treturn this.m_propertyValues.userId;\n\t}\n\n\tpublic set userId(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('userId', value, this.m_propertyValues.userId, (value) => {\n\t\t\tthis.m_propertyValues.userId = value;\n\t\t});\n\t}\n\n\tpublic get emailVerification(): Optional {\n\t\treturn this.m_propertyValues.emailVerification;\n\t}\n\n\tpublic set emailVerification(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('emailVerification', value, this.m_propertyValues.emailVerification, (value) => {\n\t\t\tthis.m_propertyValues.emailVerification = value;\n\t\t});\n\t}\n\n\tpublic get feedbackResponse(): Optional {\n\t\treturn this.m_propertyValues.feedbackResponse;\n\t}\n\n\tpublic set feedbackResponse(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('feedbackResponse', value, this.m_propertyValues.feedbackResponse, (value) => {\n\t\t\tthis.m_propertyValues.feedbackResponse = value;\n\t\t});\n\t}\n\n\tpublic get firstName(): Optional {\n\t\treturn this.m_propertyValues.firstName;\n\t}\n\n\tpublic set firstName(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('firstName', value, this.m_propertyValues.firstName, (value) => {\n\t\t\tthis.m_propertyValues.firstName = value;\n\t\t});\n\t}\n\n\tpublic get isLoggedIn(): boolean {\n\t\treturn this.m_propertyValues.isLoggedIn;\n\t}\n\n\tpublic set isLoggedIn(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isLoggedIn', value, this.m_propertyValues.isLoggedIn, (value) => {\n\t\t\tthis.m_propertyValues.isLoggedIn = value;\n\t\t});\n\t}\n\n\tpublic get isTwofaEnabled(): boolean {\n\t\treturn this.m_propertyValues.isTwofaEnabled;\n\t}\n\n\tpublic set isTwofaEnabled(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isTwofaEnabled', value, this.m_propertyValues.isTwofaEnabled, (value) => {\n\t\t\tthis.m_propertyValues.isTwofaEnabled = value;\n\t\t});\n\t}\n\n\tpublic get lastName(): Optional {\n\t\treturn this.m_propertyValues.lastName;\n\t}\n\n\tpublic set lastName(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('lastName', value, this.m_propertyValues.lastName, (value) => {\n\t\t\tthis.m_propertyValues.lastName = value;\n\t\t});\n\t}\n\n\tpublic get loginResponse(): Optional {\n\t\treturn this.m_propertyValues.loginResponse;\n\t}\n\n\tpublic set loginResponse(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('loginResponse', value, this.m_propertyValues.loginResponse, (value) => {\n\t\t\tthis.m_propertyValues.loginResponse = value;\n\t\t});\n\t}\n\n\tpublic get loginResponseStatus(): Optional {\n\t\treturn this.m_propertyValues.loginResponseStatus;\n\t}\n\n\tpublic set loginResponseStatus(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('loginResponseStatus', value, this.m_propertyValues.loginResponseStatus, (value) => {\n\t\t\tthis.m_propertyValues.loginResponseStatus = value;\n\t\t});\n\t}\n\n\tpublic get modalId(): Optional {\n\t\treturn this.m_propertyValues.modalId;\n\t}\n\n\tpublic set modalId(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('modalId', value, this.m_propertyValues.modalId, (value) => {\n\t\t\tthis.m_propertyValues.modalId = value;\n\t\t});\n\t}\n\n\tpublic get phoneNumber(): { phone: string; phoneCountryCode: number } {\n\t\treturn this.m_propertyValues.phoneNumber;\n\t}\n\n\tpublic set phoneNumber(value: { phone: string; phoneCountryCode: number }) {\n\t\tthis.raiseAndSetIfChanged('phoneNumber', value, this.m_propertyValues.phoneNumber, (value) => {\n\t\t\tthis.m_propertyValues.phoneNumber = value;\n\t\t});\n\t}\n\n\tpublic get resetPasswordInfo(): Optional {\n\t\treturn this.m_propertyValues.resetPasswordInfo;\n\t}\n\n\tpublic set resetPasswordInfo(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('resetPasswordInfo', value, this.m_propertyValues.resetPasswordInfo, (value) => {\n\t\t\tthis.m_propertyValues.resetPasswordInfo = value;\n\t\t});\n\t}\n\n\tpublic get selectedLanguage(): string {\n\t\treturn this.m_propertyValues.selectedLanguage;\n\t}\n\n\tpublic set selectedLanguage(value: string) {\n\t\tthis.raiseAndSetIfChanged('selectedLanguage', value, this.m_propertyValues.selectedLanguage, (value) => {\n\t\t\tthis.m_propertyValues.selectedLanguage = value;\n\t\t});\n\t}\n\n\tpublic get twofaBarcodeKey(): Optional {\n\t\treturn this.m_propertyValues.twofaBarcodeKey;\n\t}\n\n\tpublic set twofaBarcodeKey(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('twofaBarcodeKey', value, this.m_propertyValues.twofaBarcodeKey, (value) => {\n\t\t\tthis.m_propertyValues.twofaBarcodeKey = value;\n\t\t});\n\t}\n\n\tpublic get twofaSecretKey(): Optional {\n\t\treturn this.m_propertyValues.twofaSecretKey;\n\t}\n\n\tpublic set twofaSecretKey(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('twofaSecretKey', value, this.m_propertyValues.twofaSecretKey, (value) => {\n\t\t\tthis.m_propertyValues.twofaSecretKey = value;\n\t\t});\n\t}\n\n\tpublic get userPreferences(): TPreferenceResponse | null {\n\t\treturn this.m_propertyValues.userPreferences;\n\t}\n\n\tpublic set userPreferences(value: TPreferenceResponse | null) {\n\t\tthis.raiseAndSetIfChanged('userPreferences', value, this.m_propertyValues.userPreferences, (value) => {\n\t\t\tthis.m_propertyValues.userPreferences = value;\n\t\t});\n\t}\n\n\tpublic get limitProfitLossValues(): limitProfitLossValues | null {\n\t\treturn this.m_propertyValues.limitProfitLossValues;\n\t}\n\n\tpublic set limitProfitLossValues(value: limitProfitLossValues | null) {\n\t\tthis.raiseAndSetIfChanged('limitProfitLossValues', value, this.m_propertyValues.limitProfitLossValues, (value) => {\n\t\t\tthis.m_propertyValues.limitProfitLossValues = value;\n\t\t});\n\t}\n\n\tpublic get octStoredValues(): octStoredValues | null {\n\t\treturn this.m_propertyValues.octStoredValues;\n\t}\n\n\tpublic set octStoredValues(value: octStoredValues | null) {\n\t\tthis.raiseAndSetIfChanged('octStoredValues', value, this.m_propertyValues.octStoredValues, (value) => {\n\t\t\tthis.m_propertyValues.octStoredValues = value;\n\t\t});\n\t}\n\n\tpublic get isChildWindow(): Optional {\n\t\treturn this.m_propertyValues.isChildWindow;\n\t}\n\n\tpublic set isChildWindow(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('isChildWindow', value, this.m_propertyValues.isChildWindow, (value) => {\n\t\t\tthis.m_propertyValues.isChildWindow = value;\n\t\t});\n\t}\n\tpublic get tradingMode(): TTradingMode {\n\t\treturn this.m_propertyValues.tradingMode;\n\t}\n\n\tpublic set tradingMode(value: TTradingMode) {\n\t\tthis.raiseAndSetIfChanged('tradingMode', value, this.m_propertyValues.tradingMode, (value) => {\n\t\t\tthis.m_propertyValues.tradingMode = value;\n\t\t});\n\t}\n\tpublic get feedbackModal(): boolean {\n\t\treturn this.m_propertyValues.feedbackModal;\n\t}\n\tpublic set feedbackModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('feedbackModal', value, this.m_propertyValues.feedbackModal, (value) => {\n\t\t\tthis.m_propertyValues.feedbackModal = value;\n\t\t});\n\t}\n\tpublic get reconnectModal(): boolean {\n\t\treturn this.m_propertyValues.reconnectModal;\n\t}\n\tpublic set reconnectModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('reconnectModal', value, this.m_propertyValues.reconnectModal, (value) => {\n\t\t\tthis.m_propertyValues.reconnectModal = value;\n\t\t});\n\t}\n\tpublic get contactModal(): boolean {\n\t\treturn this.m_propertyValues.contactModal;\n\t}\n\tpublic set contactModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('contactModal', value, this.m_propertyValues.contactModal, (value) => {\n\t\t\tthis.m_propertyValues.contactModal = value;\n\t\t});\n\t}\n\tpublic get openSettings(): boolean {\n\t\treturn this.m_propertyValues.openSettings;\n\t}\n\tpublic set openSettings(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('openSettings', value, this.m_propertyValues.openSettings, (value) => {\n\t\t\tthis.m_propertyValues.openSettings = value;\n\t\t});\n\t}\n\tpublic get statusModal(): boolean {\n\t\treturn this.m_propertyValues.statusModal;\n\t}\n\tpublic set statusModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('statusModal', value, this.m_propertyValues.statusModal, (value) => {\n\t\t\tthis.m_propertyValues.statusModal = value;\n\t\t});\n\t}\n\n\tpublic get isJapanAccount(): boolean {\n\t\treturn this.m_propertyValues.isJapanAccount;\n\t}\n\n\tpublic set isJapanAccount(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isJapanAccount', value, this.m_propertyValues.isJapanAccount, (value) => {\n\t\t\tthis.m_propertyValues.isJapanAccount = value;\n\t\t});\n\t}\n\n\tpublic get agreementPendingVersion(): string | null {\n\t\treturn this.m_propertyValues.agreementPendingVersion;\n\t}\n\n\tpublic set agreementPendingVersion(value: string | null) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'agreementPendingVersion',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.agreementPendingVersion,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.agreementPendingVersion = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get subscriptionInfo(): SubscriptionInfo | null {\n\t\treturn this.m_propertyValues.subscriptionInfo;\n\t}\n\n\tpublic set subscriptionInfo(value: SubscriptionInfo | null) {\n\t\tthis.raiseAndSetIfChanged('subscriptionInfo', value, this.m_propertyValues.subscriptionInfo, (value) => {\n\t\t\tthis.m_propertyValues.subscriptionInfo = value;\n\t\t});\n\t}\n\n\tpublic get subscriptionModal(): SubscriptionModalState | null {\n\t\treturn this.m_propertyValues.subscriptionModal;\n\t}\n\n\tpublic set subscriptionModal(value: SubscriptionModalState | null) {\n\t\tthis.raiseAndSetIfChanged('subscriptionModal', value, this.m_propertyValues.subscriptionModal, (value) => {\n\t\t\tif (\n\t\t\t\tvalue?.isOpen === this.m_propertyValues.subscriptionModal?.isOpen &&\n\t\t\t\tvalue?.reason === this.m_propertyValues.subscriptionModal?.reason\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.m_propertyValues.subscriptionModal = value;\n\t\t});\n\t}\n\n\tpublic get canFetchSubscrInfo(): boolean {\n\t\treturn this.m_propertyValues.canFetchSubscrInfo;\n\t}\n\n\tpublic set canFetchSubscrInfo(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('canFetchSubscrInfo', value, this.m_propertyValues.canFetchSubscrInfo, (value) => {\n\t\t\tthis.m_propertyValues.canFetchSubscrInfo = value;\n\t\t});\n\t}\n\n\tpublic get currentlySelectedSignal(): SignalsListType | null {\n\t\treturn this.m_propertyValues.currentlySelectedSignal;\n\t}\n\n\tpublic set currentlySelectedSignal(value: SignalsListType | null) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'currentlySelectedSignal',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.currentlySelectedSignal,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.currentlySelectedSignal = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate constructor() {\n\t\tsuper();\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic reset(): void {\n\t\tconst defaultVals = clone(defaultValues.getValue());\n\t\tthis.m_propertyValues = {\n\t\t\t...defaultVals,\n\t\t\tappTheme: this.appTheme,\n\t\t};\n\t}\n\n\tpublic logout(): void {\n\t\tconst defaultVals = clone(defaultValues.getValue());\n\t\tthis.m_propertyValues = {\n\t\t\t...defaultVals,\n\t\t\tipLocation: this.ipLocation,\n\t\t\tisChildWindow: this.isChildWindow,\n\t\t\tappTheme: this.appTheme,\n\t\t};\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(AppContextProvider)\n\t\t? Resolver.resolve(AppContextProvider)\n\t\t: AppContextProvider.instance\n);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterList\":\"MarketsTable_filterList__1pbbg\",\"marketPageTableWrapper\":\"MarketsTable_marketPageTableWrapper__2foAw\",\"positionPageTableWrapper\":\"MarketsTable_positionPageTableWrapper__3Y_Sp\",\"tableContainerVirtualStyles\":\"MarketsTable_tableContainerVirtualStyles__3U8Y9\",\"tableContainerDetach\":\"MarketsTable_tableContainerDetach__3QLax\",\"table\":\"MarketsTable_table__RP4DD\",\"tr\":\"MarketsTable_tr__D5mvc\",\"th\":\"MarketsTable_th__MlZS5\",\"td\":\"MarketsTable_td__30LbE\",\"resizer\":\"MarketsTable_resizer__3ZwzX\",\"ltr\":\"MarketsTable_ltr__2Zo-Q\",\"rtl\":\"MarketsTable_rtl__1QZ-M\",\"icon\":\"MarketsTable_icon__mr1PH\",\"existsInWatchlistIcon\":\"MarketsTable_existsInWatchlistIcon__2qwjc\",\"addToWatchlistIcon\":\"MarketsTable_addToWatchlistIcon__3IW9i\",\"addIcon\":\"MarketsTable_addIcon__1d3hf\",\"errorAddIcon\":\"MarketsTable_errorAddIcon__2nKhN\",\"iconTheme\":\"MarketsTable_iconTheme__1hM1m\",\"triggerContainer\":\"MarketsTable_triggerContainer__3qW2O\",\"isResizing\":\"MarketsTable_isResizing__3H8Ah\",\"stickyHeader\":\"MarketsTable_stickyHeader__21H4a\",\"tableHeader\":\"MarketsTable_tableHeader__cdPDj\",\"tableRow\":\"MarketsTable_tableRow__3z2Ia\",\"editTheme\":\"MarketsTable_editTheme__3dj2N\",\"tableRowTransparent\":\"MarketsTable_tableRowTransparent__1vG8t\",\"tableData\":\"MarketsTable_tableData__2-yg2\",\"verticalCenterAlign\":\"MarketsTable_verticalCenterAlign__11ELG\",\"horizontalCenterAlign\":\"MarketsTable_horizontalCenterAlign__3729w\",\"alignRight\":\"MarketsTable_alignRight__3rKyn\",\"symbolCell\":\"MarketsTable_symbolCell__16pWQ\",\"symbolText\":\"MarketsTable_symbolText__2SVhj\",\"headerWrapper\":\"MarketsTable_headerWrapper__2PdxR\",\"dragColumnButton\":\"MarketsTable_dragColumnButton__1iduO\",\"loadingContainer\":\"MarketsTable_loadingContainer__3Q1la\",\"greenCurrent\":\"MarketsTable_greenCurrent__3f8fJ\",\"redCurrent\":\"MarketsTable_redCurrent__pqxrr\",\"costInput\":\"MarketsTable_costInput__363-U\",\"marketsList\":\"MarketsTable_marketsList__1iSl9\",\"header\":\"MarketsTable_header__2IH_K\",\"label\":\"MarketsTable_label__3iZsS\",\"filterOptionGroupWrapper\":\"MarketsTable_filterOptionGroupWrapper__24gWk\",\"filterOptionGroup\":\"MarketsTable_filterOptionGroup__3AowU\",\"filterLabel\":\"MarketsTable_filterLabel__PdMWV\",\"filterControl\":\"MarketsTable_filterControl__2ZKUR\",\"dataGrid\":\"MarketsTable_dataGrid__3fCBR\",\"DataGrid\":\"MarketsTable_DataGrid__38swX\",\"content\":\"MarketsTable_content__GzVQH\",\"badgeWrapper\":\"MarketsTable_badgeWrapper__36f36\",\"contentSymbol\":\"MarketsTable_contentSymbol__2AIyE\",\"button\":\"MarketsTable_button__Auztz\",\"typeButton\":\"MarketsTable_typeButton__3I2dP\",\"testButton\":\"MarketsTable_testButton__3NPoL\",\"typeValue\":\"MarketsTable_typeValue__gFQ3L\",\"testValue\":\"MarketsTable_testValue__1xuRr\",\"watchlistsListContainer\":\"MarketsTable_watchlistsListContainer__3OJCP\",\"titleContainer\":\"MarketsTable_titleContainer__3onqt\",\"watchlistContainer\":\"MarketsTable_watchlistContainer__1l_qs\",\"createWatchlist\":\"MarketsTable_createWatchlist__1yMAr\",\"create\":\"MarketsTable_create__1Qg1b\",\"errorCreateText\":\"MarketsTable_errorCreateText__3idYb\",\"textContainer\":\"MarketsTable_textContainer__2DgAc\",\"createErrorMessage\":\"MarketsTable_createErrorMessage__XDxxk\",\"createWLContainer\":\"MarketsTable_createWLContainer__ZoVpf\",\"createWatchlistItems\":\"MarketsTable_createWatchlistItems__3K_gK\",\"inputContainer\":\"MarketsTable_inputContainer__1JTt3\",\"inputTitle\":\"MarketsTable_inputTitle__fXwp9\",\"inputContainerText\":\"MarketsTable_inputContainerText__2WGRq\",\"popupFooter\":\"MarketsTable_popupFooter__vNeFa\",\"lightticketButton\":\"MarketsTable_lightticketButton__1zdB6\",\"darkticketButton\":\"MarketsTable_darkticketButton__2jLES\",\"messageRow\":\"MarketsTable_messageRow__1Nk23\",\"inputCount\":\"MarketsTable_inputCount__2xPCg\",\"disableButton\":\"MarketsTable_disableButton__19A-Y\",\"lightCostInput\":\"MarketsTable_lightCostInput__1pWGy\",\"errorInput\":\"MarketsTable_errorInput__2sUGV\",\"lightErrorInput\":\"MarketsTable_lightErrorInput__uSe3G\",\"errorMessage\":\"MarketsTable_errorMessage__2f4k7\",\"btnCancel\":\"MarketsTable_btnCancel__2XWgV\",\"resizedCancelBtn\":\"MarketsTable_resizedCancelBtn__26Tzn\",\"btnSave\":\"MarketsTable_btnSave__B61x_\",\"resizedSaveBtn\":\"MarketsTable_resizedSaveBtn__3LfEA\",\"hidden\":\"MarketsTable_hidden__2ZwmQ\",\"Popup\":\"MarketsTable_Popup__1VqLl\",\"filterListWrapper\":\"MarketsTable_filterListWrapper__194Jh\",\"listContainer\":\"MarketsTable_listContainer__pq9Nk\",\"itemContainer\":\"MarketsTable_itemContainer__1Bg3U\",\"item\":\"MarketsTable_item__Nx6Bj\",\"bold\":\"MarketsTable_bold__bvgy8\",\"progressBarContainer\":\"MarketsTable_progressBarContainer__3xtvu\",\"progressBar\":\"MarketsTable_progressBar__mfe7j\",\"positive\":\"MarketsTable_positive__3KMH2\",\"negative\":\"MarketsTable_negative__2cd89\",\"tooltipTimestamp\":\"MarketsTable_tooltipTimestamp__2RrFe\",\"tooltipTitle\":\"MarketsTable_tooltipTitle__2_6Y6\",\"grid\":\"MarketsTable_grid__1QlYf\",\"padSm\":\"MarketsTable_padSm__20Iko\",\"star\":\"MarketsTable_star__1qqZA\",\"timeUpdate\":\"MarketsTable_timeUpdate__32Gu2\",\"emptyGridContainer\":\"MarketsTable_emptyGridContainer__jVD7D\",\"emptyIcon\":\"MarketsTable_emptyIcon__2vErQ\",\"emptyStateMessage\":\"MarketsTable_emptyStateMessage__3yecX\"};","import {\n\tPriceQuote,\n\tQuoteSubscription,\n\tHistorySubscription,\n\tHistoryTick,\n\tFeedSubscription,\n\tNewsSubscriptionRequest,\n\tMarketWinNewsSubscriptionRequest,\n\tTradingAccountLoginRequest,\n\tCloseTradeRequest,\n\tEditOrderRequest,\n\tEditPositionRequest,\n\tNewOrderRequest,\n\tNewPositionRequest,\n\tPartialCloseRequest,\n\tMarketItem,\n\tTradingAccount,\n\tTradingInstruments,\n\tTradingProvider,\n\tTradingAccountLogin,\n\tRFPNews,\n\tTradeEvent,\n\tTradingPosition,\n\tQuantityTypeUpdate,\n\tMarketWatchSnapshotsRequest,\n\tMarketWatchSubscriptionRequest,\n\tMarketWatchDynamicSubscriptionRequest,\n\tMarketWatchIntervals,\n\tMarketWatchCategories,\n\tMarketWatchItem,\n\tMarketWatchItems,\n\tHistorySize,\n\tTfboLoginResponse,\n\tTfboEndpointResponse,\n\tPong,\n\tHistoryTickItems,\n\tFeedInfos,\n\tRFPDataObjectType,\n\tMarketItemsRecord,\n\tRFPDataObject,\n\tAccountTierResponse,\n\tAccountTierRequest,\n\tPreviousDayClosePriceRequest,\n\tPreviousDayClosePrice,\n\tMarketItemsInfoRecord,\n\tTierUpdateInfo,\n\tHistoryRequestStartDate,\n\tHistoryTimescaleStartDate,\n\tRFPTradingAccountsError,\n\tTradingAccountLogoutRequest,\n\tRFPRequestTTSessionTimes,\n\tRFPSessionTimes,\n\tRequestTTWatchList,\n\tTTWatchList,\n\tRequestTTMarginRules,\n\tTTMarginRules,\n\tFutureMargin,\n\tRequestFutureMargin,\n\tRequestRfpServerNames,\n\tRFPServerItem,\n\tRfpServerNames,\n} from './rfp.types';\n\nexport const RFP_STOMP_SIGNIN = `${process.env.REACT_APP_RFP_STOMP_WEBPROXY}/api/auth/signin`;\nexport const RFP_STOMP_WEBSOCKET_ENDPOINT = `${process.env.REACT_APP_RFP_STOMP_WEBPROXY}/ep`;\nexport const RFP_STOMP_ENDPOINT = `${process.env.REACT_APP_RFP_STOMP_WEBPROXY}`;\nexport const RFP_BINARY_ENDPOINT = `${process.env.REACT_APP_RFP_BINARY_WEBPROXY}`;\n\nexport const RFP = {\n\t// endpoints related to 'tfbo'\n\ttfboLoginResponse: '/app/tfboLoginResponse',\n\ttfboEndpointResponse: '/app/tfboEndpointResponse',\n\n\t// endpoints related to 'app'\n\tping: '/app/ping',\n\tpong: '/app/pong',\n\tgetFeedIds: '/app/feedIds',\n\tgetMarketItems: '/app/mktItems',\n\tgetMarketItemsInfo: '/app/mktItemsInfo',\n\tgetTradingAccounts: '/app/tradingAccounts',\n\tgetTradingProviders: '/app/tradingProviders',\n\tmanageHistory: '/app/manageHistory',\n\tmanageHistoryDate: '/app/manageHistoryDate',\n\tmanageQuotes: '/app/manageQuotes',\n\tmanageTradingNews: '/app/manageNews',\n\tmanageMarketWinNews: '/app/manageMarketWinNews',\n\tgetNewsGroups: '/app/getNewsGroups', //unused\n\tgetMarketWatchIntervals: '/app/getMarketWatchIntervals',\n\tgetMarketWatchCategories: '/app/getMarketWatchCategories',\n\tgetMarketWatchSnapshots: '/app/getMarketWatchSnapshots',\n\tgetMarketWatchSubscription: '/app/getMarketWatchSubscription',\n\tgetMarketWatchDynamicSubscription: '/app/getMarketWatchDynamicSubscription',\n\tgetTTSessionTimes: '/app/getTTSessionTimes',\n\trfpServerNames: '/app/rfpServerNames',\n\trequestRfpServerNames: '/app/requestRfpServerNames',\n\n\t// endpoints related to the user\n\tqueueDemoAccountParams: '/user/queue/demo-acct-params', //unused\n\tqueueErrors: '/user/queue/errors', //unused\n\tqueueFeedIds: '/user/queue/feedIds',\n\tqueueHistoricalDataUpdates: '/user/queue/hs-upd',\n\tqueueInfos: '/user/queue/infos', //unused\n\tqueueMarketItems: '/user/queue/mktItems',\n\tqueueMarketItemsInfo: '/user/queue/marketitems-info',\n\tqueueQuotes: '/user/queue/q',\n\tqueueTradingAccountsError: '/user/queue/trading-accounts-error',\n\tqueueSessionTimes: '/user/queue/session-times',\n\tqueueTradingAccount: '/user/queue/trading-account',\n\tqueueTradingAccountProperties: '/user/queue/trading-account-properties', //unused\n\tqueueTradingProvider: '/user/queue/trading-provider',\n\tqueueTradingAccountLogin: '/user/queue/trading-account-logon',\n\tqueueTierInfo: '/user/queue/tier-info',\n\tqueueTradingAccountInstruments: '/user/queue/trading-instruments',\n\tqueueTradingNews: '/user/queue/news',\n\tqueueMarketWinNews: '/user/queue/marketWinNews',\n\tqueueTradingNewsConfig: '/user/queue/news-cfg', //unused\n\tqueueTradingNewsGroup: '/user/queue/news-grp', //unused\n\tqueueTradeEvent: '/user/queue/trade-event',\n\tqueueTradeEventExt: '/user/queue/trade-event-ext',\n\tqueueTradingPositionUpdates: '/user/queue/tp',\n\tqueueMarketWatchCategories: '/user/queue/queueMarketWatchCategories',\n\tqueueMarketWatchIntervals: '/user/queue/queueMarketWatchIntervals',\n\tqueueMarketWatchItem: '/user/queue/queueMarketWatchItem',\n\tqueueMarketWatchItems: '/user/queue/queueMarketWatchItems',\n\tqueueHistorySize: '/user/queue/queueHistorySize',\n\tqueueHistoryStartDate: '/user/queue/queueHistoryStartDate',\n\tqueuePreviousDayClosePrice: '/user/queue/queuePreviousDayClosePrice',\n\tqueueTierUpdateInfo: '/user/queue/queueTierUpdateInfo',\n\n\t// endpoints to make trades\n\ttradingAccountLogin: '/app/tradingAccountLogin',\n\ttradingAccountLogout: '/app/tradingAccountLogout',\n\tTTWatchList: '/app/ttWatchList',\n\trequestTTWatchList: '/app/requestTTWatchList',\n\tTTMarginRules: '/app/ttMarginRules',\n\trequestTTMarginRules: '/app/requestTTMarginRules',\n\trequestFutureMargin: '/app/requestFutureMargin',\n\tfutureMargin: '/app/futureMargin',\n\tcloseTrade: '/app/closeTrade',\n\tconnect: '/app/connect',\n\teditOrder: '/app/editOrder',\n\teditPosition: '/app/editPosition',\n\tnewOrder: '/app/newOrder',\n\tnewTrade: '/app/newTrade',\n\tpartialClose: '/app/closeTradePartial',\n\n\t//endpoint to update trading quantity settings\n\tupdateQuantityType: '',\n} as const;\n\nexport const RFP_RESPONSE = {\n\tUNAUTHORIZED: 'Unauthorized',\n};\n\nconst RfpMessageMap = (() => {\n\tconst map = {\n\t\tsend: {\n\t\t\t[RFP['getTTSessionTimes']]: null as unknown as RFPRequestTTSessionTimes,\n\t\t\t[RFP['getFeedIds']]: null as unknown as null | undefined,\n\t\t\t[RFP['ping']]: null as unknown as null | undefined,\n\t\t\t//[RFP['pong']]: null as unknown as null | undefined,\n\t\t\t[RFP['getMarketItems']]: null as unknown as FeedSubscription,\n\t\t\t[RFP['getMarketItemsInfo']]: null as unknown as FeedSubscription,\n\t\t\t[RFP['getTradingAccounts']]: null as unknown as number,\n\t\t\t[RFP['getTradingProviders']]: null as unknown as null | undefined,\n\t\t\t[RFP['manageHistory']]: null as unknown as HistorySubscription,\n\t\t\t[RFP['manageHistoryDate']]: null as unknown as HistoryRequestStartDate,\n\t\t\t[RFP['manageQuotes']]: null as unknown as QuoteSubscription,\n\t\t\t[RFP['manageTradingNews']]: null as unknown as NewsSubscriptionRequest,\n\t\t\t[RFP['manageMarketWinNews']]: null as unknown as MarketWinNewsSubscriptionRequest,\n\t\t\t[RFP['tradingAccountLogin']]: null as unknown as TradingAccountLoginRequest,\n\t\t\t[RFP['tradingAccountLogout']]: null as unknown as TradingAccountLogoutRequest,\n\t\t\t[RFP['requestTTWatchList']]: null as unknown as RequestTTWatchList,\n\t\t\t[RFP['requestRfpServerNames']]: null as unknown as RequestRfpServerNames,\n\t\t\t[RFP['requestTTMarginRules']]: null as unknown as RequestTTMarginRules,\n\t\t\t[RFP['requestFutureMargin']]: null as unknown as RequestFutureMargin,\n\t\t\t[RFP['queueTierInfo']]: null as unknown as AccountTierRequest,\n\t\t\t[RFP['closeTrade']]: null as unknown as CloseTradeRequest,\n\t\t\t[RFP['editOrder']]: null as unknown as EditOrderRequest,\n\t\t\t[RFP['editPosition']]: null as unknown as EditPositionRequest,\n\t\t\t[RFP['newOrder']]: null as unknown as NewOrderRequest,\n\t\t\t[RFP['newTrade']]: null as unknown as NewPositionRequest,\n\t\t\t[RFP['partialClose']]: null as unknown as PartialCloseRequest,\n\t\t\t[RFP['updateQuantityType']]: null as unknown as QuantityTypeUpdate,\n\t\t\t[RFP['getMarketWatchIntervals']]: null as unknown as null | undefined,\n\t\t\t[RFP['getMarketWatchCategories']]: null as unknown as null | undefined,\n\t\t\t[RFP['getMarketWatchSnapshots']]: null as unknown as MarketWatchSnapshotsRequest,\n\t\t\t[RFP['getMarketWatchSubscription']]: null as unknown as MarketWatchSubscriptionRequest,\n\t\t\t[RFP['getMarketWatchDynamicSubscription']]: null as unknown as MarketWatchDynamicSubscriptionRequest,\n\t\t\t[RFP['queuePreviousDayClosePrice']]: null as unknown as PreviousDayClosePriceRequest,\n\t\t},\n\t\tsubscribe: {\n\t\t\t[RFP['tfboLoginResponse']]: null as unknown as TfboLoginResponse,\n\t\t\t[RFP['tfboEndpointResponse']]: null as unknown as TfboEndpointResponse,\n\t\t\t[RFP['pong']]: null as unknown as Pong,\n\t\t\t[RFP['queueFeedIds']]: null as unknown as FeedInfos,\n\t\t\t[RFP['queueHistoricalDataUpdates']]: null as unknown as HistoryTickItems,\n\t\t\t[RFP['queueMarketItems']]: null as unknown as MarketItemsRecord,\n\t\t\t[RFP['queueMarketItemsInfo']]: null as unknown as MarketItemsInfoRecord,\n\t\t\t[RFP['queueQuotes']]: null as unknown as PriceQuote,\n\t\t\t[RFP['queueSessionTimes']]: null as unknown as RFPSessionTimes,\n\t\t\t[RFP['queueTradingAccount']]: null as unknown as TradingAccount,\n\t\t\t[RFP['queueTradingAccountsError']]: null as unknown as RFPTradingAccountsError,\n\t\t\t[RFP['queueTradingProvider']]: null as unknown as TradingProvider,\n\t\t\t[RFP['queueTradingAccountLogin']]: null as unknown as TradingAccountLogin,\n\t\t\t[RFP['queueTierInfo']]: null as unknown as AccountTierResponse,\n\t\t\t[RFP['queueTradingAccountInstruments']]: null as unknown as TradingInstruments,\n\t\t\t[RFP['queueTradingNews']]: null as unknown as RFPNews,\n\t\t\t[RFP['queueMarketWinNews']]: null as unknown as RFPNews,\n\t\t\t[RFP['queueTradeEvent']]: null as unknown as TradeEvent,\n\t\t\t[RFP['queueTradeEventExt']]: null as unknown as TradeEvent,\n\t\t\t[RFP['queueTradingPositionUpdates']]: null as unknown as TradingPosition,\n\t\t\t[RFP['queueInfos']]: null as unknown as any,\n\t\t\t[RFP['queueErrors']]: null as unknown as any,\n\t\t\t[RFP['queueMarketWatchIntervals']]: null as unknown as MarketWatchIntervals,\n\t\t\t[RFP['queueMarketWatchCategories']]: null as unknown as MarketWatchCategories,\n\t\t\t[RFP['queueMarketWatchItem']]: null as unknown as MarketWatchItem,\n\t\t\t[RFP['queueMarketWatchItems']]: null as unknown as MarketWatchItems,\n\t\t\t[RFP['queueHistorySize']]: null as unknown as HistorySize,\n\t\t\t[RFP['queueHistoryStartDate']]: null as unknown as HistoryTimescaleStartDate,\n\t\t\t[RFP['queuePreviousDayClosePrice']]: null as unknown as PreviousDayClosePrice,\n\t\t\t[RFP['queueTierUpdateInfo']]: null as unknown as TierUpdateInfo,\n\t\t\t[RFP['TTWatchList']]: null as unknown as TTWatchList,\n\t\t\t[RFP['TTMarginRules']]: null as unknown as TTMarginRules,\n\t\t\t[RFP['futureMargin']]: null as unknown as FutureMargin,\n\t\t\t[RFP['rfpServerNames']]: null as unknown as RfpServerNames,\n\t\t},\n\t} as const;\n\treturn map;\n})();\n\nconst RfpDataMessageMap = (() => {\n\tconst map = {\n\t\t[RFPDataObjectType.All]: null as unknown as RFPDataObject,\n\t\t[RFPDataObjectType.HistoryTickItems]: null as unknown as HistoryTickItems,\n\t\t[RFPDataObjectType.HistoryTick]: null as unknown as HistoryTick,\n\t\t[RFPDataObjectType.HistorySize]: null as unknown as HistorySize,\n\t\t[RFPDataObjectType.PriceQuote]: null as unknown as PriceQuote,\n\t\t[RFPDataObjectType.TfboLoginResponse]: null as unknown as TfboLoginResponse,\n\t\t[RFPDataObjectType.TfboEndpointResponse]: null as unknown as TfboEndpointResponse,\n\t\t[RFPDataObjectType.Pong]: null as unknown as Pong,\n\t\t[RFPDataObjectType.FeedInfos]: null as unknown as FeedInfos,\n\t\t[RFPDataObjectType.TradingAccount]: null as unknown as TradingAccount,\n\t\t[RFPDataObjectType.TradingAccountLogin]: null as unknown as TradingAccountLogin,\n\t\t[RFPDataObjectType.TradingAccountLogout]: null as unknown as TradingAccountLogoutRequest,\n\t\t[RFPDataObjectType.TradingProvider]: null as unknown as TradingProvider,\n\n\t\t[RFPDataObjectType.TradeEvent]: null as unknown as TradeEvent,\n\t\t[RFPDataObjectType.TradingPosition]: null as unknown as TradingPosition,\n\t\t[RFPDataObjectType.MarketWatchIntervals]: null as unknown as MarketWatchIntervals,\n\n\t\t[RFPDataObjectType.MarketWatchCategories]: null as unknown as MarketWatchCategories,\n\t\t[RFPDataObjectType.MarketWatchItem]: null as unknown as MarketWatchItem,\n\t\t[RFPDataObjectType.MarketWatchItems]: null as unknown as MarketWatchItems,\n\t\t[RFPDataObjectType.RFPNews]: null as unknown as RFPNews,\n\n\t\t[RFPDataObjectType.MarketItem]: null as unknown as MarketItem,\n\t\t[RFPDataObjectType.MarketItemsRecord]: null as unknown as MarketItemsRecord,\n\t\t[RFPDataObjectType.HistoryTimescaleStartDate]: null as unknown as HistoryTimescaleStartDate,\n\t\t[RFPDataObjectType.TradingAccountsError]: null as unknown as RFPTradingAccountsError,\n\t\t[RFPDataObjectType.TTSessionTimes]: null as unknown as RequestTTWatchList,\n\t} as const;\n\treturn map;\n})();\n\nexport type TRfpDataMessageMap = typeof RfpDataMessageMap;\n\nexport type TRfpMessages = typeof RfpMessageMap;\nexport type TRfpSendParams = TRfpMessages['send'][T] extends null | undefined\n\t? Parameters<(body?: TRfpMessages['send'][T]) => any>\n\t: Parameters<(body: TRfpMessages['send'][T]) => any>;\n","import moment from 'moment';\n\nimport {\n\tTfboApiMethodMeta,\n\tTradingAccountType as PlatformAccountType,\n} from '../../gateways/TfboGateway/TfboGateway.types';\nimport i18n from '../../setup/i18n';\nimport { AccountMarketType, MarketItem, TradingAccount } from '../../gateways/RfpGateway/rfp.types';\nimport { AppContextProvider } from '../../contexts/AppContext';\nimport {\n\tGENERAL_DATE_FORMAT,\n\tGENERAL_DATETIMES_FORMAT,\n\tJAPAN_DATE_FORMAT,\n\tJAPAN_DATETIMES_FORMAT,\n} from '../../setup/config';\nimport { GLOBAL_MAX_ORDER_SIZE, tiers, tiersKeysMap } from '../../setup/subscriptionsConfig';\nimport { formatNumberWithCommas } from '../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nimport { Optional } from './Nullable';\nimport { Resolver } from './Ioc';\n\n// Japan subscription statuses\nexport enum SubscriptionStatus {\n\t'Active' = 'ACTIVE',\n\t'NoRecord' = 'NORECORD',\n\t'Existing' = 'EXISTING',\n\t'Stopped' = 'STOPPED',\n\t'Terminated' = 'TERMINATED',\n\t'Unpaid' = 'UNPAID',\n\t'Cancelled' = 'CANCELED',\n\t'Suspended' = 'SUSPENDED',\n\t'Incomplete' = 'INCOMPLETE',\n}\n\nconst ACCOUNT_SUBSCRIPTION_STATUS_WITH_TIER_INFO = [SubscriptionStatus.Active];\n\nexport const shouldShowTierIcon = (subscriptionInfo: SubscriptionInfo) =>\n\tsubscriptionInfo &&\n\tsubscriptionInfo.status &&\n\tACCOUNT_SUBSCRIPTION_STATUS_WITH_TIER_INFO.includes(subscriptionInfo.status);\n\n// Japan subscription tiers\nexport type SubscriptionTier = 'Tier0' | 'Tier1' | 'Tier2' | 'Tier3';\n\n// export enum changeTierResponse {\n// \t'Changed' = 'CHANGED',\n// \t'NotApplicable' = 'NOTAPPLICABLE',\n// \t'NotAllowed' = 'NOTALLOWED',\n// \t'NoRecord' = 'NORECORD',\n// }\n\nexport enum SubscriptionModalReason {\n\tInstrument = 'InstrumentNotAllowed',\n\tVolume = 'VolumeExceeded',\n\tOrderSizeUpgradable = 'OrderSizeInvalidUntilUpgrade',\n\tOrderSizeGlobal = 'OrderSizeGlobalExceeded',\n\tSubscriptionForNewUser = 'SubscriptionForNewUserNeeded',\n\tSubscriptionForExistingUser = 'SubscriptionForExistingUserNeeded',\n\tSubscriptionForUnpaidUser = 'SubscriptionForUnpaidUserNeeded',\n\tRenewal = 'RenewalNeeded',\n\tCancelled = 'CancelledOrSuspended',\n\tTerminated = 'SubscriptionTerminated',\n\tSubscribeResponse = 'SubscribeResponseRecevied',\n\tManageSubscription = 'ManageSubscriptionRequest',\n\tUpgradeSubscription = 'UpgradeSubscriptionRequest',\n\t// ManageSubscriptionConfirm = 'ManageSubscriptionConfirmation',\n\t// UpgradeSubscriptionConfirm = 'UpgradeSubscriptionConfirmation',\n\tConfirmStop = 'ConfirmationForSubscriptionStopNeeded',\n\tConfirmRestart = 'ConfirmationForSubscriptionResumNeeded',\n\t// ConfirmCancel = 'ConfirmationForSubscriptionCancelNeeded',\n\tChangeTierResponse = 'ChangeTierResponseReceived',\n\tStopSubscriptionResponse = 'StopSubscriptionResponseReceived',\n\tCancelSubscriptionResponse = 'CancelSubscriptionResponseReceived',\n\tRestartSubscriptionResponse = 'RestartSubscriptionResponse',\n\tSubscriptionDetails = 'SubscriptionDetailsDisplayed',\n\tNoSuperiorTiers = 'NoSuperiorTiersAvaiableForThisUser',\n\tSubscribeFromAlert = 'SubscribeFromAlert',\n\tSystemError = 'BackendOperationSysError',\n\tOrderSizeHighestTier = 'OrderSizeExceededForHighestTier',\n\tNotAuthorized = 'BackendReturnedResponseNotAuthorized',\n\tIncorrectParamsForBJP = 'BackendSentIncorrectParamsForRequestToBJP',\n\tGymNotAccessibleForTier = 'TierNotAllowedToAccessTradersGym',\n\tUpgradeToAccessGym = 'UpgradeNeededToAccessTradersGym',\n\tJapanAccountEmptyApplicationStatus = 'JapanAccountEmptyApplicationStatus',\n}\n\nexport enum UserOperationType {\n\t'CLOSE' = 'CanClosePositions',\n\t'CANCEL' = 'CanCancelOrders',\n}\n\nexport type SubscriptionModalState = {\n\tisOpen: boolean;\n\treason: SubscriptionModalReason | null;\n\ttext?: string | null;\n\tinstrument?: MarketItem | null;\n};\n\nexport type SubscriptionInfo = {\n\tstatus: SubscriptionStatus | null;\n\ttier: SubscriptionTier | null;\n\ttierNum: number | null;\n\tnextTier: SubscriptionTier | null;\n\tenabled: boolean | null;\n\tTTTier: number | null;\n\texpiryDate: string | null;\n\tstartDate: string | null;\n\tisDemoUnlimited: boolean | null;\n\tmaxVolume: number | null;\n\tusedVolume: number | null;\n\tremainingVolume: number | null;\n};\n\n// export type SubscriptionInfoProp = {\n// \tkey: keyof SubscriptionInfo;\n// \tvalue: any;\n// };\n//\n// export type SubscribeStatusObj = {\n// \tstatus: string;\n// \tproviderStatus?: string;\n// };\n\nexport type SubscriptionCheckStatus = 'NOT_STARTED' | 'IN_PROGRESS' | 'DONE';\n\nexport interface Tier {\n\tid: SubscriptionTier;\n\tkey: string;\n\tpricePerMonth: number;\n\tcurrencyPairs: string;\n\tminPerOrder: number;\n\tmaxPerOrder: number;\n\tmonthlyAmount: string;\n\tmaxPosition: number;\n\tinstruments: string[];\n\topenInterestLimit?: any;\n\tmaxOpenInstrumentPosition?: {\n\t\t[key: string]: number;\n\t};\n}\n\nexport const defaultSubscriptionModalState = {\n\tisOpen: false,\n\treason: null,\n\ttext: null,\n\tinstrument: null,\n};\n\nexport const defaultSubscriptionInfo: SubscriptionInfo = {\n\tstatus: null,\n\ttier: null,\n\ttierNum: null,\n\tnextTier: null,\n\tenabled: null,\n\tTTTier: null,\n\texpiryDate: null,\n\tstartDate: null,\n\tisDemoUnlimited: null,\n\tmaxVolume: null,\n\tusedVolume: null,\n\tremainingVolume: null,\n};\n\n//get app context provider\n\nconst sendRequest = (\n\trequestObj: { method: keyof typeof TfboApiMethodMeta; payloadParameters: any },\n\tonSuccess?: ((response: any) => void) | null,\n\tonError?: ((error: any) => void) | null\n) => {};\n\nexport const useSubscribe = ({\n\taccountId,\n\tprovider,\n\ttier,\n\tsource,\n}: {\n\taccountId: number;\n\tprovider: string;\n\ttier: SubscriptionTier;\n\tsource: string;\n}) => {\n\tconst request = {\n\t\tmethod: 'subscriptions.subscribe' as keyof typeof TfboApiMethodMeta,\n\t\tpayloadParameters: {\n\t\t\tprovider: provider,\n\t\t\taccountNumber: accountId,\n\t\t\ttier: tier,\n\t\t\tsource: source,\n\t\t},\n\t};\n\n\tconst onSuccess = (response: any) => {};\n\n\tconst onError = (error: any) => {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tconsole.debug('Error requesting initial subscription from TFBO gateway. Exception: ', message);\n\t};\n\n\tsendRequest(request, onSuccess, onError);\n};\n\n// export const getInstrumentTiers = (instrCode: string) => {};\n\nexport const getInstrumentMinTier = (instrumentCode: string | undefined, instrumentList: MarketItem[]) => {\n\tif (!instrumentCode) {\n\t\treturn null;\n\t}\n\n\treturn instrumentList.find((instrument) => instrument.code === instrumentCode)?.minTier;\n};\n\nexport const getTierNumFromName = (tier: SubscriptionTier) => {\n\treturn parseInt(tier?.charAt(tier.length - 1) || '', 10);\n};\n\nexport const getFormattedDateHelper = (datetime: Date | number | null | undefined, formatString: string) => {\n\tconst globalLocale = moment.locale();\n\tif (globalLocale === 'en') {\n\t\tconst modifiedMoment = datetime ? () => moment(datetime) : moment;\n\t\treturn modifiedMoment().format(formatString);\n\t}\n\n\tmoment.locale('en');\n\tconst modifiedMoment = datetime ? () => moment(datetime) : moment;\n\tconst formattedDate = modifiedMoment().format(formatString);\n\tmoment.locale(globalLocale);\n\treturn formattedDate;\n};\n\nexport const getGeneralFormatDate = (\n\tdate: Date | number | null | undefined,\n\tincludeHM: boolean = false,\n\tisJapanFormat: boolean = false\n) => {\n\tlet formatString = null;\n\tif (isJapanFormat) {\n\t\tformatString = includeHM ? JAPAN_DATETIMES_FORMAT : JAPAN_DATE_FORMAT;\n\t} else {\n\t\tformatString = includeHM ? GENERAL_DATETIMES_FORMAT : GENERAL_DATE_FORMAT;\n\t}\n\n\treturn getFormattedDateHelper(date, formatString);\n};\n\nconst getSubscriptionExpiryDate = (includeHM: boolean = false, isJapanFormat: boolean = false) => {\n\tconst endOfMonth = moment().endOf('month');\n\tconst datetime = endOfMonth.unix() * 1000;\n\n\treturn getGeneralFormatDate(datetime, includeHM, isJapanFormat);\n};\n\nconst getSubscriptionStartDate = (includeHM: boolean = false, isJapanFormat: boolean = false) => {\n\tconst startOfMonth = moment().startOf('month');\n\tconst datetime = startOfMonth.unix() * 1000;\n\n\treturn getGeneralFormatDate(datetime, includeHM, isJapanFormat);\n};\n\n// export const checkUserHasUnlimitedDemo = () => true;\n\nexport const checkIsInstrumentAllowed = (\n\tinstrumentCode: string,\n\tcurrentTierNum: number | null | undefined,\n\tinstrumentList: MarketItem[]\n) => {\n\tconst instrumentMinTier = getInstrumentMinTier(instrumentCode, instrumentList);\n\tif (!currentTierNum || !instrumentMinTier) {\n\t\treturn true;\n\t}\n\n\treturn currentTierNum >= instrumentMinTier;\n};\n\nexport const checkIsVolumeUnlimited = (subscriptionInfo: SubscriptionInfo | null) => {\n\tif (!subscriptionInfo) {\n\t\treturn false;\n\t}\n\n\treturn subscriptionInfo.maxVolume === -1;\n};\n\nexport const checkIsVolumeExceeded = (subscriptionInfo: SubscriptionInfo | null) => {\n\tif (!subscriptionInfo) {\n\t\treturn false;\n\t}\n\n\tif (subscriptionInfo?.tierNum ?? 0 > 1) {\n\t\treturn false;\n\t}\n\n\tif (subscriptionInfo?.remainingVolume === null) {\n\t\treturn false;\n\t}\n\n\treturn subscriptionInfo.remainingVolume === 0;\n};\n\nexport const checkIsTierOrderSizeExceeded = (orderSize: number, subscriptionInfo: SubscriptionInfo | null) => {\n\tif (!subscriptionInfo) {\n\t\treturn false;\n\t}\n\n\tconst currentTier = subscriptionInfo.tier;\n\tconst orderMaxLimit = tiers.find((tier) => tier.id === currentTier)?.maxPerOrder;\n\tif (orderMaxLimit) {\n\t\treturn orderSize > orderMaxLimit;\n\t}\n\n\treturn false;\n};\n\nexport const checkIsGlobalOrderSizeExceeded = (orderSize: number) => {\n\tif (!orderSize || isNaN(orderSize)) {\n\t\treturn false;\n\t}\n\n\treturn GLOBAL_MAX_ORDER_SIZE && !isNaN(GLOBAL_MAX_ORDER_SIZE) ? orderSize > GLOBAL_MAX_ORDER_SIZE : false;\n};\n\nexport const checkHasSubscriptionOptions = (subscriptionStatus: SubscriptionStatus | null) => {\n\tif (!subscriptionStatus) return false;\n\n\treturn [SubscriptionStatus.Active, SubscriptionStatus.Unpaid, SubscriptionStatus.Stopped].includes(\n\t\tsubscriptionStatus.toUpperCase() as SubscriptionStatus\n\t);\n};\n\nexport const checkIsOperationGranted = (\n\tsubscriptionStatus: SubscriptionStatus | null | undefined,\n\toperation: UserOperationType\n) => {\n\tif (!subscriptionStatus || !operation) return false;\n\n\tswitch (operation) {\n\t\tcase UserOperationType.CLOSE:\n\t\t\tif ((SubscriptionStatus.Existing, SubscriptionStatus.Unpaid).includes(subscriptionStatus)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase UserOperationType.CANCEL:\n\t\t\tif ((SubscriptionStatus.Existing, SubscriptionStatus.Unpaid).includes(subscriptionStatus)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t}\n\n\treturn false;\n};\n\nexport const getSubscriptionConstraints = (\n\tsubscriptionInfo: SubscriptionInfo | null,\n\tinstrumentCode: string | null,\n\tmarketItems: MarketItem[],\n\toperation?: UserOperationType\n) => {\n\tconst statusBasedReason = getInitModalPropsByStatus(subscriptionInfo?.status || null)?.reason;\n\tif (statusBasedReason) {\n\t\tconst isOperationGranted = operation ? checkIsOperationGranted(subscriptionInfo?.status, operation) : false;\n\n\t\tif (isOperationGranted) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn statusBasedReason;\n\t}\n\n\tif (instrumentCode) {\n\t\tif (\n\t\t\toperation !== UserOperationType.CLOSE &&\n\t\t\toperation !== UserOperationType.CANCEL &&\n\t\t\t!checkIsInstrumentAllowed(instrumentCode, subscriptionInfo?.tierNum, marketItems)\n\t\t) {\n\t\t\treturn SubscriptionModalReason.Instrument;\n\t\t}\n\t}\n\n\treturn null;\n};\n\nexport const canSeeSubscriptionDetails = (subscriptionStatus: SubscriptionStatus | null) => {\n\tif (!subscriptionStatus) return false;\n\treturn [SubscriptionStatus.Active, SubscriptionStatus.Unpaid, SubscriptionStatus.Existing].includes(\n\t\tsubscriptionStatus\n\t);\n};\n\n// export const checkUserHasAccess = (subscriptionStatus: SubscriptionStatus) =>\n// \t[\n// \t\tSubscriptionStatus.Active,\n// \t\t// SubscriptionStatus.NoRecord,\n// \t\tSubscriptionStatus.Incomplete,\n// \t\tSubscriptionStatus.Existing,\n// \t\t// SubscriptionStatus.Stopped,\n// \t\tSubscriptionStatus.Unpaid,\n// \t].includes(subscriptionStatus.toUpperCase() as SubscriptionStatus);\n\n// export const checkUserNeedsInitialSubscription = (subscriptionStatus: SubscriptionStatus) =>\n// \tsubscriptionStatus !== SubscriptionStatus.Active;\n// [SubscriptionStatus.NoRecord, SubscriptionStatus.Existing, SubscriptionStatus.Incomplete].includes(\n// \tsubscriptionStatus.toUpperCase() as SubscriptionStatus\n// );\n\nexport const checkMustShowTierSelector = (\n\tsubscriptionStatus: SubscriptionStatus | null,\n\tmodalReason: SubscriptionModalReason | null\n) => {\n\tif (!subscriptionStatus || !modalReason) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\t// checkUserHasAccess(subscriptionStatus) &&\n\t\t[\n\t\t\tSubscriptionModalReason.SubscriptionForExistingUser,\n\t\t\tSubscriptionModalReason.ManageSubscription,\n\t\t\tSubscriptionModalReason.UpgradeSubscription,\n\t\t\tSubscriptionModalReason.Instrument,\n\t\t\tSubscriptionModalReason.Volume,\n\t\t\tSubscriptionModalReason.OrderSizeUpgradable,\n\t\t\tSubscriptionModalReason.SubscribeFromAlert,\n\t\t\tSubscriptionModalReason.UpgradeToAccessGym,\n\t\t].includes(modalReason)\n\t);\n};\n\nexport const checkMustShowAlert = (\n\tsubscriptionStatus: SubscriptionStatus | null,\n\tmodalReason: SubscriptionModalReason | null\n) => {\n\tif (!subscriptionStatus || !modalReason) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\t// !checkUserHasAccess(subscriptionStatus) ||\n\t\t[\n\t\t\tSubscriptionModalReason.SubscriptionForNewUser,\n\t\t\tSubscriptionModalReason.SubscriptionForUnpaidUser,\n\t\t\tSubscriptionModalReason.Renewal,\n\t\t\tSubscriptionModalReason.Cancelled,\n\t\t\tSubscriptionModalReason.Terminated,\n\t\t\tSubscriptionModalReason.ChangeTierResponse,\n\t\t\tSubscriptionModalReason.SubscribeResponse,\n\t\t\tSubscriptionModalReason.ConfirmStop,\n\t\t\t// SubscriptionModalReason.ConfirmCancel,\n\t\t\tSubscriptionModalReason.ConfirmRestart,\n\t\t\tSubscriptionModalReason.SubscriptionDetails,\n\t\t\tSubscriptionModalReason.CancelSubscriptionResponse,\n\t\t\tSubscriptionModalReason.StopSubscriptionResponse,\n\t\t\tSubscriptionModalReason.RestartSubscriptionResponse,\n\t\t\tSubscriptionModalReason.NoSuperiorTiers,\n\t\t\tSubscriptionModalReason.SystemError,\n\t\t\tSubscriptionModalReason.OrderSizeGlobal,\n\t\t\tSubscriptionModalReason.NotAuthorized,\n\t\t\tSubscriptionModalReason.IncorrectParamsForBJP,\n\t\t\tSubscriptionModalReason.GymNotAccessibleForTier,\n\t\t\tSubscriptionModalReason.JapanAccountEmptyApplicationStatus,\n\t\t].includes(modalReason)\n\t);\n};\n\nexport const getInitModalPropsByStatus = (\n\tsubscriptionStatus: SubscriptionStatus | null\n): Partial | null => {\n\t// switch (subscriptionStatus?.toUpperCase()) {\n\tconst statusToReasonMap: { [key: string]: SubscriptionModalReason } = {\n\t\t[SubscriptionStatus.Terminated]: SubscriptionModalReason.Terminated,\n\t\t[SubscriptionStatus.Suspended]: SubscriptionModalReason.Cancelled,\n\t\t[SubscriptionStatus.Cancelled]: SubscriptionModalReason.Cancelled,\n\t\t[SubscriptionStatus.NoRecord]: SubscriptionModalReason.SubscriptionForNewUser,\n\t\t[SubscriptionStatus.Incomplete]: SubscriptionModalReason.SubscriptionForNewUser,\n\t\t[SubscriptionStatus.Stopped]: SubscriptionModalReason.Renewal,\n\t\t[SubscriptionStatus.Unpaid]: SubscriptionModalReason.SubscriptionForUnpaidUser,\n\t\t[SubscriptionStatus.Existing]: SubscriptionModalReason.SubscriptionForExistingUser,\n\t};\n\n\tconst reason = subscriptionStatus ? statusToReasonMap[subscriptionStatus.toUpperCase()] : null;\n\tif (reason) {\n\t\treturn {\n\t\t\treason,\n\t\t\tisOpen: true,\n\t\t\ttext: null,\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const displayVolumeInfo = (amount: Optional) => {\n\tconst appContextProvider = Resolver.resolve(AppContextProvider);\n\tif (typeof amount === 'number') {\n\t\tif (amount === -1) {\n\t\t\treturn i18n.t('wtr:UNLIMITED');\n\t\t}\n\n\t\treturn formatNumberWithCommas(amount, 0, appContextProvider.languageSettings);\n\t}\n\n\treturn '-';\n};\n\nexport const getUpdatedSubscrInfoObject = (\n\tupdateProps: Partial,\n\tinfoObject: SubscriptionInfo | null\n) => {\n\tconst currentInfoObj = infoObject || defaultSubscriptionInfo;\n\treturn { ...currentInfoObj, ...updateProps };\n};\n\nexport const getStatusRelatedSubscrInfoUpdate = (\n\tsubscriptionStatus: SubscriptionStatus,\n\tinfoObject: SubscriptionInfo | null\n): Partial => {\n\tconst status = subscriptionStatus ? (subscriptionStatus.toUpperCase() as SubscriptionStatus) : null;\n\n\tconst updateProps: Partial = {\n\t\tstatus,\n\t\texpiryDate: subscriptionStatus === SubscriptionStatus.Active ? getSubscriptionExpiryDate(false, false) : null,\n\t\tstartDate: subscriptionStatus === SubscriptionStatus.Active ? getSubscriptionStartDate(false, false) : null,\n\t};\n\n\treturn {\n\t\t...updateProps,\n\t};\n};\n\nexport const getActiveTier = (infoObject: SubscriptionInfo | null) => {\n\tif (infoObject?.status === SubscriptionStatus.Active && infoObject?.tier?.toLowerCase() !== 'tier0') {\n\t\treturn infoObject.tier;\n\t}\n\n\treturn null;\n};\n\nexport const getNextMonthTier = (infoObject: SubscriptionInfo | null) => {\n\tif (infoObject?.status === SubscriptionStatus.Active) {\n\t\treturn infoObject.nextTier;\n\t}\n\n\treturn null;\n};\n\nexport const getTierDisplayName = (tierId: string | null) => {\n\tif (!tierId) {\n\t\treturn undefined;\n\t}\n\n\tconst tierKey = tiersKeysMap[tierId];\n\tif (!tierKey) {\n\t\treturn undefined;\n\t}\n\n\treturn i18n.t(`wtr:${tierKey}_NAME`) + ' • ' + i18n.t(`wtr:${tierKey}`);\n};\n\nexport const getTierNameByNumber = (tierNumber: number) => {\n\tconst tierKey = tiersKeysMap[`Tier${tierNumber}`];\n\tif (!tierKey) {\n\t\treturn '';\n\t}\n\n\treturn i18n.t(`wtr:${tierKey}_NAME`);\n};\n\nexport const getMinReqTierDisplayText = (tierNumber: number) => {\n\treturn i18n.t(`wtr:MINIMUM_REQUIRED_TIER`) + ': ' + getTierNameByNumber(tierNumber);\n};\n\nexport const getAnyLiveUserAccount = (appContext: AppContextProvider) => {\n\tconst liveAccountForDemo = appContext.accountStats?.find(({ account }) => account.type === 'LIVE');\n\treturn liveAccountForDemo?.account.accountNumber.toString();\n};\n\nexport const checkHasUserDemoAccount = (appContext: AppContextProvider) =>\n\t!!appContext.accountStats?.find(({ account }) => account.type === 'DEMO');\n\nexport const getJPAcctIdForTierInfoRequest = (appContext: AppContextProvider) => {\n\tif (appContext.isJapanAccount && appContext.accountStats?.length) {\n\t\tconst liveJapanSubscriptionAccount = appContext.accountStats?.find(\n\t\t\t({ account, platformAccountType }) =>\n\t\t\t\taccount.type === 'LIVE' && platformAccountType === PlatformAccountType.ThinkTrader\n\t\t);\n\t\treturn liveJapanSubscriptionAccount?.account.accountNumber.toString();\n\t}\n\treturn null;\n};\n\n//TODO: REFACTOR & FIX\n// These conditionals are workaround for this\n// https://thinkmarkets.atlassian.net/browse/WTR-4894\n// On randomly runtime points those 2 arrays are different, in this case,\n// the tradingAccount have the accounts data, but the accountStats does not,\n// that way the request to RFP is not sent, therefore no data for Volume info is received.\nexport const getJPAcctIdForTierInfoRequestFromTradingAccounts = (tradingAccounts: TradingAccount[]) => {\n\tconst liveJapanSubscriptionAccount = tradingAccounts.find(\n\t\t({ accountType, accountMarketType }) => accountType === 'LIVE' && accountMarketType === AccountMarketType.Japan\n\t);\n\treturn liveJapanSubscriptionAccount?.accountNumber?.toString();\n};\n\n// export const getCurrentAccountId = (accountContext: DashboardContextProvider) => {\n// \tif (accountContext.activeTradingAccount.length > 0) {\n// \t\treturn accountContext.activeTradingAccount[0].providerAccountId;\n// \t} else if (accountContext.tradingAccount.length > 0) {\n// \t\treturn accountContext.tradingAccount[0].providerAccountId;\n// \t}\n\n// \treturn null;\n// };\n// !!!!! TFBO returns params for a request to BJP ONLY when status is `NoRecord` or `Incomplete`\n//---- Dynamic form for request to BJP: used for initial new subscription\n//subscriptionUtils/ submitDynamicForm(result.action.type, result.action.url, result.action.fields, acceptCharset)\n","import { createContext } from 'react';\nimport clone from 'clone';\n\nimport { Resolver } from '../utils/functions/Ioc';\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { ObservableObject } from '../utils/functions/Observables';\nimport { Optional } from '../utils/functions/Nullable';\nimport { TWatchlists, TWatchlistInstrument } from '../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport { default as RfpGateway } from '../gateways/RfpGateway/RfpGateway';\nimport {\n\tMarketItem,\n\tTradeRequest,\n\tTradingInstruments,\n\tMarketItemInfo,\n\tRFPNews,\n\tTradingAccount,\n\tTradingPosition,\n\torderTypes,\n\tMarketWatchIntervals,\n\tMarketWatchCategories,\n\tMarketWatchItem,\n\tMarketWatchItems,\n\tPreviousDayClosePrices,\n\tRFPServerItem,\n} from '../gateways/RfpGateway/rfp.types';\n\nimport { AppComponentType } from '../utils/functions/enums';\n\nexport type TModalToggle = {\n\ttype: 'CLOSE_ORDER' | 'CLOSE_POSITION';\n\tvalue: boolean;\n};\n\nexport type TNewOrderModalToggle = {\n\ttype: 'ORDER_TICKET' | 'CONFIRM_ORDER' | 'ORDER_SUCCESS' | 'ADD_PROFIT_LOSS';\n\tvalue: boolean;\n};\n\nexport type TOpenOrder = {\n\tsymbol: string;\n\tside: string;\n\tcommission?: string;\n\tquantity: string;\n\topenPrice: string;\n\tcurrentPrice: string;\n\tstopLoss: string;\n\ttakeProfit: string;\n\tpL: string;\n\tdividend: string;\n\trisk: string;\n\tswap: string;\n\torderID: string;\n};\n\nexport type TExecutedOrder = {\n\tsymbol: string;\n\tside: string;\n\tquantity: string;\n\topenPrice: string;\n\tcurrentPrice: string;\n\tstopLoss: string;\n\ttakeProfit: string;\n\tpL: string;\n\tdividend: string;\n\trisk: string;\n\tcommission: string;\n\tswap: string;\n\torderID: string;\n};\n\nexport type TClosedOrder = {\n\tcloseTime: string;\n\tsymbol: string;\n\tside: string;\n\tquantity: string;\n\topenPrice: string;\n\tcurrentPrice: string;\n\tstopLoss: string;\n\ttakeProfit: string;\n\tpL: string;\n\tdividend: string;\n\trisk: string;\n\tcommission: string;\n\tswap: string;\n\torderID: string;\n};\n\nexport type TChartFeed = {\n\tc: number;\n\tcf: number;\n\tf: string;\n\th: number;\n\tl: number;\n\to: number;\n\tr: string;\n\tt: number;\n\tv: number;\n\tx: string;\n};\n\nexport interface WatchListItemCodes {\n\t_code: string;\n}\n\nexport interface WatchListItem {\n\tcodes_csv: WatchListItemCodes[];\n\torder: number;\n\ttitle: string;\n}\n\nexport interface DefaultWatchList {\n\tisoCode: string;\n\titems: WatchListItem[];\n}\n\nexport type TMappedWatchlist = {\n\t[key: string]: TWatchlistInstrument[];\n};\n\nexport type TLoadingState = {\n\ttype: 'MARKET' | 'ACCOUNT' | 'POSITION';\n\tvalue: boolean;\n};\n\nexport type TOrderConfirm = {\n\tnew: boolean;\n\tedit: boolean;\n\tcancel: boolean;\n\tclose: boolean;\n};\n\nexport type TInputError = {\n\ttype: 'AMOUNT-LOTS' | 'LIMIT-STOP' | 'TAKE-PROFIT' | 'STOP-LOSS' | 'CLOSE-QUANTITY' | 'ADD-PROFIT' | 'ADD-LOSS';\n\tvalue: boolean | string;\n};\n\nexport type TNotification = {\n\tisActive: boolean;\n\tmessage: string;\n\ttype: 'info' | 'error';\n};\n\nexport type TOrderValue = {\n\tamountLots: string;\n\tlimitStop: string;\n\ttakeProfit: string;\n\tstopLoss: string;\n\tclosePosition: string;\n\tcloseQuantity: string;\n\taddProfit: string;\n\taddLoss: string;\n\tlabel: string;\n};\n\nexport type TShowProfitLoss = {\n\ttakeProfit: boolean;\n\tstopLoss: boolean;\n\taddProfit: boolean;\n\taddLoss: boolean;\n};\n\nexport type TInputValidation = {\n\taddProfit: boolean;\n\taddLoss: boolean;\n\tamountLots: boolean;\n\tcloseQuantity: boolean;\n\tlimitStop: boolean;\n\thighAmount: boolean;\n};\n\ntype TDashboardContextProperties = {\n\taccountType: 'cfd' | 'equity';\n\talreadyEstablished: boolean;\n\torderModalOpenedFrom: string;\n\taccountValues: {\n\t\tbalance: number;\n\t\tmargin: number;\n\t\tfreeMargin: number;\n\t\tmarginLevel: number;\n\t\tequity: number;\n\t\torganizationName: string;\n\t\tpl: number;\n\t};\n\tupdateMarketWatchItem: MarketWatchItem | null;\n\tmarketWatchIntervals: MarketWatchIntervals | MarketWatchIntervals[];\n\tmarketWatchCategories: MarketWatchCategories | MarketWatchCategories[];\n\tmarketWatchItem: MarketWatchItem[];\n\tmarketWatchItems: MarketWatchItems[];\n\tmarketWatchRisers: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchRisersSB: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchFallers: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchFallersSB: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchMostVolatile: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchMostVolatileSB: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tclosedTable: TClosedOrder[];\n\thistoricalData: TChartFeed[];\n\tdetailedInformation: TradingInstruments[];\n\tdefaultWatchLists: DefaultWatchList[];\n\tmainPanelView: number;\n\tmarketItems: MarketItem[];\n\tmarketItemsInfo: MarketItemInfo[];\n\tmultiCharts: boolean;\n\tnewChart: boolean;\n\tnotificationMessage: string;\n\tnotificationType: 'info' | 'error';\n\ttradeNews: RFPNews[];\n\topenTable: TOpenOrder[];\n\torderTable: TExecutedOrder[];\n\t// orderType: 'SELL' | 'BUY' | 'NEW';\n\tquantityType: 'Lots' | 'Amount';\n\tnotificationSoundMuted: boolean;\n\tnotificationSoundVolume: number;\n\ttradeFromChartEnabled: boolean;\n\toneClickTrading: boolean;\n\trfpConnectionError: any;\n\tselectedTradingAccount: number;\n\tselectedInstrument: Optional;\n\tselectedSymbol: any;\n\tselectedPosition: any;\n\tselectedNewsContent: number;\n\tsymbolChanged: string;\n\ttoggleOverlay: number;\n\tpositionProfitLosses: number;\n\ttradingAccount: TradingAccount[];\n\trfpServerNames: RFPServerItem[];\n\ttradingPositions: Record;\n\ttradingPositionsArr: TradingPosition[];\n\ttradingPositionsLength: number;\n\ttwoFactorAuthModalToggle: boolean;\n\twatchlist: TWatchlists[];\n\thsSubs: any;\n\tinstruments: any;\n\torderConfirm: TOrderConfirm;\n\tkeyPress: any;\n\tmarketIndex: any;\n\trfpGatewayProvider: Optional<() => RfpGateway>;\n\tinactiveTime: number;\n\tinactiveModal: boolean;\n\topenOrder: any;\n\topenOrderInformation: boolean;\n\ttoggleAccordionMenu: string;\n\tinputValidation: TInputValidation;\n\torderValue: TOrderValue;\n\ttrade: any;\n\tcurrentPrice: any;\n\tisEdit: boolean;\n\tdragPosition: any;\n\tshowProfitLoss: TShowProfitLoss;\n\tactiveIndex: number;\n\tgridClicked: boolean | number;\n\tselectedSymbolUpdated: boolean;\n\tgetOrderInfo: any;\n\tinstrumentLastTrade: any;\n\tsettingsOptions: any;\n\tgridChartsChanged: boolean;\n\tshowOrderTicket: boolean;\n\tshowOrderInformation: boolean;\n\tshowCloseTicket: boolean;\n\tshowClosedPositionTicket: boolean;\n\tshowConfirmTicket: boolean;\n\ttradeInformation: Optional;\n\tshowCancelTicket: boolean;\n\tgridButton: any;\n\tmodifyTicket: boolean;\n\tgridChartInitialLoad: boolean;\n\tcrossHairState: any;\n\tshowNewsFeed: boolean;\n\tselectedType: string;\n\tcloseTrade: any;\n\tstartTradingNow: boolean;\n\tmaximizeGrid: boolean;\n\tapplicationStatus: string | null | undefined;\n\tchartTimezone: any;\n\tinitialTimezone: Optional;\n\theaderSelected: boolean;\n\tcloseLength: number;\n\temptyChartModal: boolean;\n\tticketLoad: boolean;\n\ttypeOfOrder: orderTypes;\n\tuserGuide: boolean;\n\tmodalToggle: {\n\t\tclosePosition: boolean;\n\t\tcloseOrder: boolean;\n\t};\n\tnewOrderModalToggle: {\n\t\torderTicket: boolean;\n\t\tconfirmOrder: boolean;\n\t\tamount?: number;\n\t\tlimit?: number;\n\t\tstopLoss?: number;\n\t\ttakeProfit?: number;\n\t\tdate?: string;\n\t\tinstrument?: string;\n\t};\n\tnotification: TNotification;\n\treconnection: {\n\t\tisReconnecting: boolean;\n\t\tcount: number;\n\t};\n\tloadingState: {\n\t\tmarketItems: boolean;\n\t\ttradingAccounts: boolean;\n\t\ttradingPositions: boolean;\n\t};\n\tpresentComponentType: AppComponentType;\n\taccountPopupToggle: boolean;\n\ttfboConnectionError: boolean;\n\tssoTradingAccount: string | null;\n\tpreviousDayClosePrices: PreviousDayClosePrices;\n};\n\nlet defaultValues = new Lazy(() => {\n\treturn {\n\t\tpresentComponentType: AppComponentType.Watchlist,\n\t\taccountType: 'cfd',\n\t\talreadyEstablished: false,\n\t\taccountValues: {\n\t\t\tbalance: 0,\n\t\t\tmargin: 0,\n\t\t\tfreeMargin: 0,\n\t\t\tmarginLevel: 0,\n\t\t\tequity: 0,\n\t\t\tpl: 0,\n\t\t\torganizationName: '',\n\t\t},\n\t\torderModalOpenedFrom: '',\n\t\tupdateMarketWatchItem: null,\n\t\tmarketWatchIntervals: [],\n\t\tmarketWatchCategories: [],\n\t\tmarketWatchItem: [],\n\t\tmarketWatchItems: [],\n\t\tmarketWatchRisers: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchRisersSB: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchFallers: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchFallersSB: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchMostVolatile: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchMostVolatileSB: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tclosedTable: [],\n\t\thistoricalData: [],\n\t\tdetailedInformation: [],\n\t\tdefaultWatchLists: [],\n\t\tmainPanelView: 2,\n\t\tmarketItems: [],\n\t\tmarketItemsInfo: [],\n\t\tmultiCharts: true,\n\t\tnewChart: false,\n\t\tnotificationMessage: 'My Error Message',\n\t\tnotificationType: 'error',\n\t\ttradeNews: [],\n\t\topenTable: [],\n\t\torderTable: [],\n\t\torderType: 'BUY',\n\t\tquantityType: 'Amount',\n\t\tnotificationSoundMuted: false,\n\t\tnotificationSoundVolume: 50,\n\t\ttradeFromChartEnabled: true,\n\t\trfpConnectionError: {},\n\t\tselectedTradingAccount: 0,\n\t\tselectedInstrument: null,\n\t\tselectedSymbol: {},\n\t\tselectedPosition: {},\n\t\tselectedNewsContent: -1,\n\t\tsymbolChanged: '',\n\t\ttoggleOverlay: -1,\n\t\tpositionProfitLosses: 0,\n\t\ttradingAccount: [],\n\t\trfpServerNames: [],\n\t\ttradingPositions: {},\n\t\ttradingPositionsArr: [],\n\t\ttradingPositionsLength: 0,\n\t\ttwoFactorAuthModalToggle: false,\n\t\tstartTradingNow: false,\n\t\twatchlist: [],\n\t\thsSubs: [],\n\t\tinstruments: {},\n\t\torderConfirm: {\n\t\t\tnew: false,\n\t\t\tedit: false,\n\t\t\tcancel: false,\n\t\t\tclose: false,\n\t\t},\n\t\toneClickTrading: false,\n\t\tkeyPress: -1,\n\t\tmarketIndex: -1,\n\t\trfpGatewayProvider: null,\n\t\tinactiveTime: 3600,\n\t\tinactiveModal: false,\n\t\topenOrder: [],\n\t\topenOrderInformation: false,\n\t\ttoggleAccordionMenu: '',\n\t\tinputValidation: {\n\t\t\tamountLots: false,\n\t\t\tlimitStop: false,\n\t\t\taddProfit: false,\n\t\t\taddLoss: false,\n\t\t\tcloseQuantity: false,\n\t\t\thighAmount: false,\n\t\t},\n\t\torderValue: {\n\t\t\tamountLots: '',\n\t\t\tlimitStop: '',\n\t\t\ttakeProfit: '',\n\t\t\tstopLoss: '',\n\t\t\tclosePosition: '',\n\t\t\tcloseQuantity: '',\n\t\t\taddProfit: '',\n\t\t\taddLoss: '',\n\t\t\tlabel: '',\n\t\t},\n\t\ttrade: [],\n\t\ttoggleOrdersTFC: false,\n\t\ttoggleTradesTFC: false,\n\t\temptyChartModal: false,\n\t\tcurrentPrice: 0,\n\t\tisEdit: false,\n\t\tdragPosition: {},\n\t\tshowProfitLoss: {\n\t\t\ttakeProfit: false,\n\t\t\tstopLoss: false,\n\t\t\taddProfit: false,\n\t\t\taddLoss: false,\n\t\t},\n\t\tactiveIndex: 0,\n\t\tgridClicked: 0,\n\t\tselectedSymbolUpdated: false,\n\t\tgetOrderInfo: {},\n\t\tinstrumentLastTrade: [],\n\t\tsettingsOptions: {},\n\t\tgridChartsChanged: false,\n\t\tshowOrderTicket: false,\n\t\tshowOrderInformation: false,\n\t\tshowCloseTicket: false,\n\t\tshowClosedPositionTicket: false,\n\t\tshowConfirmTicket: false,\n\t\ttradeInformation: null,\n\t\tshowCancelTicket: false,\n\t\tgridButton: '',\n\t\tmodifyTicket: false,\n\t\tgridChartInitialLoad: false,\n\t\tcrossHairState: {},\n\t\tshowNewsFeed: false,\n\t\tselectedType: 'Instrument',\n\t\tcloseTrade: 'Today',\n\t\tmaximizeGrid: false,\n\t\tapplicationStatus: undefined,\n\t\tchartTimezone: '',\n\t\tinitialTimezone: '',\n\t\theaderSelected: false,\n\t\tcloseLength: 0,\n\t\tticketLoad: false,\n\t\ttypeOfOrder: 'market',\n\t\tuserGuide: false,\n\t\tmodalToggle: {\n\t\t\tclosePosition: false,\n\t\t\tcloseOrder: false,\n\t\t},\n\t\tnewOrderModalToggle: {\n\t\t\torderTicket: false,\n\t\t\tconfirmOrder: false,\n\t\t},\n\t\tnotification: {\n\t\t\tisActive: false,\n\t\t\tmessage: '',\n\t\t\ttype: 'error',\n\t\t},\n\t\treconnection: {\n\t\t\tisReconnecting: false,\n\t\t\tcount: 0,\n\t\t},\n\t\tloadingState: {\n\t\t\tmarketItems: false,\n\t\t\ttradingAccounts: false,\n\t\t\ttradingPositions: false,\n\t\t},\n\t\taccountPopupToggle: false,\n\t\ttfboConnectionError: false,\n\t\tssoTradingAccount: null,\n\t\tpreviousDayClosePrices: {},\n\t\tcloseAllOtherTabs: null,\n\t};\n});\n\ninterface IDashboardContext extends TDashboardContextProperties {\n\treset(): void;\n}\n\nexport class DashboardContextProvider\n\textends ObservableObject\n\timplements IDashboardContext\n{\n\tprivate m_propertyValues: TDashboardContextProperties;\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new DashboardContextProvider();\n\t});\n\n\tpublic static get instance(): DashboardContextProvider {\n\t\treturn this._instance.getValue();\n\t}\n\n\tpublic get marketWatchIntervals(): MarketWatchIntervals | MarketWatchIntervals[] {\n\t\treturn this.m_propertyValues.marketWatchIntervals;\n\t}\n\n\tpublic set marketWatchIntervals(value: MarketWatchIntervals | MarketWatchIntervals[]) {\n\t\tthis.raiseAndSetIfChanged('marketWatchIntervals', value, this.m_propertyValues.marketWatchIntervals, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchIntervals = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchCategories(): MarketWatchCategories | MarketWatchCategories[] {\n\t\treturn this.m_propertyValues.marketWatchCategories;\n\t}\n\n\tpublic set marketWatchCategories(value: MarketWatchCategories | MarketWatchCategories[]) {\n\t\tthis.raiseAndSetIfChanged('marketWatchCategories', value, this.m_propertyValues.marketWatchCategories, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchCategories = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchItem(): MarketWatchItem[] {\n\t\treturn this.m_propertyValues.marketWatchItem;\n\t}\n\n\tpublic set marketWatchItem(value: MarketWatchItem[]) {\n\t\tthis.raiseAndSetIfChanged('marketWatchItem', value, this.m_propertyValues.marketWatchItem, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchItem = value;\n\t\t});\n\t}\n\n\tpublic get defaultWatchLists(): DefaultWatchList[] {\n\t\treturn this.m_propertyValues.defaultWatchLists;\n\t}\n\n\tpublic set defaultWatchLists(value: DefaultWatchList[]) {\n\t\tthis.raiseAndSetIfChanged('defaultWatchLists', value, this.m_propertyValues.defaultWatchLists, (value) => {\n\t\t\tthis.m_propertyValues.defaultWatchLists = value;\n\t\t});\n\t}\n\n\tpublic get updateMarketWatchItem(): MarketWatchItem | null {\n\t\treturn this.m_propertyValues.updateMarketWatchItem;\n\t}\n\n\tpublic set updateMarketWatchItem(value: MarketWatchItem | null) {\n\t\tthis.raiseAndSetIfChanged('updateMarketWatchItem', value, this.m_propertyValues.updateMarketWatchItem, (value) => {\n\t\t\tthis.m_propertyValues.updateMarketWatchItem = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchItems(): MarketWatchItems[] {\n\t\treturn this.m_propertyValues.marketWatchItems;\n\t}\n\n\tpublic set marketWatchItems(value: MarketWatchItems[]) {\n\t\tthis.raiseAndSetIfChanged('marketWatchItems', value, this.m_propertyValues.marketWatchItems, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchItems = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchRisers(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchRisers;\n\t}\n\n\tpublic set marketWatchRisers(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged('marketWatchRisers', value, this.m_propertyValues.marketWatchRisers, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchRisers = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchRisersSB(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchRisersSB;\n\t}\n\n\tpublic set marketWatchRisersSB(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged('marketWatchRisersSB', value, this.m_propertyValues.marketWatchRisersSB, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchRisersSB = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchFallers(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchFallers;\n\t}\n\n\tpublic set marketWatchFallers(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged('marketWatchFallers', value, this.m_propertyValues.marketWatchFallers, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchFallers = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchFallersSB(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchFallersSB;\n\t}\n\n\tpublic set marketWatchFallersSB(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged('marketWatchFallersSB', value, this.m_propertyValues.marketWatchFallersSB, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchFallersSB = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchMostVolatile(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchMostVolatile;\n\t}\n\n\tpublic set marketWatchMostVolatile(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'marketWatchMostVolatile',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.marketWatchMostVolatile,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.marketWatchMostVolatile = value;\n\t\t\t}\n\t\t);\n\t}\n\tpublic get marketWatchMostVolatileSB(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchMostVolatileSB;\n\t}\n\n\tpublic set marketWatchMostVolatileSB(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'marketWatchMostVolatileSB',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.marketWatchMostVolatileSB,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.marketWatchMostVolatileSB = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get accountType(): 'cfd' | 'equity' {\n\t\treturn this.m_propertyValues.accountType;\n\t}\n\n\tpublic set accountType(value: 'cfd' | 'equity') {\n\t\tthis.raiseAndSetIfChanged('accountType', value, this.m_propertyValues.accountType, (value) => {\n\t\t\tthis.m_propertyValues.accountType = value;\n\t\t});\n\t}\n\n\tpublic get alreadyEstablished(): boolean {\n\t\treturn this.m_propertyValues.alreadyEstablished;\n\t}\n\n\tpublic set alreadyEstablished(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('alreadyEstablished', value, this.m_propertyValues.alreadyEstablished, (value) => {\n\t\t\tthis.m_propertyValues.alreadyEstablished = value;\n\t\t});\n\t}\n\n\tpublic get orderModalOpenedFrom(): string {\n\t\treturn this.m_propertyValues.orderModalOpenedFrom;\n\t}\n\n\tpublic set orderModalOpenedFrom(value: string) {\n\t\tthis.raiseAndSetIfChanged('orderModalOpenedFrom', value, this.m_propertyValues.orderModalOpenedFrom, (value) => {\n\t\t\tthis.m_propertyValues.orderModalOpenedFrom = value;\n\t\t});\n\t}\n\n\tpublic get closedTable(): TClosedOrder[] {\n\t\treturn this.m_propertyValues.closedTable;\n\t}\n\n\tpublic set closedTable(value: TClosedOrder[]) {\n\t\tthis.raiseAndSetIfChanged('closedTable', value, this.m_propertyValues.closedTable, (value) => {\n\t\t\tthis.m_propertyValues.closedTable = value;\n\t\t});\n\t}\n\n\tpublic get historicalData(): TChartFeed[] {\n\t\treturn this.m_propertyValues.historicalData;\n\t}\n\n\tpublic set historicalData(value: TChartFeed[]) {\n\t\tthis.raiseAndSetIfChanged('historicalData', value, this.m_propertyValues.historicalData, (value) => {\n\t\t\tthis.m_propertyValues.historicalData = value;\n\t\t});\n\t}\n\n\tpublic get detailedInformation(): TradingInstruments[] {\n\t\treturn this.m_propertyValues.detailedInformation;\n\t}\n\n\tpublic set detailedInformation(value: TradingInstruments[]) {\n\t\tthis.raiseAndSetIfChanged('detailedInformation', value, this.m_propertyValues.detailedInformation, (value) => {\n\t\t\tthis.m_propertyValues.detailedInformation = value;\n\t\t});\n\t}\n\n\tpublic get mainPanelView(): number {\n\t\treturn this.m_propertyValues.mainPanelView;\n\t}\n\n\tpublic set mainPanelView(value: number) {\n\t\tthis.raiseAndSetIfChanged('mainPanelView', value, this.m_propertyValues.mainPanelView, (value) => {\n\t\t\tthis.m_propertyValues.mainPanelView = value;\n\t\t});\n\t}\n\n\tpublic get marketItems(): MarketItem[] {\n\t\treturn this.m_propertyValues.marketItems;\n\t}\n\n\tpublic set marketItems(value: MarketItem[]) {\n\t\tthis.raiseAndSetIfChanged('marketItems', value, this.m_propertyValues.marketItems, (value) => {\n\t\t\tthis.m_propertyValues.marketItems = value;\n\t\t});\n\t}\n\n\tpublic get marketItemsInfo(): MarketItemInfo[] {\n\t\treturn this.m_propertyValues.marketItemsInfo;\n\t}\n\n\tpublic set marketItemsInfo(value: MarketItemInfo[]) {\n\t\tthis.raiseAndSetIfChanged('marketItemsInfo', value, this.m_propertyValues.marketItemsInfo, (value) => {\n\t\t\tthis.m_propertyValues.marketItemsInfo = value;\n\t\t});\n\t}\n\n\tpublic get presentComponentType(): AppComponentType {\n\t\treturn this.m_propertyValues.presentComponentType;\n\t}\n\n\tpublic set presentComponentType(value: AppComponentType) {\n\t\tthis.raiseAndSetIfChanged('presentComponentType', value, this.m_propertyValues.presentComponentType, (value) => {\n\t\t\tthis.m_propertyValues.presentComponentType = value;\n\t\t});\n\t}\n\n\tpublic get multiCharts(): boolean {\n\t\treturn this.m_propertyValues.multiCharts;\n\t}\n\n\tpublic set multiCharts(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('multiCharts', value, this.m_propertyValues.multiCharts, (value) => {\n\t\t\tthis.m_propertyValues.multiCharts = value;\n\t\t});\n\t}\n\n\tpublic get newChart(): boolean {\n\t\treturn this.m_propertyValues.newChart;\n\t}\n\n\tpublic set newChart(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('newChart', value, this.m_propertyValues.newChart, (value) => {\n\t\t\tthis.m_propertyValues.newChart = value;\n\t\t});\n\t}\n\n\tpublic get notificationMessage(): string {\n\t\treturn this.m_propertyValues.notificationMessage;\n\t}\n\n\tpublic set notificationMessage(value: string) {\n\t\tthis.raiseAndSetIfChanged('notificationMessage', value, this.m_propertyValues.notificationMessage, (value) => {\n\t\t\tthis.m_propertyValues.notificationMessage = value;\n\t\t});\n\t}\n\n\tpublic get notificationType(): 'info' | 'error' {\n\t\treturn this.m_propertyValues.notificationType;\n\t}\n\n\tpublic set notificationType(value: 'info' | 'error') {\n\t\tthis.raiseAndSetIfChanged('notificationType', value, this.m_propertyValues.notificationType, (value) => {\n\t\t\tthis.m_propertyValues.notificationType = value;\n\t\t});\n\t}\n\n\tpublic get tradeNews(): RFPNews[] {\n\t\treturn this.m_propertyValues.tradeNews;\n\t}\n\n\tpublic set tradeNews(value: RFPNews[]) {\n\t\tthis.raiseAndSetIfChanged('tradeNews', value, this.m_propertyValues.tradeNews, (value) => {\n\t\t\tthis.m_propertyValues.tradeNews = value;\n\t\t});\n\t}\n\n\tpublic get openTable(): TOpenOrder[] {\n\t\treturn this.m_propertyValues.openTable;\n\t}\n\n\tpublic set openTable(value: TOpenOrder[]) {\n\t\tthis.raiseAndSetIfChanged('openTable', value, this.m_propertyValues.openTable, (value) => {\n\t\t\tthis.m_propertyValues.openTable = value;\n\t\t});\n\t}\n\n\tpublic get orderTable(): TExecutedOrder[] {\n\t\treturn this.m_propertyValues.orderTable;\n\t}\n\n\tpublic set orderTable(value: TExecutedOrder[]) {\n\t\tthis.raiseAndSetIfChanged('orderTable', value, this.m_propertyValues.orderTable, (value) => {\n\t\t\tthis.m_propertyValues.orderTable = value;\n\t\t});\n\t}\n\n\t// public get orderType(): 'SELL' | 'BUY' | 'NEW' {\n\t// \treturn this.m_propertyValues.orderType;\n\t// }\n\n\t// public set orderType(value: 'SELL' | 'BUY' | 'NEW') {\n\t// \tthis.raiseAndSetIfChanged('orderType', value, this.m_propertyValues.orderType, (value) => {\n\t// \t\tthis.m_propertyValues.orderType = value;\n\t// \t});\n\t// }\n\n\tpublic get quantityType(): 'Lots' | 'Amount' {\n\t\treturn this.m_propertyValues.quantityType;\n\t}\n\n\tpublic set quantityType(value: 'Lots' | 'Amount') {\n\t\tthis.raiseAndSetIfChanged('quantityType', value, this.m_propertyValues.quantityType, (value) => {\n\t\t\tthis.m_propertyValues.quantityType = value;\n\t\t});\n\t}\n\n\tpublic get notificationSoundMuted(): boolean {\n\t\treturn this.m_propertyValues.notificationSoundMuted;\n\t}\n\n\tpublic set notificationSoundMuted(value: boolean) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'notificationSoundMuted',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.notificationSoundMuted,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.notificationSoundMuted = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get notificationSoundVolume(): number {\n\t\treturn this.m_propertyValues.notificationSoundVolume;\n\t}\n\tpublic set notificationSoundVolume(value: number) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'notificationSoundVolume',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.notificationSoundVolume,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.notificationSoundVolume = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get tradeFromChartEnabled(): boolean {\n\t\treturn this.m_propertyValues.tradeFromChartEnabled;\n\t}\n\n\tpublic set tradeFromChartEnabled(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('tradeFromChartEnabled', value, this.m_propertyValues.tradeFromChartEnabled, (value) => {\n\t\t\tthis.m_propertyValues.tradeFromChartEnabled = value;\n\t\t});\n\t}\n\n\tpublic get rfpConnectionError(): any {\n\t\treturn this.m_propertyValues.rfpConnectionError;\n\t}\n\n\tpublic set rfpConnectionError(value: any) {\n\t\tthis.raiseAndSetIfChanged('rfpConnectionError', value, this.m_propertyValues.rfpConnectionError, (value) => {\n\t\t\tthis.m_propertyValues.rfpConnectionError = value;\n\t\t});\n\t}\n\n\tpublic get selectedTradingAccount(): number {\n\t\treturn this.m_propertyValues.selectedTradingAccount;\n\t}\n\n\tpublic set selectedTradingAccount(value: number) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'selectedTradingAccount',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.selectedTradingAccount,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.selectedTradingAccount = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get selectedInstrument(): Optional {\n\t\treturn this.m_propertyValues.selectedInstrument;\n\t}\n\n\tpublic set selectedInstrument(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('selectedInstrument', value, this.m_propertyValues.selectedInstrument, (value) => {\n\t\t\tthis.m_propertyValues.selectedInstrument = value;\n\t\t});\n\t}\n\n\tpublic get selectedSymbol(): any {\n\t\treturn this.m_propertyValues.selectedSymbol;\n\t}\n\n\tpublic set selectedSymbol(value: any) {\n\t\tthis.raiseAndSetIfChanged('selectedSymbol', value, this.m_propertyValues.selectedSymbol, (value) => {\n\t\t\tthis.m_propertyValues.selectedSymbol = value;\n\t\t});\n\t}\n\n\tpublic get selectedPosition(): any {\n\t\treturn this.m_propertyValues.selectedPosition;\n\t}\n\n\tpublic set selectedPosition(value: any) {\n\t\tthis.raiseAndSetIfChanged('selectedPosition', value, this.m_propertyValues.selectedPosition, (value) => {\n\t\t\tthis.m_propertyValues.selectedPosition = value;\n\t\t});\n\t}\n\n\tpublic get selectedNewsContent(): number {\n\t\treturn this.m_propertyValues.selectedNewsContent;\n\t}\n\n\tpublic set selectedNewsContent(value: number) {\n\t\tthis.raiseAndSetIfChanged('selectedNewsContent', value, this.m_propertyValues.selectedNewsContent, (value) => {\n\t\t\tthis.m_propertyValues.selectedNewsContent = value;\n\t\t});\n\t}\n\n\tpublic get symbolChanged(): string {\n\t\treturn this.m_propertyValues.symbolChanged;\n\t}\n\n\tpublic set symbolChanged(value: string) {\n\t\tthis.raiseAndSetIfChanged('symbolChanged', value, this.m_propertyValues.symbolChanged, (value) => {\n\t\t\tthis.m_propertyValues.symbolChanged = value;\n\t\t});\n\t}\n\n\tpublic get toggleOverlay(): number {\n\t\treturn this.m_propertyValues.toggleOverlay;\n\t}\n\n\tpublic set toggleOverlay(value: number) {\n\t\tthis.raiseAndSetIfChanged('toggleOverlay', value, this.m_propertyValues.toggleOverlay, (value) => {\n\t\t\tthis.m_propertyValues.toggleOverlay = value;\n\t\t});\n\t}\n\n\tpublic get positionProfitLosses(): number {\n\t\treturn this.m_propertyValues.positionProfitLosses;\n\t}\n\n\tpublic set positionProfitLosses(value: number) {\n\t\tthis.raiseAndSetIfChanged('positionProfitLosses', value, this.m_propertyValues.positionProfitLosses, (value) => {\n\t\t\tthis.m_propertyValues.positionProfitLosses = value;\n\t\t});\n\t}\n\n\tpublic get tradingAccount(): TradingAccount[] {\n\t\treturn this.m_propertyValues.tradingAccount;\n\t}\n\n\tpublic set tradingAccount(value: TradingAccount[]) {\n\t\tthis.raiseAndSetIfChanged('tradingAccount', value, this.m_propertyValues.tradingAccount, (value) => {\n\t\t\tthis.m_propertyValues.tradingAccount = value;\n\t\t});\n\t}\n\n\tpublic get rfpServerNames(): RFPServerItem[] {\n\t\treturn this.m_propertyValues.rfpServerNames;\n\t}\n\n\tpublic set rfpServerNames(value: RFPServerItem[]) {\n\t\tthis.raiseAndSetIfChanged('rfpServerNames', value, this.m_propertyValues.rfpServerNames, (value) => {\n\t\t\tthis.m_propertyValues.rfpServerNames = value;\n\t\t});\n\t}\n\n\tpublic getTradingPositions(): TradingPosition[] {\n\t\treturn this.m_propertyValues.tradingPositionsArr;\n\t}\n\n\tpublic get tradingPositionsArr(): TradingPosition[] {\n\t\treturn this.m_propertyValues.tradingPositionsArr;\n\t}\n\n\tpublic set tradingPositionsArr(_: TradingPosition[]) {\n\t\tthrow new Error('tradingPositionsArr can not be set externally');\n\t}\n\n\tpublic get tradingPositions(): Record {\n\t\treturn this.m_propertyValues.tradingPositions;\n\t}\n\n\tpublic set tradingPositions(value: Record) {\n\t\tthis.raiseAndSetIfChanged('tradingPositions', value, this.m_propertyValues.tradingPositions, (value) => {\n\t\t\tthis.tradingPositionsLength = Object.values(value).length;\n\t\t\tthis.m_propertyValues.tradingPositions = value;\n\t\t\tthis.m_propertyValues.tradingPositionsArr = Object.values(this.m_propertyValues.tradingPositions);\n\t\t});\n\t}\n\n\tpublic get tradingPositionsLength(): number {\n\t\treturn this.m_propertyValues.tradingPositionsLength;\n\t}\n\n\tpublic set tradingPositionsLength(value: number) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'tradingPositionsLength',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.tradingPositionsLength,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.tradingPositionsLength = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get twoFactorAuthModalToggle(): boolean {\n\t\treturn this.m_propertyValues.twoFactorAuthModalToggle;\n\t}\n\n\tpublic set twoFactorAuthModalToggle(value: boolean) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'twoFactorAuthModalToggle',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.twoFactorAuthModalToggle,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.twoFactorAuthModalToggle = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get startTradingNow(): boolean {\n\t\treturn this.m_propertyValues.startTradingNow;\n\t}\n\n\tpublic set startTradingNow(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('startTradingNow', value, this.m_propertyValues.startTradingNow, (value) => {\n\t\t\tthis.m_propertyValues.startTradingNow = value;\n\t\t});\n\t}\n\n\tpublic get watchlist(): TWatchlists[] {\n\t\treturn this.m_propertyValues.watchlist;\n\t}\n\n\tpublic set watchlist(value: TWatchlists[]) {\n\t\t// Filter repeated watchlists\n\t\tconst newWatchlist = value.filter((v, i, a) => a.findIndex((t) => t._id === v._id) === i);\n\t\tthis.raiseAndSetIfChanged('watchlist', newWatchlist, this.m_propertyValues.watchlist, (newWatchlist) => {\n\t\t\tthis.m_propertyValues.watchlist = newWatchlist;\n\t\t});\n\t}\n\n\tpublic get hsSubs(): any {\n\t\treturn this.m_propertyValues.hsSubs;\n\t}\n\n\tpublic set hsSubs(value: any) {\n\t\tthis.raiseAndSetIfChanged('hsSubs', value, this.m_propertyValues.hsSubs, (value) => {\n\t\t\tthis.m_propertyValues.hsSubs = value;\n\t\t});\n\t}\n\n\tpublic get instruments(): any {\n\t\treturn this.m_propertyValues.instruments;\n\t}\n\n\tpublic set instruments(value: any) {\n\t\tthis.raiseAndSetIfChanged('instruments', value, this.m_propertyValues.instruments, (value) => {\n\t\t\tthis.m_propertyValues.instruments = value;\n\t\t});\n\t}\n\n\tpublic get orderConfirm(): TOrderConfirm {\n\t\treturn this.m_propertyValues.orderConfirm;\n\t}\n\n\tpublic set orderConfirm(value: TOrderConfirm) {\n\t\tthis.raiseAndSetIfChanged('orderConfirm', value, this.m_propertyValues.orderConfirm, (value) => {\n\t\t\tthis.m_propertyValues.orderConfirm = value;\n\t\t});\n\t}\n\n\tpublic get oneClickTrading(): boolean {\n\t\treturn this.m_propertyValues.oneClickTrading;\n\t}\n\n\tpublic set oneClickTrading(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('oneClickTrading', value, this.m_propertyValues.oneClickTrading, (value) => {\n\t\t\tthis.m_propertyValues.oneClickTrading = value;\n\t\t});\n\t}\n\n\tpublic get keyPress(): any {\n\t\treturn this.m_propertyValues.keyPress;\n\t}\n\n\tpublic set keyPress(value: any) {\n\t\tthis.raiseAndSetIfChanged('keyPress', value, this.m_propertyValues.keyPress, (value) => {\n\t\t\tthis.m_propertyValues.keyPress = value;\n\t\t});\n\t}\n\n\tpublic get marketIndex(): any {\n\t\treturn this.m_propertyValues.marketIndex;\n\t}\n\n\tpublic set marketIndex(value: any) {\n\t\tthis.raiseAndSetIfChanged('marketIndex', value, this.m_propertyValues.marketIndex, (value) => {\n\t\t\tthis.m_propertyValues.marketIndex = value;\n\t\t});\n\t}\n\n\tpublic get rfpGatewayProvider(): Optional<() => RfpGateway> {\n\t\treturn this.m_propertyValues.rfpGatewayProvider;\n\t}\n\n\tpublic set rfpGatewayProvider(value: Optional<() => RfpGateway>) {\n\t\tthis.raiseAndSetIfChanged('rfpGatewayProvider', value, this.m_propertyValues.rfpGatewayProvider, (value) => {\n\t\t\tthis.m_propertyValues.rfpGatewayProvider = value;\n\t\t});\n\t}\n\n\tpublic get inactiveTime(): number {\n\t\treturn this.m_propertyValues.inactiveTime;\n\t}\n\n\tpublic set inactiveTime(value: number) {\n\t\tthis.raiseAndSetIfChanged('inactiveTime', value, this.m_propertyValues.inactiveTime, (value) => {\n\t\t\tthis.m_propertyValues.inactiveTime = value;\n\t\t});\n\t}\n\n\tpublic get inactiveModal(): boolean {\n\t\treturn this.m_propertyValues.inactiveModal;\n\t}\n\n\tpublic set inactiveModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('inactiveModal', value, this.m_propertyValues.inactiveModal, (value) => {\n\t\t\tthis.m_propertyValues.inactiveModal = value;\n\t\t});\n\t}\n\n\tpublic get openOrder(): any {\n\t\treturn this.m_propertyValues.openOrder;\n\t}\n\n\tpublic set openOrder(value: any) {\n\t\tthis.raiseAndSetIfChanged('openOrder', value, this.m_propertyValues.openOrder, (value) => {\n\t\t\tthis.m_propertyValues.openOrder = value;\n\t\t});\n\t}\n\n\tpublic get openOrderInformation(): boolean {\n\t\treturn this.m_propertyValues.openOrderInformation;\n\t}\n\n\tpublic set openOrderInformation(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('openOrderInformation', value, this.m_propertyValues.openOrderInformation, (value) => {\n\t\t\tthis.m_propertyValues.openOrderInformation = value;\n\t\t});\n\t}\n\n\tpublic get toggleAccordionMenu(): string {\n\t\treturn this.m_propertyValues.toggleAccordionMenu;\n\t}\n\n\tpublic set toggleAccordionMenu(value: string) {\n\t\tthis.raiseAndSetIfChanged('toggleAccordionMenu', value, this.m_propertyValues.toggleAccordionMenu, (value) => {\n\t\t\tthis.m_propertyValues.toggleAccordionMenu = value;\n\t\t});\n\t}\n\n\tpublic get inputValidation(): TInputValidation {\n\t\treturn this.m_propertyValues.inputValidation;\n\t}\n\n\tpublic set inputValidation(value: TInputValidation) {\n\t\tthis.raiseAndSetIfChanged('inputValidation', value, this.m_propertyValues.inputValidation, (value) => {\n\t\t\tthis.m_propertyValues.inputValidation = value;\n\t\t});\n\t}\n\n\tpublic get orderValue(): TOrderValue {\n\t\treturn this.m_propertyValues.orderValue;\n\t}\n\n\tpublic set orderValue(value: TOrderValue) {\n\t\tthis.raiseAndSetIfChanged('orderValue', value, this.m_propertyValues.orderValue, (value) => {\n\t\t\tthis.m_propertyValues.orderValue = value;\n\t\t});\n\t}\n\n\tpublic get trade(): any {\n\t\treturn this.m_propertyValues.trade;\n\t}\n\n\tpublic set trade(value: any) {\n\t\tthis.raiseAndSetIfChanged('trade', value, this.m_propertyValues.trade, (value) => {\n\t\t\tthis.m_propertyValues.trade = value;\n\t\t});\n\t}\n\n\tpublic get currentPrice(): any {\n\t\treturn this.m_propertyValues.currentPrice;\n\t}\n\n\tpublic set currentPrice(value: any) {\n\t\tthis.raiseAndSetIfChanged('currentPrice', value, this.m_propertyValues.currentPrice, (value) => {\n\t\t\tthis.m_propertyValues.currentPrice = value;\n\t\t});\n\t}\n\n\tpublic get isEdit(): boolean {\n\t\treturn this.m_propertyValues.isEdit;\n\t}\n\n\tpublic set isEdit(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isEdit', value, this.m_propertyValues.isEdit, (value) => {\n\t\t\tthis.m_propertyValues.isEdit = value;\n\t\t});\n\t}\n\n\tpublic get userGuide(): boolean {\n\t\treturn this.m_propertyValues.userGuide;\n\t}\n\n\tpublic set userGuide(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('userGuide', value, this.m_propertyValues.userGuide, (value) => {\n\t\t\tthis.m_propertyValues.userGuide = value;\n\t\t});\n\t}\n\n\tpublic get dragPosition(): any {\n\t\treturn this.m_propertyValues.dragPosition;\n\t}\n\n\tpublic set dragPosition(value: any) {\n\t\tthis.raiseAndSetIfChanged('dragPosition', value, this.m_propertyValues.dragPosition, (value) => {\n\t\t\tthis.m_propertyValues.dragPosition = value;\n\t\t});\n\t}\n\n\tpublic get showProfitLoss(): TShowProfitLoss {\n\t\treturn this.m_propertyValues.showProfitLoss;\n\t}\n\n\tpublic set showProfitLoss(value: TShowProfitLoss) {\n\t\tthis.raiseAndSetIfChanged('showProfitLoss', value, this.m_propertyValues.showProfitLoss, (value) => {\n\t\t\tthis.m_propertyValues.showProfitLoss = value;\n\t\t});\n\t}\n\n\tpublic get activeIndex(): number {\n\t\treturn this.m_propertyValues.activeIndex;\n\t}\n\n\tpublic set activeIndex(value: number) {\n\t\tthis.raiseAndSetIfChanged('activeIndex', value, this.m_propertyValues.activeIndex, (value) => {\n\t\t\tthis.m_propertyValues.activeIndex = value;\n\t\t});\n\t}\n\n\tpublic get gridClicked(): boolean | number {\n\t\treturn this.m_propertyValues.gridClicked;\n\t}\n\n\tpublic set gridClicked(value: boolean | number) {\n\t\tthis.raiseAndSetIfChanged('gridClicked', value, this.m_propertyValues.gridClicked, (value) => {\n\t\t\tthis.m_propertyValues.gridClicked = value;\n\t\t});\n\t}\n\n\tpublic get selectedSymbolUpdated(): boolean {\n\t\treturn this.m_propertyValues.selectedSymbolUpdated;\n\t}\n\n\tpublic set selectedSymbolUpdated(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('selectedSymbolUpdated', value, this.m_propertyValues.selectedSymbolUpdated, (value) => {\n\t\t\tthis.m_propertyValues.selectedSymbolUpdated = value;\n\t\t});\n\t}\n\n\tpublic get getOrderInfo(): any {\n\t\treturn this.m_propertyValues.getOrderInfo;\n\t}\n\n\tpublic set getOrderInfo(value: any) {\n\t\tthis.raiseAndSetIfChanged('getOrderInfo', value, this.m_propertyValues.getOrderInfo, (value) => {\n\t\t\tthis.m_propertyValues.getOrderInfo = value;\n\t\t});\n\t}\n\n\tpublic get instrumentLastTrade(): any {\n\t\treturn this.m_propertyValues.instrumentLastTrade;\n\t}\n\n\tpublic set instrumentLastTrade(value: any) {\n\t\tthis.raiseAndSetIfChanged('instrumentLastTrade', value, this.m_propertyValues.instrumentLastTrade, (value) => {\n\t\t\tthis.m_propertyValues.instrumentLastTrade = value;\n\t\t});\n\t}\n\n\tpublic get settingsOptions(): any {\n\t\treturn this.m_propertyValues.settingsOptions;\n\t}\n\n\tpublic set settingsOptions(value: any) {\n\t\tthis.raiseAndSetIfChanged('settingsOptions', value, this.m_propertyValues.settingsOptions, (value) => {\n\t\t\tthis.m_propertyValues.settingsOptions = value;\n\t\t});\n\t}\n\n\tpublic get gridChartsChanged(): boolean {\n\t\treturn this.m_propertyValues.gridChartsChanged;\n\t}\n\n\tpublic set gridChartsChanged(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('gridChartsChanged', value, this.m_propertyValues.gridChartsChanged, (value) => {\n\t\t\tthis.m_propertyValues.gridChartsChanged = value;\n\t\t});\n\t}\n\n\tpublic get showOrderTicket(): boolean {\n\t\treturn this.m_propertyValues.showOrderTicket;\n\t}\n\n\tpublic set showOrderTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showOrderTicket', value, this.m_propertyValues.showOrderTicket, (value) => {\n\t\t\tthis.m_propertyValues.showOrderTicket = value;\n\t\t});\n\t}\n\n\tpublic get showOrderInformation(): boolean {\n\t\treturn this.m_propertyValues.showOrderInformation;\n\t}\n\n\tpublic set showOrderInformation(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showOrderInformation', value, this.m_propertyValues.showOrderInformation, (value) => {\n\t\t\tthis.m_propertyValues.showOrderInformation = value;\n\t\t});\n\t}\n\n\tpublic get showCloseTicket(): boolean {\n\t\treturn this.m_propertyValues.showCloseTicket;\n\t}\n\n\tpublic set showCloseTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showCloseTicket', value, this.m_propertyValues.showCloseTicket, (value) => {\n\t\t\tthis.m_propertyValues.showCloseTicket = value;\n\t\t});\n\t}\n\n\tpublic get showClosedPositionTicket(): boolean {\n\t\treturn this.m_propertyValues.showClosedPositionTicket;\n\t}\n\n\tpublic set showClosedPositionTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'showClosedPositionTicket',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.showClosedPositionTicket,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.showClosedPositionTicket = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get showConfirmTicket(): boolean {\n\t\treturn this.m_propertyValues.showConfirmTicket;\n\t}\n\n\tpublic set showConfirmTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showConfirmTicket', value, this.m_propertyValues.showConfirmTicket, (value) => {\n\t\t\tthis.m_propertyValues.showConfirmTicket = value;\n\t\t});\n\t}\n\n\tpublic get tradeInformation(): Optional {\n\t\treturn this.m_propertyValues.tradeInformation;\n\t}\n\n\tpublic set tradeInformation(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('tradeInformation', value, this.m_propertyValues.tradeInformation, (value) => {\n\t\t\tthis.m_propertyValues.tradeInformation = value;\n\t\t});\n\t}\n\n\tpublic get showCancelTicket(): boolean {\n\t\treturn this.m_propertyValues.showCancelTicket;\n\t}\n\n\tpublic set showCancelTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showCancelTicket', value, this.m_propertyValues.showCancelTicket, (value) => {\n\t\t\tthis.m_propertyValues.showCancelTicket = value;\n\t\t});\n\t}\n\n\tpublic get gridButton(): any {\n\t\treturn this.m_propertyValues.gridButton;\n\t}\n\n\tpublic set gridButton(value: any) {\n\t\tthis.raiseAndSetIfChanged('gridButton', value, this.m_propertyValues.gridButton, (value) => {\n\t\t\tthis.m_propertyValues.gridButton = value;\n\t\t});\n\t}\n\n\tpublic get modifyTicket(): boolean {\n\t\treturn this.m_propertyValues.modifyTicket;\n\t}\n\n\tpublic set modifyTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('modifyTicket', value, this.m_propertyValues.modifyTicket, (value) => {\n\t\t\tthis.m_propertyValues.modifyTicket = value;\n\t\t});\n\t}\n\n\tpublic get gridChartInitialLoad(): boolean {\n\t\treturn this.m_propertyValues.gridChartInitialLoad;\n\t}\n\n\tpublic set gridChartInitialLoad(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('gridChartInitialLoad', value, this.m_propertyValues.gridChartInitialLoad, (value) => {\n\t\t\tthis.m_propertyValues.gridChartInitialLoad = value;\n\t\t});\n\t}\n\n\tpublic get crossHairState(): any {\n\t\treturn this.m_propertyValues.crossHairState;\n\t}\n\n\tpublic set crossHairState(value: any) {\n\t\tthis.raiseAndSetIfChanged('crossHairState', value, this.m_propertyValues.crossHairState, (value) => {\n\t\t\tthis.m_propertyValues.crossHairState = value;\n\t\t});\n\t}\n\n\tpublic get showNewsFeed(): boolean {\n\t\treturn this.m_propertyValues.showNewsFeed;\n\t}\n\n\tpublic set showNewsFeed(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showNewsFeed', value, this.m_propertyValues.showNewsFeed, (value) => {\n\t\t\tthis.m_propertyValues.showNewsFeed = value;\n\t\t});\n\t}\n\n\tpublic get selectedType(): string {\n\t\treturn this.m_propertyValues.selectedType;\n\t}\n\n\tpublic set selectedType(value: string) {\n\t\tthis.raiseAndSetIfChanged('selectedType', value, this.m_propertyValues.selectedType, (value) => {\n\t\t\tthis.m_propertyValues.selectedType = value;\n\t\t});\n\t}\n\n\tpublic get closeTrade(): any {\n\t\treturn this.m_propertyValues.closeTrade;\n\t}\n\n\tpublic set closeTrade(value: any) {\n\t\tthis.raiseAndSetIfChanged('closeTrade', value, this.m_propertyValues.closeTrade, (value) => {\n\t\t\tthis.m_propertyValues.closeTrade = value;\n\t\t});\n\t}\n\n\tpublic get maximizeGrid(): boolean {\n\t\treturn this.m_propertyValues.maximizeGrid;\n\t}\n\n\tpublic set maximizeGrid(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('maximizeGrid', value, this.m_propertyValues.maximizeGrid, (value) => {\n\t\t\tthis.m_propertyValues.maximizeGrid = value;\n\t\t});\n\t}\n\n\tpublic get applicationStatus(): string | null | undefined {\n\t\treturn this.m_propertyValues.applicationStatus;\n\t}\n\n\tpublic set applicationStatus(value: string | null | undefined) {\n\t\tthis.raiseAndSetIfChanged('applicationStatus', value, this.m_propertyValues.applicationStatus, (value) => {\n\t\t\tthis.m_propertyValues.applicationStatus = value;\n\t\t});\n\t}\n\n\tpublic get chartTimezone(): any {\n\t\treturn this.m_propertyValues.chartTimezone;\n\t}\n\n\tpublic set chartTimezone(value: any) {\n\t\tthis.raiseAndSetIfChanged('chartTimezone', value, this.m_propertyValues.chartTimezone, (value) => {\n\t\t\tthis.m_propertyValues.chartTimezone = value;\n\t\t});\n\t}\n\n\tpublic get initialTimezone(): Optional {\n\t\treturn this.m_propertyValues.initialTimezone;\n\t}\n\n\tpublic set initialTimezone(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('initialTimezone', value, this.m_propertyValues.initialTimezone, (value) => {\n\t\t\tthis.m_propertyValues.initialTimezone = value;\n\t\t});\n\t}\n\n\tpublic get headerSelected(): boolean {\n\t\treturn this.m_propertyValues.headerSelected;\n\t}\n\n\tpublic set headerSelected(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('headerSelected', value, this.m_propertyValues.headerSelected, (value) => {\n\t\t\tthis.m_propertyValues.headerSelected = value;\n\t\t});\n\t}\n\n\tpublic get closeLength(): number {\n\t\treturn this.m_propertyValues.closeLength;\n\t}\n\n\tpublic set closeLength(value: number) {\n\t\tthis.raiseAndSetIfChanged('closeLength', value, this.m_propertyValues.closeLength, (value) => {\n\t\t\tthis.m_propertyValues.closeLength = value;\n\t\t});\n\t}\n\n\tpublic get ticketLoad(): boolean {\n\t\treturn this.m_propertyValues.ticketLoad;\n\t}\n\n\tpublic set ticketLoad(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('ticketLoad', value, this.m_propertyValues.ticketLoad, (value) => {\n\t\t\tthis.m_propertyValues.ticketLoad = value;\n\t\t});\n\t}\n\n\tpublic get typeOfOrder(): orderTypes {\n\t\treturn this.m_propertyValues.typeOfOrder;\n\t}\n\n\tpublic set typeOfOrder(value: orderTypes) {\n\t\tthis.raiseAndSetIfChanged('typeOfOrder', value, this.m_propertyValues.typeOfOrder, (value) => {\n\t\t\tthis.m_propertyValues.typeOfOrder = value;\n\t\t});\n\t}\n\n\tpublic get modalToggle(): { closePosition: boolean; closeOrder: boolean } {\n\t\treturn this.m_propertyValues.modalToggle;\n\t}\n\n\tpublic set modalToggle(value: { closePosition: boolean; closeOrder: boolean }) {\n\t\tthis.raiseAndSetIfChanged('modalToggle', value, this.m_propertyValues.modalToggle, (value) => {\n\t\t\tthis.m_propertyValues.modalToggle = value;\n\t\t});\n\t}\n\tpublic get accountValues(): {\n\t\tbalance: number;\n\t\tmargin: number;\n\t\tfreeMargin: number;\n\t\tmarginLevel: number;\n\t\tequity: number;\n\t\torganizationName: string;\n\t\tpl: number;\n\t} {\n\t\treturn this.m_propertyValues.accountValues;\n\t}\n\n\tpublic set accountValues(value: {\n\t\tbalance: number;\n\t\tmargin: number;\n\t\tfreeMargin: number;\n\t\tmarginLevel: number;\n\t\tequity: number;\n\t\torganizationName: string;\n\t\tpl: number;\n\t}) {\n\t\tthis.raiseAndSetIfChanged('accountValues', value, this.m_propertyValues.accountValues, (value) => {\n\t\t\tthis.m_propertyValues.accountValues = value;\n\t\t});\n\t}\n\n\tpublic get newOrderModalToggle(): {\n\t\torderTicket: boolean;\n\t\tconfirmOrder: boolean;\n\t\tamount?: number;\n\t\tlimit?: number;\n\t\tstopLoss?: number;\n\t\ttakeProfit?: number;\n\t\tdateText?: string;\n\t\tdateValue?: number;\n\t\tinstrument?: string;\n\t\ttype?: orderTypes;\n\t} {\n\t\treturn this.m_propertyValues.newOrderModalToggle;\n\t}\n\n\tpublic set newOrderModalToggle(value: {\n\t\torderTicket: boolean;\n\t\tconfirmOrder: boolean;\n\t\tamount?: number;\n\t\tlimit?: number;\n\t\tstopLoss?: number;\n\t\ttakeProfit?: number;\n\t\tdateText?: string;\n\t\tdateValue?: number;\n\t\tinstrument?: string;\n\t\ttype?: orderTypes;\n\t}) {\n\t\tthis.raiseAndSetIfChanged('newOrderModalToggle', value, this.m_propertyValues.newOrderModalToggle, (value) => {\n\t\t\tthis.m_propertyValues.newOrderModalToggle = value;\n\t\t});\n\t}\n\n\tpublic get notification(): TNotification {\n\t\treturn this.m_propertyValues.notification;\n\t}\n\n\tpublic set notification(value: TNotification) {\n\t\tthis.raiseAndSetIfChanged('notification', value, this.m_propertyValues.notification, (value) => {\n\t\t\tthis.m_propertyValues.notification = value;\n\t\t});\n\t}\n\n\tpublic get reconnection(): { isReconnecting: boolean; count: number } {\n\t\treturn this.m_propertyValues.reconnection;\n\t}\n\n\tpublic set reconnection(value: { isReconnecting: boolean; count: number }) {\n\t\tthis.raiseAndSetIfChanged('reconnection', value, this.m_propertyValues.reconnection, (value) => {\n\t\t\tthis.m_propertyValues.reconnection = value;\n\t\t});\n\t}\n\n\tpublic get loadingState(): { marketItems: boolean; tradingAccounts: boolean; tradingPositions: boolean } {\n\t\treturn this.m_propertyValues.loadingState;\n\t}\n\n\tpublic set loadingState(value: { marketItems: boolean; tradingAccounts: boolean; tradingPositions: boolean }) {\n\t\tthis.raiseAndSetIfChanged('loadingState', value, this.m_propertyValues.loadingState, (value) => {\n\t\t\tthis.m_propertyValues.loadingState = value;\n\t\t});\n\t}\n\n\tpublic get emptyChartModal(): boolean {\n\t\treturn this.m_propertyValues.emptyChartModal;\n\t}\n\n\tpublic set emptyChartModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('emptyChartModal', value, this.m_propertyValues.emptyChartModal, (value) => {\n\t\t\tthis.m_propertyValues.emptyChartModal = value;\n\t\t});\n\t}\n\n\tpublic get accountPopupToggle(): boolean {\n\t\treturn this.m_propertyValues.accountPopupToggle;\n\t}\n\n\tpublic set accountPopupToggle(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('accountPopupToggle', value, this.m_propertyValues.accountPopupToggle, (value) => {\n\t\t\tthis.m_propertyValues.accountPopupToggle = value;\n\t\t});\n\t}\n\n\tpublic get tfboConnectionError(): boolean {\n\t\treturn this.m_propertyValues.tfboConnectionError;\n\t}\n\n\tpublic set tfboConnectionError(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('tfboConnectionError', value, this.m_propertyValues.tfboConnectionError, (value) => {\n\t\t\tthis.m_propertyValues.tfboConnectionError = value;\n\t\t});\n\t}\n\n\tpublic get ssoTradingAccount(): string | null {\n\t\treturn this.m_propertyValues.ssoTradingAccount;\n\t}\n\n\tpublic set ssoTradingAccount(value: string | null) {\n\t\tthis.raiseAndSetIfChanged('ssoTradingAccount', value, this.m_propertyValues.ssoTradingAccount, (value) => {\n\t\t\tthis.m_propertyValues.ssoTradingAccount = value;\n\t\t});\n\t}\n\n\tpublic get previousDayClosePrices(): PreviousDayClosePrices {\n\t\treturn this.m_propertyValues.previousDayClosePrices;\n\t}\n\n\tpublic addPreviousDayClosePrices(values: PreviousDayClosePrices) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'previousDayClosePrices',\n\t\t\tvalues,\n\t\t\tthis.m_propertyValues.previousDayClosePrices,\n\t\t\t(values) => {\n\t\t\t\tthis.m_propertyValues.previousDayClosePrices = {\n\t\t\t\t\t...this.m_propertyValues.previousDayClosePrices,\n\t\t\t\t\t...values,\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic closeAllOtherTabs() {\n\t\tthis.modifyTicket = false;\n\t\tthis.showOrderInformation = false;\n\t\tthis.showNewsFeed = false;\n\t\tthis.showOrderTicket = false;\n\t\tthis.showConfirmTicket = false;\n\t\tthis.startTradingNow = false;\n\t\tthis.showCloseTicket = false;\n\t\tthis.showCancelTicket = false;\n\t}\n\n\tprivate constructor() {\n\t\tsuper();\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic reset(): void {\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(DashboardContextProvider)\n\t\t? Resolver.resolve(DashboardContextProvider)\n\t\t: DashboardContextProvider.instance\n);\n","import { USER_EMAIL_KEY } from '../setup/config';\n\nimport { create } from './create';\n\nimport createSelectors from './createSelectors';\n\nexport type UserStats = Array;\n\nexport interface UserProfile {\n\temail?: string;\n\t[key: string]: any;\n}\nexport interface UserPhoneNumbersProps {\n\tphone: string;\n\tphoneCountryCode: string;\n\tmobile: string;\n\tmobileCountryCode: string;\n}\n\nexport enum TradingMode {\n\tDemo = 'DEMO',\n\tLive = 'LIVE',\n}\n\nexport interface AuthStoreActions {\n\tsetTradingMode: (mode: TradingMode) => void;\n\tsetApplicationStatus: (applicationStatus: string) => void;\n\tsetUserProfile: (user: UserProfile) => void;\n\tsetUserProfileProp: (prop: keyof UserProfile, value: any) => void;\n\tsetUserStats: (stats: UserStats) => void;\n\tsetUserStatsProp: (prop: keyof UserStats, value: any) => void;\n\tsetIsAuthenticated: (isAuthenticated: boolean) => void;\n\tsetIsMFAEnabled: (isMFAEnabled: boolean | undefined) => void;\n\tsetSetupMFA: (setupMFA: boolean) => void;\n\tsetDisableMFA: (disableMFA: boolean) => void;\n\tsetReinialize: (reinitialize: number) => void;\n\tsetIsJapanAccount: (isJapanAccount: boolean) => void;\n\tsetIsSouthAfricaAccount: (isSouthAfricaAccount: boolean) => void;\n\tsetIsRfpConnected: (isRfpConnected: boolean) => void;\n\tsetAccountAvatar: (avatar: number) => void;\n\tsetPhoneNumbers: (userPhoneNumbers: UserPhoneNumbersProps) => void;\n\treset: () => void;\n}\nexport interface AuthStoreValues {\n\ttradingMode: TradingMode;\n\tisDemoMode: boolean;\n\tisLiveMode: boolean;\n\tapplicationStatus: string | undefined;\n\tuserProfile: UserProfile;\n\tuserStats: UserStats;\n\tisAuthenticated: boolean;\n\tisMFAEnabled: boolean | undefined;\n\tsetupMFA: boolean;\n\tdisableMFA: boolean;\n\treinitialize: number | undefined;\n\tisRfpConnected: boolean;\n\taccountAvatar: number;\n\tuserPhoneNumbers: UserPhoneNumbersProps;\n\n\t// TODO: Think in a better approach for the account user.countryISO based restrictions\n\tisJapanAccount: boolean;\n\tisSouthAfricaAccount: boolean;\n}\n\nconst storedTradingMode = (localStorage.getItem('tradingMode') as TradingMode) || TradingMode.Live;\n\nexport const initialStateAuthStore: AuthStoreValues = {\n\tapplicationStatus: undefined,\n\tisAuthenticated: false,\n\tuserStats: [],\n\tuserProfile: { email: localStorage.getItem(USER_EMAIL_KEY) || '' },\n\ttradingMode: storedTradingMode,\n\tisDemoMode: storedTradingMode === TradingMode.Demo,\n\tisLiveMode: storedTradingMode === TradingMode.Live,\n\tisMFAEnabled: undefined,\n\tsetupMFA: false,\n\tdisableMFA: false,\n\treinitialize: undefined,\n\tisJapanAccount: false,\n\tisSouthAfricaAccount: false,\n\tisRfpConnected: false,\n\taccountAvatar: 0,\n\tuserPhoneNumbers: {\n\t\tphone: '',\n\t\tphoneCountryCode: '',\n\t\tmobile: '',\n\t\tmobileCountryCode: '',\n\t},\n};\n\nexport type AuthStore = AuthStoreValues & AuthStoreActions;\n\nconst authStore = create()((set: any) => ({\n\t...initialStateAuthStore,\n\n\tsetTradingMode: (tradingMode: TradingMode) => {\n\t\tset({ isLiveMode: tradingMode === TradingMode.Live, isDemoMode: tradingMode === TradingMode.Demo, tradingMode });\n\t\tlocalStorage.setItem('tradingMode', tradingMode);\n\t},\n\n\tsetApplicationStatus: (applicationStatus: string) => set({ applicationStatus }),\n\n\tsetUserProfile: (userProfile: UserProfile) => {\n\t\tset({ userProfile });\n\t},\n\n\tsetUserProfileProp: (prop: keyof UserProfile, value: any) => {\n\t\tif (prop === 'email') {\n\t\t\tlocalStorage.setItem(USER_EMAIL_KEY, value);\n\t\t}\n\t\tset((state: AuthStore) => ({ userProfile: { ...state.userProfile, [prop]: value } }));\n\t},\n\n\tsetUserStats: (userStats: UserStats) => set({ userStats }),\n\tsetUserStatsProp: (prop: keyof UserStats, value: any) =>\n\t\tset((state: AuthStore) => ({ userStats: { ...state.userStats, [prop]: value } })),\n\n\tsetIsAuthenticated: (isAuthenticated: boolean) => set({ isAuthenticated }),\n\n\tsetIsMFAEnabled: (isMFAEnabled: boolean | undefined) => set({ isMFAEnabled }),\n\n\tsetSetupMFA: (setupMFA: boolean) => set({ setupMFA }),\n\n\tsetDisableMFA: (disableMFA: boolean) => set({ disableMFA }),\n\n\tsetReinialize: (reinitialize: number) => set({ reinitialize }),\n\n\tsetIsJapanAccount: (isJapanAccount: boolean) => set({ isJapanAccount }),\n\n\tsetIsSouthAfricaAccount: (isSouthAfricaAccount: boolean) => set({ isSouthAfricaAccount }),\n\n\tsetIsRfpConnected: (isRfpConnected: boolean) => set({ isRfpConnected }),\n\tsetAccountAvatar: (accountAvatar: number) => set({ accountAvatar }),\n\tsetPhoneNumbers: (userPhoneNumbers: UserPhoneNumbersProps) => set({ userPhoneNumbers }),\n\n\treset: () => set({ ...initialStateAuthStore }),\n}));\n\nexport default createSelectors(authStore);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"platformInactivity\":\"SettingsModule_platformInactivity__39Tc_\",\"platformTab\":\"SettingsModule_platformTab__3bgLV\",\"platform\":\"SettingsModule_platform__2jHXl\",\"checkContainer\":\"SettingsModule_checkContainer__3Ltqa\",\"container\":\"SettingsModule_container__2QenX\",\"redCheck\":\"SettingsModule_redCheck__YF9fu\",\"toggleButton\":\"SettingsModule_toggleButton__1aCl-\",\"toggleButtonChecked\":\"SettingsModule_toggleButtonChecked__3Omk6\",\"titleContainer\":\"SettingsModule_titleContainer__3hmf6\",\"rangeContainer\":\"SettingsModule_rangeContainer__tQgdB\",\"slider\":\"SettingsModule_slider__2wifa\",\"iconContainer\":\"SettingsModule_iconContainer__ZIhdz\",\"platformContainer\":\"SettingsModule_platformContainer__Epk9g\",\"costInput\":\"SettingsModule_costInput__3z3ib\",\"questionIcon\":\"SettingsModule_questionIcon__2LnEx\",\"errorMessage\":\"SettingsModule_errorMessage__1KknH\",\"errorMessagePhone\":\"SettingsModule_errorMessagePhone__6qiaG\",\"passPopup\":\"SettingsModule_passPopup__3qPzW\",\"passwordPopup\":\"SettingsModule_passwordPopup__2o8Sq\",\"headerMessage\":\"SettingsModule_headerMessage__17p-l\",\"check\":\"SettingsModule_check__gUFL6\",\"dropdownMenu\":\"SettingsModule_dropdownMenu__2jl5n\",\"diveder\":\"SettingsModule_diveder__1YJNl\",\"dropdownMenuLang\":\"SettingsModule_dropdownMenuLang__1dS6-\",\"focused\":\"SettingsModule_focused__3AwYb\",\"closeIcon\":\"SettingsModule_closeIcon__3zIK4\",\"icon\":\"SettingsModule_icon__3sRqb\",\"inactivity\":\"SettingsModule_inactivity__2HSNa\",\"profileSetingsHeader\":\"SettingsModule_profileSetingsHeader__1wMSV\",\"platformTabName\":\"SettingsModule_platformTabName__Jj72T\",\"profileSetingsContent\":\"SettingsModule_profileSetingsContent__3lomB\",\"additionalPadding\":\"SettingsModule_additionalPadding__3aKTa\",\"settingsPairs\":\"SettingsModule_settingsPairs__WHMks\",\"settingsPairsName\":\"SettingsModule_settingsPairsName__3ztpL\",\"settingsQuantityButtons\":\"SettingsModule_settingsQuantityButtons__C-lWI\",\"quantityButton\":\"SettingsModule_quantityButton__3FY4f\",\"outerCircle\":\"SettingsModule_outerCircle__2nAkV\",\"innerCircle\":\"SettingsModule_innerCircle__20lXg\",\"quantityButtonSelected\":\"SettingsModule_quantityButtonSelected__1f8jN\",\"dropdownDocs\":\"SettingsModule_dropdownDocs__35EWg\",\"newPasswordInput\":\"SettingsModule_newPasswordInput__3lrf3\",\"invalidPassword\":\"SettingsModule_invalidPassword__2m9Fq\",\"eyeIcon\":\"SettingsModule_eyeIcon__1hHGU\",\"settingsPairsPhone\":\"SettingsModule_settingsPairsPhone__ia6EG\",\"settingsPairsPhoneCodeWrapper\":\"SettingsModule_settingsPairsPhoneCodeWrapper__tEMZW\",\"settingsPairsPhoneNumber\":\"SettingsModule_settingsPairsPhoneNumber__CPDMo\",\"mobileCountryCode\":\"SettingsModule_mobileCountryCode__1Se8u\",\"settingsPairsImgDropdown\":\"SettingsModule_settingsPairsImgDropdown__2yFxD\",\"menu\":\"SettingsModule_menu__25oyE\",\"settingsPairsImgDropdownArrow\":\"SettingsModule_settingsPairsImgDropdownArrow__1pQrf\",\"imgContainer\":\"SettingsModule_imgContainer__7RcnV\",\"dropdownMenuLangWrapper\":\"SettingsModule_dropdownMenuLangWrapper__30E6W\",\"item\":\"SettingsModule_item__372DH\",\"dropdownMenuSecurity\":\"SettingsModule_dropdownMenuSecurity__3cEY0\",\"justifyContentFlexEnd\":\"SettingsModule_justifyContentFlexEnd__tE2I3\",\"dropdownIconWrapper\":\"SettingsModule_dropdownIconWrapper__MraMM\",\"dropdownDefaultImage\":\"SettingsModule_dropdownDefaultImage__lyoRn\",\"passwordInputWrapper\":\"SettingsModule_passwordInputWrapper__1sAhM\",\"phoneNumberAndCode\":\"SettingsModule_phoneNumberAndCode__-n8SH\",\"settingsUpload\":\"SettingsModule_settingsUpload__3g8jB\",\"fileInput\":\"SettingsModule_fileInput__1ggG6\",\"fileUploadLabel\":\"SettingsModule_fileUploadLabel__3BZEU\",\"settingsPairsTheme\":\"SettingsModule_settingsPairsTheme__10ibJ\",\"settingsThemeWrapper\":\"SettingsModule_settingsThemeWrapper__23VqV\",\"inactive\":\"SettingsModule_inactive__32wG7\",\"singlethemeWrapper\":\"SettingsModule_singlethemeWrapper__20At4\",\"themeRadioWrapper\":\"SettingsModule_themeRadioWrapper__1k6lH\",\"themeImage\":\"SettingsModule_themeImage__1_cKH\",\"themeImageSystem\":\"SettingsModule_themeImageSystem__2hXbK\",\"themeImageDark\":\"SettingsModule_themeImageDark__3xC9a\",\"themeImageLight\":\"SettingsModule_themeImageLight__ABtNj\",\"active\":\"SettingsModule_active__3-5WD\",\"borderBottom\":\"SettingsModule_borderBottom__2_8uZ\",\"themeLabel\":\"SettingsModule_themeLabel__3pfhu\",\"platformTabSecurity\":\"SettingsModule_platformTabSecurity__37Vvf\",\"settingsPairPassword\":\"SettingsModule_settingsPairPassword__2HF8R\",\"conditionSuccess\":\"SettingsModule_conditionSuccess__1W37U\",\"settingsButtonsPassword\":\"SettingsModule_settingsButtonsPassword__eRqtI\",\"cancelButton\":\"SettingsModule_cancelButton__ER8LN\",\"saveButton\":\"SettingsModule_saveButton__2SC9s\",\"versionNumber\":\"SettingsModule_versionNumber__1Ul5T\",\"link\":\"SettingsModule_link__8b4jo\",\"activateMessage\":\"SettingsModule_activateMessage__2bYad\",\"settingsModalHeader\":\"SettingsModule_settingsModalHeader__1UFhA\",\"settingsPairsError\":\"SettingsModule_settingsPairsError__3tiZ4\",\"infoModalWrapperBackground\":\"SettingsModule_infoModalWrapperBackground__3WweT\",\"infoModalWrapper\":\"SettingsModule_infoModalWrapper__3pHPx\",\"buttonsContainer\":\"SettingsModule_buttonsContainer__1802d\",\"button\":\"SettingsModule_button__2tU-1\"};","import {\n\tAccountMarketType,\n\tInstrument,\n\tMarketItem,\n\tPriceQuote,\n\tTradingAccount,\n\tTradingInstruments,\n\tTradingPosition,\n\tTradingPositionState,\n\tTradingSessions,\n\tDayOfWeek,\n\tTradingSession,\n\tRFPSessionTimes,\n} from '../../gateways/RfpGateway/rfp.types';\nimport {\n\tInitialStopLossTakeProfitValues,\n\tInitialValues,\n} from '../../views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderTicketModal';\nimport { formatNumberWithCommas } from '../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nimport RfpGateway from '../../gateways/RfpGateway/RfpGateway';\n\nimport { MarginAccountType, TradingPositionLimitType } from './enums';\nimport { Resolver } from './Ioc';\nimport { Optional } from './Nullable';\n\nexport interface BuySellIncrement {\n\tminValue: number;\n\tmaxValue: number;\n\tstepAmount: number;\n}\n\nexport type TEffectiveSize = {\n\tval: number;\n\tmajoritySide: string;\n};\n\n/* Get formatted Spread Value based on ask and bid price */\nexport const getFormattedSpreadValue = (\n\tmarketItem: MarketItem,\n\taskPrice: number,\n\tbidPrice: number,\n\tlanguage: string\n) => {\n\tif (marketItem) {\n\t\tconst spreadValue = calculateSpreadValue(marketItem, askPrice, bidPrice);\n\t\tconst spreadString = `${spreadValue.toFixed(1)}`;\n\t\tconst separatorIndex = spreadString.lastIndexOf('.');\n\t\tconst spreadSplit = spreadString.split(spreadString[separatorIndex]);\n\t\tconst spreadWithDecimal = spreadSplit[0].toLocaleString();\n\t\treturn formatNumberWithCommas(\n\t\t\tspreadWithDecimal + spreadString[separatorIndex] + spreadSplit[1],\n\t\t\tspreadSplit[1]?.length ?? 0,\n\t\t\tlanguage\n\t\t);\n\t}\n};\n\n/* Calculate the Spread Value based on ask and bid price */\nexport const calculateSpreadValue = (marketItem: MarketItem, askPrice: number, bidPrice: number) => {\n\t// This is the only place where we should use decimalPrecision from marketItemInfo if is setup\n\tconst marketItemInfoDecPrecision = marketItem.marketItemInfo?.decimalPrecision;\n\tconst decPrec = marketItemInfoDecPrecision ? +marketItemInfoDecPrecision : marketItem.decPrec;\n\tconst tickSize = getMarketItemTickSize(marketItem);\n\tlet decimal = tickSize >= 1.0 ? 0 : decPrec;\n\tdecimal = decimal > 2 ? decimal - 1 : decimal;\n\treturn (askPrice - bidPrice) * Math.pow(10, decimal);\n};\n\n/* Calculate the Initial Limit Price and Stop Price based on BUY and SELL*/\n\nexport const calculateInitialValue = (initialValueObj: InitialValues) => {\n\tif (\n\t\t(initialValueObj.side === 'BUY' && initialValueObj.typeOfOrder === 'limit') ||\n\t\t(initialValueObj.side === 'SELL' && initialValueObj.typeOfOrder === 'stop')\n\t) {\n\t\treturn (initialValueObj.instrument - initialValueObj.instrument * (initialValueObj.initialValue / 100)).toFixed(\n\t\t\tinitialValueObj.decimalPrecision\n\t\t);\n\t}\n\n\tif (\n\t\t(initialValueObj.side === 'BUY' && initialValueObj.typeOfOrder === 'stop') ||\n\t\t(initialValueObj.side === 'SELL' && initialValueObj.typeOfOrder === 'limit')\n\t) {\n\t\treturn (initialValueObj.instrument + initialValueObj.instrument * (initialValueObj.initialValue / 100)).toFixed(\n\t\t\tinitialValueObj.decimalPrecision\n\t\t);\n\t}\n};\n\n/* Calculate the Stop Price usually 10% upside for Sell and 10% downside for Buy */\n\ninterface CalcInitialLimitValueProps {\n\tprice: number;\n\tisBuy: boolean;\n\ttype: TradingPositionLimitType;\n\tpipSize: number;\n\tdefaultPips: number;\n}\n\nexport const calcInitialLimitValue = ({ price, isBuy, type, pipSize, defaultPips }: CalcInitialLimitValueProps) => {\n\tif (!isNaN(price)) {\n\t\tconst isTakeProfit = type === TradingPositionLimitType.TakeProfit;\n\t\tconst pipValue = defaultPips * pipSize;\n\t\tif (isBuy) {\n\t\t\treturn isTakeProfit ? price + pipValue : price - pipValue;\n\t\t} else {\n\t\t\treturn isTakeProfit ? price - pipValue : price + pipValue;\n\t\t}\n\t}\n\n\treturn NaN;\n};\n\nexport const calculateInitialStopLossValue = (initialStopLossValueObj: InitialStopLossTakeProfitValues) => {\n\tconst quote_value =\n\t\tinitialStopLossValueObj.typeOfOrder === 'limit' || initialStopLossValueObj.typeOfOrder === 'stop'\n\t\t\t? parseFloat(initialStopLossValueObj.limitPrice)\n\t\t\t: initialStopLossValueObj.instrument;\n\tif (quote_value !== 0) {\n\t\treturn initialStopLossValueObj.side === 'BUY'\n\t\t\t? (quote_value - quote_value * (initialStopLossValueObj.initialValue / 100)).toFixed(\n\t\t\t\t\tinitialStopLossValueObj.decimalPrecision\n\t\t\t )\n\t\t\t: (quote_value + quote_value * (initialStopLossValueObj.initialValue / 100)).toFixed(\n\t\t\t\t\tinitialStopLossValueObj.decimalPrecision\n\t\t\t );\n\t}\n\treturn 0;\n};\n\n/* Calculate the Take Profit usually 10% upside for Buy and 10% downside for Sell */\n\nexport const calculateInitialTakeProfitValue = (initialStopLossTakeProfitObj: InitialStopLossTakeProfitValues) => {\n\tlet quote_value =\n\t\tinitialStopLossTakeProfitObj.typeOfOrder === 'limit' || initialStopLossTakeProfitObj.typeOfOrder === 'stop'\n\t\t\t? parseFloat(initialStopLossTakeProfitObj.limitPrice)\n\t\t\t: initialStopLossTakeProfitObj.instrument;\n\tif (quote_value !== 0) {\n\t\treturn initialStopLossTakeProfitObj.side === 'BUY'\n\t\t\t? (quote_value + quote_value * (initialStopLossTakeProfitObj.initialValue / 100)).toFixed(\n\t\t\t\t\tinitialStopLossTakeProfitObj.decimalPrecision\n\t\t\t )\n\t\t\t: (quote_value - quote_value * (initialStopLossTakeProfitObj.initialValue / 100)).toFixed(\n\t\t\t\t\tinitialStopLossTakeProfitObj.decimalPrecision\n\t\t\t );\n\t}\n\treturn 0;\n};\n\n/* Set Initial min, max and step value for the Limit Order, StopLoss and TakeProfit */\n\nexport const calculateOrderValueConfig = (\n\ttypeOfOrder: string,\n\tquote: any,\n\tstepAmount: number,\n\torderType?: string,\n\ttradeMeasure?: string\n): BuySellIncrement => {\n\tif (tradeMeasure === 'stopLoss') {\n\t\treturn {\n\t\t\tminValue: orderType === 'SELL' ? (quote && quote.b ? quote.b : quote) : 0,\n\t\t\tmaxValue: orderType === 'SELL' ? 10000 : quote && quote.a ? quote.a : quote,\n\t\t\tstepAmount: stepAmount,\n\t\t};\n\t}\n\tif (tradeMeasure === 'takeProfit') {\n\t\treturn {\n\t\t\tminValue: orderType === 'SELL' ? 0 : quote && quote.a ? quote.a : quote,\n\t\t\tmaxValue: orderType === 'SELL' ? (quote && quote.b ? quote.b : quote) : 10000,\n\t\t\tstepAmount: stepAmount,\n\t\t};\n\t}\n\n\tif ((orderType === 'BUY' && typeOfOrder === 'limit') || (orderType === 'SELL' && typeOfOrder === 'stop')) {\n\t\treturn {\n\t\t\tminValue: 0,\n\t\t\tmaxValue: quote && quote.a ? quote.a : quote,\n\t\t\tstepAmount: stepAmount,\n\t\t};\n\t}\n\n\tif ((orderType === 'BUY' && typeOfOrder === 'stop') || (orderType === 'SELL' && typeOfOrder === 'limit')) {\n\t\treturn {\n\t\t\tminValue: quote && quote.b ? quote.b : quote,\n\t\t\tmaxValue: 10000,\n\t\t\tstepAmount: stepAmount,\n\t\t};\n\t}\n\n\treturn {\n\t\tminValue: orderType === 'SELL' ? (quote && quote.b ? quote.b : quote) : 0,\n\t\tmaxValue: orderType === 'SELL' ? 10000 : quote && quote.a ? quote.a : quote,\n\t\tstepAmount: stepAmount,\n\t};\n};\n\n/* Get trading Instruments details */\n\nexport const getInstrumentDetails = (\n\tdetailedInformation: TradingInstruments[],\n\tselectedTradingAccount: TradingAccount[] | TradingAccount | undefined,\n\tsymbol: string\n) => {\n\tlet tradingAccount: TradingAccount[] = [];\n\n\tif (selectedTradingAccount) {\n\t\tif (Array.isArray(selectedTradingAccount)) {\n\t\t\ttradingAccount = selectedTradingAccount;\n\t\t} else {\n\t\t\ttradingAccount = [selectedTradingAccount];\n\t\t}\n\t}\n\n\tconst information = detailedInformation.find((value) => value.account === tradingAccount[0]?.id);\n\tif (information && information.instruments) {\n\t\treturn information.instruments[symbol];\n\t}\n};\n\nexport const getTradingInstrument = (tradingAccount: TradingAccount, symbol: string) => {\n\tconst tradingInstruments = tradingAccount.tradingInstruments;\n\tif (tradingInstruments && tradingInstruments.instruments) {\n\t\treturn tradingInstruments.instruments[symbol];\n\t}\n};\n\nexport const getMarketItem = (feedId: string, code: string, rfpGateway: Optional = undefined) => {\n\tconst _rfpGateway = rfpGateway ?? Resolver.resolve(RfpGateway);\n\tif (_rfpGateway) {\n\t\treturn _rfpGateway.getMarketItem(code, feedId);\n\t}\n};\n\n/* Convert Amount to Lot */\nexport const convertAmountToLot = (amount: number, roundLot: number) => amount / roundLot;\n\n/* For JPY alone we need to convert the qty */\nexport const isForexJPY = (isForexJPY: string) => {\n\tif (isForexJPY === 'JPY') {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nexport const getMarketItemTickSize = (marketItem: MarketItem) => {\n\tconst tickSize = marketItem.marketItemInfo?.tickSize;\n\treturn tickSize ? +tickSize : marketItem.tickSize;\n};\n\nexport const getMarketItemPipSize = (marketItem: MarketItem | undefined | null) => {\n\tif (marketItem) {\n\t\tconst pipSize = marketItem.marketItemInfo?.pipSize;\n\t\treturn pipSize ? +pipSize : Math.min(1, getMarketItemTickSize(marketItem) * 10);\n\t}\n\treturn NaN;\n};\n\nexport const calcPipCost = (\n\tamount: number,\n\tmarketItem: MarketItem,\n\ttradingAccount: TradingAccount,\n\trfpGateway: Optional\n) => {\n\tconst priceQuote = getCurrentPrice(marketItem.feedId, marketItem.code, rfpGateway);\n\tconst lastBid = priceQuote ? priceQuote.b : 0;\n\tconst onePip = getMarketItemPipSize(marketItem);\n\tconst pipCost = preCalcPL(\n\t\tmarketItem,\n\t\tamount,\n\t\tlastBid,\n\t\tlastBid + onePip,\n\t\ttradingAccount.baseCurrency,\n\t\t'BUY',\n\t\ttradingAccount,\n\t\trfpGateway\n\t);\n\treturn pipCost;\n};\n\nexport const calculateMarginImpact = (\n\tprice: number,\n\tamount: number,\n\tmarketItem: MarketItem,\n\ttradingAccount: TradingAccount,\n\torderType: 'BUY' | 'SELL',\n\trfpGateway: Optional\n) => {\n\tif (isNaN(price)) {\n\t\treturn NaN;\n\t}\n\n\tlet marginRequirement = 0;\n\tlet marginImpact: number = 0;\n\n\tif (tradingAccount.tradingInstruments) {\n\t\tconst instrument = tradingAccount.tradingInstruments.instruments[marketItem.code];\n\t\tmarginRequirement = instrument && instrument.marginReq ? instrument.marginReq : 0;\n\t}\n\n\tmarginImpact = getMarginImpact(marginRequirement, amount, price);\n\n\treturn convertToBaseCurrency(\n\t\ttradingAccount,\n\t\tmarginImpact,\n\t\tprice,\n\t\tmarketItem.qCcy,\n\t\tmarketItem.feedId,\n\t\tmarketItem.code,\n\t\torderType === 'BUY',\n\t\trfpGateway\n\t);\n};\n\n/* Convert Lot to Amount Required when placing orders when Lot is selected */\nexport const convertLotToAmount = (lot: number, roundLot: number) => (lot ? lot * roundLot : 0);\n\nexport enum MarketItemType {\n\tFOREX,\n\tSPOT,\n\tCFD,\n\tFUTURE,\n\tINDEX,\n\tCOMMODITY,\n\tOPTION,\n\tNDF,\n\tSTOCK,\n\tCFD_INDEX,\n\tCRYPTO,\n}\n\nlet FLAG_TYPE_BASE = 256;\n\nexport const isMarketItemType = (marketItem: MarketItem, type: MarketItemType) =>\n\t(marketItem.flags && FLAG_TYPE_BASE << type) !== 0;\n\nexport const findCommonMarketItem = (fSymbol: string, sSymbol: string, rfpGateway: Optional) => {\n\tconst _rfpGateway = rfpGateway ?? Resolver.resolve(RfpGateway);\n\tif (_rfpGateway) {\n\t\tlet first: any = [];\n\t\tlet second: any = [];\n\n\t\t_rfpGateway.mapMarketItems.forEach((item: MarketItem) => {\n\t\t\tif (item.grp === 'Forex' || item.grp === 'Crypto') {\n\t\t\t\tif (item.code.includes(fSymbol)) {\n\t\t\t\t\tfirst.push(item);\n\t\t\t\t}\n\n\t\t\t\tif (item.code.includes(sSymbol)) {\n\t\t\t\t\tsecond.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tlet res: any = null;\n\t\tfirst.forEach((mt1: any) => {\n\t\t\tif (!res) {\n\t\t\t\tlet base = mt1.bCcy;\n\t\t\t\tlet quoteCode = mt1.qCcy;\n\t\t\t\tlet code = fSymbol === base ? quoteCode : base;\n\n\t\t\t\tsecond.forEach((mt2: any) => {\n\t\t\t\t\tif (!res) {\n\t\t\t\t\t\tif (mt2.code.includes(code)) {\n\t\t\t\t\t\t\tres = {\n\t\t\t\t\t\t\t\tfirst: mt1,\n\t\t\t\t\t\t\t\tsecond: mt2,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn res;\n\t}\n};\n\nexport const convertToBaseCurrency = (\n\ttradingAccount: TradingAccount,\n\tpl: number,\n\tclosePrice: number,\n\tquoteCurrency: string,\n\tfeedId: string,\n\tsymbol: string,\n\tisBuy: boolean,\n\trfpGateway: Optional\n) => {\n\tif (tradingAccount.accountMarketType === AccountMarketType.SpreadBetting) {\n\t\treturn pl;\n\t}\n\n\tif (rfpGateway) {\n\t\tlet mt = rfpGateway.getMarketItem(symbol, feedId);\n\t\tif (mt === undefined) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\tlet baseAccountCurrency = tradingAccount.baseCurrency;\n\n\t\tif (quoteCurrency === baseAccountCurrency) {\n\t\t\treturn pl;\n\t\t}\n\n\t\tlet pair = quoteCurrency + baseAccountCurrency;\n\t\tlet inverse = false;\n\t\tlet homeCurrencyConversionRate;\n\n\t\tlet info = getTradingInstrument(tradingAccount, pair);\n\n\t\tif (!info) {\n\t\t\tpair = baseAccountCurrency + quoteCurrency;\n\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\tinverse = true;\n\t\t}\n\n\t\tlet lastQuoteBaseCcy;\n\t\tif (info) {\n\t\t\tlastQuoteBaseCcy = rfpGateway.getQuotePrices(feedId, info.code);\n\t\t}\n\n\t\t//no luck...keep digging for a path\n\t\tif (!lastQuoteBaseCcy) {\n\t\t\tinverse = false;\n\t\t\tpl = pl / closePrice;\n\n\t\t\tpair = mt.bCcy + baseAccountCurrency;\n\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\n\t\t\tif (!info) {\n\t\t\t\tpair = baseAccountCurrency + mt.bCcy;\n\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t\tinverse = true;\n\t\t\t}\n\n\t\t\tif (!info) {\n\t\t\t\tlet mtPair: any = findCommonMarketItem(quoteCurrency, baseAccountCurrency, rfpGateway);\n\t\t\t\tif (mtPair) {\n\t\t\t\t\tpl = pl * closePrice;\n\t\t\t\t\tlastQuoteBaseCcy = rfpGateway.getQuotePrices(feedId, mtPair.first.code);\n\n\t\t\t\t\tif (lastQuoteBaseCcy) {\n\t\t\t\t\t\tinverse = !(mtPair.first.bCcy === quoteCurrency);\n\t\t\t\t\t\tif (inverse) {\n\t\t\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\t\t\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\t\t\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, mtPair.second.code);\n\t\t\t\t\t\tinverse = mtPair.second.bCcy === baseAccountCurrency;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn NaN;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn NaN;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!info) {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t\tlastQuoteBaseCcy = rfpGateway.getQuotePrices(feedId, info.code);\n\n\t\t\tif (lastQuoteBaseCcy) {\n\t\t\t\tif (inverse) {\n\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t\t\t} else {\n\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t\treturn pl;\n\t\t}\n\n\t\tif (inverse) {\n\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t} else {\n\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t}\n\n\t\treturn pl;\n\t}\n\treturn NaN;\n};\n\nconst getTimezoneOffset = (timeZone: string, date: Date) => {\n\ttry {\n\t\tconst str = date.toLocaleString('en', { timeZone: timeZone, timeZoneName: 'longOffset' } as any);\n\t\tconst [, h, m] = str.match(/([+-]\\d+):(\\d+)$/) || ['+00', '00'];\n\t\tconst hour = +h;\n\t\tconst min = +m;\n\t\tconst res = hour * 60 + (hour > 0 ? min : -min);\n\t\treturn isNaN(res) ? -4 : res;\n\t} catch (e) {\n\t\tconsole.warn(e);\n\t\treturn -4;\n\t}\n};\n\n// Get NY timezone offset in hours\nfunction getNYTimezoneOffset() {\n\tlet executed = false;\n\tconst offset = getTimezoneOffset('America/New_York', new Date()) / 60;\n\treturn function () {\n\t\tif (!executed) {\n\t\t\texecuted = true;\n\t\t}\n\t\treturn offset;\n\t};\n}\n\nconst getEstOffset = getNYTimezoneOffset();\n\nconst addZero = (val: number) => {\n\treturn val < 10 ? '0' + val : val;\n};\n\nconst getLastSunday = () => {\n\tconst currentDate = new Date();\n\tconst currentDay = currentDate.getDay();\n\tconst offsetToLastSunday = (currentDay + 7) % 7;\n\tconst lastSundayDate = new Date(currentDate);\n\tlastSundayDate.setDate(currentDate.getDate() - offsetToLastSunday);\n\treturn lastSundayDate;\n};\n\nconst updateDateWithHoursAndMinutes = (\n\tdate: Date,\n\thours: number,\n\tminutes: number,\n\tutcTimeOffset: number,\n\tdaysOffset: number\n) => {\n\tconst newDate = new Date(date);\n\tnewDate.setDate(newDate.getDate() + daysOffset);\n\tnewDate.setHours(hours - (utcTimeOffset + date.getTimezoneOffset() / 60));\n\tnewDate.setMinutes(minutes);\n\tnewDate.setSeconds(0);\n\treturn newDate;\n};\n\nexport const convertTradingSessions = (info: RFPSessionTimes) => {\n\t//TradingSessions\n\t//'17:03-24:00,00:00-24:00,00:00-24:00,00:00-24:00,00:00-24:00,00:00-16:55,0'\n\tconst sessions = info.trading.split(',').map((session) => {\n\t\tif (session === '0') {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tstart: '',\n\t\t\t\t\tend: '',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tconst times = session.split(' ');\n\t\treturn times.map((time) => {\n\t\t\tconst [start, end] = time.split('-');\n\t\t\treturn {\n\t\t\t\tstart,\n\t\t\t\tend,\n\t\t\t};\n\t\t});\n\t});\n\n\tif (sessions.length === 7) {\n\t\tconst tradeSessions = {} as TradingSessions;\n\t\ttradeSessions.timezone = info.serverTimeZone;\n\t\ttradeSessions.sessions = [[], [], [], [], [], [], []] as TradingSession[][];\n\n\t\ttradeSessions.utcTimeOffset = getEstOffset();\n\n\t\tconst lastSunday = getLastSunday();\n\n\t\t//day: number]: TradingSession[]; // 0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday\n\t\tsessions.forEach((session, index) => {\n\t\t\tif (session) {\n\t\t\t\tsession.forEach((time) => {\n\t\t\t\t\tconst { start, end } = time;\n\t\t\t\t\tif (!(start.length === 0 || end.length === 0)) {\n\t\t\t\t\t\tconst [startHour, startMinute] = start.split(':').map((val) => parseInt(val));\n\t\t\t\t\t\tconst [endHour, endMinute] = end.split(':').map((val) => parseInt(val));\n\n\t\t\t\t\t\tconst openDate = updateDateWithHoursAndMinutes(\n\t\t\t\t\t\t\tlastSunday,\n\t\t\t\t\t\t\tstartHour,\n\t\t\t\t\t\t\tstartMinute,\n\t\t\t\t\t\t\ttradeSessions.utcTimeOffset,\n\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst closeDate = updateDateWithHoursAndMinutes(\n\t\t\t\t\t\t\tlastSunday,\n\t\t\t\t\t\t\tendHour,\n\t\t\t\t\t\t\tendMinute,\n\t\t\t\t\t\t\ttradeSessions.utcTimeOffset,\n\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst openDayOfWeek = openDate.getDay() as DayOfWeek;\n\t\t\t\t\t\tconst closeDayOfWeek = closeDate.getDay() as DayOfWeek;\n\t\t\t\t\t\tif (openDayOfWeek !== closeDayOfWeek) {\n\t\t\t\t\t\t\tlet start = getHourAndMinutes(openDate);\n\t\t\t\t\t\t\tconst ts1 = {\n\t\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\t\tday: openDayOfWeek,\n\t\t\t\t\t\t\t\topenDate: openDate,\n\t\t\t\t\t\t\t\tcloseDate: new Date(openDate.getFullYear(), openDate.getMonth(), openDate.getDate() + 1, 0, 0, 0),\n\t\t\t\t\t\t\t\tschedule: { start: start, end: '24:00' },\n\t\t\t\t\t\t\t} as TradingSession;\n\t\t\t\t\t\t\tpushTradingSession(tradeSessions, openDayOfWeek, ts1);\n\n\t\t\t\t\t\t\tif (!(closeDate.getHours() === 0 && closeDate.getMinutes() === 0)) {\n\t\t\t\t\t\t\t\tconst ts2 = {\n\t\t\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\t\t\tday: closeDayOfWeek,\n\t\t\t\t\t\t\t\t\topenDate: ts1.closeDate,\n\t\t\t\t\t\t\t\t\tcloseDate: closeDate,\n\t\t\t\t\t\t\t\t\tschedule: {\n\t\t\t\t\t\t\t\t\t\tstart: getHourAndMinutes(ts1.closeDate),\n\t\t\t\t\t\t\t\t\t\tend: getHourAndMinutes(closeDate),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} as TradingSession;\n\t\t\t\t\t\t\t\tpushTradingSession(tradeSessions, closeDayOfWeek, ts2);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlet start = getHourAndMinutes(openDate);\n\t\t\t\t\t\t\tlet end = getHourAndMinutes(closeDate);\n\t\t\t\t\t\t\tif (end === '00:00') {\n\t\t\t\t\t\t\t\tend = '24:00';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst ts = {\n\t\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\t\tday: openDayOfWeek,\n\t\t\t\t\t\t\t\topenDate: openDate,\n\t\t\t\t\t\t\t\tcloseDate: closeDate,\n\t\t\t\t\t\t\t\tschedule: { start, end },\n\t\t\t\t\t\t\t} as TradingSession;\n\n\t\t\t\t\t\t\tpushTradingSession(tradeSessions, openDayOfWeek, ts);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tapplyEmptySessions(tradeSessions);\n\t\treturn tradeSessions;\n\t}\n\treturn undefined;\n};\n\nconst getHourAndMinutes = (date: Date) => {\n\treturn `${addZero(date.getHours())}:${addZero(date.getMinutes())}`;\n};\n\nconst applyEmptySessions = (tradeSessions: TradingSessions) => {\n\tfor (let i = 0; i < tradeSessions.sessions.length; i++) {\n\t\tif (tradeSessions.sessions[i] && tradeSessions.sessions[i].length === 0) {\n\t\t\taddEmptySession(tradeSessions, i as DayOfWeek);\n\t\t}\n\t}\n};\n\nconst addEmptySession = (tradeSessions: TradingSessions, dayOfWeek: DayOfWeek) => {\n\tconst emptyTimeSession = {\n\t\tisOpen: false,\n\t\tday: dayOfWeek,\n\t\tschedule: { start: '', end: '' },\n\t} as TradingSession;\n\n\ttradeSessions.sessions[dayOfWeek].push(emptyTimeSession);\n};\n\nconst pushTradingSession = (tradeSessions: TradingSessions, dayOfWeek: DayOfWeek, tradingSession: TradingSession) => {\n\tif (tradeSessions.sessions[dayOfWeek]) {\n\t\t// check if previous session close time is equal to current session open time\n\t\tif (tradeSessions.sessions[dayOfWeek].length > 0) {\n\t\t\tconst prevSession = tradeSessions.sessions[dayOfWeek][tradeSessions.sessions[dayOfWeek].length - 1];\n\t\t\tif (prevSession.closeDate && tradingSession.openDate) {\n\t\t\t\tif (prevSession.schedule.start === tradingSession.schedule.end) {\n\t\t\t\t\t// Check if close date is older than open date\n\t\t\t\t\tif (prevSession.closeDate.getTime() < tradingSession.openDate.getTime()) {\n\t\t\t\t\t\t// set only hours and minutes\n\t\t\t\t\t\tprevSession.openDate.setHours(tradingSession.openDate.getHours());\n\t\t\t\t\t\tprevSession.openDate.setMinutes(tradingSession.openDate.getMinutes());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprevSession.openDate = tradingSession.openDate;\n\t\t\t\t\t}\n\t\t\t\t\tprevSession.schedule.start = tradingSession.schedule.start;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tprevSession.closeDate.getHours() === tradingSession.openDate.getHours() &&\n\t\t\t\t\tprevSession.closeDate.getMinutes() === tradingSession.openDate.getMinutes()\n\t\t\t\t) {\n\t\t\t\t\tprevSession.closeDate = tradingSession.closeDate;\n\t\t\t\t\tprevSession.schedule.end = tradingSession.schedule.end;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttradeSessions.sessions[dayOfWeek].push(tradingSession);\n\t} else {\n\t\ttradeSessions.sessions[dayOfWeek] = [tradingSession];\n\t}\n};\n\nconst getCurrentPriceKey = (feedId: string, code: string) => {\n\treturn `${feedId}-${code}`;\n};\n\nexport const getCurrentPrice = (feedId: string, code: string, rfpGateway: Optional) => {\n\tconst _rfpGateway = rfpGateway ?? Resolver.resolve(RfpGateway);\n\tif (_rfpGateway) {\n\t\tconst key = getCurrentPriceKey(feedId, code);\n\t\treturn _rfpGateway.mapQuotesPrices.get(key);\n\t}\n\n\treturn undefined;\n};\n\nconst calcPipsAtPrice = (marketItem: MarketItem, price: number) => price * (1 / getMarketItemPipSize(marketItem));\n\nexport const getPositionPipsChange = (position: TradingPosition) => {\n\tconst marketItem = position.marketItem;\n\tif (marketItem) {\n\t\tlet openPrice = position.oP || 0;\n\t\tlet closePrice: number | undefined = position.cP ?? 0;\n\t\tif (closePrice === 0) {\n\t\t\tclosePrice = position.currentPrice;\n\t\t}\n\n\t\tif (closePrice) {\n\t\t\tif (closePrice === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tconst isBuy = position.side === 'BUY';\n\t\t\tconst mul = isBuy ? 1 : -1;\n\t\t\treturn calcPipsAtPrice(marketItem, closePrice - openPrice) * mul;\n\t\t}\n\t}\n\treturn 0;\n};\n\nexport const updatePosition = (\n\taccount: TradingAccount,\n\tposition: TradingPosition,\n\trfpGateway: Optional\n) => {\n\tif (position.state === TradingPositionState.open || position.state === TradingPositionState.pending) {\n\t\tlet profit = calcProfit(account, position, rfpGateway);\n\t\tposition.grossProfit = account.isJapanAccount ? Math.floor(profit) : profit;\n\t\tposition.netProfit = position.grossProfit + (position.comm || 0) + (position.swap || 0);\n\n\t\tif (isNaN(profit)) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tlet netPL = 0.0;\n\tlet grPL = 0.0;\n\n\tfor (const posId in account.activePositions) {\n\t\tconst pos = account.activePositions[posId];\n\t\tif (pos.grossProfit && !isNaN(pos.grossProfit)) {\n\t\t\tgrPL += pos.grossProfit;\n\t\t}\n\n\t\tif (pos.netProfit && !isNaN(pos.netProfit)) {\n\t\t\tnetPL += pos.netProfit;\n\t\t}\n\t}\n\n\taccount.grossProfit = grPL;\n\taccount.netProfit = netPL;\n};\n\nexport const calcProfit = (account: TradingAccount, position: TradingPosition, rfpGateway: Optional) => {\n\tif (position.state !== 'OPEN') {\n\t\treturn 0;\n\t}\n\n\tconst tradingInstrument = getTradingInstrument(account, position.code);\n\tconst marketItem = position.marketItem;\n\tconst quantity = position.qty;\n\n\tif (!marketItem || !quantity || !tradingInstrument) {\n\t\treturn NaN;\n\t}\n\n\tlet openPrice = position.oP;\n\tif (!openPrice || openPrice === 0) {\n\t\treturn NaN;\n\t}\n\n\tlet closePrice = position.cP;\n\tif (!closePrice || closePrice === 0) {\n\t\tclosePrice = position.currentPrice;\n\t}\n\n\tif (!closePrice || closePrice === 0) {\n\t\treturn NaN;\n\t}\n\n\tconst decimal = position.dec ?? -1;\n\tconst isBuy = position.side === 'BUY';\n\tconst mul = isBuy ? 1 : -1;\n\tlet pips = 0.0;\n\tif (decimal !== -1) {\n\t\tconst price = closePrice - openPrice;\n\t\tpips = calcPipsAtPrice(marketItem, price) * mul;\n\t}\n\n\tposition.pips = pips;\n\n\tlet basePositionCurrency = position.marketItem?.qCcy;\n\tif (!basePositionCurrency) {\n\t\treturn NaN;\n\t}\n\n\tlet baseAccountCurrency = account.baseCurrency;\n\tif (!baseAccountCurrency) {\n\t\treturn NaN;\n\t}\n\n\tlet pl: number | null = quantity * (closePrice - openPrice) * mul;\n\n\tif (\n\t\tisMarketItemType(marketItem, MarketItemType.FUTURE) &&\n\t\ttradingInstrument.tickValue &&\n\t\ttradingInstrument.tickSize\n\t) {\n\t\tpl *= tradingInstrument.tickValue / tradingInstrument.tickSize;\n\t}\n\n\tif (basePositionCurrency !== baseAccountCurrency) {\n\t\tpl = convertToBaseCurrency(\n\t\t\taccount,\n\t\t\tpl,\n\t\t\tclosePrice,\n\t\t\tbasePositionCurrency,\n\t\t\tmarketItem.feedId,\n\t\t\tmarketItem.code,\n\t\t\tisBuy,\n\t\t\trfpGateway\n\t\t);\n\t}\n\n\treturn pl;\n};\n\n/* Precalculate the Take Profit and Stop Loss values when order modal opens */\n\nexport const preCalcPL = (\n\tmarketItem: MarketItem | undefined,\n\tquantity: number | undefined,\n\tlastBid: any,\n\tcurrentProfitOrStopPrice: any,\n\tbaseAccountCurrency: string,\n\torderType: any,\n\ttradingAccount: TradingAccount | undefined,\n\trfpGateway: Optional\n) => {\n\tif (!marketItem || !quantity) {\n\t\treturn NaN;\n\t}\n\n\tif (quantity === 0) {\n\t\treturn 1;\n\t}\n\tlet pl = 0;\n\tpl = quantity * (currentProfitOrStopPrice - lastBid) * (orderType === 'BUY' ? 1 : -1);\n\tconst quoteCurrency = marketItem.qCcy;\n\n\tif (tradingAccount) {\n\t\tif (quoteCurrency !== baseAccountCurrency) {\n\t\t\tpl = convertToBaseCurrency(\n\t\t\t\ttradingAccount,\n\t\t\t\tpl,\n\t\t\t\tlastBid,\n\t\t\t\tquoteCurrency,\n\t\t\t\tmarketItem.feedId,\n\t\t\t\tmarketItem.code,\n\t\t\t\torderType === 'BUY',\n\t\t\t\trfpGateway\n\t\t\t);\n\t\t}\n\n\t\tif (tradingAccount.isJapanAccount) {\n\t\t\treturn pl ? Math.floor(pl).toFixed(0) : 0;\n\t\t}\n\t}\n\treturn pl ? pl.toFixed(2) : 0;\n};\n\n/* Increment factor for the lot or amount input field */\nconst progression = [1, 2, 3.0, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 100000];\n\n/* Set increment values for the Type Amount */\nexport const fillQuantity = (\n\tmarketItem: MarketItem,\n\ttradingAccount: Optional,\n\tdetailedInformation?: TradingInstruments[]\n) => {\n\tconst collection = [];\n\tlet instrument;\n\tif (tradingAccount) {\n\t\tinstrument = tradingAccount.tradingInstruments?.instruments[marketItem.code];\n\t} else if (!tradingAccount && detailedInformation) {\n\t\tinstrument = detailedInformation[0]?.instruments[marketItem.code];\n\t}\n\n\tif (instrument) {\n\t\tlet min = -1;\n\t\tlet max = 1.7976931348623157e308 / 2;\n\n\t\tconst decPrec = marketItem.decPrec;\n\n\t\tmin = convertLotToAmount(instrument.minL, instrument.rndLot);\n\t\tmax = convertLotToAmount(instrument.maxL, instrument.rndLot);\n\n\t\tif (min < 0) {\n\t\t\tmin = getDefaultAmount(instrument);\n\t\t}\n\n\t\tfor (let i = 0; i < progression.length; i++) {\n\t\t\tlet minimumLot = min;\n\t\t\tlet qty = progression[i] * minimumLot;\n\t\t\tif (qty > max + 0.000001) break;\n\t\t\tif (qty === 0.3) {\n\t\t\t\tqty = parseFloat((0.3).toFixed(10));\n\t\t\t}\n\t\t\tconst decLength = qty.toString().split('.')[1]?.length;\n\t\t\tcollection.push(decLength > decPrec ? Number(qty.toFixed(decPrec)) : qty);\n\t\t}\n\t}\n\treturn collection;\n};\n\nexport const getDefaultAmount = (instrument: Instrument) => {\n\treturn instrument.grp === 'Forex' ? 1000 : convertLotToAmount(instrument.minL, instrument.rndLot);\n};\n\n/* Set increment values for the Type LOT */\nexport const getAllLotsAtAccount = (\n\tmarketItem: MarketItem,\n\ttradingAccount: Optional,\n\tdetailedInformation?: TradingInstruments[]\n) => {\n\tconst amounts = fillQuantity(marketItem, tradingAccount, detailedInformation);\n\tconst collection: number[] = [];\n\n\tlet instrument: Instrument | undefined;\n\tif (tradingAccount) {\n\t\tinstrument = tradingAccount.tradingInstruments?.instruments[marketItem.code];\n\t} else if (!tradingAccount && detailedInformation) {\n\t\tinstrument = detailedInformation[0]?.instruments[marketItem.code];\n\t}\n\n\tif (instrument) {\n\t\tamounts.forEach((value) => {\n\t\t\tcollection.push(convertAmountToLot(value, instrument!.rndLot));\n\t\t});\n\t}\n\n\treturn collection;\n};\n\nconst currenciesMap: { [key: string]: string } = {\n\tEUR: '€',\n\tUSD: '$',\n\tJPY: '¥',\n\tNZD: '$',\n\tAUD: '$',\n\tZAR: 'R',\n\tCHF: '₣',\n\tGBP: '£',\n};\n\nexport const defineBaseCurrencySymbol = (tradingAccount: TradingAccount | null | undefined) =>\n\t!tradingAccount?.baseCurrency ? '' : currenciesMap[tradingAccount?.baseCurrency] || tradingAccount?.baseCurrency;\n\nconst formatter = ({\n\tlanguage,\n\tisJapanAccount,\n\tvalue,\n\tsymbol,\n}: {\n\tlanguage: string;\n\tisJapanAccount: boolean;\n\tvalue: number;\n\tsymbol: string;\n}) => {\n\tconst isArabic = language === 'ar-SA';\n\tconst decPrec = isJapanAccount ? 0 : 2;\n\n\tif (isArabic) {\n\t\treturn value < 0\n\t\t\t? `${formatNumberWithCommas(Math.abs(value), decPrec, language)} ${symbol} -`\n\t\t\t: `${formatNumberWithCommas(value, decPrec, language)} ${symbol}`;\n\t} else {\n\t\treturn value < 0\n\t\t\t? `- ${symbol} ${formatNumberWithCommas(Math.abs(value), decPrec, language)}`\n\t\t\t: `${symbol} ${formatNumberWithCommas(value, decPrec, language)}`;\n\t}\n};\n\nexport function formatNumberAsMoney(\n\tcurrency: string,\n\tnum: string | number | undefined,\n\tlanguage: string,\n\tisJapanAccount: boolean = false\n) {\n\tnum = parseFloat(num!.toString());\n\tconst value = num ?? 0;\n\tif (!isNaN(value)) {\n\t\tconst symbol = currenciesMap[currency];\n\t\treturn formatter({ language, isJapanAccount, value, symbol });\n\t}\n\treturn '';\n}\n\nexport function formatAsMoney(\n\ttradingAccounts: TradingAccount[],\n\tselectedTradingAccountNumber: any,\n\tnum: string | number | undefined,\n\tlanguage: string\n) {\n\tnum = parseFloat(num!.toString());\n\tconst value = num ?? 0;\n\tif (!isNaN(value)) {\n\t\tconst selectedTradingAccount = tradingAccounts.find((item: any) => item.id === selectedTradingAccountNumber);\n\t\tconst symbol = defineBaseCurrencySymbol(selectedTradingAccount);\n\t\tconst isJapanAccount = !!selectedTradingAccount?.isJapanAccount;\n\n\t\treturn formatter({ language, isJapanAccount, value, symbol });\n\t}\n\treturn '';\n}\n\nexport const getMarginCalculationType = (tradingAccount: TradingAccount | undefined): number => {\n\tif (tradingAccount && tradingAccount.marginCalculationType) {\n\t\treturn tradingAccount.marginCalculationType > 0 ? tradingAccount.marginCalculationType - 1 : 0;\n\t}\n\treturn 0;\n};\n\n/**\n * Calculates the effective (net) size of a instrument within the open positions based on margin calculation type.\n * @param {number} marginAccountType The flag which describes the account level setting for margin calculations (0: Hedged, 1: unhedged, 2: Japan)\n * @param {number} code The instrument for which effective size is to be calculated\n * @param {number} accountId ID of account currently in use\n * @param {number} openPositions An array of open trading positions for a given account\n * @return {TEffectiveSize} Object containing net value and majority side for given instrument positions\n */\nexport const getEffectiveSize = (\n\tmarginAccountType: MarginAccountType,\n\tcode: string,\n\taccountId: number,\n\topenPositions: TradingPosition[]\n): TEffectiveSize => {\n\tlet majoritySide = '';\n\tlet totalBuy = 0;\n\tlet totalSell = 0;\n\n\topenPositions\n\t\t.filter((position) => {\n\t\t\treturn position.code === code && position.aId === accountId;\n\t\t})\n\t\t.forEach((position) => {\n\t\t\tif (position.side === 'BUY') {\n\t\t\t\ttotalBuy += position.qty!;\n\t\t\t} else if (position.side === 'SELL') {\n\t\t\t\ttotalSell += position.qty!;\n\t\t\t}\n\t\t});\n\n\tif (totalBuy > totalSell) {\n\t\tmajoritySide = 'BUY';\n\t} else if (totalSell > totalBuy) {\n\t\tmajoritySide = 'SELL';\n\t} else {\n\t\tmajoritySide = 'SQUARE';\n\t}\n\n\tswitch (marginAccountType) {\n\t\tcase MarginAccountType.Hedged:\n\t\t\treturn { val: Math.abs(totalBuy - Math.abs(totalSell)), majoritySide: majoritySide };\n\n\t\tcase MarginAccountType.Unhedged:\n\t\t\treturn { val: totalBuy + Math.abs(totalSell), majoritySide: majoritySide };\n\n\t\tcase MarginAccountType.Japan:\n\t\t\treturn { val: totalBuy > totalSell ? totalBuy : Math.abs(totalSell), majoritySide: majoritySide }; //To Do: Account for pending orders when id === 2 (Japan)\n\n\t\tdefault:\n\t\t\treturn { val: 0, majoritySide: '' };\n\t}\n};\n\n/**\n * Calculates the size of the position after hedging it against other opened positions of the same instrument\n * @param {number} orderType The type of order (BUY or SELL)\n * @param {TEffectiveSize} effectiveSize Effective size of the instrument based on open positions\n * @param {number} numberInputQuantity Value in the number input for trade size\n * @return {number} Returns hedged trade quantity to be used in margin impact calculation\n */\nexport const getHedgedTradeQuantity = (\n\teffectiveSize: TEffectiveSize,\n\tnumberInputQuantity: number | string,\n\torderType?: string\n): { value: number; isSquare: boolean } => {\n\tif (effectiveSize.majoritySide === 'SQUARE') {\n\t\treturn { value: +numberInputQuantity, isSquare: true };\n\t} else if (orderType !== effectiveSize.majoritySide && +numberInputQuantity <= +effectiveSize.val) {\n\t\treturn { value: 0, isSquare: false };\n\t} else if (orderType !== effectiveSize.majoritySide && +numberInputQuantity > effectiveSize.val) {\n\t\treturn { value: Math.abs(effectiveSize.val - +numberInputQuantity), isSquare: false };\n\t} else if (\n\t\t(effectiveSize.majoritySide === 'BUY' && orderType === 'BUY') ||\n\t\t(effectiveSize.majoritySide === 'SELL' && orderType === 'SELL')\n\t) {\n\t\treturn { value: +numberInputQuantity, isSquare: false };\n\t} else if (\n\t\t(effectiveSize.majoritySide === 'BUY' && orderType === 'SELL') ||\n\t\t(effectiveSize.majoritySide === 'SELL' && orderType === 'BUY')\n\t) {\n\t\treturn { value: +numberInputQuantity, isSquare: false };\n\t} else {\n\t\treturn { value: 0, isSquare: false };\n\t}\n};\n\n/**\n * Calculates the margin impact of a particular trade based on size, instrument level setting and current price\n * @param {number} instrumentMarginReq The margin requirement found on the instrument market item details\n * @param {number} sizeOfPosition Size of the position\n * @param {number} currentPrice current price of the instrument\n * @return {number} Returns calculated margin impact, not converted to base currency\n */\nexport const getMarginImpact = (instrumentMarginReq: number, sizeOfPosition: number, currentPrice: any): number =>\n\t((instrumentMarginReq * sizeOfPosition) / 100) * currentPrice;\n\nexport const calcPercentChange = (position: TradingPosition) =>\n\tcalcPercentChangeAtParams(position.oP, position.currentPrice, position.side === 'BUY');\n\nexport const calcPercentChangeAtParams = (\n\topenPrice: number | undefined,\n\tclosePrice: number | undefined,\n\tisBuy: boolean\n) => {\n\tconst op = openPrice ?? NaN;\n\tconst currentPrice = closePrice ?? NaN;\n\treturn ((currentPrice - op) / op) * 100 * (isBuy ? 1 : -1);\n};\n\nexport const updateCurrentPrice = (position: TradingPosition, priceQuote: PriceQuote) => {\n\tif (position.code === priceQuote.c) {\n\t\tconst isBuy = position.side === 'BUY';\n\t\tconst isPending = position.state === TradingPositionState.pending;\n\t\tif (isBuy) {\n\t\t\tposition.currentPrice = isPending ? priceQuote.a : priceQuote.b;\n\t\t} else {\n\t\t\tposition.currentPrice = isPending ? priceQuote.b : priceQuote.a;\n\t\t}\n\t}\n};\n\nexport const getAdditionalSubscriptionPairs = (\n\ttradingAccount: TradingAccount,\n\tmarketItem: MarketItem,\n\trfpGateway: Optional\n) => {\n\tlet additionalSubscriptionPair: Set = new Set();\n\tconst baseCcyPos = marketItem.qCcy;\n\tif (!baseCcyPos) {\n\t\treturn additionalSubscriptionPair;\n\t}\n\n\tlet baseCcyAcct = tradingAccount.baseCurrency;\n\tif (!baseCcyAcct) {\n\t\treturn additionalSubscriptionPair;\n\t}\n\n\tif (baseCcyPos !== baseCcyAcct) {\n\t\tlet pair = baseCcyPos + baseCcyAcct;\n\n\t\tlet info = getTradingInstrument(tradingAccount, pair);\n\t\tif (!info) {\n\t\t\tpair = baseCcyAcct + baseCcyPos;\n\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t}\n\n\t\tif (!info) {\n\t\t\tpair = baseCcyAcct + marketItem.bCcy;\n\n\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\tif (!info) {\n\t\t\t\tpair = marketItem.bCcy + baseCcyAcct;\n\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t}\n\t\t}\n\n\t\tif (!info) {\n\t\t\t// Find cross symbol\n\t\t\tlet mtPair: any = findCommonMarketItem(baseCcyPos, baseCcyAcct, rfpGateway);\n\t\t\tif (mtPair) {\n\t\t\t\tpair = mtPair.first.code;\n\n\t\t\t\tif (pair) {\n\t\t\t\t\tadditionalSubscriptionPair.add(pair);\n\t\t\t\t}\n\t\t\t\tinfo = getTradingInstrument(tradingAccount, mtPair.second.code);\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (info) {\n\t\t\tpair = info.code;\n\n\t\t\tadditionalSubscriptionPair.add(pair);\n\t\t}\n\t}\n\treturn additionalSubscriptionPair;\n};\n\n// Calculations migrated from AccountPanel\nexport const calculateEquity = ({ balance, profitLoss }: { balance: number; profitLoss: number }): number =>\n\t+balance + profitLoss;\nexport const calculateFreeMargin = ({\n\tequity,\n\taccountMcLevel,\n\tusedMargin,\n}: {\n\tequity: number;\n\taccountMcLevel: number;\n\tusedMargin: number;\n}): number => Math.max(0, equity / accountMcLevel - usedMargin);\nexport const calculateMarginLevel = ({ equity, usedMargin }: { equity: number; usedMargin: number }): number =>\n\tusedMargin === 0 ? 0 : (equity / usedMargin) * 100;\n\nexport const SBCLeaner = (name: string) => {\n\tlet result = name ?? '';\n\tif (result.endsWith('_SB')) {\n\t\tresult = result.replace('_SB', '');\n\t}\n\tif (result.endsWith('SB')) {\n\t\tresult = result.replace('SB', '');\n\t}\n\n\treturn result;\n};\n\nexport const getLanguageToUse = (lang: string) => {\n\tif (lang) {\n\t\treturn lang === 'zh-Hans' || lang === 'zh-Hant' ? 'zh-cn' : lang === 'ar-SA' ? 'en' : lang.toLowerCase();\n\t}\n\n\t// if no language is provided, default to english\n\treturn 'en';\n};\n","import { immer } from 'zustand/middleware/immer';\nimport { createJSONStorage, persist } from 'zustand/middleware';\n\nimport { Account, TAccountStats } from '../gateways/TfboGateway/TfboGateway.types';\nimport { useStorageDOMEvents } from '../utils/hooks/useStorageDOMEvents';\n\nimport { create } from './create';\nimport createSelectors from './createSelectors';\n\nexport interface TradingAccountStoreActions {\n\tsetSelected: (selected: number) => void;\n\n\tsetAccounts: (accounts: any[]) => void;\n\n\tsetAccountStats: (accountStats: any[]) => void;\n\n\tsetSelectedAccountStats: (selectedAccountStats: any) => void;\n\tsetIsFundedTrader: (isFundedTrader: boolean) => void;\n\tsetAccountMarketType: ({\n\t\tisJapanSpread,\n\t\tisJapanSubscription,\n\t\tisSpreadBetting,\n\t}: {\n\t\tisJapanSpread: boolean;\n\t\tisJapanSubscription: boolean;\n\t\tisSpreadBetting: boolean;\n\t}) => void;\n\tsetCurrentAccountUrl: (url: string) => void;\n\tsetIsOneClickTradingActive: (value: boolean) => void;\n\tsetSessionId: (value: string) => void;\n\treset: () => void;\n}\n\nexport interface TradingAccountStoreValues {\n\tselected: number;\n\taccounts: Account[];\n\taccountStats: TAccountStats[];\n\tselectedAccountStats: any;\n\n\t// TODO: when refactoring and have time, group these status in a clever way, and update all over the application\n\tisSpreadBetting: boolean;\n\tisJapanSpread: boolean;\n\tisJapanSubscription: boolean;\n\tisFundedTrader: boolean;\n\tcurrentAccountUrl: string;\n\tisOneClickTradingActive: boolean;\n\tsessionId: string;\n}\n\nexport const initialStateTradingAccountStore: TradingAccountStoreValues = {\n\tselected: -1,\n\tselectedAccountStats: {},\n\taccounts: [],\n\taccountStats: [],\n\tcurrentAccountUrl: '',\n\tisSpreadBetting: false,\n\tisJapanSpread: false,\n\tisJapanSubscription: false,\n\tisFundedTrader: false,\n\tisOneClickTradingActive: false,\n\tsessionId: '',\n};\nexport type TradingAccountStore = TradingAccountStoreValues & TradingAccountStoreActions;\n\nconst tradingAccountStore = create()(\n\tpersist(\n\t\timmer((set: any) => ({\n\t\t\t...initialStateTradingAccountStore,\n\n\t\t\tsetSelected: (selected: number) => set({ selected }),\n\n\t\t\tsetAccountMarketType: ({\n\t\t\t\tisJapanSpread,\n\t\t\t\tisJapanSubscription,\n\t\t\t\tisSpreadBetting,\n\t\t\t}: {\n\t\t\t\tisJapanSpread: boolean;\n\t\t\t\tisJapanSubscription: boolean;\n\t\t\t\tisSpreadBetting: boolean;\n\t\t\t}) => set({ isJapanSpread, isJapanSubscription, isSpreadBetting }),\n\n\t\t\tsetSelectedAccountStats: (selectedAccountStats: {}) =>\n\t\t\t\tset((state: TradingAccountStore) => {\n\t\t\t\t\tstate.selectedAccountStats = { ...selectedAccountStats };\n\t\t\t\t}),\n\n\t\t\tsetAccounts: (accounts: any) => set({ accounts }),\n\t\t\tsetCurrentAccountUrl: (currentAccountUrl: string) => set({ currentAccountUrl }),\n\t\t\tsetAccountStats: (accountStats: any[]) => set({ accountStats }),\n\t\t\tsetIsFundedTrader: (isFundedTrader: boolean) => set({ isFundedTrader }),\n\t\t\tsetIsOneClickTradingActive: (isOneClickTradingActive: boolean) => set({ isOneClickTradingActive }),\n\t\t\tsetSessionId: (sessionId: string) => set({ sessionId }),\n\t\t\treset: () => set({ ...initialStateTradingAccountStore }),\n\t\t})),\n\t\t{\n\t\t\tname: 'trading-account-store', // unique name\n\t\t\tstorage: createJSONStorage(() => localStorage),\n\t\t}\n\t)\n);\n\nuseStorageDOMEvents(tradingAccountStore);\n\nexport default createSelectors(tradingAccountStore);\n","import React from 'react';\n\nimport { MarketItem } from '../../../../../gateways/RfpGateway/rfp.types';\n\n// TODO: - Refactor some of the formattedNumber logic. Use a separate component and Number Formatter...\nexport const formattedNumber = (\n\tnum: number | string,\n\tmarketItem: MarketItem | { decPrec: number; marketItemInfo?: any } | undefined | null,\n\tisSpreadBettingAccount: boolean,\n\torder?: any,\n\tgridChartMenu?: any,\n\tlang?: string,\n\tinstrumentColorTradeBoard?: string\n) => {\n\tconst decPrec = marketItem?.decPrec ?? 0;\n\n\tconst str = (+num).toFixed(decPrec).toString();\n\tconst language = lang ?? localStorage.getItem('language') ?? 'en';\n\n\t// Styling of span elements\n\tconst spanElementStyles = {\n\t\torderTicketBigSymbol: { fontSize: 24, fontWeight: 'bold' },\n\t\torderTicketSmallSymbol: {},\n\t\tgridChartMenuBigSymbol: { fontSize: 20, display: 'inline-block', width: 11.5 },\n\t\tgridChartMenuSmallSymbol: { display: 'inline-block', width: 8 },\n\t\tgridChartMenuDot: { display: 'inline-block', width: 4 },\n\t\twatchlistBigSymbolLongNumber: instrumentColorTradeBoard\n\t\t\t? { fontSize: 28, color: instrumentColorTradeBoard }\n\t\t\t: { fontSize: 14 },\n\t\twatchlistBigSymbolShortNumber: instrumentColorTradeBoard\n\t\t\t? { fontSize: 30, color: instrumentColorTradeBoard }\n\t\t\t: { fontSize: 19 },\n\t\twatchlistSmallSymbolLongNumber: instrumentColorTradeBoard\n\t\t\t? { fontSize: 18, color: instrumentColorTradeBoard }\n\t\t\t: { fontSize: 11 },\n\t\twatchlistSmallSymbolShortNumber: instrumentColorTradeBoard\n\t\t\t? { fontSize: 20, color: instrumentColorTradeBoard }\n\t\t\t: {},\n\t};\n\n\t// Maximum length for short bid/ask numbers used to apply different styling for bigger numbers\n\tconst maxBidAskNumberLength = 7;\n\n\t//Get comma or dot depending on how the number separates int from decimals\n\t//Need to get country specific separators so whole numbers are not defaulting to period on line 21\n\tconst separatorIndex = str.lastIndexOf('.' || ',');\n\tconst separator = isCommaSeparator(language) ? ',' : '.';\n\tconst numArray = str.split('');\n\n\tconst decimalFormat = (firstNum: number, secondNum: number) => {\n\t\tlet formattedArr: any = [];\n\t\tfor (let i = 0; i <= numArray.length; i++) {\n\t\t\tif (firstNum === i || secondNum === i) {\n\t\t\t\tformattedArr.push(\n\t\t\t\t\t maxBidAskNumberLength\n\t\t\t\t\t\t\t\t\t? spanElementStyles.watchlistBigSymbolLongNumber\n\t\t\t\t\t\t\t\t\t: spanElementStyles.watchlistBigSymbolShortNumber))\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{numArray[i]}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tlet value = numArray[i];\n\t\t\t\tif (isCommaSeparator(language) && value === '.') {\n\t\t\t\t\tvalue = ',';\n\t\t\t\t}\n\t\t\t\tformattedArr.push(\n\t\t\t\t\t maxBidAskNumberLength\n\t\t\t\t\t\t\t\t\t? spanElementStyles.watchlistSmallSymbolLongNumber\n\t\t\t\t\t\t\t\t\t: spanElementStyles.watchlistSmallSymbolShortNumber))\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{value}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t///Add commas\n\t\tlet numDecimals = 0;\n\t\tif (separatorIndex > 3) {\n\t\t\tlet numPastDecimal = 0;\n\t\t\tfor (let i = 0; i < separatorIndex; i++) {\n\t\t\t\tconst thirdDigit = separatorIndex - numPastDecimal === 3 - numDecimals;\n\t\t\t\tif (thirdDigit) {\n\t\t\t\t\tformattedArr.splice(\n\t\t\t\t\t\ti,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{separator === '.' ? ',' : '.'}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t\tnumPastDecimal = 0;\n\t\t\t\t\tnumDecimals++;\n\t\t\t\t} else {\n\t\t\t\t\tnumPastDecimal++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn gridChartMenu && language === 'ar-SA' ? (\n\t\t\t
{formattedArr}
\n\t\t) : (\n\t\t\t
{formattedArr}
\n\t\t);\n\t};\n\n\tlet start;\n\tlet addedLength = 0;\n\n\tif (marketItem?.marketItemInfo) {\n\t\tstart = separatorIndex + +marketItem.marketItemInfo.formatPosition;\n\t\taddedLength = +marketItem.marketItemInfo.formatLength - 1;\n\t} else if (isSpreadBettingAccount) {\n\t\tstart = separatorIndex + (decPrec <= 3 ? 1 : 3);\n\t\tif (decPrec > 1) {\n\t\t\tstart++;\n\t\t}\n\t} else {\n\t\tstart = separatorIndex + (decPrec <= 3 ? 1 : 3);\n\t\taddedLength = decPrec === 1 ? 0 : 1;\n\t}\n\n\treturn decimalFormat(start, start + addedLength);\n};\n\nexport const formatNumberWithCommas = (num: number | string, decPrec: number, language: string) => {\n\treturn language ? localizeNumber(+num, decPrec, language) : num.toString();\n};\n\nexport const localizeNumber = (num: number, decPrec: number, language: string) => {\n\tif (language === 'ar-SA') language = 'en';\n\treturn new Intl.NumberFormat(language ?? 'en-US', { minimumFractionDigits: decPrec }).format(+num.toFixed(decPrec));\n};\n\nexport const isCommaSeparator = (language: string) => {\n\treturn ['de', 'vi', 'pt-BR', 'it', 'es'].includes(language);\n};\n\nexport const localizeDecimalSeparator = (value: string, language: string) => {\n\treturn isCommaSeparator(language) ? value.replace('.', ',') : value;\n};\n\nexport const replaceAllThousandSeparators = (value: string, language?: string) => {\n\tlanguage = language ? language : localStorage.getItem('language') ?? 'en';\n\tconst separator = isCommaSeparator(language) ? '.' : ',';\n\treturn value.replaceAll(separator, '');\n};\n\nexport const revertToTraditionalNumberFormat = (value: string, language: string) => {\n\tconst separator = isCommaSeparator(language) ? '.' : ',';\n\tvalue = value.replaceAll(separator, '');\n\treturn isCommaSeparator(language) ? value.replace(',', '.') : value;\n};\n","import { useEffect, useRef } from 'react';\nimport { Optional } from '../functions/Nullable';\nimport { Subscription, Observable } from '../functions/Observables';\n\ntype TSubscriptionHandler =\n\t| ((value: T) => void)\n\t| {\n\t\t\tonNext: (value: T) => void;\n\t\t\tonError?: (error: any) => void;\n\t\t\tonComplete?: () => void;\n\t };\n\nclass Hooks {\n\tpublic static useObservable(\n\t\tobservable: Observable,\n\t\tsubscriptionHandler: TSubscriptionHandler\n\t): Subscription;\n\tpublic static useObservable(\n\t\tobservable: Observable,\n\t\tsubscriptionHandler: TSubscriptionHandler,\n\t\tdependencies: any[]\n\t): Subscription;\n\tpublic static useObservable(\n\t\tobservable: Observable,\n\t\tsubscriptionHandler: TSubscriptionHandler,\n\t\tdependencies?: Optional\n\t): Subscription {\n\t\tconst subscriptionRef = useRef>>();\n\t\tif (subscriptionRef.current == null) {\n\t\t\tsubscriptionRef.current =\n\t\t\t\ttypeof subscriptionHandler === 'function'\n\t\t\t\t\t? observable.subscribe(subscriptionHandler)\n\t\t\t\t\t: observable.subscribe(\n\t\t\t\t\t\t\tsubscriptionHandler.onNext,\n\t\t\t\t\t\t\tsubscriptionHandler.onError,\n\t\t\t\t\t\t\tsubscriptionHandler.onComplete\n\t\t\t\t\t );\n\t\t}\n\t\tuseEffect(() => {\n\t\t\tif (subscriptionRef.current == null) {\n\t\t\t\tsubscriptionRef.current =\n\t\t\t\t\ttypeof subscriptionHandler === 'function'\n\t\t\t\t\t\t? observable.subscribe(subscriptionHandler)\n\t\t\t\t\t\t: observable.subscribe(\n\t\t\t\t\t\t\t\tsubscriptionHandler.onNext,\n\t\t\t\t\t\t\t\tsubscriptionHandler.onError,\n\t\t\t\t\t\t\t\tsubscriptionHandler.onComplete\n\t\t\t\t\t\t );\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\tif (subscriptionRef.current != null) {\n\t\t\t\t\tsubscriptionRef.current.unsubscribe();\n\t\t\t\t\tsubscriptionRef.current = null;\n\t\t\t\t}\n\t\t\t};\n\t\t}, dependencies || []);\n\n\t\treturn subscriptionRef.current!;\n\t}\n}\n\nexport default Hooks.useObservable;\n","interface IRoutes {\n\taccount: {\n\t\tlogin: string;\n\t\temailVerification: string;\n\t\tforgotPassword: string;\n\t\tregistered: string;\n\t\ttwoFactorAuthentication: string;\n\t\tsso: string;\n\t\tmobile: string;\n\t\tagreeToTermsAndConditions: string;\n\t};\n\ttrader: {\n\t\ttradersGym: string;\n\t\tcharts: string;\n\t\tfeedback: string;\n\t\tmarkets: string;\n\t\tsettings: string;\n\t\twatchlist: string;\n\t\tdetached: string;\n\t\tguide: string;\n\t\topenAccount: string;\n\t\tuploadDocuments: string;\n\t\tfunds: string;\n\t\tstatus: string;\n\t\treports: string;\n\t\tcalendar: string;\n\t\tsignals: string;\n\t\ttutorials: string;\n\t};\n\terror: string;\n\tnewWindow: string;\n}\n\nexport const webTraderPath = '/web-trader';\nexport const accountPath = '/account';\nexport const webTraderDetachedPath = `${webTraderPath}/detached`;\n\nconst Routes: IRoutes = {\n\taccount: {\n\t\tlogin: `${accountPath}/login`,\n\t\temailVerification: `${accountPath}/email-verification`,\n\t\tforgotPassword: `${accountPath}/forgotpassword`,\n\t\tregistered: `${accountPath}/registered`,\n\t\ttwoFactorAuthentication: `${accountPath}/2fa`,\n\t\tsso: `${accountPath}/sso`,\n\t\tmobile: `${accountPath}/mobile`,\n\t\tagreeToTermsAndConditions: `${accountPath}/agreement`,\n\t},\n\ttrader: {\n\t\ttradersGym: `${webTraderPath}/gym`,\n\t\tcharts: `${webTraderPath}/charts`,\n\t\tfeedback: `${webTraderPath}/feedback`,\n\t\tmarkets: `${webTraderPath}/markets`,\n\t\tcalendar: `${webTraderPath}/calendar`,\n\t\tsettings: `${webTraderPath}/settings`,\n\t\twatchlist: `${webTraderPath}/watchlist`,\n\t\tdetached: webTraderDetachedPath,\n\t\tguide: `${webTraderPath}/guide`,\n\t\topenAccount: `${webTraderPath}/open-account`,\n\t\tuploadDocuments: `${webTraderPath}/funds`,\n\t\tfunds: `${webTraderPath}/funds`,\n\t\tstatus: `${webTraderPath}/funds/status`,\n\t\treports: `${webTraderPath}/reports`,\n\t\tsignals: `${webTraderPath}/signals`,\n\t\ttutorials: `${webTraderPath}/tutorials`,\n\t},\n\terror: '/error',\n\tnewWindow: '/new-window',\n};\n\nexport const DETACHED_SUB_ROUTES = {\n\tCharts: `${webTraderDetachedPath}/charts`,\n\tTrade: `${webTraderDetachedPath}/trade`,\n\tOneClickTrade: `${webTraderDetachedPath}/one-click-trade`,\n\tPositions: `${webTraderDetachedPath}/positions`,\n};\n\nexport default Routes;\n","import { immer } from 'zustand/middleware/immer';\nimport { createJSONStorage, persist } from 'zustand/middleware';\n\nimport { create } from '../create';\nimport createSelectors from '../createSelectors';\nimport { TradingMode } from '../../gateways/RfpGateway/rfp.types';\nimport {\n\tDEFAULT_FEED_ID,\n\tWATCHLIST_SORT_ORDER,\n\tWATCHLIST_SORT_VALUE,\n\tWatchlistSortOrder,\n\tWatchlistSortValue,\n} from '../../utils/functions/WatchlistUtils';\nimport { useStorageDOMEvents } from '../../utils/hooks/useStorageDOMEvents';\n\nexport interface WatchListData {\n\tid: string;\n\tname: string;\n\tfeedId: string;\n\tsortOrder: WatchlistSortOrder;\n\tsortValue: WatchlistSortValue;\n\tinstruments: string[];\n\tisCustom?: boolean;\n}\n\ninterface WatchListStoreActions {\n\tgetCurrentWatchList: (isChildWindow: boolean) => string;\n\tsetCurrentWatchList: (currentWatchList: any, isChildWindow: boolean) => void;\n\tisWatchlistNameExists: (tradingMode: TradingMode, name: string) => boolean;\n\thasWatchlists: (tradingMode: TradingMode) => boolean;\n\n\taddEmptyWatchlist: (tradingMode: TradingMode, name: string) => void;\n\taddWatchlist: (tradingMode: TradingMode, data: WatchListData) => void;\n\tgetSelectedWatchlist: (tradingMode: TradingMode, isChildWindow: boolean) => WatchListData | null;\n\tgetWatchlist: (tradingMode: TradingMode, name: string) => WatchListData | null;\n\tgetWatchlists: (tradingMode: TradingMode) => WatchListData[] | null;\n\tgetWatchlistsContainsInstrument: (tradingMode: TradingMode, instrument: string) => WatchListData[] | null;\n\tgetWatchlistsOrder: (tradingMode: TradingMode) => string[] | [];\n\tsetWatchlists: (tradingMode: TradingMode, watchlists: WatchListData[]) => void;\n\tsetWatchlistsForAllTradingModes: (watchlists: WatchListData[]) => void;\n\tsetSortOrder: (tradingMode: TradingMode, name: string, sortOrder: WatchlistSortOrder) => void;\n\tremoveWatchlist: (tradingMode: TradingMode, name: string) => void;\n\taddInstruments: (tradingMode: TradingMode, name: string, instruments: string[]) => void;\n\tsetInstruments: (tradingMode: TradingMode, name: string, instruments: string[]) => void;\n\treorderWatchlistInstruments: (tradingMode: TradingMode, name: string, fromIndex: number, toIndex: number) => void;\n\tremoveInstruments: (tradingMode: TradingMode, name: string, instruments: string[]) => void;\n\tremoveAllInstruments: (tradingMode: TradingMode, name: string) => void;\n\tmoveInstruments: (\n\t\ttradingMode: TradingMode,\n\t\tfromWatchlist: string,\n\t\tdestinationWatchlist: string,\n\t\tinstruments: string[]\n\t) => void;\n\tisInstrumentExistsInWatchlist: (tradingMode: TradingMode, name: string, instrument: string) => boolean;\n\tisInstrumentExistsInAnyWatchlist: (tradingMode: TradingMode, instrument: string) => boolean;\n\twatchlistsCount: (tradingMode: TradingMode) => number;\n\twatchlistInstrumentCount: (tradingMode: TradingMode, name: string) => number;\n\tgetWatchlistInstruments: (tradingMode: TradingMode, name: string) => string[];\n\trenameWatchlist: (tradingMode: TradingMode, oldName: string, newName: string) => void;\n\tremoveAllWatchlists: () => void;\n\treset: () => void;\n\tsetWatchlistsOrder: (tradingMode: TradingMode, watchlistOrder: string[]) => void;\n\tsetShowWatchListPanel: (show: boolean) => void;\n}\n\nexport interface WatchListStoreValues {\n\tcurrentWatchList: string;\n\tchildWatchlistName: string;\n\t// key is trading mode and value is array of watchlist items\n\twatchlists: { [key: string]: WatchListData[] };\n\twatchlistsOrder: { [key: string]: string[] };\n\tshowWatchListPanel: boolean;\n}\n\nexport const initialStateWatchListStore: WatchListStoreValues = {\n\tcurrentWatchList: '',\n\tchildWatchlistName: '',\n\twatchlists: {},\n\twatchlistsOrder: {},\n\tshowWatchListPanel: true,\n};\n\nexport type WatchListStore = WatchListStoreValues & WatchListStoreActions;\n\nconst watchListStore = create()(\n\tpersist(\n\t\timmer((set: any, get: any) => ({\n\t\t\t...initialStateWatchListStore,\n\n\t\t\tgetCurrentWatchList: (isChildWindow) => {\n\t\t\t\tconst { childWatchlistName, currentWatchList } = get();\n\t\t\t\treturn isChildWindow && childWatchlistName.length > 0 ? childWatchlistName : currentWatchList;\n\t\t\t},\n\n\t\t\tsetCurrentWatchList: (currentWatchList, isChildWindow) => {\n\t\t\t\tset({\n\t\t\t\t\t[isChildWindow ? 'childWatchlistName' : 'currentWatchList']: currentWatchList,\n\t\t\t\t});\n\t\t\t},\n\n\t\t\twatchlistsCount: (tradingMode) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\treturn watchlists ? watchlists.length : 0;\n\t\t\t},\n\n\t\t\twatchlistInstrumentCount: (tradingMode, name) => {\n\t\t\t\tconst watchlist = get().getWatchlist(tradingMode, name);\n\t\t\t\treturn watchlist ? watchlist.instruments.length : 0;\n\t\t\t},\n\n\t\t\tgetWatchlistInstruments: (tradingMode, name) => {\n\t\t\t\tconst watchlist = get().getWatchlist(tradingMode, name);\n\t\t\t\treturn watchlist ? watchlist.instruments : [];\n\t\t\t},\n\n\t\t\tgetWatchlistsContainsInstrument: (tradingMode, instrument) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\tif (watchlists) {\n\t\t\t\t\treturn watchlists.filter((watchlist: WatchListData) => watchlist.instruments.includes(instrument));\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\n\t\t\thasWatchlists: (tradingMode) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\treturn watchlists;\n\t\t\t},\n\n\t\t\tisWatchlistNameExists: (tradingMode, name) => {\n\t\t\t\treturn get().getWatchlist(tradingMode, name);\n\t\t\t},\n\n\t\t\tgetWatchlist: (tradingMode, name) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\tif (watchlists) {\n\t\t\t\t\treturn watchlists.find((watchlist: WatchListData) => watchlist.name === name);\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\n\t\t\tgetWatchlists: (tradingMode) => {\n\t\t\t\treturn get().watchlists[tradingMode];\n\t\t\t},\n\n\t\t\tgetWatchlistsOrder: (tradingMode) => {\n\t\t\t\treturn get().watchlistsOrder[tradingMode];\n\t\t\t},\n\n\t\t\tgetSelectedWatchlist: (tradingMode, isChildWindow) => {\n\t\t\t\treturn get().getWatchlist(tradingMode, get().getCurrentWatchList(isChildWindow));\n\t\t\t},\n\n\t\t\taddEmptyWatchlist: (tradingMode, name) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode] || [];\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: [\n\t\t\t\t\t\t\t\t...watchlists,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: name,\n\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\tfeedId: DEFAULT_FEED_ID,\n\t\t\t\t\t\t\t\t\tsortOrder: WATCHLIST_SORT_ORDER.NONE,\n\t\t\t\t\t\t\t\t\tsortValue: WATCHLIST_SORT_VALUE.INSTRUMENT,\n\t\t\t\t\t\t\t\t\tinstruments: [],\n\t\t\t\t\t\t\t\t} as WatchListData,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\taddWatchlist: (tradingMode, data) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode] || [];\n\t\t\t\t\tconst uniqueWatchlists = [...watchlists, data].filter(\n\t\t\t\t\t\t(watchlist, index, self) => index === self.findIndex((w) => w.id === watchlist.id)\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: uniqueWatchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetWatchlists: (tradingMode, watchlists) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\t// TODO add watchlist orders logic\n\t\t\t\t\tconst uniqueWatchlists = watchlists.filter(\n\t\t\t\t\t\t(watchlist, index, self) => index === self.findIndex((w) => w.id === watchlist.id)\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: uniqueWatchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetWatchlistsOrder: (tradingMode, order) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlistsOrder: {\n\t\t\t\t\t\t\t...state.watchlistsOrder,\n\t\t\t\t\t\t\t[tradingMode]: order,\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t)\n\t\t\t},\n\t\t\tsetWatchlistsForAllTradingModes: (watchlists) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst uniqueWatchlists = watchlists.filter(\n\t\t\t\t\t\t(watchlist, index, self) => index === self.findIndex((w) => w.id === watchlist.id)\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\tLIVE: uniqueWatchlists,\n\t\t\t\t\t\t\tDEMO: uniqueWatchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveWatchlist: (tradingMode, name) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].filter((item) => item.name !== name);\n\t\t\t\t\tconst orderedWatchlists = state.watchlistsOrder[tradingMode].filter((item) => item !== name);\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t\twatchlistsOrder: {\n\t\t\t\t\t\t\t...state.watchlistsOrder,\n\t\t\t\t\t\t\t[tradingMode]: orderedWatchlists\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetSortOrder: (tradingMode, name, sortOrder) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tsortOrder,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\taddInstruments: (tradingMode, name, instruments) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: item.instruments.concat(instruments),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetInstruments: (tradingMode, name, instruments) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\treorderWatchlistInstruments: (tradingMode, name, fromIndex, toIndex) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\tconst instruments = item.instruments.slice();\n\t\t\t\t\t\t\tconst [removed] = instruments.splice(fromIndex, 1);\n\t\t\t\t\t\t\tinstruments.splice(toIndex, 0, removed);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveInstruments: (tradingMode, name, instruments) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\tconst filteredInstruments = item.instruments.filter(\n\t\t\t\t\t\t\t\t(inst) => !instruments.some((instrument) => instrument === inst)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: filteredInstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveAllInstruments: (tradingMode, name) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: [],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tmoveInstruments: (tradingMode, fromWatchlist, destinationWatchlist, instruments) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === fromWatchlist) {\n\t\t\t\t\t\t\tconst fromWatchlistInstruments = item.instruments.filter(\n\t\t\t\t\t\t\t\t(inst) => !instruments.some((instrument) => instrument === inst)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: fromWatchlistInstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (item.name === destinationWatchlist) {\n\t\t\t\t\t\t\tconst destinationWatchlistInstruments = item.instruments.concat(instruments);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: destinationWatchlistInstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tisInstrumentExistsInWatchlist: (tradingMode, name, instrument) => {\n\t\t\t\tconst watchlist = get().getWatchlist(tradingMode, name);\n\t\t\t\treturn watchlist ? watchlist.instruments.includes(instrument) : false;\n\t\t\t},\n\t\t\tisInstrumentExistsInAnyWatchlist: (tradingMode, instrument) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\tif (watchlists) {\n\t\t\t\t\treturn watchlists.some((watchlist: WatchListData) => watchlist.instruments.includes(instrument));\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\trenameWatchlist: (tradingMode, oldName, newName) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === oldName) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tid: newName,\n\t\t\t\t\t\t\t\tname: newName,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveAllWatchlists: () => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\treset: () => set({ ...initialStateWatchListStore }),\n\n\t\t\tsetShowWatchListPanel: (show: boolean) =>\n\t\t\t\tset({\n\t\t\t\t\tshowWatchListPanel: show,\n\t\t\t\t}),\n\t\t})),\n\t\t{\n\t\t\tname: 'watchlist-store', // unique name\n\t\t\tpartialize: (state) => ({\n\t\t\t\tcurrentWatchList: state.currentWatchList,\n\t\t\t\twatchlists: state.watchlists,\n\t\t\t\tshowWatchListPanel: state.showWatchListPanel,\n\t\t\t\twatchlistsOrder: state.watchlistsOrder,\n\t\t\t\t// Exclude `childWatchlistName` from being persisted\n\t\t\t}),\n\t\t\tstorage: createJSONStorage(() => localStorage),\n\t\t}\n\t)\n);\n\nuseStorageDOMEvents(watchListStore);\n\nexport default createSelectors(watchListStore);\n","import { TWatchlistInstrument, TWatchlists } from '../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport { MarketItem } from '../../gateways/RfpGateway/rfp.types';\nimport { DefaultWatchList, WatchListItem } from '../../contexts/DashboardContext';\nimport { WatchListData } from '../../store/WatchListStore/watchListStore';\n\nconst commonFxSymbols: string[] = [];\n\nexport const MAX_WATCHLISTS_ALLOWED = 20;\nexport let MAX_INSTRUMENTS_ALLOWED = 50;\nexport let MAX_INSTRUMENTS_ALLOWED_JP = 100;\n\nexport const DEFAULT_FEED_ID = 'VTFeed';\n\nexport const WATCHLIST_SORT_ORDER = {\n\tNONE: 'None',\n\tASCENDING: 'Ascending',\n\tDESCENDING: 'Descending',\n} as const;\n\nexport const WATCHLIST_SORT_VALUE = {\n\tINSTRUMENT: 'Instrument',\n\tCODE: 'Code',\n\tCHANGE: 'Change',\n\tLAST_PRICE: 'LastPrice',\n} as const;\n\nexport type WatchlistSortOrder = (typeof WATCHLIST_SORT_ORDER)[keyof typeof WATCHLIST_SORT_ORDER];\nexport type WatchlistSortValue = (typeof WATCHLIST_SORT_VALUE)[keyof typeof WATCHLIST_SORT_VALUE];\n\nexport const convertTWatchlistsToWatchListData = (watchlists: TWatchlists[]) => {\n\treturn watchlists.map((watchlist) => {\n\t\tconst marketItems = watchlist.instrument.map((watchlist) => {\n\t\t\treturn watchlist._code;\n\t\t});\n\t\treturn {\n\t\t\tid: watchlist._id,\n\t\t\tname: watchlist._name,\n\t\t\tfeedId: watchlist._feedId,\n\t\t\tsortOrder: watchlist._sortOrder,\n\t\t\tsortValue: watchlist._sortValue,\n\t\t\tinstruments: marketItems,\n\t\t} as WatchListData;\n\t});\n};\n\nexport const getDefaultJapanWatchlists = (preferredFeedId: string, marketItems: MarketItem[]): TWatchlists[] => {\n\tconst numTiers = 3;\n\tconst japanWatchlists: Record = {};\n\tfor (let i = 1; i <= numTiers; i++) {\n\t\tjapanWatchlists[`tier${i}`] = [];\n\t}\n\n\tfor (const element of marketItems) {\n\t\tif (typeof element.minTier !== 'undefined' && element.minTier !== null) {\n\t\t\t// loop from each instrument's minTier to max number of tiers defined\n\t\t\t// to make sure higher tiers include instruments from lower tiers\n\t\t\tfor (let tierNum = element.minTier; tierNum <= numTiers; tierNum++) {\n\t\t\t\tjapanWatchlists[`tier${tierNum}`].push({ _code: element.code, _rank: element.watchlistRank });\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(japanWatchlists).forEach((tierKey) => {\n\t\t// finally, sort instruments inside each watchlist by rank\n\t\tjapanWatchlists[tierKey].sort((a: TWatchlistInstrument, b: TWatchlistInstrument) => (a._rank < b._rank ? -1 : 1));\n\t});\n\n\tlet result: TWatchlists[] = [];\n\n\tObject.keys(japanWatchlists).forEach((tierKey) => {\n\t\tresult.push({\n\t\t\tinstrument: japanWatchlists[tierKey],\n\t\t\t_feedId: preferredFeedId,\n\t\t\t_id: `Tier ${tierKey.slice(-1)}`,\n\t\t\t_name: `Tier ${tierKey.slice(-1)}`,\n\t\t\t_sortOrder: 'None',\n\t\t\t_sortValue: 'Instrument',\n\t\t});\n\t});\n\n\treturn result;\n};\n\nexport const getDefaultCFDWatchlist = (\n\tmarketItems: MarketItem[],\n\tisSpreadBettingWatchlist = false,\n\tisJapanSpreadWatchlist = false\n) => {\n\tlet fXSymbols = commonFxSymbols;\n\n\tif (isSpreadBettingWatchlist) {\n\t\tfXSymbols = spreadBettingFxSymbols;\n\t} else if (isJapanSpreadWatchlist) {\n\t\tfXSymbols = japanSpreadFxSymbols;\n\t}\n\n\tlet defaultArray: TWatchlistInstrument[] = [];\n\tfXSymbols.forEach((symbol: string) => {\n\t\tmarketItems.forEach((marketItem) => {\n\t\t\tif (marketItem.code === symbol) {\n\t\t\t\tlet newInstrumentEntry = { _code: marketItem.code };\n\t\t\t\tdefaultArray.push(newInstrumentEntry);\n\t\t\t}\n\t\t});\n\t});\n\n\treturn defaultArray;\n};\n\nexport const defaultWatchlistPreference = (\n\tpreferredFeedId: string,\n\tmarketItems: MarketItem[],\n\ttranslatedName: string,\n\tisSpreadBettingWatchlist: boolean,\n\tisJapanSpreadWatchlist: boolean\n): TWatchlists => {\n\treturn {\n\t\tinstrument: getDefaultCFDWatchlist(marketItems, isSpreadBettingWatchlist, isJapanSpreadWatchlist),\n\t\t_feedId: preferredFeedId,\n\t\t_id: translatedName,\n\t\t_name: translatedName,\n\t\t_sortOrder: 'None',\n\t\t_sortValue: 'Instrument',\n\t};\n};\n\nconst defineSortOrder = (order: number): WatchlistSortOrder => {\n\tswitch (order) {\n\t\tcase 1:\n\t\t\treturn 'Ascending';\n\t\tcase 2:\n\t\t\treturn 'Descending';\n\t\tdefault:\n\t\t\treturn 'None';\n\t}\n};\n\nexport const createNewWatchlist = (name: string, feedId: string, instruments?: TWatchlistInstrument[]): TWatchlists => {\n\treturn {\n\t\tinstrument: instruments || [],\n\t\t_feedId: feedId,\n\t\t_id: name,\n\t\t_name: name,\n\t\t_sortOrder: WATCHLIST_SORT_ORDER.NONE,\n\t\t_sortValue: WATCHLIST_SORT_VALUE.INSTRUMENT,\n\t\tisCustom: true\n\t};\n};\nexport const dynamicWatchlistPreference = (\n\tpreferredFeedId: string,\n\ttranslatedName: string,\n\tinstrument: any,\n\torder: number\n): TWatchlists => {\n\treturn {\n\t\tinstrument: instrument,\n\t\t_feedId: preferredFeedId,\n\t\t_id: translatedName,\n\t\t_name: translatedName,\n\t\t_sortOrder: defineSortOrder(order),\n\t\t_sortValue: WATCHLIST_SORT_VALUE.INSTRUMENT,\n\t};\n};\n\nexport const instrumentExistsInDynamicWatchlists = (\n\tname: string,\n\twatchlists: DefaultWatchList[],\n\tisSpreadBettingAccount: boolean\n): boolean => {\n\tlet result = false;\n\tif (watchlists.length > 0 && !isSpreadBettingAccount) {\n\t\twatchlists.forEach((watchList) => {\n\t\t\tif (!!watchList.items.find((item: WatchListItem) => item.title === name)) result = true;\n\t\t});\n\t}\n\treturn result;\n};\n\nconst spreadBettingFxSymbols = [\n\t'UK100_SB',\n\t'GER40_SB',\n\t'NAS100_SB',\n\t'US30_SB',\n\t'SPX500_SB',\n\t'JPN225_SB',\n\t'GBPUSD_SB',\n\t'EURUSD_SB',\n\t'USDJPY_SB',\n\t'XAUUSD_SB',\n\t'WTI_SB',\n];\n\nexport const japanSpreadWatchlistName = 'デフォルト(全通貨ペア)';\nconst japanSpreadFxSymbols: string[] = [\n\t'USDJPY',\n\t'EURUSD',\n\t'EURJPY',\n\t'AUDJPY',\n\t'GBPJPY',\n\t'NZDJPY',\n\t'CADJPY',\n\t'CHFJPY',\n\t'GBPUSD',\n\t'AUDUSD',\n\t'NZDUSD',\n\t'USDCAD',\n\t'USDCHF',\n\t'EURGBP',\n\t'EURAUD',\n\t'EURCAD',\n\t'EURCHF',\n\t'EURNZD',\n\t'GBPAUD',\n\t'GBPCAD',\n\t'GBPCHF',\n\t'GBPNZD',\n\t'AUDCAD',\n\t'AUDCHF',\n\t'AUDNZD',\n\t'CADCHF',\n\t'EURHUF',\n\t'EURSGD',\n\t'GBPHUF',\n\t'NZDCAD',\n\t'NZDCHF',\n\t'USDHUF',\n\t'USDMXN',\n\t'USDPLN',\n\t'USDSGD',\n\t'USDZAR',\n\t'EURMXN',\n\t'MXNJPY',\n\t'ZARJPY',\n\t'USDCNH',\n\t'AUDCNH',\n\t'AUDSGD',\n\t'CNHJPY',\n\t'EURCNH',\n\t'GBPCNH',\n\t'NZDSGD',\n\t'SGDJPY',\n\t'EURNOK',\n\t'EURSEK',\n\t'USDNOK',\n\t'USDSEK',\n\t'CHFSEK',\n\t'GBPNOK',\n\t'GBPSEK',\n\t'GBPSGD',\n\t'NOKJPY',\n\t'NZDCNH',\n\t'EURCZK',\n\t'EURPLN',\n\t'EURZAR',\n\t'GBPZAR',\n\t'USDHKD',\n\t'EURDKK',\n\t'EURHKD',\n\t'GBPCZK',\n\t'GBPDKK',\n\t'GBPPLN',\n\t'NOKSEK',\n\t'USDCZK',\n\t'USDDKK',\n];\n","import { useState, useEffect, useRef } from 'react';\n\nexport default function useForceRerender(): () => void {\n\tconst mounted = useRef(false);\n\tconst [, setValue] = useState(Date.now());\n\n\tuseEffect(() => {\n\t\tmounted.current = true;\n\n\t\treturn () => {\n\t\t\tmounted.current = false;\n\t\t};\n\t}, []);\n\n\treturn () => {\n\t\tif (mounted.current) {\n\t\t\tsetValue(Date.now());\n\t\t}\n\t};\n}\n","import React, { useEffect, useState } from 'react';\n\nimport cn from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\n\nimport styles from './Button.module.scss';\n\ninterface ButtonProps {\n\tclassName?: string;\n\tlabelClass?: string;\n\tdisabled?: boolean;\n\tlabel: any | undefined;\n\tonClick?: (event: React.MouseEvent) => void;\n\ticon?: IconProp;\n\ticonOnhover?: IconProp;\n\tsize?: 'sm' | 'md' | 'lg' | 'fluid';\n\ttype?: 'submit';\n\tvariant?: 'primary' | 'secondary' | 'tertiary' | 'danger' | 'outline' | 'primary-updated';\n\tsmallFont?: boolean;\n\tisFullWidth?: boolean;\n\tdisabledOnHover?: boolean;\n\tchildren?: React.ReactNode;\n}\n\nconst Button: React.FC = ({\n\tclassName,\n\tlabelClass,\n\tdisabled = false,\n\tlabel,\n\tonClick,\n\ticon,\n\ticonOnhover,\n\tsize = 'md',\n\ttype,\n\tvariant = 'primary',\n\tsmallFont = false,\n\tisFullWidth = false,\n\tchildren,\n\tdisabledOnHover = false,\n}) => {\n\tconst [labelIcon, setLabelIcon] = useState(icon);\n\tuseEffect(() => {\n\t\tsetLabelIcon(icon);\n\t}, [icon]);\n\n\tconst _className = cn(\n\t\tsmallFont ? styles.smallFont : '',\n\t\tclassName,\n\t\tstyles.button,\n\t\tstyles[size],\n\t\tstyles[variant],\n\t\t{\n\t\t\t[styles.disabled]: disabled,\n\t\t\t[styles.outlineDisabled]: disabled && variant === 'outline',\n\t\t},\n\t\tisFullWidth ? styles.fullWidth : ''\n\t);\n\tif (!label) {\n\t\treturn null;\n\t}\n\tconst handleButtonClick = (event: React.MouseEvent) => {\n\t\tif (!disabled && typeof onClick === 'function') {\n\t\t\tonClick(event);\n\t\t}\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\tif (!disabledOnHover) setLabelIcon(iconOnhover);\n\t\t\t}}\n\t\t\tonMouseLeave={() => setLabelIcon(icon)}\n\t\t>\n\t\t\t{labelIcon && }\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\t{label}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Button;\n","type Consumer = (value: T) => void;\ntype Producer = () => T;\ntype Mapper = (value: T) => U;\ntype Predicate = (value: T) => boolean;\n\nexport type Optional = T | null | undefined;\nexport default class Nullable {\n\tprivate static readonly _empty = new Nullable(null, false);\n\tprivate readonly m_value: T;\n\n\tprivate constructor(value: T, requireNonNull: boolean = true) {\n\t\tif (requireNonNull && value == null) {\n\t\t\tthrow new Error('value cannot be null or undefined');\n\t\t}\n\t\tthis.m_value = value;\n\t}\n\n\t/**\n\t * Indicates whether a value is present\n\t * @returns `true` if there is a value present, otherwise `false`\n\t */\n\tpublic isPresent(): boolean {\n\t\treturn this.m_value != null;\n\t}\n\n\t/**\n\t * If a value is present, invokes the specified consumer with the value; otherwise, does nothing.\n\t * @param consumer the function to invoke if a value is present\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present; otherwise, an empty `Nullable`\n\t */\n\tpublic run(consumer: Consumer>): Nullable {\n\t\tif (this.m_value != null) {\n\t\t\tconsumer(this.m_value as NonNullable);\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Invokes the specified function using the present value, which may be null.\n\t * @param consumer the function to invoke\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present; otherwise, an empty `Nullable`\n\t * @see Consumer\n\t */\n\tpublic runNullable(consumer: Consumer): Nullable {\n\t\tconsumer(this.m_value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * If a value is present, and the value matches the given predicate, returns a `Nullable` describing the value; otherwise, returns an empty `Nullable`.\n\t * @param predicate a predicate to apply to the value, if present\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present and the value matches the given predicate; otherwise, an empty `Nullable`\n\t * @see Predicate\n\t */\n\tpublic filter(predicate: Predicate>): Nullable {\n\t\treturn this.m_value == null ? this : predicate(this.m_value as NonNullable) ? this : Nullable.empty();\n\t}\n\n\t/**\n\t * If a value is present, applies the provided mapping function to it and, if the result is non-null, `Nullable` describing the result. Otherwise, returns an empty `Nullable`.\n\t * @param {U} U The return type of the mapping function\n\t * @param mapper A mapping function to apply to the value, if present\n\t * @returns a `Nullable` describing the result of applying the mapping function to the value of this `Nullable`, if a value is present; otherwise, an empty `Nullable`\n\t * @see Mapper\n\t */\n\tpublic map(mapper: Mapper, U>): Nullable {\n\t\treturn this.m_value != null ? Nullable.of(mapper(this.m_value as NonNullable)) : Nullable.empty();\n\t}\n\n\t/**\n\t * If a value is present, applies the provided `Nullable`-bearing\n\t * mapping function to it and returns that result; otherwise, returns an empty\n\t * `Nullable`. This method is similar to {@link map()},\n\t * but the provided mapper is one whose result is already a `Nullable`,\n\t * and if invoked, {@link flatMap} does not wrap it with an additional `Nullable`.\n\t * @param The type parameter of the `Nullable` returned by the mapping function\n\t * @param mapper The mapping function to apply to the value, if present\n\t * @returns the result of applying the `Nullable`-bearing mapping function to the value of this `Nullable`, if a value is present; otherwise, an empty `Nullable`\n\t * @see Mapper\n\t */\n\tpublic flatMap(mapper: Mapper, Nullable>): Nullable {\n\t\treturn Nullable.coalesce(\n\t\t\tthis.m_value != null ? mapper(this.m_value as NonNullable) : null,\n\t\t\tNullable.empty()\n\t\t) as Nullable;\n\t}\n\n\t/**\n\t * Invokes the specified mapping function using the current value of this `Nullable`, which may be null.\n\t * If the result is non-null, returns a `Nullable` describing the result. Otherwise, returns an empty `Nullable`.\n\t * This is similar to {@link map()}, with the exception that the mapping function is called even if the current value of this `Nullable` is null.\n\t * @param {U} U the return type of the mapping function\n\t * @param mapper a mapping function to apply to the value\n\t * @returns a `Nullable` describing the result of applying the mapping function to the value of this `Nullable`\n\t * @see Mapper\n\t */\n\tpublic mapNullable(mapper: Mapper): Nullable {\n\t\treturn Nullable.of(mapper(this.m_value));\n\t}\n\n\t/**\n\t * If a value is present in this `Nullable`, returns the value; otherwise, returns null.\n\t * @returns the value held by this `Nullable`\n\t */\n\tpublic get(): T {\n\t\treturn this.m_value;\n\t}\n\n\t/**\n\t * Returns the contained value, if present; otherwise, throws the specified error\n\t * @param {X} X the type of the error to be thrown\n\t * @param throwable the {@link Error} to throw if no value is present. If not supplied, a generic error will be thrown\n\t * @returns the present value\n\t * @throws X\n\t */\n\tpublic getOrThrow(throwable?: X | Producer): NonNullable {\n\t\tif (this.m_value != null) {\n\t\t\treturn this.m_value as NonNullable;\n\t\t}\n\t\tthrow throwable == null ? new Error('No value present') : typeof throwable === 'function' ? throwable() : throwable;\n\t}\n\n\t/**\n\t * Returns the value if present, otherwise returns {@param other}.\n\t * @param other the value to be returned if there is no value present - may be null\n\t * @returns the value, if present, otherwise other\n\t */\n\tpublic orElse(other: T): T {\n\t\treturn this.m_value != null ? this.m_value : other;\n\t}\n\n\t/**\n\t * Returns the value if present, otherwise invokes {@param other} and returns the result of that invocation.\n\t * @param other a {@link Producer} whose result is returned if no value is present\n\t * @returns the value if present; otherwise, the result of invoking the supplied {@link Producer}\n\t * @see Producer\n\t */\n\tpublic orElseGet(other: Producer): T {\n\t\treturn this.m_value != null ? this.m_value : other();\n\t}\n\n\t/**\n\t * Returns `Nullable` describing the value of this `Nullable` if a value is present; otherwise, invokes {@param other} and returns a `Nullable` describing the result of that invocation.\n\t * @param other a {@link Producer} whose result is returned if no value is present\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present; otherwise, a `Nullable` describing the result of invoking the supplied {@link Producer}\n\t * @see Producer\n\t */\n\tpublic orElseGetNullable(other: Producer): Nullable {\n\t\treturn this.m_value != null ? this : Nullable.of(other());\n\t}\n\n\t/**\n\t * Invokes the specified function if no value is present.\n\t * @param runnable the function to invoke\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present; otherwise, an empty `Nullable`\n\t */\n\tpublic orElseRun(runnable: () => any): Nullable {\n\t\tif (this.m_value == null) {\n\t\t\trunnable();\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Indicates whether some other object is \"equal to\" this `Nullable`.\n\t * The other object is considered equal if:\n\t * - it is also a `Nullable` and;\n\t * - both instances have no value present or;\n\t * - the present values are \"equal to\" each other via \"==\" comparison\n\t * @param other the object to be tested for equality with this instance\n\t * @returns true if the other object is \"equal to\" this object; otherwise, false\n\t */\n\tpublic equals(other: unknown): boolean {\n\t\treturn this === other ? true : other instanceof Nullable && other.m_value === this.m_value;\n\t}\n\n\t/**\n\t * Returns a non-empty string representation of this `Nullable` suitable for debugging.\n\t * @returns the string representation of this instance\n\t */\n\tpublic toString(): string {\n\t\treturn this.m_value != null ? `Nullable[${this.m_value}]` : 'Nullable.empty';\n\t}\n\n\t/**\n\t * Indicates whether the specified value is null or undefined\n\t * @param value the value to evaluate\n\t * @returns true if the specified value is null or undefined; otherwise, false\n\t */\n\tpublic static isNullOrUndefined(value: unknown): boolean {\n\t\treturn value === null || value === undefined;\n\t}\n\n\t/**\n\t * Returns the first non-null value from the specified values.\n\t * @param {T} T the type of the returned value\n\t * @param values the values to evaluate\n\t * @returns the first non-null value from the supplied values\n\t */\n\tpublic static coalesce(...values: T[]): Optional {\n\t\tfor (const value of values) {\n\t\t\tif (value != null) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns an empty `Nullable` instance. No value is present for this `Nullable`\n\t * @param {T} T The type of the non-existent value\n\t * @return an empty `Nullable`\n\t */\n\tpublic static empty(): Nullable {\n\t\treturn this._empty;\n\t}\n\n\t/**\n\t * Returns a `Nullable` describing the specified value, if non-null; otherwise, returns an empty `Nullable`.\n\t * @param {T} T the type of the value\n\t * @param value the possibly-null value to describe\n\t * @return a `Nullable` describing the specified value, if non-null; otherwise an empty `Nullable`\n\t * @see empty()\n\t */\n\tpublic static of(value: Optional): Nullable {\n\t\treturn value == null ? this.empty() : new Nullable(value);\n\t}\n}\n","export type AppConfig = {\n\tAPI_URL: string;\n\tTWOFA_URL: string;\n};\n\nconst getConfig = (apiHost: string, twoFAHost: string): AppConfig => {\n\treturn {\n\t\tAPI_URL: `${apiHost}/nsdata`,\n\t\tTWOFA_URL: `${twoFAHost}/2fa`,\n\t};\n};\n\nlet environment = getConfig(process.env.REACT_APP_API_URL!, process.env.REACT_APP_2FA_URL!);\n\nexport const LIVECHAT_JAPAN_DEPT = 'ライブチャットによるサポート';\n\nexport const SUPPORT_EMAIL_GENERAL = 'support@thinkmarkets.com';\nexport const SUPPORT_EMAIL_JAPAN = 'support-jp@thinkmarkets.com';\n\nexport const tfboSourceParam = 'webTrader';\n\nexport const SUBSCR_MGMT_PROV = 'BjpSub';\n\nexport const GENERAL_DATE_FORMAT = 'DD/MMM/YYYY';\nexport const GENERAL_DATETIME_FORMAT = 'DD/MMM/YYYY hh:mm';\nexport const GENERAL_DATETIMES_FORMAT = 'DD/MMM/YYYY H:mm:ss';\n\nexport const JAPAN_DATE_FORMAT = 'yyyy/MM/DD'; // 'yyyy/MM/D日';\nexport const JAPAN_DATETIME_FORMAT = 'yyyy/MM/DD HH:mm'; // 'yyyy年MM月D日 HH:mm';\nexport const JAPAN_DATETIMES_FORMAT = 'yyyy/MM/DD H:mm:ss';\n\nexport { environment };\n\nexport const ENVIRONMENT_NAME = process?.env?.REACT_APP_ENV;\n\nexport const isDevelopment = ENVIRONMENT_NAME === 'development';\nexport const isStaging = ENVIRONMENT_NAME === 'staging';\nexport const isProduction = ENVIRONMENT_NAME === 'production';\nexport const isPreviewProduction = ENVIRONMENT_NAME === 'preview-production';\n\nexport const versionNumber = process.env.REACT_APP_VERSION;\n\nexport const DX_COLUMN_CHOOSER_SIZE = { width: 350, height: 350 };\n\nexport const MFA_ACCESS_TOKEN_KEY = 'mfaAccessToken';\nexport const ACCESS_TOKEN_KEY = 'accessToken';\nexport const REFRESH_TOKEN_KEY = 'refreshToken';\nexport const USER_EMAIL_KEY = 'emai';\n\nexport const signalsBpKey = 'EMmXGbF89RM7iizI';\nexport const signalsBpVal = 'C1KzLpPmo3uIjZR7';\n\nexport const TV_UAT_REDIRECT_LOGIN_URL = 'https://tvstaging-oauth.thinkmarkets.com/login';\nexport const TV_PROD_REDIRECT_LOGIN_URL = 'https://tvprod-oauth.thinkmarkets.com/login';\n","import { useContext } from 'react';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport tradingAccountStore from '../../store/tradingAccountStore';\n\nconst useSelectedTradingAccount = () => {\n\tconst { tradingAccount } = useContext(DashboardContext);\n\tconst selected = tradingAccountStore.use.selected();\n\n\treturn tradingAccount[selected];\n};\n\nexport default useSelectedTradingAccount;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"TradeTicket_container__2S2h7\",\"fieldContainer\":\"TradeTicket_fieldContainer__2dSa-\",\"modalDialog\":\"TradeTicket_modalDialog__2uqRW\",\"modalHeader\":\"TradeTicket_modalHeader__22RFa\",\"modalBody\":\"TradeTicket_modalBody__NDpZ3\",\"resizedWrapper\":\"TradeTicket_resizedWrapper__2oTJn\",\"containerUndock\":\"TradeTicket_containerUndock__2RlYv\",\"fieldGroup\":\"TradeTicket_fieldGroup__3DF6r\",\"row\":\"TradeTicket_row__1efhH\",\"rowMiddle\":\"TradeTicket_rowMiddle__3AKKk\",\"fieldTakeProfitStopLoss\":\"TradeTicket_fieldTakeProfitStopLoss__1mwZy\",\"popupMessage\":\"TradeTicket_popupMessage__2rAet\",\"undocked\":\"TradeTicket_undocked__1ajFp\",\"dropdownMenu\":\"TradeTicket_dropdownMenu__3Zdn-\",\"menu\":\"TradeTicket_menu__RfFBs\",\"fieldGroupTitle\":\"TradeTicket_fieldGroupTitle__3owpQ\",\"label\":\"TradeTicket_label__3QGVI\",\"control\":\"TradeTicket_control__KkOY-\",\"wrapper\":\"TradeTicket_wrapper__4cjzE\",\"fieldWrapper\":\"TradeTicket_fieldWrapper__20MU5\",\"numberInputWrapper\":\"TradeTicket_numberInputWrapper__Zf43w\",\"noPadding\":\"TradeTicket_noPadding__2fE0a\",\"noBorder\":\"TradeTicket_noBorder__MYNzO\",\"infoRow\":\"TradeTicket_infoRow__3Wm86\",\"infoLabel\":\"TradeTicket_infoLabel__1p5Xd\",\"subLabel\":\"TradeTicket_subLabel__1StCg\",\"input\":\"TradeTicket_input__3BBAl\",\"subText\":\"TradeTicket_subText__1fsvO\",\"positiveSubText\":\"TradeTicket_positiveSubText__2JQEL\",\"negativeSubText\":\"TradeTicket_negativeSubText__16x8m\",\"errorValidation\":\"TradeTicket_errorValidation__2J5oR\",\"toggleButton\":\"TradeTicket_toggleButton__yRSTb\",\"toggleButtonChecked\":\"TradeTicket_toggleButtonChecked__3sae4\",\"calendarIcon\":\"TradeTicket_calendarIcon__2ScUO\",\"sideCloseButton\":\"TradeTicket_sideCloseButton__3be3m\",\"tradeTicketButton\":\"TradeTicket_tradeTicketButton__1A1Ye\",\"tradersGymField\":\"TradeTicket_tradersGymField__3Ftp8\",\"footer\":\"TradeTicket_footer__38BK-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"MarketTickerContainer\":\"WatchList_MarketTickerContainer__aow-r\",\"costInput\":\"WatchList_costInput__2V2aM\",\"modifyInput\":\"WatchList_modifyInput__1w9SB\",\"modifyErrorInput\":\"WatchList_modifyErrorInput__1psSQ\",\"container\":\"WatchList_container__3LS-6\",\"containerFluid\":\"WatchList_containerFluid__28woq\",\"instrumentBox\":\"WatchList_instrumentBox__1fJ6h\",\"emptyContainer\":\"WatchList_emptyContainer__2zLal\",\"iconC\":\"WatchList_iconC__2UkLj\",\"emptyWindowContainer\":\"WatchList_emptyWindowContainer__2kduN\",\"editIcon\":\"WatchList_editIcon__MKXlF\",\"iconWrapper\":\"WatchList_iconWrapper__1nlUZ\",\"header\":\"WatchList_header__1hCgB\",\"headerDynamic\":\"WatchList_headerDynamic__288s1\",\"windowHeader\":\"WatchList_windowHeader__MGjlY\",\"Title\":\"WatchList_Title__2kPiI\",\"openModalTitle\":\"WatchList_openModalTitle__1LK4W\",\"lightTitle\":\"WatchList_lightTitle__1JBeL\",\"darkTitle\":\"WatchList_darkTitle__1y4z3\",\"instrumentTitle\":\"WatchList_instrumentTitle__2qXkM\",\"emptyTitle\":\"WatchList_emptyTitle__1jtL8\",\"instrumentsContainer\":\"WatchList_instrumentsContainer__B4H7h\",\"notSticky\":\"WatchList_notSticky__34SvH\",\"SearchInputContainer\":\"WatchList_SearchInputContainer__1yyCH\",\"windowSearchInputContainer\":\"WatchList_windowSearchInputContainer__2ppJI\",\"WatchListCategoriesChildNotification\":\"WatchList_WatchListCategoriesChildNotification__1sR2m\",\"noScrollBar\":\"WatchList_noScrollBar__1m1K8\",\"windowMarketTickerContainer\":\"WatchList_windowMarketTickerContainer__1RVCt\",\"loadingWatchlist\":\"WatchList_loadingWatchlist__1e7Jn\",\"windowPadding\":\"WatchList_windowPadding__1G_y0\",\"addInstrument\":\"WatchList_addInstrument__2EM_f\",\"centeredText\":\"WatchList_centeredText__2hdd7\",\"Popup\":\"WatchList_Popup__3fiTd\",\"watchlistContainer\":\"WatchList_watchlistContainer__KFzBD\",\"PopupContainer\":\"WatchList_PopupContainer__EXZgF\",\"editPopupContainer\":\"WatchList_editPopupContainer__2pBi-\",\"editWindowPopupContainer\":\"WatchList_editWindowPopupContainer__31NYA\",\"watchlistItemsList\":\"WatchList_watchlistItemsList__9Qo3_\",\"editWatchlistItemsList\":\"WatchList_editWatchlistItemsList__1JMyN\",\"watchlistItems\":\"WatchList_watchlistItems__abUG5\",\"otherItems\":\"WatchList_otherItems__13m1k\",\"activeWatchList\":\"WatchList_activeWatchList__1lumj\",\"errorMessage\":\"WatchList_errorMessage__36iam\",\"modifyErrorMessage\":\"WatchList_modifyErrorMessage__2MqFt\",\"btnSave\":\"WatchList_btnSave__2Lu-z\",\"darkCheck\":\"WatchList_darkCheck__2gMLj\",\"lightCheck\":\"WatchList_lightCheck__1N-ZP\",\"selectAllContainer\":\"WatchList_selectAllContainer__2nKNo\",\"disableBtn\":\"WatchList_disableBtn__1fA0s\",\"modifyWatchlist\":\"WatchList_modifyWatchlist__R21tw\",\"modifyInputContainer\":\"WatchList_modifyInputContainer__36obj\",\"modalWatchlist\":\"WatchList_modalWatchlist__Z-OeI\",\"modalRemoveWatchlist\":\"WatchList_modalRemoveWatchlist__S7JEm\",\"removeMessage\":\"WatchList_removeMessage__Ojypw\",\"modalTopHeader\":\"WatchList_modalTopHeader__2bGUd\",\"moveModalHeader\":\"WatchList_moveModalHeader__1sOyZ\",\"modalTitle\":\"WatchList_modalTitle__1S3ka\",\"modalItems\":\"WatchList_modalItems__1D3F_\",\"modifyButton\":\"WatchList_modifyButton__5Isub\",\"title\":\"WatchList_title__39eix\",\"modifyFooter\":\"WatchList_modifyFooter__3ei6y\",\"buttonDiv\":\"WatchList_buttonDiv__3uh_k\",\"inputLimit\":\"WatchList_inputLimit__3qMFR\",\"actionButtons\":\"WatchList_actionButtons__1avPP\",\"closeIcon\":\"WatchList_closeIcon__xiLU4\",\"moveModalTitle\":\"WatchList_moveModalTitle__3S7xK\",\"modalFooter\":\"WatchList_modalFooter__1VA4o\",\"moveWatchlist\":\"WatchList_moveWatchlist__3R8fz\",\"disableButton\":\"WatchList_disableButton__RSGq5\",\"lightStarIcon\":\"WatchList_lightStarIcon__3bZ7h\",\"darkStarIcon\":\"WatchList_darkStarIcon__2Nxn3\",\"addInstrumentContainer\":\"WatchList_addInstrumentContainer__1ONrg\",\"detachWatchlistIcon\":\"WatchList_detachWatchlistIcon__2Nzk-\",\"icon\":\"WatchList_icon___FT4J\",\"addToWatchlistIcon\":\"WatchList_addToWatchlistIcon__gJvXr\",\"headerButtonsWrapper\":\"WatchList_headerButtonsWrapper__TY0Ka\",\"watchlistSearchContainer\":\"WatchList_watchlistSearchContainer__1VC3m\",\"hidden\":\"WatchList_hidden__Ez5Rv\",\"searchContainer\":\"WatchList_searchContainer__7Pakd\",\"searchTitle\":\"WatchList_searchTitle__2AIHp\",\"searchInputContainer\":\"WatchList_searchInputContainer__pZqDS\",\"searchInput\":\"WatchList_searchInput__2haiy\",\"openSearchInput\":\"WatchList_openSearchInput__SnhV2\",\"inputIcon\":\"WatchList_inputIcon__3Z-ZO\",\"deleteIcon\":\"WatchList_deleteIcon__1EkTX\",\"searchResults\":\"WatchList_searchResults__1Br1E\",\"hiddenScroll\":\"WatchList_hiddenScroll__2WGCz\",\"boxSearch\":\"WatchList_boxSearch__1AlXL\",\"modifyWatchlistModalBody\":\"WatchList_modifyWatchlistModalBody__1umop\",\"selectWatchlistIcon\":\"WatchList_selectWatchlistIcon__Z2DU6\",\"addInstrumentIcon\":\"WatchList_addInstrumentIcon__HxH5V\",\"toast\":\"WatchList_toast__2gYWR\",\"toastLeft\":\"WatchList_toastLeft__39tqw\",\"toastRight\":\"WatchList_toastRight__ycBCL\",\"toastButton\":\"WatchList_toastButton__2pHl-\",\"saveButton\":\"WatchList_saveButton__w3V2b\",\"inputContainerText\":\"WatchList_inputContainerText__dxhdS\"};","type Class = Function & { prototype: T };\ntype Optional = T | null | undefined;\ntype DefaultConstructor = Class & (new () => T);\n\n/**\n * Interface for dependency resolvers.\n */\nexport interface IResolver {\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns An instance of T if successful, otherwise null.\n\t */\n\tresolve(type: Class): T;\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns All instances of T if successful.\n\t */\n\tresolveAll(type: Class): T[];\n\n\t/**\n\t * Determines whether a dependency of the specified type is registered.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns True if an instance of the specified type is registered, otherwise false.\n\t */\n\tisRegistered(type: Class): boolean;\n}\n\n/**\n * Interface for dependency containers.\n */\nexport interface IDependencyContainer {\n\t/**\n\t * Gets the resolver from the container\n\t */\n\tresolver: IResolver;\n\n\t/**\n\t * Registers an instance of type T to be stored in the container.\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param instance An instance of T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregister(type: Class, instance: T): IDependencyContainer;\n\n\t/**\n\t * Registers an instance of type T to be stored in the container.\n\t * @template T, TImpl\n\t * @param {T} T The type of the instance.\n\t * @param {TImpl} TImpl Type to register for instantiation.\n\t * @param type A class instance of T\n\t * @param typeImpl A class instance of TImpl\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregister(type: Class, typeImpl: DefaultConstructor): IDependencyContainer;\n\n\t/**\n\t * Registers a function which returns an instance of type T\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param factory A function which returns an instance of type T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregister(type: Class, factory: (resolver: IResolver) => T): IDependencyContainer;\n\n\t/**\n\t * Registers a type to instantiate for type T as singleton.\n\t * @template T, TImpl\n\t * @param {T} T The type of the instance.\n\t * @param {TImpl} TImpl Type to register for instantiation.\n\t * @param type A class instance of T\n\t * @param typeImpl A class instance of TImpl\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregisterSingle(type: Class, typeImpl: DefaultConstructor): IDependencyContainer;\n\n\t/**\n\t * Registers a function which returns an instance of type T for singleton.\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param factory A function which returns an instance of type T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregisterSingle(type: Class, factory: (resolver: IResolver) => T): IDependencyContainer;\n}\n\nclass DefaultResolver implements IResolver {\n\tprivate readonly m_resolverDelegate: (type: Class) => IterableIterator;\n\n\tpublic constructor(resolverDelegate: (type: Class) => IterableIterator) {\n\t\tthis.m_resolverDelegate = resolverDelegate;\n\t}\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns An instance of T if successful, otherwise null.\n\t */\n\tpublic resolve(type: Class): T {\n\t\tconst iterator: IterableIterator = this.m_resolverDelegate(type);\n\t\tconst value: T = iterator.next()?.value;\n\t\treturn value;\n\t}\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns All instances of T if successful.\n\t */\n\tpublic resolveAll(type: Class): T[] {\n\t\tconst list: T[] = new Array();\n\t\tconst iterator: IterableIterator = this.m_resolverDelegate(type);\n\t\tlet value: T = iterator.next()?.value();\n\t\twhile (value != null) {\n\t\t\tlist.push(value);\n\t\t\tvalue = iterator.next()?.value();\n\t\t}\n\t\treturn list;\n\t}\n\n\t/**\n\t * Determines whether a dependency of the specified type is registered.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns True if an instance of the specified type is registered, otherwise false.\n\t */\n\tpublic isRegistered(type: Class): boolean {\n\t\treturn this.resolve(type) != null;\n\t}\n}\n\nexport class DependencyContainer implements IDependencyContainer {\n\tprivate readonly m_resolver: IResolver;\n\tprivate readonly m_services: Map>;\n\tprivate readonly m_registeredServices: Map any>>;\n\n\tpublic get resolver(): IResolver {\n\t\treturn this.m_resolver;\n\t}\n\n\tpublic constructor() {\n\t\tthis.m_services = new Map();\n\t\tthis.m_registeredServices = new Map any>>();\n\t\tthis.m_resolver = new DefaultResolver((type: Class) => this.resolveAll(type));\n\t}\n\n\t/**\n\t * Registers an instance of type T to be stored in the container.\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param instance An instance of T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic register(type: Class, instance: T): this;\n\n\t/**\n\t * Registers an instance of type T to be stored in the container.\n\t * @template T, TImpl\n\t * @param {T} T The type of the instance.\n\t * @param {TImpl} TImpl Type to register for instantiation.\n\t * @param type A class instance of T\n\t * @param typeImpl A class instance of TImpl\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic register(type: Class, typeImpl: DefaultConstructor): this;\n\n\t/**\n\t * Registers a function which returns an instance of type T\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param factory A function which returns an instance of type T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic register(type: Class, factory: (resolver: IResolver) => T): this;\n\n\tpublic register(\n\t\ttype: Class,\n\t\timpl: TImpl | DefaultConstructor | ((resolver: IResolver) => TImpl)\n\t): this {\n\t\tif (typeof impl != 'function' && impl instanceof type) {\n\t\t\tif (!this.m_services.has(type)) {\n\t\t\t\tthis.m_services.set(type, new Array());\n\t\t\t}\n\t\t\tconst services = this.m_services.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push(impl);\n\t\t\t}\n\t\t} else if (impl === type || impl instanceof type || (impl as Class).prototype instanceof type) {\n\t\t\tif (!this.m_registeredServices.has(type)) {\n\t\t\t\tthis.m_registeredServices.set(type, new Array<(resolver: IResolver) => TImpl>());\n\t\t\t}\n\t\t\tconst services = this.m_registeredServices.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push((resolver: IResolver) => new (impl as unknown as DefaultConstructor)());\n\t\t\t}\n\t\t} else if (typeof impl == 'function') {\n\t\t\tif (!this.m_registeredServices.has(type)) {\n\t\t\t\tthis.m_registeredServices.set(type, new Array<(resolver: IResolver) => TImpl>());\n\t\t\t}\n\t\t\tconst services = this.m_registeredServices.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push(impl as (resolver: IResolver) => TImpl);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Registers a type to instantiate for type T as singleton.\n\t * @template T, TImpl\n\t * @param {T} T The type of the instance.\n\t * @param {TImpl} TImpl Type to register for instantiation.\n\t * @param type A class instance of T\n\t * @param typeImpl A class instance of TImpl\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic registerSingle(type: Class, typeImpl: DefaultConstructor): this;\n\n\t/**\n\t * Registers a function which returns an instance of type T for singleton.\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param factory A function which returns an instance of type T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic registerSingle(type: Class, factory: (resolver: IResolver) => T): this;\n\n\tpublic registerSingle(\n\t\ttype: Class,\n\t\timpl: DefaultConstructor | ((resolver: IResolver) => TImpl)\n\t): this {\n\t\tif (impl === type || impl instanceof type || (impl as DefaultConstructor).prototype instanceof type) {\n\t\t\tif (!this.m_services.has(type)) {\n\t\t\t\tthis.m_services.set(type, new Array());\n\t\t\t}\n\t\t\tconst services = this.m_services.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push(new (impl as DefaultConstructor)());\n\t\t\t}\n\t\t} else if (typeof impl == 'function') {\n\t\t\tif (!this.m_services.has(type)) {\n\t\t\t\tthis.m_services.set(type, new Array());\n\t\t\t}\n\t\t\tconst services = this.m_services.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push((impl as (resolver: IResolver) => TImpl)(this.m_resolver));\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprivate *resolveAll(type: Class): IterableIterator {\n\t\tif (this.m_services.has(type)) {\n\t\t\tconst list: Array = this.m_services.get(type) as Array;\n\t\t\tfor (const service of list) {\n\t\t\t\tyield service;\n\t\t\t}\n\t\t}\n\n\t\tif (this.m_registeredServices.has(type)) {\n\t\t\tconst list: Array<(resolver: IResolver) => any> = this.m_registeredServices.get(type) as Array<\n\t\t\t\t(resolver: IResolver) => any\n\t\t\t>;\n\t\t\tfor (const serviceFunc of list) {\n\t\t\t\tyield serviceFunc(this.m_resolver);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * A quick access wrapper for IResolver implementations\n */\nexport class Resolver {\n\tprivate static _instance: Optional = null;\n\n\t/**\n\t * Gets the {@link IResolver} instance.\n\t * @returns The resolver instance.\n\t * @throws Error if resolver has not been set.\n\t */\n\tprivate static get instance(): IResolver {\n\t\tif (!this.isSet) {\n\t\t\tthrow new Error('IResolver has not been set. Please set it by calling the Resolver.setResolver method.');\n\t\t}\n\t\treturn this._instance as IResolver;\n\t}\n\n\t/**\n\t * Sets the {@link IResolver} instance.\n\t * @param value The resolver instance to set.\n\t * @throws Error if resolver has already been set - instance can only be set once to prevent mix-ups.\n\t */\n\tprivate static set instance(value: IResolver) {\n\t\tif (this.isSet) {\n\t\t\tthrow new Error(\n\t\t\t\t'IResolver can only be set once. If this was intentional you should call the Resolver.ResetResolver method first.'\n\t\t\t);\n\t\t}\n\t\tthis._instance = value;\n\t}\n\n\t/**\n\t * Gets a value indicating whether the resolver has been set.\n\t * @returns True if the resolver instance has been set, otherwise false\n\t * @see setResolver\n\t */\n\tpublic static get isSet(): boolean {\n\t\treturn this._instance != null;\n\t}\n\n\t/**\n\t * Sets the resolver instance.\n\t * @param resolver An instance of IResolver implementation.\n\t */\n\tpublic static setResolver(resolver: IResolver): void {\n\t\tthis.instance = resolver;\n\t}\n\n\t/**\n\t * Gets the resolver instance.\n\t * @param resolver An instance of IResolver implementation.\n\t */\n\tpublic static getResolver(): IResolver {\n\t\treturn this.instance;\n\t}\n\n\t/**\n\t * Resets the resolver instance.\n\t * @param newInstance An new instance of IResolver implementation.\n\t */\n\tpublic static resetResolver(newInstance: Optional): void {\n\t\tthis._instance = newInstance;\n\t}\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns An instance of T if successful, otherwise null.\n\t */\n\tpublic static resolve(type: Class): T {\n\t\treturn this.instance.resolve(type);\n\t}\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns All instances of T if successful, otherwise null.\n\t */\n\tpublic static resolveAll(type: Class): T[] {\n\t\treturn this.instance.resolveAll(type);\n\t}\n\n\t/**\n\t * Determines whether a dependency of the specified type is registered.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns True if an instance of the specified type is registered, otherwise false.\n\t */\n\tpublic static isRegistered(type: Class): boolean {\n\t\treturn this.instance.isRegistered(type);\n\t}\n}\n","import {create} from './create';\n\nimport createSelectors from './createSelectors';\n\nexport interface StatusStoreValues {\n checkApplicationStatus: any;\n userProfileInfo: any;\n checkAccountStatus: any;\n infoMessage: string;\n showModal: boolean;\n status: string | undefined;\n\n hasLiveAccount: boolean | undefined;\n hasDemoAccount: boolean | undefined;\n hasAnyAccount: boolean | undefined;\n\n permissions: {\n accountMenuAction: string | boolean | undefined;\n accountMenuLabel: string | undefined;\n marginLevelAction: string | boolean | undefined;\n marginLevelLabel: string | undefined;\n signalsAction: string | boolean | undefined;\n tradeButtons: string | boolean | undefined;\n mainMenuAction: string | boolean | undefined;\n reports: string | boolean | undefined;\n addAccount: string | boolean | undefined;\n manageFunds: string | boolean | undefined;\n tradersGym: boolean | undefined;\n portalPage: string | boolean | undefined;\n notificationBell: boolean | undefined;\n };\n canTrade: boolean;\n tradingAccount: any;\n isTraderGymActive: boolean;\n\n unlockGym: boolean;\n}\n\nexport const initialStateAccountStatusStore: StatusStoreValues = {\n checkApplicationStatus: {},\n userProfileInfo: {},\n checkAccountStatus: {},\n infoMessage: '',\n showModal: false,\n status: 'EMPTY',\n hasLiveAccount: undefined,\n hasDemoAccount: undefined,\n hasAnyAccount: undefined,\n permissions: {\n accountMenuAction: undefined,\n accountMenuLabel: undefined,\n marginLevelAction: undefined,\n marginLevelLabel: undefined,\n signalsAction: undefined,\n tradeButtons: undefined,\n mainMenuAction: undefined,\n reports: undefined,\n addAccount: undefined,\n manageFunds: undefined,\n tradersGym: undefined,\n portalPage: undefined,\n notificationBell: undefined,\n },\n canTrade: false,\n tradingAccount: {},\n isTraderGymActive: false,\n unlockGym: false,\n};\n\nexport interface StatusStoreActions {\n setHasLiveAccount: (hasLiveAccount: boolean) => void;\n setHasDemoAccount: (hasDemoAccount: boolean) => void;\n setCheckApplicationStatus: (response: any) => void;\n setStatus: (newStatus: string) => void;\n setUserProfileInfo: (user: string) => void;\n setCheckAccountStatus: (response: any) => void;\n\n setInfoMessage: (infoMessageToChange: string) => void;\n setPermissions: (permission: any) => void;\n setShowModal: (toShowModal: boolean) => void;\n setTradingAccount: (tradingAccount: any) => void;\n setIsTraderGymActive: (isActive: boolean) => void;\n setCanTrade: (canTrade: boolean) => void;\n setShowAccountStatus: () => void;\n setUnlockGym: (unlockGym: boolean) => void;\n reset: () => void;\n}\n\nexport type StatusStore = StatusStoreValues & StatusStoreActions;\n\nconst accountStatusStore = create()((set: any) => ({\n ...initialStateAccountStatusStore,\n\n setCheckApplicationStatus: (response) =>\n set(() => ({\n checkApplicationStatus: response,\n })),\n setStatus: (newStatus) => set(() => ({status: newStatus ? newStatus : 'EMPTY'})),\n setIsTraderGymActive: (isActive) => set(() => ({isTraderGymActive: isActive})),\n setUserProfileInfo: (user) => set(() => ({userProfileInfo: user})),\n setCheckAccountStatus: (response) => {\n let hasLiveAccount = false;\n let hasAnyAccount = false;\n let hasDemoAccount = false;\n\n if (response.length > 0) {\n hasAnyAccount = true;\n }\n if (response.length > 0) {\n response.forEach((account: any) => {\n set(() => ({tradingAccount: account}));\n if (account.account.type === 'LIVE') {\n hasLiveAccount = true;\n }\n if (account.account.type === 'DEMO') {\n hasDemoAccount = true;\n }\n if (hasLiveAccount && hasDemoAccount) return;\n });\n }\n set(() => ({\n checkAccountStatus: response,\n hasLiveAccount,\n hasDemoAccount,\n hasAnyAccount,\n }));\n },\n\n setHasLiveAccount: (hasLiveAccount: boolean) => set({hasLiveAccount}),\n setHasDemoAccount: (hasDemoAccount: boolean) => set({hasDemoAccount}),\n setInfoMessage: (infoMessageToChange) => set(() => ({infoMessage: infoMessageToChange})),\n setPermissions: (permission) => set(() => ({permissions: permission})),\n setShowModal: (toShowModal) => set(() => ({showModal: toShowModal})),\n setTradingAccount: (tradingAccount) => set(() => ({tradingAccount: tradingAccount})),\n setShowAccountStatus: () =>\n set((state: StatusStore) => ({\n showModal: true,\n infoMessage: state.status,\n })),\n setCanTrade: (canTrade) =>\n set(() => ({\n canTrade: canTrade,\n })),\n\n setUnlockGym: (unlockGym: boolean) => set({unlockGym}),\n reset: () => set({...initialStateAccountStatusStore}),\n}));\n\nexport default createSelectors(accountStatusStore);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"1\":\"InstrumentSearch_1__ru3pr\",\"2\":\"InstrumentSearch_2__3kB3G\",\"3\":\"InstrumentSearch_3__6QyTJ\",\"textCenter\":\"InstrumentSearch_textCenter__2WSjY\",\"textBold\":\"InstrumentSearch_textBold__TOl09\",\"hidden\":\"InstrumentSearch_hidden__2szF3\",\"selectedSearchCategory\":\"InstrumentSearch_selectedSearchCategory__13_zI\",\"hideSelectedSearchCategory\":\"InstrumentSearch_hideSelectedSearchCategory__3ICq5\",\"searchContainer\":\"InstrumentSearch_searchContainer__1KzWa\",\"menuPanel\":\"InstrumentSearch_menuPanel__3Pheo\",\"groupPanel\":\"InstrumentSearch_groupPanel__pNTEH\",\"instrumentPanel\":\"InstrumentSearch_instrumentPanel__aEi3W\",\"watchlistPanel\":\"InstrumentSearch_watchlistPanel__ZevE-\",\"itemContainer\":\"InstrumentSearch_itemContainer__3U770\",\"itemContainerHeader\":\"InstrumentSearch_itemContainerHeader__2LqZV\",\"itemContainerForm\":\"InstrumentSearch_itemContainerForm__1ubcp\",\"itemContainerFooter\":\"InstrumentSearch_itemContainerFooter__1NTR1\",\"maxedContainer\":\"InstrumentSearch_maxedContainer__3hLl7\",\"itemContent\":\"InstrumentSearch_itemContent__351_k\",\"errorItemContent\":\"InstrumentSearch_errorItemContent__7l47w\",\"selected\":\"InstrumentSearch_selected__1z6sW\",\"selectionIndicator\":\"InstrumentSearch_selectionIndicator__10t-6\",\"watchlistAddRemoveIcon\":\"InstrumentSearch_watchlistAddRemoveIcon__3shOH\",\"maxedItemContent\":\"InstrumentSearch_maxedItemContent__158WW\",\"limitMessage\":\"InstrumentSearch_limitMessage__12_gw\",\"hide\":\"InstrumentSearch_hide__eAiLI\",\"watchlistCell\":\"InstrumentSearch_watchlistCell__3VR7v\",\"content\":\"InstrumentSearch_content__1YJ76\",\"groupIcon\":\"InstrumentSearch_groupIcon__2aXsJ\",\"watchlistIcon\":\"InstrumentSearch_watchlistIcon__1-Zci\",\"existsInWatchlistIcon\":\"InstrumentSearch_existsInWatchlistIcon__7d14N\",\"addToWatchlistIcon\":\"InstrumentSearch_addToWatchlistIcon__1PGxf\",\"disabledIcon\":\"InstrumentSearch_disabledIcon__2n9eC\",\"createWatchlistIcon\":\"InstrumentSearch_createWatchlistIcon__2wArT\",\"commodities\":\"InstrumentSearch_commodities__1eHsF\",\"crypto\":\"InstrumentSearch_crypto__2IvpO\",\"cryptosb\":\"InstrumentSearch_cryptosb__1ICud\",\"cfd\":\"InstrumentSearch_cfd__E5-7u\",\"etfs\":\"InstrumentSearch_etfs__3dU-O\",\"energy\":\"InstrumentSearch_energy__2bGeo\",\"energysb\":\"InstrumentSearch_energysb__3eryu\",\"forex\":\"InstrumentSearch_forex__1ZZiV\",\"forexsb\":\"InstrumentSearch_forexsb__3falF\",\"indices\":\"InstrumentSearch_indices__3tBKK\",\"indicessb\":\"InstrumentSearch_indicessb__1q3Wi\",\"metals\":\"InstrumentSearch_metals__1fb8S\",\"metalssb\":\"InstrumentSearch_metalssb__5u9Ra\",\"stocks\":\"InstrumentSearch_stocks__1pGdf\",\"shares\":\"InstrumentSearch_shares__qc0ur\",\"headerContainer\":\"InstrumentSearch_headerContainer__2T2V5\",\"watchlistName\":\"InstrumentSearch_watchlistName__QMu0m\",\"itemContentHeader\":\"InstrumentSearch_itemContentHeader__1VfwV\",\"addIcon\":\"InstrumentSearch_addIcon__2xiGC\",\"errorAddIcon\":\"InstrumentSearch_errorAddIcon__2j6IS\",\"createWatchlistContainer\":\"InstrumentSearch_createWatchlistContainer__3c2ea\",\"createWatchlist\":\"InstrumentSearch_createWatchlist__2NzuL\",\"inputContainer\":\"InstrumentSearch_inputContainer__lcIWa\",\"errorInput\":\"InstrumentSearch_errorInput__3wMkI\",\"actionButtonContainer\":\"InstrumentSearch_actionButtonContainer__3i8Aa\",\"cancel\":\"InstrumentSearch_cancel__1sBpN\",\"submit\":\"InstrumentSearch_submit__1tWK9\",\"createWatchlistFooterContainer\":\"InstrumentSearch_createWatchlistFooterContainer__1jM7V\",\"createFooter\":\"InstrumentSearch_createFooter__1TAQR\",\"textContainer\":\"InstrumentSearch_textContainer__1Jifg\",\"createErrorMessage\":\"InstrumentSearch_createErrorMessage__Ru2Pf\",\"errorCreate\":\"InstrumentSearch_errorCreate__2UWQS\",\"Popup\":\"InstrumentSearch_Popup__1C48Y\",\"displayInput\":\"InstrumentSearch_displayInput__2TA8J\",\"inputExlpanation\":\"InstrumentSearch_inputExlpanation__2mPYJ\",\"errorMessage\":\"InstrumentSearch_errorMessage__1MmgG\",\"maxWatchlistError\":\"InstrumentSearch_maxWatchlistError__1yPhg\",\"matchText\":\"InstrumentSearch_matchText__3G1or\",\"emptyState\":\"InstrumentSearch_emptyState__2zHVr\",\"searchIcon\":\"InstrumentSearch_searchIcon__29Ose\",\"emptyStateText\":\"InstrumentSearch_emptyStateText__mJO1Z\",\"emptyStateSearchString\":\"InstrumentSearch_emptyStateSearchString__1Bada\",\"addToWatchlistContainer\":\"InstrumentSearch_addToWatchlistContainer__z2fdF\",\"instrumentContainer\":\"InstrumentSearch_instrumentContainer__1wxr8\",\"instrumentFullNameTrim\":\"InstrumentSearch_instrumentFullNameTrim__Xm9PC\",\"badge\":\"InstrumentSearch_badge__3e224\",\"categoryTitle\":\"InstrumentSearch_categoryTitle__1zN7t\",\"instrumentText\":\"InstrumentSearch_instrumentText__1hxPZ\",\"instrumentSymbol\":\"InstrumentSearch_instrumentSymbol__3uj3I\",\"instrumentFullName\":\"InstrumentSearch_instrumentFullName__2aTh2\",\"tableRow\":\"InstrumentSearch_tableRow__22KEJ\",\"selectWatchlistName\":\"InstrumentSearch_selectWatchlistName__1wVbC\",\"watchlists\":\"InstrumentSearch_watchlists__QUaQl\",\"existsInWatchlist\":\"InstrumentSearch_existsInWatchlist__2dKGJ\"};","import { create } from 'zustand';\nimport createSelectors from './createSelectors';\n\ninterface TradingViewStore {\n\tisSearchOpen: boolean;\n\tfirstPressedButton: string;\n\tcompSymbol: string;\n\tisCompSymbolMode: boolean;\n\tisPreselectedInstrument: boolean;\n\topenOrderInformation: boolean;\n\tticketLayout: string;\n\t// showTradeButton: boolean;\n\tdockStylesTicket: boolean;\n\thaveSearchForPositions: boolean;\n\tsetDockStylesTicket: (value: boolean) => void;\n\tsetIsPreselectedInstrument: (value: boolean) => void;\n\tsetOpenOrderInformation: (value: boolean) => void;\n\tsetIsSearchOpen: (value: boolean) => void;\n\tsetFirstPressedButton: (value: string) => void;\n\tsetCompSymbol: (value: string) => void;\n\tsetIsCompSymbolMode: (value: boolean) => void;\n\tsetTicketLayout: (value: string) => void;\n\tsetHaveSearchForPositions: (value: boolean) => void;\n\t// setShowTradeButton: (value: boolean) => void;\n}\n\nconst TradingViewStore = create((set) => ({\n\tisSearchOpen: false,\n\tfirstPressedButton: '',\n\tisPreselectedInstrument: false,\n\tcompSymbol: '',\n\tisCompSymbolMode: false,\n\topenOrderInformation: false,\n\tticketLayout: 'Dock',\n\t// showTradeButton: false,\n\tdockStylesTicket: false,\n\thaveSearchForPositions: false,\n\tsetDockStylesTicket: (value: boolean) => set((state) => ({ dockStylesTicket: value })),\n\tsetIsPreselectedInstrument: (value: boolean) => set((state) => ({ isPreselectedInstrument: value })),\n\tsetOpenOrderInformation: (value: boolean) => set((state) => ({ openOrderInformation: value })),\n\tsetIsSearchOpen: (value: boolean) => set((state) => ({ isSearchOpen: value })),\n\tsetIsCompSymbolMode: (value: boolean) => set((state) => ({ isCompSymbolMode: value })),\n\tsetFirstPressedButton: (value: string) => set((state) => ({ firstPressedButton: value })),\n\tsetCompSymbol: (value: string) => set((state) => ({ compSymbol: value })),\n\tsetTicketLayout: (value: string) => set((state) => ({ ticketLayout: value })),\n\tsetHaveSearchForPositions: (value: boolean) => set((state) => ({ haveSearchForPositions: value })),\n\t// setShowTradeButton: (value: boolean) => set((state) => ({ showTradeButton: value })),\n}));\n\nexport default createSelectors(TradingViewStore);\n","import { createContext } from 'react';\n\nimport RfpGateway from '../gateways/RfpGateway/RfpGateway';\nimport { Optional } from '../utils/functions/TypeUtils';\n\nconst RfpGatewayContext = createContext>(undefined);\n\nexport default RfpGatewayContext;\n","import { useEffect, useRef } from 'react';\nimport { Optional } from '../functions/Nullable';\nimport { default as PromiseFactory } from '../functions/PromiseFactory';\n\nclass Hooks {\n\tpublic static usePromiseFactory(): PromiseFactory;\n\tpublic static usePromiseFactory(promiseFactory: PromiseFactory): PromiseFactory;\n\tpublic static usePromiseFactory(promiseFactory?: Optional): PromiseFactory {\n\t\tconst promiseFactoryRef = useRef>();\n\t\tif (promiseFactoryRef.current == null) {\n\t\t\tpromiseFactoryRef.current = promiseFactory || new PromiseFactory();\n\t\t}\n\t\tuseEffect(() => {\n\t\t\treturn () => {\n\t\t\t\tpromiseFactoryRef.current = null;\n\t\t\t};\n\t\t}, []);\n\t\treturn promiseFactoryRef.current!;\n\t}\n}\n\nexport default Hooks.usePromiseFactory;\n","import React, { useContext } from 'react';\n\nimport { Modal as BootstrapModal, ModalProps } from 'react-bootstrap';\n\nimport AppContext from '../../contexts/AppContext';\n\n/**\n * Wrapper component that allows you to stylize the Bootstrap Modal Component\n */\nconst Modal: React.FC = ({ children, ...rest }: ModalProps) => {\n\tconst { appTheme, isJapanAccount } = useContext(AppContext);\n\trest.dialogClassName = `${rest.dialogClassName || ''} ${appTheme} ${isJapanAccount ? 'japanTheme' : ''}`;\n\n\treturn {children};\n};\n\nexport default Object.assign(Modal, {\n\tBody: BootstrapModal.Body,\n\tHeader: BootstrapModal.Header,\n\tTitle: BootstrapModal.Title,\n\tFooter: BootstrapModal.Footer,\n\tDialog: BootstrapModal.Dialog,\n\tTRANSITION_DURATION: BootstrapModal.TRANSITION_DURATION,\n\tBACKDROP_TRANSITION_DURATION: BootstrapModal.BACKDROP_TRANSITION_DURATION,\n});\n","import { TradingPositionSide, TradingPositionType } from '../../utils/functions/enums';\n\nimport { ActionType, Order, OrderStoreValues } from './orderStore.types';\n\nconst initialOrder: Order = {\n\taccountId: undefined,\n\tside: TradingPositionSide.Buy,\n\ttype: TradingPositionType.Market,\n\tisPreservedValue: false,\n\tdate: 'EXP_GTC',\n\tquantity: undefined,\n\tamountInfo: {\n\t\tamount: undefined,\n\t\terror: undefined,\n\t\tmax: undefined,\n\t\tmin: undefined,\n\t\trndLot: undefined,\n\t\tstep: undefined,\n\t},\n\topenPriceInfo: {\n\t\terror: undefined,\n\t\tisActive: false,\n\t\tisTriggered: false,\n\t\tpotentialProfitLoss: undefined,\n\t\tprice: undefined,\n\t},\n\tstopLossInfo: {\n\t\terror: undefined,\n\t\tisActive: false,\n\t\tisTriggered: false,\n\t\tpotentialProfitLoss: undefined,\n\t\tprice: undefined,\n\t},\n\ttakeProfitInfo: {\n\t\terror: undefined,\n\t\tisActive: false,\n\t\tisTriggered: false,\n\t\tpotentialProfitLoss: undefined,\n\t\tprice: undefined,\n\t},\n\tlimitsOnly: undefined,\n\tisPositionDraggingDisabled: false,\n\tstopLossType: 'NORMAL',\n};\n\nexport const initialState: OrderStoreValues = {\n\tcurrent: initialOrder,\n\taction: ActionType.unknown,\n\ttradingPosition: undefined,\n\ttradingInstrument: undefined,\n\tcurrentQuote: undefined,\n\tmarketItem: undefined,\n\tisSignalOrder: false,\n};\n","import { immer } from 'zustand/middleware/immer';\n\nimport {\n\tEditOrderRequest,\n\tEditPositionRequest,\n\tInstrument,\n\tMarketItem,\n\tNewOrderRequest,\n\tNewPositionRequest,\n\tPriceQuote,\n\tTradingPosition,\n\tTradingPositionState,\n} from '../../gateways/RfpGateway/rfp.types';\n\nimport {\n\tstopLossTypes,\n\tTradingPositionLimitType,\n\tTradingPositionSide,\n\tTradingPositionType,\n} from '../../utils/functions/enums';\n\nimport { create } from '../create';\nimport createSelectors from '../createSelectors';\n\nimport { GymTradingPosition } from '../../pages/TradersGym/Positions/GymTradingPosition';\n\nimport { initialState } from './orderStore.initial';\nimport {\n\tActionType,\n\tIAmountInfo,\n\tIPriceInfo,\n\tITradeObjProps,\n\tOrder,\n\tOrderStore,\n\tOrderStoreValues,\n} from './orderStore.types';\nimport { compareLimits } from './orderStore.helpers';\nimport { getMarketItemPipSize } from '../../utils/functions/calculations';\n\nconst orderStore = create()(\n\timmer((set: any, get: any) => ({\n\t\t...initialState,\n\t\treset: () =>\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\treturn (state = initialState);\n\t\t\t}),\n\n\t\tresetExceptSide: () =>\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tconst { side } = state.current;\n\n\t\t\t\tstate = { ...initialState };\n\t\t\t\tstate.current = { ...state.current, side };\n\n\t\t\t\treturn state;\n\t\t\t}),\n\n\t\tsetAction: (action: ActionType) => {\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tstate.action = action;\n\t\t\t});\n\t\t},\n\n\t\tsetTradingPosition: (tradingPosition: TradingPosition | undefined) => {\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tstate.tradingPosition = tradingPosition ? { ...tradingPosition } : tradingPosition;\n\t\t\t});\n\t\t},\n\n\t\tsetTradingInstrument: (tradingInstrument: Instrument | undefined) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.tradingInstrument = tradingInstrument ? { ...tradingInstrument } : tradingInstrument;\n\t\t\t});\n\t\t},\n\n\t\tsetCurrentQuote: (currentQuote: PriceQuote | undefined) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.currentQuote = currentQuote ? { ...currentQuote } : currentQuote;\n\t\t\t});\n\t\t},\n\n\t\tsetMarketItem: (marketItem: MarketItem | undefined) => {\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\t// create object copy to not be passed by reference\n\n\t\t\t\tstate.marketItem = marketItem ? { ...marketItem } : marketItem;\n\t\t\t});\n\t\t},\n\n\t\tsetTradeProps: (values: Order) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current = { ...state.current, ...values };\n\t\t\t});\n\t\t},\n\n\t\tsetAmountInfo: (amountInfo: IAmountInfo) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current.amountInfo = { ...state.current.amountInfo, ...amountInfo };\n\t\t\t});\n\t\t},\n\n\t\tsetOpenPriceInfo: (openPriceInfo: IPriceInfo) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current.openPriceInfo = { ...state.current.openPriceInfo, ...openPriceInfo };\n\t\t\t});\n\t\t},\n\n\t\tsetTakeProfitInfo: (takeProfitInfo: IPriceInfo) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current.takeProfitInfo = { ...state.current.takeProfitInfo, ...takeProfitInfo };\n\t\t\t});\n\t\t},\n\n\t\tsetStopLossInfo: (stopLossInfo: IPriceInfo) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current.stopLossInfo = { ...state.current.stopLossInfo, ...stopLossInfo };\n\t\t\t});\n\t\t},\n\n\t\tsetIsSignalOrder: (isSignalOrder: boolean) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.isSignalOrder = isSignalOrder;\n\t\t\t});\n\t\t},\n\n\t\tfillStoreFromPosition: (\n\t\t\ttradingPosition: TradingPosition,\n\t\t\tlimitsType?: TradingPositionLimitType[],\n\t\t\tisPositionDraggingDisabled?: boolean,\n\t\t\tpips?: { takeProfitPips: number; stopLossPips: number }\n\t\t) => {\n\t\t\tconst position = get().tradingPosition;\n\t\t\tconst limitsOnly = get().current;\n\t\t\tif (position && tradingPosition.posId === position.posId && compareLimits(limitsOnly, limitsType)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\treturn (state = { ...initialState });\n\t\t\t});\n\t\t\tconst { marketItem, ...restTradingPosition } = tradingPosition;\n\n\t\t\tif (tradingPosition instanceof GymTradingPosition) {\n\t\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\t\tstate.tradingPosition = tradingPosition;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\t\tstate.tradingPosition = { ...restTradingPosition };\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (state.tradingPosition !== undefined) {\n\t\t\t\t\tstate.tradingPosition.marketItem = marketItem ? { ...marketItem } : undefined;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tstate.marketItem = tradingPosition.marketItem ? { ...tradingPosition.marketItem } : tradingPosition.marketItem;\n\t\t\t});\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tstate.current = {\n\t\t\t\t\t...state.current,\n\t\t\t\t\tside: tradingPosition.side,\n\t\t\t\t\ttype: tradingPosition.type,\n\t\t\t\t\tdate: tradingPosition.eT,\n\t\t\t\t\tlimitsOnly: limitsType,\n\t\t\t\t\tisPositionDraggingDisabled: isPositionDraggingDisabled,\n\t\t\t\t};\n\t\t\t});\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (state.current.amountInfo !== undefined) {\n\t\t\t\t\tstate.current.amountInfo.amount = tradingPosition.qty;\n\t\t\t\t}\n\t\t\t});\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (tradingPosition.state === TradingPositionState.open) {\n\t\t\t\t\tstate.current.openPriceInfo = { ...state.current.openPriceInfo, price: tradingPosition.oP, isActive: true };\n\t\t\t\t} else if (tradingPosition.state === TradingPositionState.pending) {\n\t\t\t\t\tstate.current.openPriceInfo = { ...state.current.openPriceInfo, price: tradingPosition.prc, isActive: true };\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tlet stopLoss = tradingPosition.sl ? (isNaN(tradingPosition.sl) ? undefined : tradingPosition.sl) : undefined;\n\n\t\t\tlet takeProfit = tradingPosition.tp ? (isNaN(tradingPosition.tp) ? undefined : tradingPosition.tp) : undefined;\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (takeProfit || limitsType?.includes(TradingPositionLimitType.TakeProfit)) {\n\t\t\t\t\tif (!takeProfit && tradingPosition.currentPrice && pips?.takeProfitPips) {\n\t\t\t\t\t\tconst mul = tradingPosition.side === TradingPositionSide.Buy ? 1 : -1;\n\t\t\t\t\t\ttakeProfit = tradingPosition.currentPrice + pips.takeProfitPips * getMarketItemPipSize(marketItem) * mul;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.current.takeProfitInfo = {\n\t\t\t\t\t\t...state.current.takeProfitInfo,\n\t\t\t\t\t\tisActive: true,\n\t\t\t\t\t\tprice: takeProfit,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tstate.current.takeProfitInfo = {\n\t\t\t\t\t\t...state.current.takeProfitInfo,\n\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\tprice: undefined,\n\t\t\t\t\t\tpotentialProfitLoss: undefined,\n\t\t\t\t\t\terror: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (stopLoss || limitsType?.includes(TradingPositionLimitType.StopLoss)) {\n\t\t\t\t\tif (!stopLoss && tradingPosition.currentPrice && pips?.stopLossPips) {\n\t\t\t\t\t\tconst mul = tradingPosition.side === TradingPositionSide.Buy ? 1 : -1;\n\t\t\t\t\t\tstopLoss = tradingPosition.currentPrice - pips.stopLossPips * getMarketItemPipSize(marketItem) * mul;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.current.stopLossInfo = { ...state.current.stopLossInfo, isActive: true, price: stopLoss };\n\t\t\t\t} else {\n\t\t\t\t\tstate.current.stopLossInfo = {\n\t\t\t\t\t\t...state.current.stopLossInfo,\n\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\tprice: undefined,\n\t\t\t\t\t\tpotentialProfitLoss: undefined,\n\t\t\t\t\t\terror: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tcreateTradeRequestObject: (\n\t\t\tpips?: { takeProfitPips: number; stopLossPips: number },\n\t\t\tcurrentPriceQuote?: PriceQuote\n\t\t) => {\n\t\t\tlet tradeObject: any;\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tconst { tradingPosition, current } = state;\n\n\t\t\t\tconst { type } = state.current;\n\t\t\t\tconst editState =\n\t\t\t\t\ttradingPosition?.state === TradingPositionState.open ||\n\t\t\t\t\ttradingPosition?.state === TradingPositionState.pending;\n\n\t\t\t\tconst isMarketOrder = type === TradingPositionType.Market;\n\n\t\t\t\tlet stopLevel = null;\n\t\t\t\tlet limitLevel = null;\n\t\t\t\tlet trailingStop = 0;\n\n\t\t\t\tif (current.stopLossInfo?.isActive && current.stopLossInfo?.price) {\n\t\t\t\t\tstopLevel = current.stopLossInfo?.price;\n\t\t\t\t\tif (current.stopLossType === stopLossTypes.Trailing && pips) {\n\t\t\t\t\t\tif (isMarketOrder || tradingPosition?.state === TradingPositionState.open) {\n\t\t\t\t\t\t\tlet currentPrice = 0;\n\t\t\t\t\t\t\tif (editState) {\n\t\t\t\t\t\t\t\tif (current.side === TradingPositionSide.Buy) {\n\t\t\t\t\t\t\t\t\tcurrentPrice = currentPriceQuote?.b ?? 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcurrentPrice = currentPriceQuote?.a ?? 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (current.side === TradingPositionSide.Buy) {\n\t\t\t\t\t\t\t\t\tcurrentPrice = currentPriceQuote?.a ?? 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcurrentPrice = currentPriceQuote?.b ?? 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttrailingStop = Math.abs(currentPrice - stopLevel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst openPrice = current.openPriceInfo?.price ?? 0;\n\t\t\t\t\t\t\ttrailingStop = Math.abs(openPrice - stopLevel);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (current.takeProfitInfo?.isActive && current.takeProfitInfo?.price) {\n\t\t\t\t\tlimitLevel = current.takeProfitInfo?.price;\n\t\t\t\t}\n\n\t\t\t\tlet commonProps: ITradeObjProps = {\n\t\t\t\t\tstopLevel,\n\t\t\t\t\tlimitLevel,\n\t\t\t\t\ttrailingStop,\n\t\t\t\t\treqId: +new Date().getSeconds(),\n\t\t\t\t\tacctId: current.accountId!,\n\t\t\t\t};\n\n\t\t\t\tif (editState) {\n\t\t\t\t\t// edit order / position\n\t\t\t\t\tif (current.limitsOnly) {\n\t\t\t\t\t\t// modify take profit and stop loss for open positions\n\t\t\t\t\t\tif (tradingPosition?.state === TradingPositionState.open) {\n\t\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\t\tposId: tradingPosition.posId,\n\t\t\t\t\t\t\t} as EditPositionRequest;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// modify take profit and stop loss for pending orders\n\t\t\t\t\t\tif (tradingPosition?.state === TradingPositionState.pending) {\n\t\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\t\tposId: tradingPosition.posId,\n\t\t\t\t\t\t\t\tpriceLevel: tradingPosition.prc,\n\t\t\t\t\t\t\t\texpiration: tradingPosition.eT,\n\t\t\t\t\t\t\t} as EditOrderRequest;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// modify a pending order\n\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\tposId: tradingPosition?.posId,\n\t\t\t\t\t\t\ttradeSide: current.side,\n\t\t\t\t\t\t\ttradeSize: current.amountInfo?.amount ?? 0,\n\t\t\t\t\t\t\ttradeType: current.type,\n\t\t\t\t\t\t\tpriceLevel: !isMarketOrder ? current.openPriceInfo?.price : null,\n\t\t\t\t\t\t\texpiration: !isMarketOrder ? current.date : null,\n\t\t\t\t\t\t} as EditOrderRequest;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!isMarketOrder) {\n\t\t\t\t\t\t// new order\n\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\tcode: state.marketItem?.code,\n\t\t\t\t\t\t\tfeedId: state.marketItem?.feedId,\n\t\t\t\t\t\t\ttradeSide: current.side,\n\t\t\t\t\t\t\ttradeSize: current.amountInfo?.amount,\n\t\t\t\t\t\t\ttradeType: !isMarketOrder ? current.type : null,\n\t\t\t\t\t\t\tpriceLevel: !isMarketOrder ? current.openPriceInfo?.price : null,\n\t\t\t\t\t\t\texpiration: !isMarketOrder ? current.date : null,\n\t\t\t\t\t\t\tlotAmountQty: current.amountInfo?.amount,\n\t\t\t\t\t\t} as NewOrderRequest;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// new position\n\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\tcode: state.marketItem?.code,\n\t\t\t\t\t\t\tfeedId: state.marketItem?.feedId,\n\t\t\t\t\t\t\ttradeSide: current.side,\n\t\t\t\t\t\t\ttradeSize: current.amountInfo?.amount,\n\t\t\t\t\t\t\tlotAmountQty: current.amountInfo?.amount,\n\t\t\t\t\t\t} as NewPositionRequest;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn tradeObject;\n\t\t},\n\t}))\n);\n\nexport default createSelectors(orderStore);\n","import { TradingPositionLimitType } from '../../utils/functions/enums';\n\nexport const compareLimits = (a?: TradingPositionLimitType[], b?: TradingPositionLimitType[]) => {\n\tif (a && b && a.length === b.length) {\n\t\tfor (var i = 0; i < a.length; i++) {\n\t\t\tif (!b.includes(a[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n};\n","import React from 'react';\nimport cn from 'classnames';\nimport { TFunctionResult } from 'i18next';\nimport { useTranslation } from 'react-i18next';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport WtrPopup from '../../../../../../components/WtrPopup/WtrPopup';\n\nimport styles from './InfoElement.module.scss';\nimport tradingViewStore from '../../../../../../../store/tradingViewStore';\nimport { TicketLayout } from '../../../../../../../utils/functions/enums';\n\ninterface InfoElementProps {\n\ttitle: string;\n\tvalue: string | number | TFunctionResult;\n\tsetRed?: boolean;\n\tsetRedPL?: boolean;\n\tsetRedPip?: boolean;\n\tid?: string;\n\tshowMarginTooltip?: boolean;\n\tclassName?: string;\n\tvalueClassName?: string;\n\tisArabic?: boolean;\n}\n\nconst InfoElement = ({\n\ttitle,\n\tvalue,\n\tsetRed,\n\tsetRedPL,\n\tsetRedPip,\n\tid,\n\tshowMarginTooltip,\n\tclassName,\n\tvalueClassName,\n\tisArabic,\n}: InfoElementProps) => {\n\tconst { t } = useTranslation();\n\tconst dockStylesTicket = tradingViewStore.use.dockStylesTicket();\n\n\tconst applyColorStyling = () => {\n\t\tif (setRed || setRedPL || setRedPip) {\n\t\t\treturn styles.red;\n\t\t} else if (!setRed && id && !setRedPip) {\n\t\t\treturn styles.green;\n\t\t} else {\n\t\t\treturn styles.value;\n\t\t}\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{showMarginTooltip && (\n\t\t\t\t\t{t('wtr:INFO_MARGIN')}
}\n\t\t\t\t\t\ttrigger={}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{value}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default InfoElement;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalHeader\":\"ClosePositionTicket_modalHeader__rPZjz\",\"modalBody\":\"ClosePositionTicket_modalBody__22bgq\",\"modalFooter\":\"ClosePositionTicket_modalFooter__63i3e\",\"orderQuantityLabels\":\"ClosePositionTicket_orderQuantityLabels__2k082\",\"modalOrderQuantityLabels\":\"ClosePositionTicket_modalOrderQuantityLabels__3ogum\",\"header\":\"ClosePositionTicket_header__34o3F\",\"modalButtons\":\"ClosePositionTicket_modalButtons__1xTJ0\",\"closeModal\":\"ClosePositionTicket_closeModal__2y7Ha\",\"modalButton\":\"ClosePositionTicket_modalButton__gkQzi\",\"modalInfoPosition\":\"ClosePositionTicket_modalInfoPosition__p049M\",\"ticketInfo\":\"ClosePositionTicket_ticketInfo__1A0cy\",\"ticketInfoModal\":\"ClosePositionTicket_ticketInfoModal__35VZF\",\"closeContainer\":\"ClosePositionTicket_closeContainer__1EIYZ\",\"closeContainerSummary\":\"ClosePositionTicket_closeContainerSummary__2y0j_\",\"closeFields\":\"ClosePositionTicket_closeFields__1xd9t\",\"iconContainer\":\"ClosePositionTicket_iconContainer__1RsaQ\",\"icon\":\"ClosePositionTicket_icon__4CWkT\",\"orderModalFooter\":\"ClosePositionTicket_orderModalFooter__2ReaF\",\"modalPartialButtons\":\"ClosePositionTicket_modalPartialButtons__1cF5i\",\"undockedPartialButtons\":\"ClosePositionTicket_undockedPartialButtons__1d5gm\",\"closeTicket\":\"ClosePositionTicket_closeTicket__3In-_\",\"amountInput\":\"ClosePositionTicket_amountInput__3hCYK\",\"disableButton\":\"ClosePositionTicket_disableButton__3J0Xe\",\"errorValidation\":\"ClosePositionTicket_errorValidation__2asV-\",\"invalidRemainder\":\"ClosePositionTicket_invalidRemainder__28TVU\",\"modalContainerSummary\":\"ClosePositionTicket_modalContainerSummary__1CxNW\",\"closeContainerModal\":\"ClosePositionTicket_closeContainerModal__Fg5Ej\",\"positive\":\"ClosePositionTicket_positive__D9ibq\",\"negative\":\"ClosePositionTicket_negative__1Vm3e\",\"notificationCustomError\":\"ClosePositionTicket_notificationCustomError__21kkM\",\"notificationCustomIcon\":\"ClosePositionTicket_notificationCustomIcon__3Zkaw\",\"notificationTitle\":\"ClosePositionTicket_notificationTitle__3OQNU\",\"toastTitle\":\"ClosePositionTicket_toastTitle__1gADz\",\"showIcon\":\"ClosePositionTicket_showIcon__3i7qe\",\"fa\":\"ClosePositionTicket_fa__hG1Jb\",\"notificationMessage\":\"ClosePositionTicket_notificationMessage__2ncJe\",\"closeButtonLocation\":\"ClosePositionTicket_closeButtonLocation__3IuGY\",\"text\":\"ClosePositionTicket_text__2hUzg\",\"label\":\"ClosePositionTicket_label__YKomV\",\"value\":\"ClosePositionTicket_value__Zmbth\",\"input\":\"ClosePositionTicket_input__3eZ8-\",\"amountLabel\":\"ClosePositionTicket_amountLabel__N2z3V\"};","import { useTranslation } from 'react-i18next';\n\nconst useShortTranslation = (languageString: string) => {\n\tconst { t } = useTranslation();\n\tconst tt = (name: string, options?: Object) => {\n\t\treturn t(`${languageString}${name}`, options);\n\t};\n\treturn tt;\n};\n\nexport default useShortTranslation;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"undockedContainer\":\"OrderInformation_undockedContainer__1_FZW\",\"accordion\":\"OrderInformation_accordion__MEDs3\",\"body\":\"OrderInformation_body__HK70I\",\"active\":\"OrderInformation_active__1J4jB\",\"dockedContainer\":\"OrderInformation_dockedContainer__2UHgW\",\"closeButtonLocation\":\"OrderInformation_closeButtonLocation__2Nm4c\",\"lightmodalInfoPosition\":\"OrderInformation_lightmodalInfoPosition__2Keug\",\"fieldContainer\":\"OrderInformation_fieldContainer__3WOVI\",\"lightconfirmFields\":\"OrderInformation_lightconfirmFields__2oeMh\",\"darkconfirmFields\":\"OrderInformation_darkconfirmFields__1G0FX\",\"container\":\"OrderInformation_container__1vC0F\",\"containerChildWindow\":\"OrderInformation_containerChildWindow__1yPPA\",\"infoContainer\":\"OrderInformation_infoContainer__TVUBu\",\"elementContainer\":\"OrderInformation_elementContainer__EaneI\",\"marketInfoHeading\":\"OrderInformation_marketInfoHeading__2fdo8\",\"positionMsg\":\"OrderInformation_positionMsg__11nIU\",\"ordersMsg\":\"OrderInformation_ordersMsg__19IKz\",\"marginUsedMsg\":\"OrderInformation_marginUsedMsg__2XuaD\",\"emptyContainer\":\"OrderInformation_emptyContainer__2g4-J\",\"startTrading_Inactive\":\"OrderInformation_startTrading_Inactive__2Vkgf\",\"startTrading_Active\":\"OrderInformation_startTrading_Active__LLLAZ\",\"chartIcon\":\"OrderInformation_chartIcon__EcPJA\",\"chartMessage\":\"OrderInformation_chartMessage__3mvmk\",\"icon\":\"OrderInformation_icon__3sYb7\",\"header\":\"OrderInformation_header__-QLxf\",\"formattedSwapInfo\":\"OrderInformation_formattedSwapInfo__DMbfy\",\"infoElementValue\":\"OrderInformation_infoElementValue__ILpzR\",\"red\":\"OrderInformation_red__YKuWw\",\"pL\":\"OrderInformation_pL__378IJ\",\"date\":\"OrderInformation_date__1bxmf\"};","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport HttpApi from 'i18next-http-backend';\nimport ChainedBackend from 'i18next-chained-backend';\nimport HttpBackend from 'i18next-http-backend';\nimport LocalStorageBackend from 'i18next-localstorage-backend';\n\nimport { getEnabledLangOptions } from '../views/features/Dashboard/Settings/settingsOptions';\n\nconst loadPath = '/locales/{{lng}}/{{ns}}.json';\n\nfunction genRandonNumber(length: number) {\n\tconst chars = '0123456789';\n\tconst charLength = chars.length;\n\tlet result = '';\n\tfor (var i = 0; i < length; i++) {\n\t\tresult += chars.charAt(Math.floor(Math.random() * charLength));\n\t}\n\treturn result;\n}\n\nconst HASH = genRandonNumber(10);\n\ni18n\n\t.use(HttpApi)\n\t.use(LanguageDetector)\n\t.use(initReactI18next)\n\t.use(ChainedBackend)\n\t.init({\n\t\treact: {\n\t\t\tuseSuspense: false,\n\t\t\ttransKeepBasicHtmlNodesFor: ['br', 'b', 'i', 'strong'],\n\t\t},\n\t\tbackend: {\n\t\t\tbackends: [LocalStorageBackend, HttpBackend],\n\t\t\tbackendOptions: [\n\t\t\t\t{\n\t\t\t\t\texpirationTime: 7 * 24 * 60 * 60 * 1000, // 7 days\n\t\t\t\t\tdefaultVersion: \"v\" + HASH\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tloadPath,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tdetection: {\n\t\t\torder: ['querystring', 'localStorage', 'navigator'],\n\t\t\tlookupQuerystring: 'lang',\n\t\t\tlookupLocalStorage: 'language',\n\t\t\tlookupCookie: 'cookie',\n\t\t\tcaches: ['localStorage', 'cookie'],\n\t\t},\n\t\t// debug: true,\n\t\t// lng: navigator.language,\n\t\tfallbackLng: 'en',\n\t\tinterpolation: {\n\t\t\tescapeValue: false, // not needed for react as it escapes by default\n\t\t},\n\t\tsupportedLngs: getEnabledLangOptions().map((lang) => lang.value),\n\t\tkeySeparator: '',\n\t\tns: ['andr', 'en', 'wtr', 'Vietnamese_VI_updated', 'err_codes_1', 'instruments'],\n\t});\n\nexport default i18n;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tickerActions\":\"BidAskSpread_tickerActions__tRjG2\",\"tickerActionsModify\":\"BidAskSpread_tickerActionsModify__2KcMa\",\"OrderButton\":\"BidAskSpread_OrderButton__2BKHy\",\"tickerLow\":\"BidAskSpread_tickerLow__3AT7g\",\"tickerLowLong\":\"BidAskSpread_tickerLowLong__2oH9V\",\"tickerHigh\":\"BidAskSpread_tickerHigh__1HXjQ\",\"tickerHighLong\":\"BidAskSpread_tickerHighLong__1lynE\",\"colorRed\":\"BidAskSpread_colorRed__3fF8a\",\"colorGreen\":\"BidAskSpread_colorGreen__3TiiV\",\"instrumentButton\":\"BidAskSpread_instrumentButton__vUNGb\",\"windowInstrumentButton\":\"BidAskSpread_windowInstrumentButton__67R-l\",\"gridChartInstrumentButton\":\"BidAskSpread_gridChartInstrumentButton__8RnHl\",\"resizedButton\":\"BidAskSpread_resizedButton__2rczZ\",\"orderButton\":\"BidAskSpread_orderButton__7c4EX\",\"orderButtonModal\":\"BidAskSpread_orderButtonModal__2JIH7\",\"borderButton\":\"BidAskSpread_borderButton__3UbCU\",\"instrumentGreen\":\"BidAskSpread_instrumentGreen__2V_X3\",\"instrumentGreenHighlighted\":\"BidAskSpread_instrumentGreenHighlighted__1Q_7n\",\"instrumentRed\":\"BidAskSpread_instrumentRed__3VMmS\",\"instrumentRedHighlighted\":\"BidAskSpread_instrumentRedHighlighted__zkzlt\",\"instrumentGrey\":\"BidAskSpread_instrumentGrey__3sO1s\",\"orderGreen\":\"BidAskSpread_orderGreen__1cqaP\",\"orderRed\":\"BidAskSpread_orderRed__1Lq2E\",\"orderGrey\":\"BidAskSpread_orderGrey__1JqSC\",\"spread\":\"BidAskSpread_spread__21ZFB\",\"rightHandSpread\":\"BidAskSpread_rightHandSpread__1s6Et\",\"headerTickerButtons\":\"BidAskSpread_headerTickerButtons__1alNV\",\"instrumentPosition\":\"BidAskSpread_instrumentPosition__k-ThC\",\"windowInstrumentPosition\":\"BidAskSpread_windowInstrumentPosition__3EenE\",\"sellNumber\":\"BidAskSpread_sellNumber__2_RN2\",\"label\":\"BidAskSpread_label__3uRQ6\",\"orderPosition\":\"BidAskSpread_orderPosition__3iZ4w\",\"orderPositionModal\":\"BidAskSpread_orderPositionModal__3yWHl\",\"spreadButton\":\"BidAskSpread_spreadButton__3sbCM\",\"highlightSpread\":\"BidAskSpread_highlightSpread__11sYQ\",\"windowSpread\":\"BidAskSpread_windowSpread__1Dm05\",\"tickerContainer\":\"BidAskSpread_tickerContainer__jjJnL\",\"notOrder\":\"BidAskSpread_notOrder__36LVQ\",\"showPrice\":\"BidAskSpread_showPrice__2ijn7\",\"checkboxPrice\":\"BidAskSpread_checkboxPrice__2iC7m\",\"container\":\"BidAskSpread_container__18U_r\",\"checkboxPriceBuy\":\"BidAskSpread_checkboxPriceBuy__3UWHU\",\"checkboxPriceSell\":\"BidAskSpread_checkboxPriceSell__3F1pq\",\"checkbox\":\"BidAskSpread_checkbox__2OUkd\",\"sellLabel\":\"BidAskSpread_sellLabel__10AjA\",\"sellLabelModal\":\"BidAskSpread_sellLabelModal__-s59o\",\"tooltipTimestamp\":\"BidAskSpread_tooltipTimestamp__3W9FC\",\"tooltipTitle\":\"BidAskSpread_tooltipTitle__xp4VG\",\"closedMarketContainer\":\"BidAskSpread_closedMarketContainer__10-vk\",\"closedMarket\":\"BidAskSpread_closedMarket__1kSRZ\",\"borderButtonSell\":\"BidAskSpread_borderButtonSell__1SPu9\",\"borderButtonBuy\":\"BidAskSpread_borderButtonBuy__wxSl-\",\"tickerContainerBuy\":\"BidAskSpread_tickerContainerBuy__3lPaO\",\"timeUpdate\":\"BidAskSpread_timeUpdate__2d2jD\"};","import React, { useRef, useState } from 'react';\n\nimport { HistoryTick, MarketItem, PriceQuote, TradingPositionState } from '../../gateways/RfpGateway/rfp.types';\n\nimport { GymTradingAccount } from './Accounts/GymTradingAccount';\nimport { GymTradingPosition } from './Positions/GymTradingPosition';\nimport { GymSimulation } from './Simulations/GymSimulation';\nimport { GymSimulationsManager } from './Simulations/GymSimulationsManager';\n\nexport interface ITradersGymContext {\n\tgymTradingAccount?: GymTradingAccount;\n\tlastHistoryTick?: HistoryTick;\n\tpriceQuote?: PriceQuote;\n\tspreadPriceDif?: number;\n\tisActive?: boolean;\n\tsimulation?: GymSimulation;\n\tsimulationList?: GymSimulation[];\n\tisOpenCreateSimulationModal?: boolean;\n\tsimulationsManager?: GymSimulationsManager;\n\tsearchInstrumentSelected?: MarketItem;\n\tisOpenResetTradersGymModal?: boolean;\n\tisPlaying?: boolean;\n}\n\nexport type TradersGymContextType = {\n\ttradersGymContext: ITradersGymContext;\n\tsetGymProps: (values: ITradersGymContext) => void;\n\tupdateGymPriceQuote: (lastHistoryTick: HistoryTick) => void;\n\tresetOrderStore: () => void;\n\tgetLastPriceQuote: () => PriceQuote | undefined;\n\tconvertHistoryTickToPriceQuote: (historyTick: HistoryTick) => PriceQuote;\n\tgetPositions: (state: TradingPositionState) => GymTradingPosition[];\n};\n\nexport const TradersGymContext = React.createContext(null);\n\nconst TradersGymContextProvider: React.FC = ({ children }) => {\n\tconst initialState: ITradersGymContext = {\n\t\tgymTradingAccount: undefined,\n\t\tisActive: false,\n\t\tlastHistoryTick: undefined,\n\t\tpriceQuote: undefined,\n\t\tspreadPriceDif: undefined,\n\t\tsimulation: undefined,\n\t\tsimulationList: [],\n\t\tisOpenCreateSimulationModal: false,\n\t\tsimulationsManager: undefined,\n\t\tsearchInstrumentSelected: undefined,\n\t\tisOpenResetTradersGymModal: false,\n\t\tisPlaying: false,\n\t};\n\n\tconst [tradersGymContext, setTradersGymContext] = useState(initialState);\n\n\tconst convertHistoryTickToPriceQuote = (historyTick: HistoryTick) => {\n\t\t//Spread support\n\t\tconst priceOffset = tradersGymContext.spreadPriceDif ?? 0;\n\t\treturn {\n\t\t\ta: historyTick.close + priceOffset,\n\t\t\tb: historyTick.close,\n\t\t\tc: historyTick.code,\n\t\t\tf: historyTick.feedId,\n\t\t\th: historyTick.high,\n\t\t\tl: historyTick.low,\n\t\t\tt: historyTick.openTime,\n\t\t} as PriceQuote;\n\t};\n\n\tconst getLastPriceQuote = () => {\n\t\tif (tradersGymContext.lastHistoryTick) {\n\t\t\treturn convertHistoryTickToPriceQuote(tradersGymContext.lastHistoryTick);\n\t\t}\n\t\treturn undefined;\n\t};\n\n\t// Used for throttle the store simulation, it need it because could cause performance issue\n\tconst priceQuoteInThrottle = useRef(false);\n\t// Throttle once per 333 millis\n\tconst priceQuoteThrottleLimit = 333;\n\n\tconst resetOrderStore = () => {\n\t\tsetGymProps(initialState);\n\t\tif (priceQuoteInThrottle.current) {\n\t\t\tpriceQuoteInThrottle.current = false;\n\t\t}\n\t};\n\n\tconst updateGymPriceQuote = (lastHistoryTick: HistoryTick) => {\n\t\tif (!priceQuoteInThrottle.current) {\n\t\t\tpriceQuoteInThrottle.current = true;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (lastHistoryTick) {\n\t\t\t\t\tconst quote = convertHistoryTickToPriceQuote(lastHistoryTick);\n\t\t\t\t\tsetGymProps({ priceQuote: quote });\n\t\t\t\t}\n\n\t\t\t\tpriceQuoteInThrottle.current = false;\n\t\t\t}, priceQuoteThrottleLimit);\n\t\t}\n\t};\n\n\t/**\n\t * Set the tradersGymContext\n\t * @param values the new values\n\t */\n\tconst setGymProps = (values: ITradersGymContext) => {\n\t\tsetTradersGymContext((current) => {\n\t\t\treturn { ...current, ...values };\n\t\t});\n\t};\n\n\tconst getPositions = (state: TradingPositionState) => {\n\t\treturn state === TradingPositionState.closed\n\t\t\t? tradersGymContext.gymTradingAccount?.closedPositions.filter((position) => {\n\t\t\t\t\treturn position.state === state;\n\t\t\t }) ?? []\n\t\t\t: tradersGymContext.gymTradingAccount?.activePositions.filter((position) => {\n\t\t\t\t\treturn position.state === state;\n\t\t\t }) ?? [];\n\t};\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default TradersGymContextProvider;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"PositionGrid_icon__1rZLP\",\"plusTheme\":\"PositionGrid_plusTheme__c1k81\",\"tpslCell\":\"PositionGrid_tpslCell__fvHgn\",\"closeAndMoreOptionsCell\":\"PositionGrid_closeAndMoreOptionsCell__1EeeS\",\"plusButton\":\"PositionGrid_plusButton__2Mbt4\",\"iconContainer\":\"PositionGrid_iconContainer__2v8Ks\",\"profitValues\":\"PositionGrid_profitValues__13jrp\",\"HoverButton\":\"PositionGrid_HoverButton__qMm1C\",\"plusContainer\":\"PositionGrid_plusContainer__2A4Ej\",\"darkplusTheme\":\"PositionGrid_darkplusTheme__3vV8B\",\"treeListLayout\":\"PositionGrid_treeListLayout__2oKxg\",\"editTheme\":\"PositionGrid_editTheme__1NC7l\",\"highlightValues\":\"PositionGrid_highlightValues__1Urdf\",\"lighteditClickTheme\":\"PositionGrid_lighteditClickTheme__1FAyy\",\"darkeditClickTheme\":\"PositionGrid_darkeditClickTheme__1HdAK\",\"Popup\":\"PositionGrid_Popup__2sU2M\",\"triggerContainer\":\"PositionGrid_triggerContainer__1yWG1\",\"PopupCog\":\"PositionGrid_PopupCog__1KFEO\",\"PopupContainer\":\"PositionGrid_PopupContainer__3AWXo\",\"PopupContainerCog\":\"PositionGrid_PopupContainerCog__lDxZt\",\"PopupContainerCogOne\":\"PositionGrid_PopupContainerCogOne__2rWvX\",\"iconWrapper\":\"PositionGrid_iconWrapper__3ybJ7\",\"settingsContainer\":\"PositionGrid_settingsContainer__1Vo0V\",\"lightsettingsPopup\":\"PositionGrid_lightsettingsPopup__2NThv\",\"darksettingsPopup\":\"PositionGrid_darksettingsPopup__235gd\",\"closeIcon\":\"PositionGrid_closeIcon__1awWy\",\"lightCheckbox\":\"PositionGrid_lightCheckbox__1AjvQ\",\"darkCheckbox\":\"PositionGrid_darkCheckbox__2T58Q\",\"columnChooser\":\"PositionGrid_columnChooser__1kmnK\",\"cogContainer\":\"PositionGrid_cogContainer__w3Nb4\",\"greenCurrent\":\"PositionGrid_greenCurrent__23cRo\",\"redCurrent\":\"PositionGrid_redCurrent__3cq5m\",\"headerCell\":\"PositionGrid_headerCell__3snka\",\"clearFilters\":\"PositionGrid_clearFilters__1djd1\",\"startTrading_Inactive\":\"PositionGrid_startTrading_Inactive__lbZ1W\",\"startTrading_Active\":\"PositionGrid_startTrading_Active__QmjW5\",\"emptyStateMessage\":\"PositionGrid_emptyStateMessage__1Jb_Z\",\"emptyStateMessageLink\":\"PositionGrid_emptyStateMessageLink__3JzBr\",\"emptyIcon\":\"PositionGrid_emptyIcon__1KU2_\",\"searchIcon\":\"PositionGrid_searchIcon__3dmL4\",\"noOrders\":\"PositionGrid_noOrders__vJmpS\",\"noPositions\":\"PositionGrid_noPositions__3h3vV\",\"positionDate\":\"PositionGrid_positionDate__1seFJ\",\"emptyGridContainer\":\"PositionGrid_emptyGridContainer__1xk7m\",\"headerCellInstrument\":\"PositionGrid_headerCellInstrument__1q21j\",\"modalRemoveOption\":\"PositionGrid_modalRemoveOption__OjEw2\",\"modalTopHeader\":\"PositionGrid_modalTopHeader__2SJwc\",\"modalTitle\":\"PositionGrid_modalTitle__CxEcb\",\"modalItems\":\"PositionGrid_modalItems__3CjOx\",\"modifyButton\":\"PositionGrid_modifyButton__1UeDq\",\"modifyFooter\":\"PositionGrid_modifyFooter__3Dj8z\",\"removeMessage\":\"PositionGrid_removeMessage__2uoKf\",\"actionButtons\":\"PositionGrid_actionButtons__2iC7j\",\"grid\":\"PositionGrid_grid__1C7pp\",\"sideTooltipWrapper\":\"PositionGrid_sideTooltipWrapper__micMF\",\"sideTooltipSquare\":\"PositionGrid_sideTooltipSquare__33NQR\",\"sideTooltipSquareArabic\":\"PositionGrid_sideTooltipSquareArabic__1E8bo\",\"sideTooltipSquareIcon\":\"PositionGrid_sideTooltipSquareIcon__1pK6_\",\"tooltipWrapper\":\"PositionGrid_tooltipWrapper__1MlUT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"costInput\":\"WatchlistsDropDown_costInput__CjYBb\",\"lightErrorInput\":\"WatchlistsDropDown_lightErrorInput__2tJ50\",\"popup\":\"WatchlistsDropDown_popup__2U-QV\",\"watchlists\":\"WatchlistsDropDown_watchlists__1gl0E\",\"listContainer\":\"WatchlistsDropDown_listContainer__91A8h\",\"listContainerActive\":\"WatchlistsDropDown_listContainerActive__pHvmv\",\"itemContainer\":\"WatchlistsDropDown_itemContainer__3ex5j\",\"watchlistItem\":\"WatchlistsDropDown_watchlistItem__2avGt\",\"icon\":\"WatchlistsDropDown_icon__2Bnxx\",\"active\":\"WatchlistsDropDown_active__8uDWn\",\"iconLarge\":\"WatchlistsDropDown_iconLarge__2TtKM\",\"iconPen\":\"WatchlistsDropDown_iconPen__1mDZH\",\"watchlistName\":\"WatchlistsDropDown_watchlistName__37ZQg\",\"createWLContainer\":\"WatchlistsDropDown_createWLContainer__165ig\",\"createWatchlistItems\":\"WatchlistsDropDown_createWatchlistItems__3eQsP\",\"createWatchlistTitle\":\"WatchlistsDropDown_createWatchlistTitle__RVtuU\",\"inputContainer\":\"WatchlistsDropDown_inputContainer__2uBPS\",\"inputTitle\":\"WatchlistsDropDown_inputTitle__17tS0\",\"inputBox\":\"WatchlistsDropDown_inputBox__2eZtr\",\"messageRow\":\"WatchlistsDropDown_messageRow__lXjok\",\"errorMessage\":\"WatchlistsDropDown_errorMessage__bfMZ0\",\"inputContainerText\":\"WatchlistsDropDown_inputContainerText__1AyoE\",\"popupFooter\":\"WatchlistsDropDown_popupFooter__3ddiU\",\"saveButton\":\"WatchlistsDropDown_saveButton__2879j\",\"Title\":\"WatchlistsDropDown_Title__1P_Ws\",\"lightTitle\":\"WatchlistsDropDown_lightTitle__36zjV\",\"darkTitle\":\"WatchlistsDropDown_darkTitle__89Bu6\",\"deleteWatchlist\":\"WatchlistsDropDown_deleteWatchlist__1h1Z4\",\"disableBtn\":\"WatchlistsDropDown_disableBtn__JrZy7\",\"inputWrapper\":\"WatchlistsDropDown_inputWrapper__3pCV2\",\"actionButtons\":\"WatchlistsDropDown_actionButtons__3_K0F\",\"modalWatchlist\":\"WatchlistsDropDown_modalWatchlist__1P34K\",\"removeModalTitle\":\"WatchlistsDropDown_removeModalTitle__32Nde\",\"removeWatchlistModal\":\"WatchlistsDropDown_removeWatchlistModal__1GChZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"MarketTickerContainer\":\"WatchlistEdit_MarketTickerContainer__3foeB\",\"container\":\"WatchlistEdit_container__3BFtv\",\"darkCheck\":\"WatchlistEdit_darkCheck__19YoM\",\"lightCheck\":\"WatchlistEdit_lightCheck__uF8a4\",\"textAll\":\"WatchlistEdit_textAll__2Cvns\",\"windowEditHeader\":\"WatchlistEdit_windowEditHeader__2rQ7k\",\"windowHeader\":\"WatchlistEdit_windowHeader__vQgTH\",\"editHeader\":\"WatchlistEdit_editHeader__rO56s\",\"editIcon\":\"WatchlistEdit_editIcon__13Y2Q\",\"actionRow\":\"WatchlistEdit_actionRow__1mxWN\",\"editOptionContainer\":\"WatchlistEdit_editOptionContainer__2zSqE\",\"selectAll\":\"WatchlistEdit_selectAll__mDF5W\",\"move\":\"WatchlistEdit_move__10qSB\",\"remove\":\"WatchlistEdit_remove__aDBud\",\"editOptionIcons\":\"WatchlistEdit_editOptionIcons__t-62-\",\"removeItemsIcon\":\"WatchlistEdit_removeItemsIcon__1TAFq\",\"WatchListCategories\":\"WatchlistEdit_WatchListCategories__MK30J\",\"windowWatchListCategories\":\"WatchlistEdit_windowWatchListCategories__3Cemf\",\"WatchListCategoriesChild\":\"WatchlistEdit_WatchListCategoriesChild__IAOp-\",\"WatchListCategoriesChildEdit\":\"WatchlistEdit_WatchListCategoriesChildEdit__3FDLk\",\"windowEditDragContainer\":\"WatchlistEdit_windowEditDragContainer__1zpLU\",\"instrumentBox\":\"WatchlistEdit_instrumentBox__2EHwO\",\"windowMarketTickerContainerEdit\":\"WatchlistEdit_windowMarketTickerContainerEdit__1rfjr\",\"editContainer\":\"WatchlistEdit_editContainer__3mLFr\",\"TickerIcons\":\"WatchlistEdit_TickerIcons__GZ0ix\",\"showActions\":\"WatchlistEdit_showActions__vypYJ\",\"equityField\":\"WatchlistEdit_equityField__F--Is\",\"windowEditContainer\":\"WatchlistEdit_windowEditContainer__3qni_\",\"TickerInfo\":\"WatchlistEdit_TickerInfo__1wrdO\",\"windowTickerInfo\":\"WatchlistEdit_windowTickerInfo__2abf1\",\"checkboxContainer\":\"WatchlistEdit_checkboxContainer__13st7\",\"editOptionCheckboxContainer\":\"WatchlistEdit_editOptionCheckboxContainer__1kxHH\",\"checkmark\":\"WatchlistEdit_checkmark__1Awlv\",\"tickerContainer\":\"WatchlistEdit_tickerContainer__1fOtb\",\"Symbol\":\"WatchlistEdit_Symbol__2Ey_s\",\"SymbolDescription\":\"WatchlistEdit_SymbolDescription__2aLX1\",\"lightSymbolDescription\":\"WatchlistEdit_lightSymbolDescription__iTbBF\",\"darkSymbolDescription\":\"WatchlistEdit_darkSymbolDescription__2l_3d\",\"lightSymbol\":\"WatchlistEdit_lightSymbol__1Zl1c\",\"darkSymbol\":\"WatchlistEdit_darkSymbol__2NQst\",\"grabIndicatorContainer\":\"WatchlistEdit_grabIndicatorContainer__DvfLl\",\"grabIndicator\":\"WatchlistEdit_grabIndicator__3lTSt\",\"Title\":\"WatchlistEdit_Title__qaseY\",\"openModalTitle\":\"WatchlistEdit_openModalTitle__2p7vK\",\"lightTitle\":\"WatchlistEdit_lightTitle__26cLH\",\"darkTitle\":\"WatchlistEdit_darkTitle__kNeDG\",\"disableBtn\":\"WatchlistEdit_disableBtn__3QF2m\",\"editBarText\":\"WatchlistEdit_editBarText__1sI1d\"};","import React, { useContext } from 'react';\n\nimport { Popup as SemanticUiPopup } from 'semantic-ui-react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport './WtrPopup.module.scss';\n\n/**\n * Wrapper component that allows you to stylize the Semantic Ui React Popup Component\n */\nconst WtrPopup = ({ children, ...rest }: any) => {\n\tconst { appTheme } = useContext(AppContext);\n\trest.className = `${rest.className || ''} ${appTheme}`;\n\n\treturn {children};\n};\n\nWtrPopup.Content = SemanticUiPopup.Content;\nWtrPopup.Header = SemanticUiPopup.Header;\n\nexport default WtrPopup;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchBox\":\"PositionsPanel_searchBox__MH3G9\",\"searchIcon\":\"PositionsPanel_searchIcon__TQkjw\",\"clearSearchIcon\":\"PositionsPanel_clearSearchIcon__1keCw\",\"notEmpty\":\"PositionsPanel_notEmpty__1yNr5\",\"loadingIcon\":\"PositionsPanel_loadingIcon__dmOJz\",\"headingContainer\":\"PositionsPanel_headingContainer__3zRPU\",\"iconContainer\":\"PositionsPanel_iconContainer__14p4c\",\"header\":\"PositionsPanel_header__3VJBa\",\"tools\":\"PositionsPanel_tools__uria3\",\"closeDropdown\":\"PositionsPanel_closeDropdown__2srAs\",\"downLoadIcon\":\"PositionsPanel_downLoadIcon__ifPNk\",\"tabs\":\"PositionsPanel_tabs__2wiCm\",\"content\":\"PositionsPanel_content__3ixfi\",\"positionTab\":\"PositionsPanel_positionTab__1IUdm\",\"active\":\"PositionsPanel_active__1F70l\",\"reserveSpaceHelper\":\"PositionsPanel_reserveSpaceHelper__2H0lc\",\"tabLabelValue\":\"PositionsPanel_tabLabelValue__2Dmp2\",\"tabLabel\":\"PositionsPanel_tabLabel__2zb--\",\"loadingImage\":\"PositionsPanel_loadingImage__20QLp\",\"loadingText\":\"PositionsPanel_loadingText__26Beb\",\"ordersTable\":\"PositionsPanel_ordersTable__2Kh6O\",\"lightordersTable\":\"PositionsPanel_lightordersTable__2fJOT\",\"darkordersTable\":\"PositionsPanel_darkordersTable__4llyW\",\"tableOverlayHide\":\"PositionsPanel_tableOverlayHide__MaMuT\",\"tableOverlayShow\":\"PositionsPanel_tableOverlayShow__2kflW\",\"orderTableContainer\":\"PositionsPanel_orderTableContainer__1UINz\",\"lighttableHeadColor\":\"PositionsPanel_lighttableHeadColor__2-iod\",\"darktableHeadColor\":\"PositionsPanel_darktableHeadColor__WSmU-\",\"modalDescription\":\"PositionsPanel_modalDescription__3pPJp\",\"descriptionLine\":\"PositionsPanel_descriptionLine__VSpj3\",\"descriptionData\":\"PositionsPanel_descriptionData__2tfYf\",\"modalButtons\":\"PositionsPanel_modalButtons__2_FpO\",\"modalHead\":\"PositionsPanel_modalHead__2Qp7r\",\"overlay\":\"PositionsPanel_overlay__3Id5E\",\"overlayTop\":\"PositionsPanel_overlayTop__35zoL\",\"lightdropdownTheme\":\"PositionsPanel_lightdropdownTheme__2U_HI\",\"darkdropdownTheme\":\"PositionsPanel_darkdropdownTheme__3FavK\",\"lighticonTheme\":\"PositionsPanel_lighticonTheme__1qgcX\",\"darkiconTheme\":\"PositionsPanel_darkiconTheme__25QgH\",\"lightclickTheme\":\"PositionsPanel_lightclickTheme__3KdD1\",\"lightplusTheme\":\"PositionsPanel_lightplusTheme__3gRBc\",\"darkplusTheme\":\"PositionsPanel_darkplusTheme__3OqxT\",\"paddingLeft\":\"PositionsPanel_paddingLeft__2l8g6\",\"delayedQuote\":\"PositionsPanel_delayedQuote__2fvHg\",\"darkpositionTitle\":\"PositionsPanel_darkpositionTitle__25e6-\",\"lightpositionTitle\":\"PositionsPanel_lightpositionTitle__2ptkr\",\"notificationCustomIcon\":\"PositionsPanel_notificationCustomIcon__38Y1d\",\"fa\":\"PositionsPanel_fa__1u8Uj\",\"notificationCustomInfo\":\"PositionsPanel_notificationCustomInfo__GxWjD\",\"notificationCustom\":\"PositionsPanel_notificationCustom__1qgr1\",\"notificationMessage\":\"PositionsPanel_notificationMessage__3cYkn\",\"toastTitle\":\"PositionsPanel_toastTitle__35cpZ\",\"notificationCustomError\":\"PositionsPanel_notificationCustomError__3wZYo\",\"notificationTitle\":\"PositionsPanel_notificationTitle__2gq8E\",\"showIcon\":\"PositionsPanel_showIcon__1BIsP\",\"lightshowIcon\":\"PositionsPanel_lightshowIcon__zXZLB\",\"gridLayout\":\"PositionsPanel_gridLayout__1Sw7C\",\"plusButton\":\"PositionsPanel_plusButton__2kRCz\",\"plusContainer\":\"PositionsPanel_plusContainer__1OeJv\",\"tabPane\":\"PositionsPanel_tabPane__HuBaT\",\"windowIcon\":\"PositionsPanel_windowIcon__1hGpQ\",\"addTicket\":\"PositionsPanel_addTicket__2ysEG\",\"gridContainer\":\"PositionsPanel_gridContainer__1mTDt\",\"lighttoastTitle\":\"PositionsPanel_lighttoastTitle__1zmAt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"InstrumentHeader_wrapper__PDQbL\",\"resizedWrapper\":\"InstrumentHeader_resizedWrapper__32wur\",\"bidAskSpreadButtons\":\"InstrumentHeader_bidAskSpreadButtons__3Ryap\",\"undocked\":\"InstrumentHeader_undocked__1XGKD\",\"headerContainer\":\"InstrumentHeader_headerContainer__2hPmP\",\"title\":\"InstrumentHeader_title__3au3S\",\"instrumentFullName\":\"InstrumentHeader_instrumentFullName__14a3_\",\"iconContainer\":\"InstrumentHeader_iconContainer__24oeT\",\"icon\":\"InstrumentHeader_icon__uSvE2\",\"infoIcon\":\"InstrumentHeader_infoIcon__1NaZ3\",\"iconGroup\":\"InstrumentHeader_iconGroup__17vg8\",\"group\":\"InstrumentHeader_group__3GijD\",\"changes\":\"InstrumentHeader_changes__30jId\",\"text\":\"InstrumentHeader_text__wKrY4\",\"textTitleHigh\":\"InstrumentHeader_textTitleHigh__2bokn\",\"textTitleLow\":\"InstrumentHeader_textTitleLow__1tp_R\",\"iconDetached\":\"InstrumentHeader_iconDetached__353xu\",\"iconAtached\":\"InstrumentHeader_iconAtached__2nJSx\",\"darkiconTheme\":\"InstrumentHeader_darkiconTheme__39EUk\",\"addToWatchlistIcon\":\"InstrumentHeader_addToWatchlistIcon__2Dha8\",\"watchlistsListContainer\":\"InstrumentHeader_watchlistsListContainer__3S-l0\",\"addIcon\":\"InstrumentHeader_addIcon__3bS_Q\",\"disabledAddIcon\":\"InstrumentHeader_disabledAddIcon__3QfYI\",\"create\":\"InstrumentHeader_create__2yIAX\",\"createErrorText\":\"InstrumentHeader_createErrorText__346eo\",\"createContainer\":\"InstrumentHeader_createContainer__LbcAq\",\"createHeader\":\"InstrumentHeader_createHeader__2z6VQ\",\"inputContainer\":\"InstrumentHeader_inputContainer__24zBe\",\"inputTitle\":\"InstrumentHeader_inputTitle__8qE2n\",\"input\":\"InstrumentHeader_input__2LzLC\",\"errorInput\":\"InstrumentHeader_errorInput__29nKB\",\"inputCount\":\"InstrumentHeader_inputCount__3HkP2\",\"messageRow\":\"InstrumentHeader_messageRow__2ozVu\",\"errorMessage\":\"InstrumentHeader_errorMessage__16k4D\",\"buttons\":\"InstrumentHeader_buttons__3edtu\",\"buttonContainer\":\"InstrumentHeader_buttonContainer__1tCB_\",\"highLowBox\":\"InstrumentHeader_highLowBox__zJ3At\",\"lowValue\":\"InstrumentHeader_lowValue__3nJgI\",\"highValue\":\"InstrumentHeader_highValue__23Z5u\",\"topIcon\":\"InstrumentHeader_topIcon__1Mcal\",\"watchlistItem\":\"InstrumentHeader_watchlistItem__VCk_p\",\"watchlistIcon\":\"InstrumentHeader_watchlistIcon__zECQk\",\"existsInWatchlistIcon\":\"InstrumentHeader_existsInWatchlistIcon__1EZl8\",\"instrumentStats\":\"InstrumentHeader_instrumentStats__2i9mj\",\"sessionIcon\":\"InstrumentHeader_sessionIcon__v3eTa\"};","type Optional = T | null | undefined;\n\nexport default class Lazy {\n\tprivate m_value: Optional = null;\n\tprivate m_function: Optional<(input?: any) => T> = null;\n\n\tpublic get hasValue(): boolean {\n\t\treturn this.m_function == null;\n\t}\n\n\tpublic constructor(supplier: () => T);\n\tpublic constructor(supplier: (input: any) => T);\n\tpublic constructor(supplier: (() => T) | ((input: any) => T)) {\n\t\tif (supplier == null) {\n\t\t\tthrow new Error('supplier cannot be null');\n\t\t}\n\t\tthis.m_function = (input?: any) => {\n\t\t\treturn supplier(input);\n\t\t};\n\t}\n\n\tpublic getValue(): T;\n\tpublic getValue(input: U): T;\n\tpublic getValue(input?: U): T {\n\t\tif (this.m_function != null) {\n\t\t\tthis.loadValue(input);\n\t\t}\n\t\treturn this.m_value as T;\n\t}\n\n\tprivate loadValue(input?: U): void {\n\t\tif (this.m_function != null) {\n\t\t\tthis.m_value = this.m_function(input);\n\t\t\tthis.m_function = null;\n\t\t}\n\t}\n}\n","export { default } from './Button';\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MarginLevel_wrapper__2zY9S\",\"isOpen\":\"MarginLevel_isOpen__7QeVc\",\"green\":\"MarginLevel_green__3REi4\",\"statusIndicator\":\"MarginLevel_statusIndicator__1P87r\",\"orange\":\"MarginLevel_orange__14yns\",\"red\":\"MarginLevel_red__14gfY\",\"disabled\":\"MarginLevel_disabled__2O1x5\",\"gymPresenter\":\"MarginLevel_gymPresenter__36yda\",\"statsLabel\":\"MarginLevel_statsLabel__1VYjG\",\"marginPercent\":\"MarginLevel_marginPercent__kseyQ\",\"valueContainer\":\"MarginLevel_valueContainer__1szpg\",\"toggleIcon\":\"MarginLevel_toggleIcon__2LY6r\",\"popup\":\"MarginLevel_popup__16qtl\",\"contentWrapper\":\"MarginLevel_contentWrapper__17Z_C\",\"progressBarContainer\":\"MarginLevel_progressBarContainer__3W7Or\",\"progressPercent\":\"MarginLevel_progressPercent__kt222\",\"progressWrapper\":\"MarginLevel_progressWrapper__1lxqV\",\"shortSection\":\"MarginLevel_shortSection__1XOUU\",\"longSection\":\"MarginLevel_longSection__J2dvK\",\"dividerShort\":\"MarginLevel_dividerShort__2HGrV\",\"text\":\"MarginLevel_text__2BbIm\",\"dividerLong\":\"MarginLevel_dividerLong__O-Tht\",\"japanText\":\"MarginLevel_japanText__1coGC\",\"japanPositioningShortDiv\":\"MarginLevel_japanPositioningShortDiv__2dwUL\",\"japanPositioningLongDiv\":\"MarginLevel_japanPositioningLongDiv__28D0I\",\"marginCallStopOut\":\"MarginLevel_marginCallStopOut__2BVfc\",\"marginCall\":\"MarginLevel_marginCall__1BKPW\",\"marginCallJapan\":\"MarginLevel_marginCallJapan__1M1Y2\",\"stopOut\":\"MarginLevel_stopOut__39C02\",\"contentContainer\":\"MarginLevel_contentContainer__3mbfa\",\"values\":\"MarginLevel_values__2Aqcm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"costInput\":\"TradeBoardHeader_costInput__h34QN\",\"errorInput\":\"TradeBoardHeader_errorInput__2I1lC\",\"modalWatchlist\":\"TradeBoardHeader_modalWatchlist__U3FJ3\",\"modifyWatchlistModalBody\":\"TradeBoardHeader_modifyWatchlistModalBody__83Tro\",\"modifyInput\":\"TradeBoardHeader_modifyInput__1lyFI\",\"modifyErrorInput\":\"TradeBoardHeader_modifyErrorInput__-KLUs\",\"headerContainer\":\"TradeBoardHeader_headerContainer__U86Ed\",\"title\":\"TradeBoardHeader_title__2uOJI\",\"editWatchlistIcon\":\"TradeBoardHeader_editWatchlistIcon__2KvQD\",\"addToWatchlistIcon\":\"TradeBoardHeader_addToWatchlistIcon__2FgK5\",\"headerContainerCenter\":\"TradeBoardHeader_headerContainerCenter__FEwAy\",\"watchlistsPopup\":\"TradeBoardHeader_watchlistsPopup__n24PO\",\"watchlists\":\"TradeBoardHeader_watchlists__20Ud7\",\"listContainer\":\"TradeBoardHeader_listContainer__2wHIe\",\"itemContainer\":\"TradeBoardHeader_itemContainer__3nXXg\",\"watchlistItem\":\"TradeBoardHeader_watchlistItem__6xyLz\",\"icon\":\"TradeBoardHeader_icon__15Jpy\",\"active\":\"TradeBoardHeader_active__cRQW6\",\"watchlistName\":\"TradeBoardHeader_watchlistName__2gnmH\",\"createWatchlistContainer\":\"TradeBoardHeader_createWatchlistContainer__iZw0_\",\"createWatchlistItems\":\"TradeBoardHeader_createWatchlistItems__3BRMG\",\"createWatchlistTitle\":\"TradeBoardHeader_createWatchlistTitle__23ov4\",\"inputContainer\":\"TradeBoardHeader_inputContainer__3vaj_\",\"inputTitle\":\"TradeBoardHeader_inputTitle__3j249\",\"inputBox\":\"TradeBoardHeader_inputBox__yMdWN\",\"messageRow\":\"TradeBoardHeader_messageRow__2UWbg\",\"errorMessage\":\"TradeBoardHeader_errorMessage__1zR2L\",\"modifyErrorMessage\":\"TradeBoardHeader_modifyErrorMessage__2O6LY\",\"inputContainerText\":\"TradeBoardHeader_inputContainerText__2SI8K\",\"createWatchlistFooter\":\"TradeBoardHeader_createWatchlistFooter__2tNSQ\",\"headerButtonsWrapper\":\"TradeBoardHeader_headerButtonsWrapper__FQnwk\",\"watchlistSearchContainer\":\"TradeBoardHeader_watchlistSearchContainer__1OPkZ\",\"hidden\":\"TradeBoardHeader_hidden__iNUW1\",\"searchContainer\":\"TradeBoardHeader_searchContainer__2QDxq\",\"searchTitle\":\"TradeBoardHeader_searchTitle__2fFEo\",\"searchInputContainer\":\"TradeBoardHeader_searchInputContainer__1HWWP\",\"searchInput\":\"TradeBoardHeader_searchInput__QFe0b\",\"openSearchInput\":\"TradeBoardHeader_openSearchInput__u2r9M\",\"inputIcon\":\"TradeBoardHeader_inputIcon__3M2d4\",\"deleteIcon\":\"TradeBoardHeader_deleteIcon__3KAaN\",\"searchResults\":\"TradeBoardHeader_searchResults__weGA_\",\"hiddenScroll\":\"TradeBoardHeader_hiddenScroll__3RuCq\",\"boxSearch\":\"TradeBoardHeader_boxSearch__t5tR3\",\"modalTopHeader\":\"TradeBoardHeader_modalTopHeader__3gsFp\",\"modalTitle\":\"TradeBoardHeader_modalTitle__3mbGv\",\"modifyWatchlist\":\"TradeBoardHeader_modifyWatchlist__c11sr\",\"modifyInputContainer\":\"TradeBoardHeader_modifyInputContainer__1VTzz\",\"inputLimit\":\"TradeBoardHeader_inputLimit__3cEF1\",\"buttonDiv\":\"TradeBoardHeader_buttonDiv__3eWyo\",\"disableBtn\":\"TradeBoardHeader_disableBtn__1c5rU\",\"modifyButton\":\"TradeBoardHeader_modifyButton__33uB3\",\"modifyFooter\":\"TradeBoardHeader_modifyFooter__26oD6\",\"actionButtons\":\"TradeBoardHeader_actionButtons__2ePF4\",\"saveButton\":\"TradeBoardHeader_saveButton__3SYYu\",\"cancelButton\":\"TradeBoardHeader_cancelButton__14Iyb\"};","import { ApplicationStatus } from '../../../utils/functions/enums';\n\nexport type AccountMenuAction = 'switchToRealMoney' | 'fund' | 'accountStatus' | 'accountStatus' | false;\nexport type AccountMenuLabel =\n\t| 'en:SWITCH_TO_REAL'\n\t| 'wtr:ACCOUNT_STATUS'\n\t| 'en:DEPOSIT_FUNDS'\n\t| 'wtr:COMPLETE_APPLICATION'\n\t| 'en:OPEN_LIVE_ACCOUNT'\n\t| 'en:Upload Documents'\n\t| false;\nexport type MarginLevelAction = 'switchToRealMoney' | 'fund' | 'accountStatus' | 'accountStatus' | false;\nexport type marginLevelLabel =\n\t| 'en:SWITCH_TO_REAL'\n\t| 'wtr:ACCOUNT_STATUS'\n\t| 'en:DEPOSIT_FUNDS'\n\t| 'wtr:COMPLETE_APPLICATION'\n\t| 'en:OPEN_LIVE_ACCOUNT'\n\t| 'en:Upload Documents'\n\t| false;\nexport type SignalsAction = 'balanceCheck' | 'accountUnderReview' | 'accountStatus' | 'accountStatus' | false;\nexport type TradeButtons = 'orderTicket' | 'accountStatus' | false;\nexport type MainMenuAction = 'account' | 'fund' | false;\nexport type AddAccount = 'accountStatus' | 'addDemoAccount' | 'addLiveAccount' | 'accountStatus' | false;\nexport type Reports = 'accountStatus' | 'reports' | false;\n\nexport type ManageFunds = 'accountStatus' | 'fund' | 'accountStatus' | false;\nexport type TradersGym = true | false | 'accountStatus';\nexport type PortalPage = 'deposits' | 'fork' | 'relevantStep' | 'statusPage' | 'accountStatus' | false;\nexport type NotificationBell = true | false;\n\nexport enum IStatusConfigEnum {\n\taccountStatus = 'accountStatus',\n\treports = 'reports',\n\taccountUnderReview = 'accountUnderReview',\n\tfund = 'fund',\n\tbalanceCheck = 'balanceCheck',\n\taddLiveAccount = 'addLiveAccount',\n\taddDemoAccount = 'addDemoAccount',\n\tstatusPage = 'statusPage',\n\tfork = 'fork',\n\trelevantStep = 'relevantStep',\n\tdeposits = 'deposits',\n\tswitchToRealMoney = 'switchToRealMoney',\n}\n\nexport interface IStatusConfig {\n\taccountMenuAction: AccountMenuAction;\n\taccountMenuLabel: AccountMenuLabel;\n\tmarginLevelAction: MarginLevelAction;\n\tmarginLevelLabel: marginLevelLabel;\n\tsignalsAction: SignalsAction;\n\ttradeButtons: TradeButtons;\n\tmainMenuAction: MainMenuAction;\n\taddAccount: AddAccount;\n\tmanageFunds: ManageFunds;\n\treports: Reports;\n\ttradersGym: TradersGym;\n\tportalPage: PortalPage;\n\tnotificationBell: NotificationBell;\n}\n\nexport type ActionsConfig = { [key in ApplicationStatus]: IStatusConfig };\n","import { createContext } from 'react';\n\nimport { default as Nullable, Optional } from '../utils/functions/Nullable';\nimport { ObservableMap, ObservableSet, ObservableQueue, IObservableMapEntry } from '../utils/functions/Observables';\nimport { Intersection, ExcludeProperties, Comparator } from '../utils/functions/TypeUtils';\nimport { MarketItem } from '../gateways/RfpGateway/rfp.types';\n\ntype TWatchlistMarketItem = Intersection;\ntype TReadonlyObservableSet = ExcludeProperties, ['add', 'clear', 'delete']>;\ntype TReadonlyObservableMap = ExcludeProperties, ['set', 'clear', 'delete']>;\n\ninterface IInstrumentContextConfig {\n\tinstruments?: Optional | ArrayLike>;\n\twatchlists?: Optional>>;\n\tinstrumentComparator?: Optional>;\n\twatchlistComparator?: Optional>;\n}\n\ninterface IInstrumentContext {\n\tinstruments: MarketItem[]; //ObservableSet;\n\tgroups: Set;\n\twatchlists: TReadonlyObservableMap>;\n\trecentlyViewedInstruments: ObservableQueue;\n\tinstrumentSearchInputFocusDelegate: Optional<() => any>;\n\n\taddWatchlist(name: string): boolean;\n\taddWatchlist(name: string, instruments: Iterable | ArrayLike): boolean;\n\tremoveWatchlist(name: string): boolean;\n\taddInstrumentToWatchlist(instrument: TWatchlistMarketItem, watchlistName: string): boolean;\n\tremoveInstrumentFromWatchlist(instrument: TWatchlistMarketItem, watchlistName: string): boolean;\n\tfocusInstrumentSearchInput(): void;\n\taddInstruments(instruments: MarketItem[], groupingProperty: 'grp' | 'minTier'): void;\n\tupdateGroups(groupingProperty: 'grp' | 'minTier'): void;\n}\n\nclass WatchlistMap extends ObservableMap> {\n\tprivate m_instrumentComparator: Optional> = null;\n\n\tpublic get instrumentComparator(): Optional> {\n\t\treturn this.m_instrumentComparator;\n\t}\n\n\tpublic set instrumentComparator(value: Optional>) {\n\t\tthis.m_instrumentComparator = value;\n\t}\n\n\tpublic set(key: string, value: ObservableSet): this;\n\tpublic set(values: IObservableMapEntry>[]): this;\n\tpublic set(\n\t\tkey: string | IObservableMapEntry>[],\n\t\tvalue?: ObservableSet\n\t): this {\n\t\tlet values: IObservableMapEntry>[] = Array.isArray(key)\n\t\t\t? key\n\t\t\t: [{ key: key, value: value as ObservableSet }];\n\t\tvalues = values.map((entry) => {\n\t\t\treturn { key: entry.key, value: new ObservableSet(entry.value, this.instrumentComparator) };\n\t\t});\n\t\treturn super.set(values);\n\t}\n}\n\nexport class InstrumentContextProvider implements IInstrumentContext {\n\tprivate readonly m_instrumentComparator: Comparator;\n\tprivate readonly m_watchlistComparator: Comparator;\n\tprivate m_instruments: MarketItem[];\n\tprivate readonly m_groups: any;\n\tprivate readonly m_watchlists: WatchlistMap;\n\tprivate readonly m_recentlyViewedInstruments: ObservableQueue;\n\tprivate m_instrumentSearchInputFocusDelegate: Optional<() => any> = null;\n\n\tpublic set instruments(instruments: MarketItem[]) {\n\t\tthis.m_instruments = instruments;\n\t}\n\n\tpublic get instruments(): MarketItem[] {\n\t\treturn this.m_instruments;\n\t}\n\n\tpublic get watchlists(): TReadonlyObservableMap> {\n\t\treturn this.m_watchlists;\n\t}\n\n\tpublic get groups(): Set {\n\t\treturn this.m_groups;\n\t}\n\n\tpublic get recentlyViewedInstruments(): ObservableQueue {\n\t\treturn this.m_recentlyViewedInstruments;\n\t}\n\n\tpublic get instrumentSearchInputFocusDelegate(): Optional<() => any> {\n\t\treturn this.m_instrumentSearchInputFocusDelegate;\n\t}\n\n\tpublic set instrumentSearchInputFocusDelegate(value: Optional<() => any>) {\n\t\tthis.m_instrumentSearchInputFocusDelegate = value;\n\t}\n\n\tpublic constructor(config?: Optional) {\n\t\tthis.m_instrumentComparator = Nullable.of(config)\n\t\t\t.map((config) => config.instrumentComparator as Comparator)\n\t\t\t.orElseGet(() => (val1, val2) => (val1.code || '').toLowerCase() === (val2.code || '').toLowerCase());\n\n\t\tthis.m_watchlistComparator = Nullable.of(config)\n\t\t\t.map((config) => config.watchlistComparator as Comparator)\n\t\t\t.orElseGet(() => (val1, val2) => (val1 || '').trim().toLowerCase() === (val2 || '').trim().toLowerCase());\n\n\t\tthis.m_instruments = Nullable.of(config)\n\t\t\t.map((config) => config.instruments)\n\t\t\t.map((instruments) => {\n\t\t\t\treturn Array.from(instruments);\n\t\t\t\t// const set = new ObservableSet(null, this.m_instrumentComparator);\n\t\t\t\t// set.add(...Array.from(instruments));\n\t\t\t\t// return set;\n\t\t\t})\n\t\t\t.orElseGet(() => []);\n\n\t\tthis.m_watchlists = Nullable.of(config)\n\t\t\t.map((config) => config.watchlists)\n\t\t\t.map((watchlists) => {\n\t\t\t\treturn Array.from(watchlists).map(([key, values]) => {\n\t\t\t\t\treturn { key: key, value: ObservableSet.from(values, this.m_instrumentComparator) };\n\t\t\t\t});\n\t\t\t})\n\t\t\t.map((entries) => {\n\t\t\t\tconst map = new WatchlistMap(null, this.m_watchlistComparator);\n\t\t\t\tmap.instrumentComparator = this.m_instrumentComparator;\n\t\t\t\tmap.set(entries);\n\t\t\t\treturn map;\n\t\t\t})\n\t\t\t.orElseGet(() => {\n\t\t\t\tconst map = new WatchlistMap(null, this.m_watchlistComparator);\n\t\t\t\tmap.instrumentComparator = this.m_instrumentComparator;\n\t\t\t\treturn map;\n\t\t\t});\n\n\t\tthis.m_groups = new Set();\n\n\t\tthis.m_recentlyViewedInstruments = new ObservableQueue(null, this.m_instrumentComparator, 5);\n\t}\n\n\tpublic watchlistExists(name: string): boolean {\n\t\treturn Nullable.of(name)\n\t\t\t.map((name) => this.watchlists.has(name))\n\t\t\t.orElse(false);\n\t}\n\n\tpublic addWatchlist(name: string): boolean;\n\tpublic addWatchlist(\n\t\tname: string,\n\t\tinstruments: Iterable | ArrayLike\n\t): boolean;\n\tpublic addWatchlist(\n\t\tname: string,\n\t\tinstruments?: Iterable | ArrayLike\n\t): boolean {\n\t\treturn Nullable.of(name)\n\t\t\t.filter((name) => !this.watchlistExists(name))\n\t\t\t.map((name) => {\n\t\t\t\tconst marketItems = Array.from(instruments || [])\n\t\t\t\t\t.map((instrument) => this.getInstrument(instrument))\n\t\t\t\t\t.filter((instrument) => instrument);\n\t\t\t\tthis.m_watchlists.set(\n\t\t\t\t\tname,\n\t\t\t\t\tObservableSet.from(marketItems as TWatchlistMarketItem[], this.m_instrumentComparator)\n\t\t\t\t);\n\t\t\t\treturn true;\n\t\t\t})\n\t\t\t.orElse(false);\n\t}\n\n\tpublic removeWatchlist(name: string): boolean {\n\t\treturn Nullable.of(name)\n\t\t\t.map((name) => this.m_watchlists.delete(name))\n\t\t\t.orElse(false);\n\t}\n\n\tpublic addInstrumentToWatchlist(instrument: TWatchlistMarketItem, watchlistName: string): boolean {\n\t\treturn Nullable.of(instrument)\n\t\t\t.map((instrument) => this.getInstrument(instrument))\n\t\t\t.map((instrument) => {\n\t\t\t\treturn Nullable.of(this.getWatchlistInstruments(watchlistName))\n\t\t\t\t\t.filter((instruments) => !instruments.has(instrument))\n\t\t\t\t\t.map((instruments) => {\n\t\t\t\t\t\tinstruments.add(instrument);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t})\n\t\t\t\t\t.orElse(false);\n\t\t\t})\n\t\t\t.orElse(false);\n\t}\n\n\tpublic removeInstrumentFromWatchlist(instrument: TWatchlistMarketItem, watchlistName: string): boolean {\n\t\treturn Nullable.of(instrument)\n\t\t\t.map((instrument) => this.getInstrument(instrument))\n\t\t\t.map((instrument) => {\n\t\t\t\treturn Nullable.of(this.getWatchlistInstruments(watchlistName))\n\t\t\t\t\t.map((instruments) => instruments.delete(instrument))\n\t\t\t\t\t.orElse(false);\n\t\t\t})\n\t\t\t.orElse(false);\n\t}\n\n\tpublic focusInstrumentSearchInput(): void {\n\t\tNullable.of(this.instrumentSearchInputFocusDelegate)\n\t\t\t.filter((fnc) => typeof fnc === 'function')\n\t\t\t.run((fnc) => fnc());\n\t}\n\n\tprivate getInstrument(instrument: TWatchlistMarketItem): Optional {\n\t\treturn Nullable.of(instrument)\n\t\t\t.map((instrument) => Array.from(this.instruments).find((value) => this.m_instrumentComparator(value, instrument)))\n\t\t\t.get();\n\t}\n\n\tprivate getWatchlistInstruments(watchlistName: string): Optional> {\n\t\treturn this.m_watchlists.get(watchlistName);\n\t}\n\n\tpublic addInstruments(instruments: MarketItem[], groupingProperty: 'grp' | 'minTier'): void {\n\t\tfor (const instrument of instruments) {\n\t\t\tinstrument[groupingProperty] && this.m_groups.add(instrument[groupingProperty]?.toString());\n\t\t}\n\n\t\tthis.instruments = instruments;\n\t}\n\n\tpublic updateGroups(groupingProperty: 'grp' | 'minTier'): void {\n\t\tfor (const instrument of this.instruments) {\n\t\t\tinstrument[groupingProperty] && this.m_groups.add(instrument[groupingProperty]?.toString());\n\t\t}\n\t}\n}\n\nconst instrumentContext = createContext(new InstrumentContextProvider());\n\nexport default instrumentContext;\n","import i18n from '../setup/i18n';\n\nimport { Tier } from '../utils/functions/subscriptionUtils';\n\nimport tier1Icon from '../images/tiers/tier1.svg';\nimport tier2Icon from '../images/tiers/tier2.svg';\nimport tier3Icon from '../images/tiers/tier3.svg';\n\nexport const tierIcons: { [key: string]: string } = {\n\ttier1: tier1Icon,\n\ttier2: tier2Icon,\n\ttier3: tier3Icon,\n};\n\n// this information is used only to present the Manage Subscription modal, this is not taken into account for limit or validations\n// It is not updated with data from backend\nexport const tiers: Tier[] = [\n\t{\n\t\tid: 'Tier1',\n\t\tkey: 'TIER_ONE',\n\t\tpricePerMonth: 1500,\n\t\tcurrencyPairs: '2',\n\t\tminPerOrder: 1000,\n\t\tmaxPerOrder: 100000,\n\t\tmonthlyAmount: '10000000',\n\t\tmaxPosition: 30000000,\n\t\tinstruments: ['USD/JPY', 'EUR/USD'],\n\t\tmaxOpenInstrumentPosition: {\n\t\t\t'EUR/USD': 30000000,\n\t\t\t'USD/JPY': 30000000,\n\t\t},\n\t},\n\t{\n\t\tid: 'Tier2',\n\t\tkey: 'TIER_TWO',\n\t\tpricePerMonth: 3000,\n\t\tcurrencyPairs: '25',\n\t\tminPerOrder: 1000,\n\t\tmaxPerOrder: 250000,\n\t\tmonthlyAmount: i18n.t('wtr:UNLIMITED'),\n\t\tmaxPosition: 30000000,\n\t\tinstruments: [\n\t\t\t'USD/JPY',\n\t\t\t'EUR/USD',\n\t\t\t'EUR/JPY',\n\t\t\t'AUD/JPY',\n\t\t\t'GBP/JPY',\n\t\t\t'NZD/JPY',\n\t\t\t'CAD/JPY',\n\t\t\t'CHF/JPY',\n\t\t\t'GBP/USD',\n\t\t\t'AUD/USD',\n\t\t\t'NZD/USD',\n\t\t\t'USD/CAD',\n\t\t\t'USD/CHF',\n\t\t\t'EUR/GBP',\n\t\t\t'EUR/AUD',\n\t\t\t'EUR/CAD',\n\t\t\t'EUR/CHF',\n\t\t\t'EUR/NZD',\n\t\t\t'GBP/AUD',\n\t\t\t'GBP/CAD',\n\t\t\t'GBP/CHF',\n\t\t\t'GBP/NZD',\n\t\t\t'AUD/CAD',\n\t\t\t'AUD/CHF',\n\t\t\t'AUD/NZD',\n\t\t],\n\t\tmaxOpenInstrumentPosition: {\n\t\t\t'AUD/CAD': 30000000,\n\t\t\t'AUD/CHF': 30000000,\n\t\t\t'AUD/JPY': 30000000,\n\t\t\t'AUD/NZD': 30000000,\n\t\t\t'AUD/USD': 30000000,\n\t\t\t'CAD/JPY': 30000000,\n\t\t\t'CHF/JPY': 30000000,\n\t\t\t'EUR/AUD': 30000000,\n\t\t\t'EUR/CAD': 30000000,\n\t\t\t'EUR/CHF': 30000000,\n\t\t\t'EUR/GBP': 30000000,\n\t\t\t'EUR/JPY': 30000000,\n\t\t\t'EUR/NZD': 30000000,\n\t\t\t'EUR/USD': 30000000,\n\t\t\t'GBP/AUD': 30000000,\n\t\t\t'GBP/CAD': 30000000,\n\t\t\t'GBP/CHF': 30000000,\n\t\t\t'GBP/JPY': 30000000,\n\t\t\t'GBP/NZD': 30000000,\n\t\t\t'GBP/USD': 30000000,\n\t\t\t'NZD/JPY': 30000000,\n\t\t\t'NZD/USD': 30000000,\n\t\t\t'USD/CAD': 30000000,\n\t\t\t'USD/CHF': 30000000,\n\t\t\t'USD/JPY': 30000000,\n\t\t},\n\t},\n\t{\n\t\tid: 'Tier3',\n\t\tkey: 'TIER_THREE',\n\t\tpricePerMonth: 5000,\n\t\tcurrencyPairs: '70',\n\t\tminPerOrder: 1000,\n\t\tmaxPerOrder: 500000,\n\t\tmonthlyAmount: i18n.t('wtr:UNLIMITED'),\n\t\tmaxPosition: 50000000,\n\t\tinstruments: [\n\t\t\t'USD/JPY',\n\t\t\t'EUR/USD',\n\t\t\t'EUR/JPY',\n\t\t\t'AUD/JPY',\n\t\t\t'GBP/JPY',\n\t\t\t'NZD/JPY',\n\t\t\t'CAD/JPY',\n\t\t\t'CHF/JPY',\n\t\t\t'GBP/USD',\n\t\t\t'AUD/USD',\n\t\t\t'NZD/USD',\n\t\t\t'USD/CAD',\n\t\t\t'USD/CHF',\n\t\t\t'EUR/GBP',\n\t\t\t'EUR/AUD',\n\t\t\t'EUR/CAD',\n\t\t\t'EUR/CHF',\n\t\t\t'EUR/NZD',\n\t\t\t'GBP/AUD',\n\t\t\t'GBP/CAD',\n\t\t\t'GBP/CHF',\n\t\t\t'GBP/NZD',\n\t\t\t'AUD/CAD',\n\t\t\t'AUD/CHF',\n\t\t\t'AUD/NZD',\n\t\t\t'CAD/CHF',\n\t\t\t'EUR/HUF',\n\t\t\t'EUR/SGD',\n\t\t\t'GBP/HUF',\n\t\t\t'NZD/CAD',\n\t\t\t'NZD/CHF',\n\t\t\t'USD/HUF',\n\t\t\t'USD/MXN',\n\t\t\t'USD/PLN',\n\t\t\t'USD/SGD',\n\t\t\t'USD/ZAR',\n\t\t\t'EUR/MXN',\n\t\t\t'MXN/JPY',\n\t\t\t'ZAR/JPY',\n\t\t\t'USD/CNH',\n\t\t\t'AUD/CNH',\n\t\t\t'AUD/SGD',\n\t\t\t'CNH/JPY',\n\t\t\t'EUR/CNH',\n\t\t\t'GBP/CNH',\n\t\t\t'NZD/SGD',\n\t\t\t'SGD/JPY',\n\t\t\t'EUR/NOK',\n\t\t\t'EUR/SEK',\n\t\t\t'USD/NOK',\n\t\t\t'USD/SEK',\n\t\t\t'CHF/SEK',\n\t\t\t'GBP/NOK',\n\t\t\t'GBP/SEK',\n\t\t\t'GBP/SGD',\n\t\t\t'NOK/JPY',\n\t\t\t'NZD/CNH',\n\t\t\t'EUR/CZK',\n\t\t\t'EUR/PLN',\n\t\t\t'EUR/ZAR',\n\t\t\t'GBP/ZAR',\n\t\t\t'USD/HKD',\n\t\t\t'EUR/DKK',\n\t\t\t'EUR/HKD',\n\t\t\t'GBP/CZK',\n\t\t\t'GBP/DKK',\n\t\t\t'GBP/PLN',\n\t\t\t'NOK/SEK',\n\t\t\t'USD/CZK',\n\t\t\t'USD/DKK',\n\t\t],\n\t\tmaxOpenInstrumentPosition: {\n\t\t\t'AUD/CAD': 30000000,\n\t\t\t'AUD/CHF': 30000000,\n\t\t\t'AUD/JPY': 50000000,\n\t\t\t'AUD/NZD': 30000000,\n\t\t\t'AUD/USD': 30000000,\n\t\t\t'CAD/CHF': 30000000,\n\t\t\t'CAD/JPY': 30000000,\n\t\t\t'CHF/JPY': 30000000,\n\t\t\t'EUR/AUD': 30000000,\n\t\t\t'EUR/CAD': 30000000,\n\t\t\t'EUR/CHF': 30000000,\n\t\t\t'EUR/CZK': 1000000,\n\t\t\t'EUR/GBP': 30000000,\n\t\t\t'EUR/HUF': 30000000,\n\t\t\t'EUR/JPY': 50000000,\n\t\t\t'EUR/NOK': 2000000,\n\t\t\t'EUR/NZD': 30000000,\n\t\t\t'EUR/PLN': 1000000,\n\t\t\t'EUR/SEK': 2000000,\n\t\t\t'EUR/SGD': 30000000,\n\t\t\t'EUR/USD': 50000000,\n\t\t\t'EUR/ZAR': 1000000,\n\t\t\t'GBP/AUD': 30000000,\n\t\t\t'GBP/CAD': 30000000,\n\t\t\t'GBP/CHF': 30000000,\n\t\t\t'GBP/HUF': 30000000,\n\t\t\t'GBP/JPY': 50000000,\n\t\t\t'GBP/NZD': 30000000,\n\t\t\t'GBP/USD': 30000000,\n\t\t\t'GBP/ZAR': 1000000,\n\t\t\t'NZD/CAD': 30000000,\n\t\t\t'NZD/CHF': 30000000,\n\t\t\t'NZD/JPY': 30000000,\n\t\t\t'NZD/USD': 30000000,\n\t\t\t'USD/CAD': 30000000,\n\t\t\t'USD/CHF': 30000000,\n\t\t\t'USD/CNH': 5000000,\n\t\t\t'USD/HKD': 1000000,\n\t\t\t'USD/HUF': 30000000,\n\t\t\t'USD/JPY': 50000000,\n\t\t\t'USD/MXN': 30000000,\n\t\t\t'USD/NOK': 2000000,\n\t\t\t'USD/PLN': 30000000,\n\t\t\t'USD/SEK': 2000000,\n\t\t\t'USD/SGD': 30000000,\n\t\t\t'USD/ZAR': 30000000,\n\t\t\t'AUD/CNH': 5000000,\n\t\t\t'AUD/SGD': 5000000,\n\t\t\t'CHF/SEK': 2000000,\n\t\t\t'CNH/JPY': 5000000,\n\t\t\t'EUR/CNH': 5000000,\n\t\t\t'EUR/DKK': 1000000,\n\t\t\t'EUR/HKD': 1000000,\n\t\t\t'EUR/MXN': 10000000,\n\t\t\t'GBP/CNH': 5000000,\n\t\t\t'GBP/CZK': 1000000,\n\t\t\t'GBP/DKK': 1000000,\n\t\t\t'GBP/NOK': 2000000,\n\t\t\t'GBP/PLN': 1000000,\n\t\t\t'GBP/SEK': 2000000,\n\t\t\t'GBP/SGD': 2000000,\n\t\t\t'MXN/JPY': 10000000,\n\t\t\t'NOK/JPY': 2000000,\n\t\t\t'NOK/SEK': 1000000,\n\t\t\t'NZD/CNH': 2000000,\n\t\t\t'NZD/SGD': 5000000,\n\t\t\t'SGD/JPY': 5000000,\n\t\t\t'USD/CZK': 1000000,\n\t\t\t'USD/DKK': 1000000,\n\t\t\t'ZAR/JPY': 10000000,\n\t\t},\n\t},\n];\n\n// export const tiersIds = tiers.map((tierObj) => tierObj.id as string);\n\nexport const tiersKeysMap: { [key: string]: string } = tiers.reduce((accumulator, currentTier) => {\n\treturn {\n\t\t...accumulator,\n\t\t[currentTier.id]: currentTier.key,\n\t};\n}, {});\n\nexport const totalNumberOfTiers = tiers.length;\n\n// export const LOWEST_TIER_ID = tiers[0].id;\n\nexport const HIGHEST_TIER_ID = tiers[tiers.length - 1].id;\n\nexport const GLOBAL_MAX_ORDER_SIZE = tiers.find((tier) => tier.id === HIGHEST_TIER_ID)?.maxPerOrder;\n\nexport const TIERS_WITH_GYM_ACCESS = [tiers[1].id, tiers[2].id];\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textContainer\":\"NewsWidgetStyles_textContainer__37Io_\",\"contentsAndDisclaimer\":\"NewsWidgetStyles_contentsAndDisclaimer__2pr3v\",\"newsWrapper\":\"NewsWidgetStyles_newsWrapper__3GbYk\",\"jpNewsWrapper\":\"NewsWidgetStyles_jpNewsWrapper__1G93S\",\"container\":\"NewsWidgetStyles_container__3L_OP\",\"header\":\"NewsWidgetStyles_header__1BM0k\",\"actions\":\"NewsWidgetStyles_actions__2uu0-\",\"contents\":\"NewsWidgetStyles_contents__DNd8r\",\"title\":\"NewsWidgetStyles_title__jT-d0\",\"span\":\"NewsWidgetStyles_span__1hUhY\",\"wrapper\":\"NewsWidgetStyles_wrapper__1k6bU\",\"halfWidth\":\"NewsWidgetStyles_halfWidth__2ut6a\",\"width50\":\"NewsWidgetStyles_width50__2d9cv\",\"articleDetails\":\"NewsWidgetStyles_articleDetails__1_nwc\",\"articleContainer\":\"NewsWidgetStyles_articleContainer__1oNSp\",\"selected\":\"NewsWidgetStyles_selected__2F5Mb\",\"articleText\":\"NewsWidgetStyles_articleText__2NRAX\",\"headline\":\"NewsWidgetStyles_headline__2UIK6\",\"time\":\"NewsWidgetStyles_time__22yOa\",\"modalContainer\":\"NewsWidgetStyles_modalContainer__gVXfM\",\"iconContainer\":\"NewsWidgetStyles_iconContainer__2ljwq\",\"cancel\":\"NewsWidgetStyles_cancel__2gsFj\",\"heading\":\"NewsWidgetStyles_heading__whb8h\",\"bodyText\":\"NewsWidgetStyles_bodyText__GwDXM\",\"disclaimerMessageWrapper\":\"NewsWidgetStyles_disclaimerMessageWrapper__vrRuM\",\"emptyContainer\":\"NewsWidgetStyles_emptyContainer__3sMWp\",\"emptyButtonContainer\":\"NewsWidgetStyles_emptyButtonContainer__PYq2I\",\"clearFiltersButton\":\"NewsWidgetStyles_clearFiltersButton__376ki\",\"emptyIcon\":\"NewsWidgetStyles_emptyIcon__iu-_q\",\"message\":\"NewsWidgetStyles_message__3xYSb\",\"dropdown\":\"NewsWidgetStyles_dropdown__1k6Yb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"ConfirmOrderModal_modalDialog__1J-0D\",\"modalHeader\":\"ConfirmOrderModal_modalHeader__3eG3H\",\"modalBody\":\"ConfirmOrderModal_modalBody__1lGK9\",\"container\":\"ConfirmOrderModal_container__3_ICr\",\"fieldContainer\":\"ConfirmOrderModal_fieldContainer__pV5xq\",\"confirmField\":\"ConfirmOrderModal_confirmField__XGvWk\",\"label\":\"ConfirmOrderModal_label__1nfva\",\"value\":\"ConfirmOrderModal_value__3ZPe9\",\"footer\":\"ConfirmOrderModal_footer__3wylb\"};","import { useMutation } from '@tanstack/react-query';\nimport { SHA384 } from 'sha2';\n\nimport axios from 'axios';\n\nimport { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport { TradingAccountType } from '../functions/enums';\nimport watchListStore from '../../store/WatchListStore/watchListStore';\n\nconst useSaveUserPreferences = () => {\n\tconst appContext = useContext(AppContext);\n\tconst currentWatchList = watchListStore.use.currentWatchList();\n\n\tconst mutationFn = async () => {\n\t\tconst preferences = appContext.userPreferences;\n\t\tconst isJapanAccount = appContext.isJapanAccount;\n\n\t\tif (currentWatchList && preferences && isJapanAccount) {\n\t\t\tconst liveCFDWatchlist = preferences?.user_prefs?.watchlists?.account.find((account) => {\n\t\t\t\treturn account && account._type.toUpperCase() === TradingAccountType.LIVE && !account.accountType;\n\t\t\t});\n\n\t\t\tif (liveCFDWatchlist) {\n\t\t\t\tliveCFDWatchlist._lastUsedWatchlist = currentWatchList;\n\t\t\t}\n\t\t}\n\n\t\tif (preferences) {\n\t\t\tconst convertUserPref = JSON.stringify(preferences);\n\t\t\tconst email = appContext.email;\n\t\t\ttry {\n\t\t\t\tconst response = await axios({\n\t\t\t\t\turl: '/v2/preferences',\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\tAuthorization: SHA384(`${email}Bji4xKz9cPTac4B7ruET`).toString('hex'),\n\t\t\t\t\t},\n\t\t\t\t\tparams: {\n\t\t\t\t\t\temail,\n\t\t\t\t\t},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\temail,\n\t\t\t\t\t\tpreference: btoa(encodeURIComponent(convertUserPref)),\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tif (convertUserPref && convertUserPref !== 'null') {\n\t\t\t\t\tlocalStorage.setItem(`userPref-${email}`, convertUserPref);\n\t\t\t\t}\n\n\t\t\t\treturn response.data;\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\n\t\t\t\tif (!preferences) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (convertUserPref && convertUserPref !== 'null') {\n\t\t\t\t\tlocalStorage.setItem(`userPref-${email}`, convertUserPref);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn useMutation({ mutationKey: ['useSaveUserPreferences', appContext.email], mutationFn });\n};\n\nexport default useSaveUserPreferences;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"section\":\"AccountMenuPopupSection_section__1v_RW\",\"header\":\"AccountMenuPopupSection_header__3-0h-\",\"item\":\"AccountMenuPopupSection_item__BNzUg\",\"demo\":\"AccountMenuPopupSection_demo__lVBZI\",\"disabledOptionChildren\":\"AccountMenuPopupSection_disabledOptionChildren__1LdMu\",\"live\":\"AccountMenuPopupSection_live__J0gVQ\",\"icon\":\"AccountMenuPopupSection_icon__1Chxm\",\"red\":\"AccountMenuPopupSection_red__2dYRI\",\"iconContainerWrapper\":\"AccountMenuPopupSection_iconContainerWrapper__3jlSt\",\"iconContainer\":\"AccountMenuPopupSection_iconContainer__LMVs0\",\"settingsIcon\":\"AccountMenuPopupSection_settingsIcon__2eh_G\",\"statsContainer\":\"AccountMenuPopupSection_statsContainer__ufIQ5\",\"stats\":\"AccountMenuPopupSection_stats__Y8xOT\",\"selected\":\"AccountMenuPopupSection_selected__1Uaf2\",\"baseCurrency\":\"AccountMenuPopupSection_baseCurrency__1LFt4\",\"addAccountContainer\":\"AccountMenuPopupSection_addAccountContainer__3fpEX\",\"plusIcon\":\"AccountMenuPopupSection_plusIcon__Yzxhd\",\"addAccountText\":\"AccountMenuPopupSection_addAccountText__2hp-Q\",\"itemNoBorder\":\"AccountMenuPopupSection_itemNoBorder__kqgrs\",\"manageSubscriptionIcon\":\"AccountMenuPopupSection_manageSubscriptionIcon__tg8Dk\",\"itemCancel\":\"AccountMenuPopupSection_itemCancel__1vwHc\",\"currencyStatsUsers\":\"AccountMenuPopupSection_currencyStatsUsers__2ugkH\"};","import { ENVIRONMENT_NAME } from '../../../../setup/config';\n\nexport type TLanguageOptions = {\n\tshortText?: string;\n\tvalue: string;\n\tdisabled?: boolean;\n\trfpLang: string;\n\tcaptchaLang: string;\n\tsignalsLang: string;\n\tcalendarLang: string;\n\ttradingView: string;\n\ttext?: string;\n};\n\nconst hasBrackets = ENVIRONMENT_NAME !== 'production' && ENVIRONMENT_NAME !== 'preview-production';\n\nexport enum LanguageCodes {\n\tENGLISH = 'en',\n\tCHINESE_SIMPLIFIED = 'zh-Hans',\n\tCHINESE_TRADITIONAL = 'zh-Hant',\n\tDEUTSCH = 'de',\n\tJAPANESE = 'ja',\n\tVIETNAMESE = 'vi',\n\tTHAI = 'th',\n\tPORTUGUESE = 'pt-BR',\n\tARABIC = 'ar-SA',\n\tITALIAN = 'it',\n\tSPANISH = 'es',\n}\n\nexport const languageOptions: TLanguageOptions[] = [\n\t{\n\t\tshortText: 'English',\n\t\tvalue: LanguageCodes.ENGLISH,\n\t\tdisabled: false,\n\t\trfpLang: 'en',\n\t\tcaptchaLang: 'en',\n\t\tsignalsLang: 'en-gb',\n\t\tcalendarLang: 'en',\n\t\ttradingView: 'en',\n\t},\n\t{\n\t\tshortText: '简体中文', // Chinese Simplified\n\t\tvalue: LanguageCodes.CHINESE_SIMPLIFIED,\n\t\tdisabled: false,\n\t\trfpLang: 'cn',\n\t\tcaptchaLang: 'zh-CN',\n\t\tsignalsLang: 'zh-cn',\n\t\tcalendarLang: 'cs',\n\t\ttradingView: 'zh',\n\t},\n\t{\n\t\tshortText: '繁體中文', // Chinese Traditional\n\t\tvalue: LanguageCodes.CHINESE_TRADITIONAL,\n\t\tdisabled: false,\n\t\trfpLang: 'ct',\n\t\tcaptchaLang: 'zh-TW',\n\t\tsignalsLang: 'zh-cht',\n\t\tcalendarLang: 'cs',\n\t\ttradingView: 'zh_TW',\n\t},\n\t{\n\t\tshortText: 'Deutsch', // German\n\t\tvalue: LanguageCodes.DEUTSCH,\n\t\tdisabled: false,\n\t\trfpLang: 'de',\n\t\tcaptchaLang: 'de',\n\t\tsignalsLang: 'de-de',\n\t\tcalendarLang: 'de',\n\t\ttradingView: 'de',\n\t},\n\t{\n\t\tshortText: '日本語', // Japanese\n\t\tvalue: LanguageCodes.JAPANESE,\n\t\tdisabled: false,\n\t\trfpLang: 'ja',\n\t\tcaptchaLang: 'ja',\n\t\tsignalsLang: 'ja-jp',\n\t\tcalendarLang: 'ja',\n\t\ttradingView: 'ja',\n\t},\n\t{\n\t\tshortText: 'Tiếng Việt', // Vietnamese\n\t\tvalue: LanguageCodes.VIETNAMESE,\n\t\tdisabled: false,\n\t\trfpLang: 'vi',\n\t\tcaptchaLang: 'vi',\n\t\tsignalsLang: 'vi-vn',\n\t\tcalendarLang: 'vi',\n\t\ttradingView: 'vi',\n\t},\n\t{\n\t\tshortText: 'ไทย', // Thai\n\t\tvalue: LanguageCodes.THAI,\n\t\tdisabled: false,\n\t\trfpLang: 'th',\n\t\tcaptchaLang: 'th',\n\t\tsignalsLang: 'th-th',\n\t\tcalendarLang: 'vi',\n\t\ttradingView: 'th',\n\t},\n\t{\n\t\tshortText: 'Português', // Portguese\n\t\tvalue: LanguageCodes.PORTUGUESE,\n\t\tdisabled: false,\n\t\trfpLang: 'pt',\n\t\tcaptchaLang: 'pt',\n\t\tsignalsLang: 'pt-br',\n\t\tcalendarLang: 'pt',\n\t\ttradingView: 'pt',\n\t},\n\t{\n\t\tshortText: 'العربية', // Arabic\n\t\tvalue: LanguageCodes.ARABIC,\n\t\tdisabled: false,\n\t\trfpLang: 'ar_sa',\n\t\tcaptchaLang: 'ar',\n\t\tsignalsLang: 'ar-ae',\n\t\tcalendarLang: 'ar',\n\t\ttradingView: 'ar',\n\t},\n\t{\n\t\tshortText: 'Italiano', // Italian\n\t\tvalue: LanguageCodes.ITALIAN,\n\t\tdisabled: false,\n\t\trfpLang: 'it',\n\t\tcaptchaLang: 'it',\n\t\tsignalsLang: 'it-it',\n\t\tcalendarLang: 'it',\n\t\ttradingView: 'it',\n\t},\n\t{\n\t\tshortText: 'Español', // Spanish\n\t\tvalue: LanguageCodes.SPANISH,\n\t\tdisabled: false,\n\t\trfpLang: 'es',\n\t\tcaptchaLang: 'es',\n\t\tsignalsLang: 'es-es',\n\t\tcalendarLang: 'es',\n\t\ttradingView: 'es',\n\t},\n].map((lang) => {\n\tif (hasBrackets) {\n\t\tlang.shortText += ` (${lang.value})`;\n\t}\n\treturn lang;\n});\n\nexport const getEnabledLangOptions = (allowedLanguages: string[] = []): TLanguageOptions[] => {\n\tconst enabledLangOptions = languageOptions.filter((languageOption: TLanguageOptions) => {\n\t\tif (languageOption.disabled) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (allowedLanguages.length && !allowedLanguages.includes(languageOption.value)) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t});\n\n\treturn enabledLangOptions;\n};\n\nexport const getInactivityLogoutOptions = (t: (string: string) => string) => [\n\t{ text: t('wtr:15_Minutes'), value: '900' },\n\t{ text: t('wtr:60_Minutes'), value: '3600' },\n\t{ text: t('wtr:360_Minutes'), value: '21600' },\n];\nexport const getAccountIconOptions = (num?: number) => [\n\t{\n\t\tkey: 1,\n\t\tvalue: 1,\n\t\timage: { avatar: true, src: '/avatars/1.svg' },\n\t},\n\t{\n\t\tkey: 2,\n\t\tvalue: 2,\n\t\timage: { avatar: true, src: '/avatars/2.svg' },\n\t},\n\t{\n\t\tkey: 3,\n\t\tvalue: 3,\n\t\timage: { avatar: true, src: '/avatars/3.svg' },\n\t},\n\t{\n\t\tkey: 4,\n\t\tvalue: 4,\n\t\timage: { avatar: true, src: '/avatars/4.svg' },\n\t},\n\t{\n\t\tkey: 5,\n\t\tvalue: 5,\n\t\timage: { avatar: true, src: '/avatars/5.svg' },\n\t},\n\t{\n\t\tkey: 6,\n\t\tvalue: 6,\n\t\timage: { avatar: true, src: '/avatars/6.svg' },\n\t},\n\t{\n\t\tkey: 7,\n\t\tvalue: 7,\n\t\timage: { avatar: true, src: '/avatars/7.svg' },\n\t},\n\t{\n\t\tkey: 8,\n\t\tvalue: 8,\n\t\timage: { avatar: true, src: '/avatars/8.svg' },\n\t},\n\t{\n\t\tkey: 9,\n\t\tvalue: 9,\n\t\timage: { avatar: true, src: '/avatars/9.svg' },\n\t},\n\t{\n\t\tkey: 10,\n\t\tvalue: 10,\n\t\timage: { avatar: true, src: '/avatars/10.svg' },\n\t},\n\t{\n\t\tkey: 11,\n\t\tvalue: 11,\n\t\timage: { avatar: true, src: '/avatars/11.svg' },\n\t},\n\t{\n\t\tkey: 12,\n\t\tvalue: 12,\n\t\timage: { avatar: true, src: '/avatars/12.svg' },\n\t},\n\t{\n\t\tkey: 13,\n\t\tvalue: 13,\n\t\timage: { avatar: true, src: '/avatars/13.svg' },\n\t},\n\t{\n\t\tkey: 14,\n\t\tvalue: 14,\n\t\timage: { avatar: true, src: '/avatars/14.svg' },\n\t},\n\t{\n\t\tkey: 15,\n\t\tvalue: 15,\n\t\timage: { avatar: true, src: '/avatars/15.svg' },\n\t},\n\t{\n\t\tkey: 16,\n\t\tvalue: 16,\n\t\timage: { avatar: true, src: '/avatars/16.svg' },\n\t},\n\t{\n\t\tkey: 17,\n\t\tvalue: 17,\n\t\timage: { avatar: true, src: '/avatars/17.svg' },\n\t},\n\t{\n\t\tkey: 18,\n\t\tvalue: 18,\n\t\timage: { avatar: true, src: '/avatars/18.svg' },\n\t},\n\t{\n\t\tkey: 19,\n\t\tvalue: 19,\n\t\timage: { avatar: true, src: '/avatars/19.svg' },\n\t},\n\t{\n\t\tkey: 20,\n\t\tvalue: 20,\n\t\timage: { avatar: true, src: '/avatars/20.svg' },\n\t},\n\t{\n\t\tkey: 21,\n\t\tvalue: 21,\n\t\timage: { avatar: true, src: '/avatars/21.svg' },\n\t},\n\t{\n\t\tkey: 22,\n\t\tvalue: 22,\n\t\timage: { avatar: true, src: '/avatars/22.svg' },\n\t},\n\t{\n\t\tkey: 23,\n\t\tvalue: 23,\n\t\timage: { avatar: true, src: '/avatars/23.svg' },\n\t},\n\t{\n\t\tkey: 24,\n\t\tvalue: 24,\n\t\timage: { avatar: true, src: '/avatars/24.svg' },\n\t},\n\t{\n\t\tkey: 25,\n\t\tvalue: 25,\n\t\timage: { avatar: true, src: '/avatars/25.svg' },\n\t},\n\t{\n\t\tkey: 26,\n\t\tvalue: 26,\n\t\timage: { avatar: true, src: '/avatars/26.svg' },\n\t},\n\t{\n\t\tkey: 27,\n\t\tvalue: 27,\n\t\timage: { avatar: true, src: '/avatars/27.svg' },\n\t},\n\t{\n\t\tkey: 28,\n\t\tvalue: 28,\n\t\timage: { avatar: true, src: '/avatars/28.svg' },\n\t},\n\t{\n\t\tkey: 29,\n\t\tvalue: 29,\n\t\timage: { avatar: true, src: '/avatars/29.svg' },\n\t},\n\t{\n\t\tkey: 30,\n\t\tvalue: 30,\n\t\timage: { avatar: true, src: '/avatars/30.svg' },\n\t},\n\t{\n\t\tkey: 31,\n\t\tvalue: 31,\n\t\timage: { avatar: true, src: '/avatars/31.svg' },\n\t},\n\t{\n\t\tkey: 32,\n\t\tvalue: 32,\n\t\timage: { avatar: true, src: '/avatars/32.svg' },\n\t},\n\t{\n\t\tkey: 33,\n\t\tvalue: 33,\n\t\timage: { avatar: true, src: '/avatars/33.svg' },\n\t},\n\t{\n\t\tkey: 34,\n\t\tvalue: 34,\n\t\timage: { avatar: true, src: '/avatars/34.svg' },\n\t},\n\t{\n\t\tkey: 35,\n\t\tvalue: 35,\n\t\timage: { avatar: true, src: '/avatars/35.svg' },\n\t},\n];\n\nexport const rfpLangMap = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.rfpLang }),\n\t{} as { string: string }\n);\nexport type RfpLangMap = keyof typeof rfpLangMap;\nexport const captchaLangMap = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.captchaLang }),\n\t{} as { string: string }\n);\nexport type CaptchaLangMap = keyof typeof captchaLangMap;\nexport const signalsLangMap: { string: string } = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.signalsLang }),\n\t{} as { string: string }\n);\nexport type SignalsLangMap = keyof typeof signalsLangMap;\nexport const calendarLangMap: { string: string } = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.calendarLang }),\n\t{} as { string: string }\n);\nexport type CalendarLangMap = keyof typeof calendarLangMap;\nexport const tradingViewLangMap: { string: string } = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.tradingView }),\n\t{} as { string: string }\n);\nexport type TradingViewLangMap = keyof typeof tradingViewLangMap;\n","import { create } from 'zustand';\n\nimport createSelectors from '../createSelectors';\n\nimport { PriceQuote } from '../../gateways/RfpGateway/rfp.types';\n\nexport type QuoteState = {\n\tquotes: Record<\n\t\tstring,\n\t\t{ sellDirection: number; buyDirection: number; previousQuote: PriceQuote; currentQuote: PriceQuote }\n\t>;\n\tsetQuote: (quote: PriceQuote) => void;\n\tmaxVolatility: number;\n\tsetMaxVolatility: (value: number) => void;\n};\n\nconst calcSellDirection = (currentQuote: PriceQuote, previousQuote?: PriceQuote, prevSellDirection?: number) => {\n\tif (previousQuote && currentQuote.b !== previousQuote.b) {\n\t\treturn currentQuote.b > previousQuote.b ? -1 : 1;\n\t}\n\treturn prevSellDirection ?? 0;\n};\n\nconst calcBuyDirection = (currentQuote: PriceQuote, previousQuote?: PriceQuote, prevBuyDirection?: number) => {\n\tif (previousQuote && currentQuote.a !== previousQuote.a) {\n\t\treturn currentQuote.a > previousQuote.a ? -1 : 1;\n\t}\n\treturn prevBuyDirection ?? 0;\n};\n\nconst quoteStore = create((set) => ({\n\tquotes: {},\n\tsetQuote: (quote: PriceQuote) => {\n\t\tset((state) => ({\n\t\t\tquotes: {\n\t\t\t\t...state.quotes,\n\t\t\t\t[quote.c]: {\n\t\t\t\t\tsellDirection: calcSellDirection(\n\t\t\t\t\t\tquote,\n\t\t\t\t\t\tstate.quotes[quote.c]?.previousQuote,\n\t\t\t\t\t\tstate.quotes[quote.c]?.sellDirection\n\t\t\t\t\t),\n\t\t\t\t\tbuyDirection: calcBuyDirection(\n\t\t\t\t\t\tquote,\n\t\t\t\t\t\tstate.quotes[quote.c]?.previousQuote,\n\t\t\t\t\t\tstate.quotes[quote.c]?.buyDirection\n\t\t\t\t\t),\n\t\t\t\t\tpreviousQuote: state.quotes[quote.c]?.currentQuote || quote,\n\t\t\t\t\tcurrentQuote: quote,\n\t\t\t\t},\n\t\t\t},\n\t\t}));\n\t},\n\tmaxVolatility: 1,\n\tsetMaxVolatility: (value: number) => {\n\t\tset((state) => ({\n\t\t\t...state,\n\t\t\tmaxVolatility: value,\n\t\t}));\n\t},\n}));\n\nexport default createSelectors(quoteStore);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"OneClickTradeTicket_container__2c-QA\",\"containerSelected\":\"OneClickTradeTicket_containerSelected__3lf8f\",\"removeIconContainer\":\"OneClickTradeTicket_removeIconContainer__2gUYA\",\"buttonHover\":\"OneClickTradeTicket_buttonHover__2B-36\",\"spreadHover\":\"OneClickTradeTicket_spreadHover__3gmCQ\",\"containerDetached\":\"OneClickTradeTicket_containerDetached__301mo\",\"containerLimited\":\"OneClickTradeTicket_containerLimited__3lr4r\",\"iconContainer\":\"OneClickTradeTicket_iconContainer__yGsYs\",\"wrapper\":\"OneClickTradeTicket_wrapper__3IRo6\",\"removeIcon\":\"OneClickTradeTicket_removeIcon__3GtdA\",\"headerContainer\":\"OneClickTradeTicket_headerContainer__2zZmW\",\"instrumentHeader\":\"OneClickTradeTicket_instrumentHeader__y08kV\",\"instrumentCode\":\"OneClickTradeTicket_instrumentCode__1jALl\",\"sessionIcon\":\"OneClickTradeTicket_sessionIcon___lko5\",\"instrumentName\":\"OneClickTradeTicket_instrumentName__XR5tB\",\"orderStatusContainer\":\"OneClickTradeTicket_orderStatusContainer__Oa8NR\",\"loadingContainer\":\"OneClickTradeTicket_loadingContainer__3itA2\",\"submittedContainer\":\"OneClickTradeTicket_submittedContainer__1ex00\",\"loadingIcon\":\"OneClickTradeTicket_loadingIcon__MknEP\",\"submittedText\":\"OneClickTradeTicket_submittedText__2sohy\",\"wrongQuantityError\":\"OneClickTradeTicket_wrongQuantityError__13y7W\",\"modalRemoveWatchlist\":\"OneClickTradeTicket_modalRemoveWatchlist___dsuT\",\"modalTopHeader\":\"OneClickTradeTicket_modalTopHeader__ftt13\",\"modalTitle\":\"OneClickTradeTicket_modalTitle__4IwDf\",\"removeMessage\":\"OneClickTradeTicket_removeMessage__2JK_x\",\"modifyFooter\":\"OneClickTradeTicket_modifyFooter__28wXl\",\"actionButtons\":\"OneClickTradeTicket_actionButtons__3VtZH\"};","abstract class StringUtils {\n\tpublic static isString(value: any): value is string {\n\t\treturn value != null && (typeof value === 'string' || value instanceof String);\n\t}\n\n\tpublic static equalsIgnoreCase(value: string, compare: string): boolean;\n\tpublic static equalsIgnoreCase(value: string, ...compare: string[]): boolean;\n\tpublic static equalsIgnoreCase(value: string, compare: string | string[]): boolean {\n\t\treturn Array.isArray(compare)\n\t\t\t? compare.every(\n\t\t\t\t\t(compValue) =>\n\t\t\t\t\t\tvalue === compValue ||\n\t\t\t\t\t\t(value != null && compValue != null && value.toLowerCase() === compValue.toLowerCase())\n\t\t\t )\n\t\t\t: value === compare || (value != null && compare != null && value.toLowerCase() === compare.toLowerCase());\n\t}\n\n\tpublic static isNullOrEmpty(value: string | null | undefined): boolean {\n\t\treturn value == null || value === '';\n\t}\n\n\tpublic static isNullOrWhiteSpace(value: string | null | undefined): boolean {\n\t\treturn value == null || value.trim() === '';\n\t}\n\n\tpublic static evaluateTemplate(template: string, context: { [k: string]: any }): string {\n\t\tlet returnValue = template;\n\t\tif (!this.isNullOrWhiteSpace(returnValue)) {\n\t\t\t/* eslint no-template-curly-in-string: off */\n\t\t\tconst regex = new RegExp('{([^}]+)}', 'gm');\n\t\t\tlet match: ReturnType;\n\t\t\twhile ((match = regex.exec(returnValue)) !== null) {\n\t\t\t\t// This is necessary to avoid infinite loops with zero-width matches\n\t\t\t\tif (match.index === regex.lastIndex) {\n\t\t\t\t\tregex.lastIndex++;\n\t\t\t\t}\n\n\t\t\t\t//replace template variable if match is found\n\t\t\t\tif (match.length >= 2) {\n\t\t\t\t\tconst search = match[0];\n\t\t\t\t\tconst key = match[1];\n\t\t\t\t\tconst replace = context != null && context[key] != null ? `${context[key]}` : '';\n\t\t\t\t\treturnValue = returnValue.replace(search, replace);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn returnValue;\n\t}\n}\n\nexport default {\n\tisString: StringUtils.isString,\n\tequalsIgnoreCase: StringUtils.equalsIgnoreCase,\n\tisNullOrEmpty: StringUtils.isNullOrEmpty,\n\tisNullOrWhiteSpace: StringUtils.isNullOrWhiteSpace,\n\tevaluateTemplate: StringUtils.evaluateTemplate,\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"Header_header__SfXwj\",\"accountInfoContainer\":\"Header_accountInfoContainer__2Ohvx\",\"headerUnapprovedView\":\"Header_headerUnapprovedView__Up4Fs\",\"search\":\"Header_search__1Kvgc\",\"smallSearch\":\"Header_smallSearch__2_XBY\",\"type\":\"Header_type__3VqX5\",\"typeLive\":\"Header_typeLive__Gnb3J\",\"typeDemo\":\"Header_typeDemo__2zzww\",\"accountId\":\"Header_accountId__3ajTS\",\"unapprovedAccountId\":\"Header_unapprovedAccountId__39rZD\",\"modalSettings\":\"Header_modalSettings__3Cwc-\",\"modalContent\":\"Header_modalContent__2oAc-\",\"popupContainer\":\"Header_popupContainer__1sXz4\",\"accountStatus\":\"Header_accountStatus__3jXr7\",\"popupHeader\":\"Header_popupHeader__20qi-\",\"unapprovedPopupHeader\":\"Header_unapprovedPopupHeader__232eX\",\"faIcons\":\"Header_faIcons__2-QFx\",\"otherAccountsDiv\":\"Header_otherAccountsDiv__p078m\",\"addAccountContainer\":\"Header_addAccountContainer__1WoI-\",\"actionButtons\":\"Header_actionButtons__3yoYI\",\"saveButton\":\"Header_saveButton__6cUQ_\",\"cancelButton\":\"Header_cancelButton__OVeN3\",\"modalFooter\":\"Header_modalFooter__20DzH\",\"settingsModalHeader\":\"Header_settingsModalHeader__3XmeW\",\"modalTitle\":\"Header_modalTitle__2Qfqw\",\"settings\":\"Header_settings__1STSj\",\"closeIcon\":\"Header_closeIcon__2WIq-\",\"optionsContainer\":\"Header_optionsContainer__1hbr1\",\"profileContainer\":\"Header_profileContainer__2mGC7\",\"profileName\":\"Header_profileName__2Pgx5\",\"profileEmail\":\"Header_profileEmail__fIBRT\",\"profileImage\":\"Header_profileImage__3K8Uy\",\"defaultImage\":\"Header_defaultImage__2fpN9\",\"profileImageInfo\":\"Header_profileImageInfo__6qs3p\",\"profileSettingsBG\":\"Header_profileSettingsBG__36ZyG\",\"settingsTabContainer\":\"Header_settingsTabContainer__1WH0m\",\"iconContainer\":\"Header_iconContainer__2rTzs\",\"settingsTabContainerLabel\":\"Header_settingsTabContainerLabel__10SC8\",\"settingsTabOption\":\"Header_settingsTabOption__3X-Zi\",\"logout\":\"Header_logout__3wQXe\",\"menuSection\":\"Header_menuSection__3kajZ\",\"tradingAccounts\":\"Header_tradingAccounts__1uQvq\",\"faUsaFlag\":\"Header_faUsaFlag__TcaKp\",\"faUsaFlagLive\":\"Header_faUsaFlagLive__3zYOi\",\"faUsaFlagDemo\":\"Header_faUsaFlagDemo__1aRGx\",\"popupFlagIcon\":\"Header_popupFlagIcon__HNo66\",\"popupFlagIconLive\":\"Header_popupFlagIconLive__1FIk4\",\"popupFlagIconDemo\":\"Header_popupFlagIconDemo__KR37_\",\"flagLogoAccount\":\"Header_flagLogoAccount__1Mf2Z\",\"flagLogoAccountLive\":\"Header_flagLogoAccountLive__3kbMq\",\"flagLogoAccountDemo\":\"Header_flagLogoAccountDemo__3gYDZ\",\"withCurrency\":\"Header_withCurrency__Fpvay\",\"withoutCurrency\":\"Header_withoutCurrency__1OjmV\",\"dontMatch\":\"Header_dontMatch__2yEyP\",\"iconCircle\":\"Header_iconCircle__2vwrE\",\"otherAccounts\":\"Header_otherAccounts__3iNgd\",\"menuItemsContainer\":\"Header_menuItemsContainer__1cMtz\",\"menuItemIconContainer\":\"Header_menuItemIconContainer__2ERX1\",\"menuItemIcon\":\"Header_menuItemIcon__2_COG\",\"menuItemIconEnlarged\":\"Header_menuItemIconEnlarged__3FBd_\",\"menuItemText\":\"Header_menuItemText__3H5EQ\",\"logoContainer\":\"Header_logoContainer__2ss0P\",\"logo\":\"Header_logo__2Y86f\",\"accountStats\":\"Header_accountStats__1rBav\",\"disabledOption\":\"Header_disabledOption__1Q-sk\",\"accountContainer\":\"Header_accountContainer__3dzzr\",\"liveAddAccountContainer\":\"Header_liveAddAccountContainer__YjE0Z\",\"demoAddAccountContainer\":\"Header_demoAddAccountContainer__3B-il\",\"plusIcon\":\"Header_plusIcon__1g3jB\",\"instrumentSearchContainer\":\"Header_instrumentSearchContainer__pmHyz\",\"expandedInstrumentSearchContainer\":\"Header_expandedInstrumentSearchContainer__3u2Q7\",\"questionIcon\":\"Header_questionIcon__DqHsp\",\"passPopup\":\"Header_passPopup__3yhF-\",\"plusImage\":\"Header_plusImage__2XVAX\",\"popupDivLive\":\"Header_popupDivLive__9-a6q\",\"settingsMain\":\"Header_settingsMain__2x3-l\",\"settingsWrapper\":\"Header_settingsWrapper__2iBOi\",\"settingsNavigation\":\"Header_settingsNavigation__1oDaO\",\"tab\":\"Header_tab__3SYPl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"scrollableWrapper\":\"SignalsList_scrollableWrapper__1ppqk\",\"centerContent\":\"SignalsList_centerContent__2zgn3\",\"disableTextSelection\":\"SignalsList_disableTextSelection__1pXDz\",\"container\":\"SignalsList_container__22Djf\",\"signalsTable\":\"SignalsList_signalsTable__1nOCG\",\"tableHeadersRow\":\"SignalsList_tableHeadersRow__2-KUS\",\"header\":\"SignalsList_header__AeENm\",\"signalsItemWrapper\":\"SignalsList_signalsItemWrapper__1qmPy\",\"border\":\"SignalsList_border__3A6Ae\",\"headerContainer\":\"SignalsList_headerContainer__361Ow\",\"titleContainer\":\"SignalsList_titleContainer__eTCJQ\",\"title\":\"SignalsList_title__2p0dp\",\"filterIconHolder\":\"SignalsList_filterIconHolder__3TxhX\",\"hasFiltersIndicator\":\"SignalsList_hasFiltersIndicator__29Gct\",\"filterIcon\":\"SignalsList_filterIcon__2D5wq\",\"selected\":\"SignalsList_selected__Ds21G\",\"sortingChevtonsContainer\":\"SignalsList_sortingChevtonsContainer__1aq7m\",\"signalItem\":\"SignalsList_signalItem__8j9dO\",\"instrumentInfo\":\"SignalsList_instrumentInfo__1MGFG\",\"code\":\"SignalsList_code__9Ck6g\",\"description\":\"SignalsList_description__CeFLY\",\"confidencePercent\":\"SignalsList_confidencePercent__3lVUS\",\"orderStats\":\"SignalsList_orderStats__2OnBS\",\"orderType\":\"SignalsList_orderType__2Z92Y\",\"loader\":\"SignalsList_loader__2wYz5\",\"addSimulation\":\"SignalsList_addSimulation__QPZKv\",\"plusIcon\":\"SignalsList_plusIcon__2yjyb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"CommunityList_popup__1Xul3\",\"content\":\"CommunityList_content__yYU2A\",\"wrapperItems\":\"CommunityList_wrapperItems__2C9vB\",\"itemContent\":\"CommunityList_itemContent__xYG9T\",\"item\":\"CommunityList_item__3N9Mt\",\"itemNoBorder\":\"CommunityList_itemNoBorder__1C5M8\",\"iconWrapper\":\"CommunityList_iconWrapper__1yjeX\",\"icon\":\"CommunityList_icon__1Dg8b\",\"popupIsArabic\":\"CommunityList_popupIsArabic__2kKJx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"RemainingVolume_popup__16nES\",\"viewDetailsContainer\":\"RemainingVolume_viewDetailsContainer__35Fqy\",\"btnViewDetails\":\"RemainingVolume_btnViewDetails__7WW6K\",\"wrapper\":\"RemainingVolume_wrapper__jTad2\",\"isOpen\":\"RemainingVolume_isOpen__2cNAT\",\"green\":\"RemainingVolume_green__2TqmN\",\"statusIndicator\":\"RemainingVolume_statusIndicator__2uR6M\",\"orange\":\"RemainingVolume_orange__221Wo\",\"red\":\"RemainingVolume_red__2HiWD\",\"disabled\":\"RemainingVolume_disabled__3djlm\",\"statsLabel\":\"RemainingVolume_statsLabel__3iWzW\",\"marginPercent\":\"RemainingVolume_marginPercent__2hJaU\",\"valueContainer\":\"RemainingVolume_valueContainer__1-wzj\",\"toggleIcon\":\"RemainingVolume_toggleIcon__3tPSL\",\"progressBarContainer\":\"RemainingVolume_progressBarContainer__OIsTQ\",\"progressPercent\":\"RemainingVolume_progressPercent__1rzPn\",\"progressWrapper\":\"RemainingVolume_progressWrapper__qwYr4\",\"tieName\":\"RemainingVolume_tieName__2Klkq\",\"contentContainer\":\"RemainingVolume_contentContainer__3k4rS\",\"remainingVolume\":\"RemainingVolume_remainingVolume__nKhcK\",\"values\":\"RemainingVolume_values__19tLc\",\"dividerShort\":\"RemainingVolume_dividerShort__1H8rV\"};","/* eslint import/no-webpack-loader-syntax: off */\nimport { EventEmitter } from 'events';\n\nimport { Observable, Subscription } from 'observable-fns';\n\nimport { Optional } from '../../utils/functions/Nullable';\nimport { default as Lazy } from '../../utils/functions/Lazy';\n\nimport { TRfpDataMessageMap, TRfpMessages, TRfpSendParams } from './rfpConstants';\nimport {\n\tRFPConnectPayload,\n\tRFPConnectResult,\n\tPriceQuote,\n\tTimeScale,\n\tHistoryTick,\n\tPriceType,\n\tMarketItem,\n} from './rfp.types';\nimport { QuantityType } from '../../utils/functions/enums';\n\n//#region Config\n\nexport interface IRfpGatewayConfig {\n\tbaseUrl: string;\n\tdefaultFeedId?: string;\n\twebSocket: {\n\t\tconnectTimeout: number;\n\t\tfeedDelay?: number;\n\t\tsimulateQuotes?: boolean;\n\t\tmaxRequestsPerSecond?: Optional;\n\t\tautoReconnect:\n\t\t\t| false\n\t\t\t| {\n\t\t\t\t\tinterval: number;\n\t\t\t };\n\t};\n\tdebugHandler?: Optional<(...args: any) => void>;\n}\n\n//#endregion\n\n//#region DataObject\n\nexport interface IDataObjectSubscription {\n\tsubscribe(destination: T, callback: (data: TRfpDataMessageMap[T]) => any): string;\n\tunsubscribe(subId: any): void;\n}\n\n//#endregion\n\n//#region PriceSubscription\nexport interface IPriceQuoteSubscription {\n\tsubscribePriceQuote(feedId: string, codes: string[], callback: (data: PriceQuote) => any): string;\n\tunsubscribePriceQuote(subId: any): void;\n}\n\n//#endregion\n\n//#region PriceFeed\n\nexport interface IPriceFeedSubscription {\n\tfeedId: string;\n\tcode: string;\n}\n\nexport interface IPriceFeed {\n\treadonly id: string;\n\treadonly subscriptions: ReadonlyArray;\n\treadonly stream: Observable;\n\tsubscribe(subscription: IPriceFeedSubscription): Promise;\n\tsubscribe(subscriptions: IPriceFeedSubscription[]): Promise;\n\tunsubscribe(subscription: IPriceFeedSubscription): Promise;\n\tunsubscribe(subscriptions: IPriceFeedSubscription[]): Promise;\n\tunsubscribe(predicate: (subscription: IPriceFeedSubscription) => boolean): Promise;\n}\n\n//#endregion\n\n//#region HistoryFeed\n\nexport interface IHistoryFeedSubscription {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\tpriceType?: PriceType;\n\ttimescale: TimeScale;\n\ttickCount?: number;\n}\n\nexport interface IHistoryFeed {\n\treadonly id: string;\n\treadonly subscriptions: ReadonlyArray;\n\treadonly stream: Observable;\n\tfetchTicks(historyFeedSubscription: IHistoryFeedSubscription, timeoutDelay?: number): Promise;\n\tsubscribe(subscription: IHistoryFeedSubscription): Promise;\n\tunsubscribe(subscription: IHistoryFeedSubscription): Promise;\n\tunsubscribe(predicate: (subscription: IHistoryFeedSubscription) => boolean): Promise;\n}\n\n//#endregion\n\n//#region RfpGateway\n\nexport interface IRfpGatewayEventMap {\n\tconnected: () => any;\n\tdisconnected: () => any;\n\tsocketError: (error?: Error) => any;\n}\n\nexport interface IRfpConnectionInfo {\n\tusername: string;\n\tpassword: string;\n\ttfboSessionId: string;\n\ttfboToken: string;\n}\n\nexport default abstract class RfpGateway {\n\tprivate readonly m_eventEmitter: Lazy = new Lazy(() => new EventEmitter());\n\tprivate m_debugHandler: Optional<(...args: any) => void> = null;\n\tprotected readonly m_config: IRfpGatewayConfig;\n\tprotected m_connectionInfo: Optional = null;\n\n\tprotected get eventEmitter(): EventEmitter {\n\t\treturn this.m_eventEmitter.getValue();\n\t}\n\n\tpublic get debugHandler(): Optional<(...args: any) => void> {\n\t\treturn this.m_debugHandler;\n\t}\n\n\tpublic set debugHandler(value: Optional<(...args: any) => void>) {\n\t\tthis.m_debugHandler = value;\n\t}\n\n\tpublic get config(): Readonly {\n\t\treturn this.m_config;\n\t}\n\n\tpublic abstract get connected(): boolean;\n\n\tpublic abstract get isAppInBackgroundMode(): boolean;\n\tpublic abstract set setAppInBackgroundMode(value: boolean);\n\n\t/**\n\t * Key is feedId-code, values are PriceQuotes for the same feedId\n\t */\n\tpublic abstract get mapQuotesPrices(): ReadonlyMap;\n\n\t/**\n\t * Key is sub id, values are HistoryTick[]\n\t */\n\tpublic abstract get mapHistoryData(): ReadonlyMap;\n\tpublic abstract set setupHistoryData(reqId: string);\n\tpublic abstract set deleteMapHistoryData(reqId: string);\n\n\tpublic abstract get mapMarketItems(): ReadonlyMap;\n\tpublic abstract get priceFeeds(): ReadonlyArray;\n\n\tpublic abstract get historyFeeds(): ReadonlyArray;\n\n\tpublic abstract get dataObjectSubscriptions(): IDataObjectSubscription;\n\n\tpublic get connectionInfo(): Optional> {\n\t\treturn this.m_connectionInfo;\n\t}\n\n\tprotected constructor(config: IRfpGatewayConfig) {\n\t\tthis.m_config = config;\n\t\tif (config.debugHandler != null) {\n\t\t\tthis.debugHandler = config.debugHandler;\n\t\t}\n\t}\n\n\tpublic abstract connect(\n\t\tconnectPayloadProvider: () => RFPConnectPayload | Promise\n\t): Promise;\n\n\tpublic abstract createPriceFeed(id: string): IPriceFeed;\n\n\tpublic abstract requestTfboLogin(): this;\n\tpublic abstract requestTfboEndpoint(): this;\n\n\tpublic abstract deletePriceFeed(id: string): this;\n\tpublic abstract deletePriceFeed(priceFeed: IPriceFeed): this;\n\tpublic abstract deletePriceFeed(predicate: (priceFeed: IPriceFeed) => boolean): this;\n\n\tpublic abstract createHistoryFeed(id: string): IHistoryFeed;\n\n\tpublic abstract deleteHistoryFeed(id: string): this;\n\tpublic abstract deleteHistoryFeed(historyFeed: IHistoryFeed): this;\n\tpublic abstract deleteHistoryFeed(predicate: (historyFeed: IHistoryFeed) => boolean): this;\n\n\tpublic abstract fetchHistoryTicks(\n\t\thistoryFeedSubscription: IHistoryFeedSubscription,\n\t\ttimeoutDelay?: number,\n\t\thistoryFeed?: IHistoryFeed\n\t): Promise;\n\n\tpublic abstract updateQuantityType(accountId: number, quantityType: QuantityType): Promise;\n\n\tpublic abstract send(destination: T, ...args: TRfpSendParams): Promise;\n\n\tpublic abstract hasSubscription(destination: T): boolean;\n\n\tpublic abstract subscribeFor(\n\t\tdestination: T,\n\t\tcallback: (data: TRfpDataMessageMap[T]) => any\n\t): string;\n\tpublic abstract unsubscribeFor(subId: any): void;\n\n\tpublic abstract subscribePriceQuote(\n\t\tfeedId: string,\n\t\tcodes: string[],\n\t\tcallback: (priceQuote: PriceQuote) => any\n\t): string;\n\tpublic abstract unsubscribePriceQuote(subId: any): void;\n\n\tpublic abstract subscribe(\n\t\tdestination: T\n\t): Promise>;\n\tpublic abstract subscribe(\n\t\tdestination: T,\n\t\tcallback: (message: TRfpMessages['subscribe'][T]) => any\n\t): Promise>;\n\n\tpublic abstract unsubscribe(destination: T): Promise;\n\n\tpublic abstract disconnect(): Promise;\n\n\tpublic abstract getQuotePrices(feedId: string, code: string): PriceQuote | undefined;\n\tpublic abstract setPriceQuote(priceQuote: PriceQuote): void;\n\n\tpublic abstract getMarketItem(code: string, feedId?: string): MarketItem | undefined;\n\n\tpublic on(event: K, listener: IRfpGatewayEventMap[K]): this {\n\t\tthis.eventEmitter.on(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic once(event: K, listener: IRfpGatewayEventMap[K]): this {\n\t\tthis.eventEmitter.once(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic off(event: K, listener: IRfpGatewayEventMap[K]): this {\n\t\tthis.eventEmitter.off(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic removeAllListeners(event?: K): this {\n\t\tthis.eventEmitter.removeAllListeners(event);\n\t\treturn this;\n\t}\n\n\tprotected emit(event: K, ...data: Parameters): this {\n\t\ttry {\n\t\t\tthis.eventEmitter.emit(event, ...data);\n\t\t} catch (err) {\n\t\t\tthis.debug(`Unhandled exception when emitting ${event}`, err);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected debug(...args: any[]): void {\n\t\tif (this.debugHandler != null) {\n\t\t\ttry {\n\t\t\t\tthis.debugHandler(...args);\n\t\t\t} catch (err) {}\n\t\t}\n\t}\n}\n\n//#endregion\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"costInput\":\"MarketsGrid_costInput__AvLFl\",\"filterList\":\"MarketsGrid_filterList__2NT4z\",\"marketsList\":\"MarketsGrid_marketsList__1y3yw\",\"header\":\"MarketsGrid_header__2GSjQ\",\"filterOptionGroupWrapper\":\"MarketsGrid_filterOptionGroupWrapper__18GiT\",\"filterOptionGroup\":\"MarketsGrid_filterOptionGroup__2uCB2\",\"filterLabel\":\"MarketsGrid_filterLabel__3XgXX\",\"filterControl\":\"MarketsGrid_filterControl__3ra3Z\",\"label\":\"MarketsGrid_label__2x3L_\",\"dataGrid\":\"MarketsGrid_dataGrid__2C_w2\",\"DataGrid\":\"MarketsGrid_DataGrid__1QkZL\",\"content\":\"MarketsGrid_content__1uzCE\",\"badgeWrapper\":\"MarketsGrid_badgeWrapper__1lEEG\",\"contentSymbol\":\"MarketsGrid_contentSymbol__2HO7m\",\"button\":\"MarketsGrid_button__3IDgB\",\"typeButton\":\"MarketsGrid_typeButton__aQC8q\",\"testButton\":\"MarketsGrid_testButton__1FxPo\",\"typeValue\":\"MarketsGrid_typeValue__WoGLY\",\"testValue\":\"MarketsGrid_testValue__3n1Tg\",\"watchlistsListContainer\":\"MarketsGrid_watchlistsListContainer__1qtBC\",\"titleContainer\":\"MarketsGrid_titleContainer__115_W\",\"watchlistContainer\":\"MarketsGrid_watchlistContainer__MIIfE\",\"createWatchlist\":\"MarketsGrid_createWatchlist__2LA6Y\",\"icon\":\"MarketsGrid_icon__3G6cC\",\"existsInWatchlistIcon\":\"MarketsGrid_existsInWatchlistIcon__35Ttr\",\"addToWatchlistIcon\":\"MarketsGrid_addToWatchlistIcon__1Q4Eq\",\"addIcon\":\"MarketsGrid_addIcon__1lyGJ\",\"errorAddIcon\":\"MarketsGrid_errorAddIcon__1yHXI\",\"create\":\"MarketsGrid_create__puXAc\",\"errorCreateText\":\"MarketsGrid_errorCreateText__eukcn\",\"textContainer\":\"MarketsGrid_textContainer__3VEPk\",\"createErrorMessage\":\"MarketsGrid_createErrorMessage__2xzMS\",\"createWLContainer\":\"MarketsGrid_createWLContainer__2f_yN\",\"createWatchlistItems\":\"MarketsGrid_createWatchlistItems__kBKx7\",\"inputContainer\":\"MarketsGrid_inputContainer__1d5I6\",\"inputTitle\":\"MarketsGrid_inputTitle__1rvWI\",\"inputContainerText\":\"MarketsGrid_inputContainerText__1jatx\",\"popupFooter\":\"MarketsGrid_popupFooter__3-Z8N\",\"lightticketButton\":\"MarketsGrid_lightticketButton__3QV4P\",\"darkticketButton\":\"MarketsGrid_darkticketButton__UOhfw\",\"messageRow\":\"MarketsGrid_messageRow__1-DjO\",\"inputCount\":\"MarketsGrid_inputCount__1gN88\",\"disableButton\":\"MarketsGrid_disableButton__1ST9Y\",\"lightCostInput\":\"MarketsGrid_lightCostInput__4S-0u\",\"errorInput\":\"MarketsGrid_errorInput__1dUET\",\"lightErrorInput\":\"MarketsGrid_lightErrorInput__37K6X\",\"errorMessage\":\"MarketsGrid_errorMessage__2LAas\",\"btnCancel\":\"MarketsGrid_btnCancel__3c0lf\",\"resizedCancelBtn\":\"MarketsGrid_resizedCancelBtn__1Dy7U\",\"btnSave\":\"MarketsGrid_btnSave__1KuKg\",\"resizedSaveBtn\":\"MarketsGrid_resizedSaveBtn__3yNXI\",\"hidden\":\"MarketsGrid_hidden__1jJOH\",\"Popup\":\"MarketsGrid_Popup__18Aj1\",\"filterListWrapper\":\"MarketsGrid_filterListWrapper__3Sv6s\",\"listContainer\":\"MarketsGrid_listContainer__MevYy\",\"itemContainer\":\"MarketsGrid_itemContainer__35RPr\",\"item\":\"MarketsGrid_item__29CnM\",\"bold\":\"MarketsGrid_bold__39-rv\",\"progressBarContainer\":\"MarketsGrid_progressBarContainer__3BXbq\",\"progressBar\":\"MarketsGrid_progressBar__3gE7M\",\"positive\":\"MarketsGrid_positive__1-_eo\",\"negative\":\"MarketsGrid_negative__10_HF\",\"tooltipTimestamp\":\"MarketsGrid_tooltipTimestamp__3QsOd\",\"tooltipTitle\":\"MarketsGrid_tooltipTitle__1FuUB\",\"grid\":\"MarketsGrid_grid__3Qq3F\",\"padSm\":\"MarketsGrid_padSm__3jIN8\",\"star\":\"MarketsGrid_star__15EOE\",\"timeUpdate\":\"MarketsGrid_timeUpdate__1yogn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Instrument_container__2_LGV\",\"TickerIcons\":\"Instrument_TickerIcons__3GsEY\",\"showActions\":\"Instrument_showActions__2kyEB\",\"equityField\":\"Instrument_equityField__3-6iA\",\"removeItem\":\"Instrument_removeItem__1p_ek\",\"highlightSelected\":\"Instrument_highlightSelected__38QT6\",\"instrumentHeader\":\"Instrument_instrumentHeader__2pBgm\",\"rightHandContainer\":\"Instrument_rightHandContainer__2g-aF\",\"windowContainer\":\"Instrument_windowContainer__3xl_c\",\"invisible\":\"Instrument_invisible__160vQ\",\"nonHighlightSelected\":\"Instrument_nonHighlightSelected__2AhCR\",\"darkthighlightSelected\":\"Instrument_darkthighlightSelected__1WtRl\",\"lightContainer\":\"Instrument_lightContainer__2PFJl\",\"darkContainer\":\"Instrument_darkContainer__1Uz2j\",\"lighthighlightSelected\":\"Instrument_lighthighlightSelected__3JOot\",\"TickerInfo\":\"Instrument_TickerInfo__13x0K\",\"windowTickerInfo\":\"Instrument_windowTickerInfo__S92Cw\",\"tickerContainer\":\"Instrument_tickerContainer__2Q2QD\",\"DotContainer\":\"Instrument_DotContainer__3rZou\",\"iconContainer\":\"Instrument_iconContainer__nHceJ\",\"infoIcon\":\"Instrument_infoIcon__2Yyiu\",\"badge\":\"Instrument_badge__2ra5-\",\"TickerActions\":\"Instrument_TickerActions__2pM5x\",\"InstrumentButton\":\"Instrument_InstrumentButton__3z18-\",\"InstrumentGreen\":\"Instrument_InstrumentGreen__9FA8M\",\"InstrumentRed\":\"Instrument_InstrumentRed__plnSU\",\"InstrumentGrey\":\"Instrument_InstrumentGrey__2VlgX\",\"instrumentCodeAndSessionIconContainer\":\"Instrument_instrumentCodeAndSessionIconContainer__3I54a\",\"Symbol\":\"Instrument_Symbol__14AL6\",\"darkSymbol\":\"Instrument_darkSymbol__1kcOt\",\"Spread\":\"Instrument_Spread__3pA8e\",\"lightSpread\":\"Instrument_lightSpread__1sS2r\",\"darkSpread\":\"Instrument_darkSpread__3taRz\",\"tickerChart\":\"Instrument_tickerChart__LtSoN\",\"symbolDescription\":\"Instrument_symbolDescription__2T_5X\",\"darkTime\":\"Instrument_darkTime___-x-3\",\"TickerLowHigh\":\"Instrument_TickerLowHigh__3fz2E\",\"ColorRed\":\"Instrument_ColorRed__1dGoA\",\"ColorGreen\":\"Instrument_ColorGreen__1g6oc\",\"TickerFooter\":\"Instrument_TickerFooter__au_bo\",\"lighticonTheme\":\"Instrument_lighticonTheme__1Nbdt\",\"darkiconTheme\":\"Instrument_darkiconTheme__3mmzo\",\"iconClicked\":\"Instrument_iconClicked__1Vsd4\",\"informationContainer\":\"Instrument_informationContainer__3wyMu\",\"lightinformationContainer\":\"Instrument_lightinformationContainer__33AwA\",\"darkinformationContainer\":\"Instrument_darkinformationContainer__pDLtC\",\"detailHeader\":\"Instrument_detailHeader__2IDJc\",\"closeIcon\":\"Instrument_closeIcon__1ktNP\",\"detailContainer\":\"Instrument_detailContainer__1Rilp\",\"detailFieldName\":\"Instrument_detailFieldName__RD6ow\",\"fieldValue\":\"Instrument_fieldValue__JsVJw\",\"equityTickerFooter\":\"Instrument_equityTickerFooter__1cwym\",\"changeLabel\":\"Instrument_changeLabel__1U6-u\",\"selectedDot\":\"Instrument_selectedDot__3h-1f\",\"Dot\":\"Instrument_Dot__3sC4c\",\"instrumentInfo\":\"Instrument_instrumentInfo__UPdFM\",\"bidAskSpreadButtons\":\"Instrument_bidAskSpreadButtons__1qkFc\",\"watchlist\":\"Instrument_watchlist__24eml\"};","import { useContext } from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { TWatchlists } from '../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport authStore, { AuthStore } from '../../../store/authStore';\nimport useSaveUserPreferences from '../../mutations/useSaveUserPreferences';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\nimport { convertTWatchlistsToWatchListData } from '../../functions/WatchlistUtils';\nimport watchListStore from '../../../store/WatchListStore/watchListStore';\n\nconst useSaveWatchlistToPreferences = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\n\tconst setWatchlists = watchListStore.use.setWatchlists();\n\tconst tradingMode = authStore((store: AuthStore) => store.tradingMode);\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst isJapanSpread = tradingAccountStore.use.isJapanSpread();\n\treturn (preference: TWatchlists[], isSpreadBettingWatchlist?: boolean) => {\n\t\tif (appContext.userPreferences) {\n\t\t\tconst accountToUpdate = appContext.userPreferences.user_prefs.watchlists.account.filter((accountType) => {\n\t\t\t\tif (isSpreadBettingAccount || isSpreadBettingWatchlist) {\n\t\t\t\t\treturn accountType.accountType === 'SpreadBetting';\n\t\t\t\t}\n\t\t\t\tif (isJapanSpread) {\n\t\t\t\t\treturn accountType.accountType === 'JapanSpread';\n\t\t\t\t} else {\n\t\t\t\t\treturn accountType.accountType === undefined;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\taccountToUpdate.forEach((account) => {\n\t\t\t\taccount.watchlist = preference;\n\t\t\t});\n\n\t\t\tsetWatchlists(tradingMode, convertTWatchlistsToWatchListData(preference));\n\t\t\tsavePreferences();\n\t\t}\n\t};\n};\n\nexport default useSaveWatchlistToPreferences;\n","import { formatNumberWithCommas } from '../../Watchlist/Instrument/formattedQuoteNumber';\nimport { DashboardContextProvider } from '../../../../../contexts/DashboardContext';\n\nexport const hidePopup = (isArabic: boolean) => {\n\tconst popup = document.getElementsByClassName(`ui popup transition visible`);\n\tif (popup && popup.length > 0) popup[0].className = `ui popup transition`;\n};\n\nexport const addCommas = (\n\tcurrent: number | string,\n\tlanguageSettings: string,\n\tdecPrec?: number | null,\n\tisPipsChange?: boolean | null\n) => {\n\tdecPrec = decPrec ? decPrec : current.toString().split('.')[1]?.length ?? 0;\n\n\tif (isPipsChange) decPrec = 2;\n\n\treturn formatNumberWithCommas(current, decPrec, languageSettings);\n};\n\nexport const closeAllTickets = (dashboardContext: DashboardContextProvider) => {\n\tdashboardContext.showOrderTicket = false;\n\tdashboardContext.showCloseTicket = false;\n\tdashboardContext.showCancelTicket = false;\n\tdashboardContext.modifyTicket = false;\n\tdashboardContext.showNewsFeed = false;\n\tdashboardContext.showConfirmTicket = false;\n\tdashboardContext.showOrderInformation = false;\n};\n\nexport const positionTableObj = {\n\tside: true,\n\tLots: true,\n\tAmount: true,\n\tonDate: true,\n\topen: true,\n\tchange: true,\n\tcurrent: true,\n\tnetPL: true,\n\tgrossPL: false,\n\ttime: false,\n\tswap: false,\n\tcomment: false,\n\tdividend: false,\n\tcomm: false,\n\tposId: false,\n\tpipsChange: false,\n};\n\nexport const orderTableObj = {\n\tside: true,\n\tLots: true,\n\tAmount: true,\n\tonDate: true,\n\topen: true,\n\texpiryOn: false,\n\tdistanceToMarket: true,\n\ttype: true,\n\tcurrent: true,\n\tcreatedOn: true,\n\ttime: false,\n\tposId: false,\n};\n\nexport const closedTableObj = {\n\tside: true,\n\tLots: true,\n\tAmount: true,\n\tonDate: true,\n\topen: true,\n\tclosed: true,\n\tchange: true,\n\topenDate: true,\n\tcloseOn: true,\n\tStopLoss: false,\n\tTakeProfit: false,\n\tnetPL: true,\n\tgrossPL: false,\n\ttime: false,\n\tclosedTime: false,\n\tswap: false,\n\tcomment: false,\n\tdividend: false,\n\tcomm: false,\n\tposId: false,\n\tpipsChange: true,\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tableSettingsPopup\":\"TableSettingsModal_tableSettingsPopup__2IUY-\",\"tableSettingsTitle\":\"TableSettingsModal_tableSettingsTitle__YFJgE\",\"tableSettingOptionsContainer\":\"TableSettingsModal_tableSettingOptionsContainer__1yzWt\",\"checkboxContainer\":\"TableSettingsModal_checkboxContainer__14aeh\",\"label\":\"TableSettingsModal_label__lXRPR\",\"tableSettingsPopupPosition\":\"TableSettingsModal_tableSettingsPopupPosition__367Bc\",\"container\":\"TableSettingsModal_container__37Tus\",\"optionText\":\"TableSettingsModal_optionText__3V5XH\",\"checkmark\":\"TableSettingsModal_checkmark__12YQm\",\"disabledCheckbox\":\"TableSettingsModal_disabledCheckbox__f3Zcv\"};","import { PipStoreTypes } from './pipStore.types';\n\nexport const initialState: PipStoreTypes = {\n\ttakeProfit: 30,\n\tstopLoss: 30,\n\tsetStopLossPips: (pips: number) => {},\n\tsetTakeProfitPips: (pips: number) => {},\n};\n","import { immer } from 'zustand/middleware/immer';\n\nimport { create } from '../create';\nimport createSelectors from '../createSelectors';\n\nimport { PipStoreTypes } from './pipStore.types';\nimport { initialState } from './pipStore.initial';\n\nconst pipStore = create()(\n\timmer((set) => ({\n\t\t...initialState,\n\t\tsetStopLossPips: (pips: number) => {\n\t\t\tset((state) => {\n\t\t\t\tstate.stopLoss = isNaN(pips) ? initialState.stopLoss : pips;\n\t\t\t});\n\t\t},\n\n\t\tsetTakeProfitPips: (pips: number) => {\n\t\t\tset((state) => {\n\t\t\t\tstate.takeProfit = isNaN(pips) ? initialState.takeProfit : pips;\n\t\t\t});\n\t\t},\n\t}))\n);\n\nexport default createSelectors(pipStore);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Dashboard_container__q2FSH\",\"leftPanel\":\"Dashboard_leftPanel__3EW0O\",\"rightPanel\":\"Dashboard_rightPanel__2K8sg\",\"rightTopPanel\":\"Dashboard_rightTopPanel__3gmPu\",\"positionsBottomPanel\":\"Dashboard_positionsBottomPanel__y6lrk\",\"positionsBottomPanelOpen\":\"Dashboard_positionsBottomPanelOpen__JlEd8\",\"positionsBottomPanelClose\":\"Dashboard_positionsBottomPanelClose__2qy8J\",\"rightSideTrade\":\"Dashboard_rightSideTrade__2mn5W\",\"tradeLeftPanel\":\"Dashboard_tradeLeftPanel__aHC73\",\"tradeLeftPanelOpen\":\"Dashboard_tradeLeftPanelOpen__q5Jsn\",\"tradeLeftPanelClose\":\"Dashboard_tradeLeftPanelClose__1_TpX\",\"rightNav\":\"Dashboard_rightNav__tUh0b\",\"ordersPanel\":\"Dashboard_ordersPanel__34YIW\",\"ticket\":\"Dashboard_ticket__Z72Hh\",\"showTicket\":\"Dashboard_showTicket__3vWPk\",\"ticketPanel\":\"Dashboard_ticketPanel__2uqfp\",\"flexLayout\":\"Dashboard_flexLayout__xRmtb\",\"updateFlexLayout\":\"Dashboard_updateFlexLayout__32OCY\",\"flexLayoutNav\":\"Dashboard_flexLayoutNav__1X4nC\",\"background\":\"Dashboard_background__3TFJP\",\"panelBackground\":\"Dashboard_panelBackground__2spDp\",\"chartPanel\":\"Dashboard_chartPanel__2Izjd\",\"Top\":\"Dashboard_Top__22Yea\",\"displayLoading\":\"Dashboard_displayLoading__3H_B3\",\"noLoading\":\"Dashboard_noLoading__O3151\",\"popoutLayout\":\"Dashboard_popoutLayout__SZraX\",\"ticketGlow\":\"Dashboard_ticketGlow__77gIA\",\"watchlistPanel\":\"Dashboard_watchlistPanel__2DlkM\",\"transition\":\"Dashboard_transition__1aPLm\",\"accountPanel\":\"Dashboard_accountPanel__1qmsP\",\"MainPanel\":\"Dashboard_MainPanel__1teXK\"};","export const forceCloseModal = (className: string, show = false) => {\n\tconst modalBackdrop = document.getElementsByClassName(className);\n\tif (modalBackdrop) {\n\t\tArray.from(modalBackdrop).forEach((modal: any) => {\n\t\t\tmodal.style.display = show ? 'initial' : 'none';\n\t\t});\n\t}\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"liveChat\":\"LiveChat_liveChat__2uH0s\",\"container\":\"LiveChat_container__3iCUp\",\"zendesk\":\"LiveChat_zendesk__3F6H3\",\"expandCollapse\":\"LiveChat_expandCollapse__PC4ek\",\"icon\":\"LiveChat_icon__3vF8B\",\"iconLight\":\"LiveChat_iconLight__1re8p\",\"channels\":\"LiveChat_channels__39bYT\",\"isOpen\":\"LiveChat_isOpen__a4tLC\",\"horizontal\":\"LiveChat_horizontal__2XOP7\",\"buttons\":\"LiveChat_buttons__2GCxb\",\"triggerIcon\":\"LiveChat_triggerIcon__3VySu\"};","import { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\nimport { immer } from 'zustand/middleware/immer';\n\nimport createSelectors from '../createSelectors';\n\nexport interface PositionsStoreActions {\n\tsetPositionTab: (tab: number) => void;\n\tsetWatchListPanelSize: (size: number) => void;\n\tsetGridHeight: (size: number) => void;\n\tsetShowPositionsBottomPanel: (show: boolean) => void;\n}\n\nexport interface PositionsStoreValues {\n\tpanelSize: number;\n\tpositionTab: number;\n\tgridHeight: number;\n\tpositionPanelHeight: number;\n\tshowPositionsBottomPanel: boolean;\n}\n\nexport const initialStatePositionsStore: PositionsStoreValues = {\n\tpanelSize: 0,\n\tpositionTab: 0,\n\tgridHeight: 0,\n\tpositionPanelHeight: 40,\n\tshowPositionsBottomPanel: true,\n};\nexport type PositionsStore = PositionsStoreValues & PositionsStoreActions;\n\nconst positionsStore = create()(\n\tpersist(\n\t\timmer((set: any) => ({\n\t\t\t...initialStatePositionsStore,\n\t\t\tsetPositionTab: (tab: number) => {\n\t\t\t\tset(() => ({\n\t\t\t\t\tpositionTab: tab,\n\t\t\t\t}));\n\t\t\t},\n\t\t\tsetWatchListPanelSize: (size: number) => {\n\t\t\t\tset(() => ({\n\t\t\t\t\tpanelSize: size,\n\t\t\t\t}));\n\t\t\t},\n\t\t\tsetGridHeight: (size: number) => {\n\t\t\t\tset(() => ({\n\t\t\t\t\tgridHeight: size,\n\t\t\t\t}));\n\t\t\t},\n\n\t\t\tsetShowPositionsBottomPanel: (show: boolean) => {\n\t\t\t\tset(() => ({\n\t\t\t\t\tshowPositionsBottomPanel: show,\n\t\t\t\t}));\n\t\t\t},\n\t\t})),\n\t\t{\n\t\t\tname: 'positions-store',\n\t\t}\n\t)\n);\n\nexport default createSelectors(positionsStore);\n","const uniqueId = () => {\n\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n\t\tconst r = (Math.random() * 16) | 0,\n\t\t\tv = c == 'x' ? r : (r & 0x3) | 0x8;\n\t\treturn v.toString(16);\n\t});\n};\n\nexport default uniqueId;\n","import { StoreApi, UseBoundStore } from 'zustand';\n\ntype WithSelectors = S extends { getState: () => infer T } ? S & { use: { [K in keyof T]: () => T[K] } } : never;\n\nconst createSelectors = >>(_store: S) => {\n\tlet store = _store as WithSelectors;\n\n\tstore.use = {};\n\tfor (let k of Object.keys(store.getState())) {\n\t\t(store.use as any)[k] = () => store((s) => s[k as keyof typeof s]);\n\t}\n\n\treturn store;\n};\n\nexport default createSelectors;\n","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport { defaultSubscriptionInfo, SubscriptionInfo } from '../functions/subscriptionUtils';\nimport usePromiseFactory from \"./usePromiseFactory\";\nimport useForceRerender from \"./useForceRerender\";\nimport useObservable from '../../utils/hooks/useObservable';\n\ntype useSubscriptionInfoInterface = [SubscriptionInfo, (updateProps: Partial) => void];\n\nconst useSubscriptionInfo = (): useSubscriptionInfoInterface => {\n\tconst appContext = useContext(AppContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\n\tuseObservable(appContext.getPropertyChangeStream('subscriptionInfo'), async () => {\n\t\tawait promiseFactory.throttle('appContext.propertyChanged', 100);\n\t\tforceRerender();\n\t});\n\n\tconst setSubscrInfoProps = (updateProps: Partial) => {\n\t\tappContext.subscriptionInfo = {\n\t\t\t...(appContext.subscriptionInfo || defaultSubscriptionInfo),\n\t\t\t...updateProps,\n\t\t};\n\t};\n\n\treturn [appContext.subscriptionInfo || defaultSubscriptionInfo, setSubscrInfoProps];\n};\n\nexport default useSubscriptionInfo;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SignalPercentElement_container__12CpT\",\"containerHorizontalLayout\":\"SignalPercentElement_containerHorizontalLayout__2jlrI\",\"signalBars\":\"SignalPercentElement_signalBars__1mjEy\",\"percent\":\"SignalPercentElement_percent__3Qpel\",\"bar\":\"SignalPercentElement_bar__3Uk5H\",\"sizingBox\":\"SignalPercentElement_sizingBox__3fkRb\",\"firstBar\":\"SignalPercentElement_firstBar__22EEV\",\"secondBar\":\"SignalPercentElement_secondBar__hHk_n\",\"thirdBar\":\"SignalPercentElement_thirdBar__2akCW\",\"fourthBar\":\"SignalPercentElement_fourthBar__3ds19\",\"fifthBar\":\"SignalPercentElement_fifthBar__1OljO\",\"fourBars\":\"SignalPercentElement_fourBars__3PnNB\",\"threeBars\":\"SignalPercentElement_threeBars__ZwT6d\",\"oneBar\":\"SignalPercentElement_oneBar__24yze\",\"twoBars\":\"SignalPercentElement_twoBars__VaVaU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CurrencyStats_container__2FvVD\",\"isOpen\":\"CurrencyStats_isOpen__390AY\",\"currencyIcon\":\"CurrencyStats_currencyIcon__1REcu\",\"live\":\"CurrencyStats_live__2hv7x\",\"demo\":\"CurrencyStats_demo__3fBKl\",\"exclamationIcon\":\"CurrencyStats_exclamationIcon__1ixVS\",\"accountTypeBadge\":\"CurrencyStats_accountTypeBadge__2ezR5\",\"stats\":\"CurrencyStats_stats__1V6xj\",\"accountIdAndType\":\"CurrencyStats_accountIdAndType__1yv-E\",\"accountTradingMode\":\"CurrencyStats_accountTradingMode__1gqOI\",\"accountBaseCurrency\":\"CurrencyStats_accountBaseCurrency__3kzk9\",\"toggleIcon\":\"CurrencyStats_toggleIcon__3pg-R\",\"popup\":\"CurrencyStats_popup__2D2Xc\",\"menuHeader\":\"CurrencyStats_menuHeader__J8rA_\",\"menuItem\":\"CurrencyStats_menuItem__3t9Ol\",\"active\":\"CurrencyStats_active__14qah\",\"activeLineIndicator\":\"CurrencyStats_activeLineIndicator__1THoF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"OneClickTradeButtons_container__2F_3M\",\"containerSelected\":\"OneClickTradeButtons_containerSelected__3bgmK\",\"tradeButtonContainer\":\"OneClickTradeButtons_tradeButtonContainer__3Z-Xe\",\"priceContainer\":\"OneClickTradeButtons_priceContainer__3H__1\",\"labelContainer\":\"OneClickTradeButtons_labelContainer__2_Gm0\",\"sellLabelContainer\":\"OneClickTradeButtons_sellLabelContainer__1k4c8\",\"buyLabelContainer\":\"OneClickTradeButtons_buyLabelContainer__ju-pF\",\"upDownIcon\":\"OneClickTradeButtons_upDownIcon__1GIoS\",\"spread\":\"OneClickTradeButtons_spread__YYQxV\",\"tooltipTimestamp\":\"OneClickTradeButtons_tooltipTimestamp__2vIiz\",\"tooltipTitle\":\"OneClickTradeButtons_tooltipTitle__1X4UU\",\"closedMarketContainer\":\"OneClickTradeButtons_closedMarketContainer__3Vh9q\",\"closedMarket\":\"OneClickTradeButtons_closedMarket__2EQZL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"marketTabs\":\"Markets_marketTabs__1JDpN\",\"containerWrapper\":\"Markets_containerWrapper__3yJyB\",\"container\":\"Markets_container__2cDFP\",\"marketsWrapper\":\"Markets_marketsWrapper__1c5nh\",\"marketNews\":\"Markets_marketNews__1sMFa\",\"marketList\":\"Markets_marketList__3s50_\",\"jpNews\":\"Markets_jpNews__3nn7D\",\"newsAndSignals\":\"Markets_newsAndSignals__34ifr\",\"newsOrSignalsColumn\":\"Markets_newsOrSignalsColumn__1maDA\",\"insights\":\"Markets_insights__15jTx\",\"inline\":\"Markets_inline__2lgyq\",\"lightpositionType\":\"Markets_lightpositionType__2Ykny\",\"position\":\"Markets_position__1cPUc\",\"positionType\":\"Markets_positionType__3ZiVz\",\"positionTypeOption\":\"Markets_positionTypeOption__1pHJ6\",\"icon\":\"Markets_icon__3wDkI\",\"labelText\":\"Markets_labelText__Onx1e\",\"active\":\"Markets_active__1xDX-\",\"iconTier1\":\"Markets_iconTier1__a9BKV\",\"iconTier2\":\"Markets_iconTier2__2idAS\",\"iconTier3\":\"Markets_iconTier3__2NHfn\",\"categoryGroupContainer\":\"Markets_categoryGroupContainer__1rqaF\",\"selectedSearchCategory\":\"Markets_selectedSearchCategory__A_ASC\",\"hideSelectedSearchCategory\":\"Markets_hideSelectedSearchCategory__3yyrm\",\"risers\":\"Markets_risers__3CTwr\",\"fallers\":\"Markets_fallers__21md2\",\"news\":\"Markets_news__XlCr1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"FeedbackModal_modalDialog__2BO_Y\",\"modalBody\":\"FeedbackModal_modalBody__1KcP5\",\"footerContainer\":\"FeedbackModal_footerContainer__1-ExO\",\"feedbackHeader\":\"FeedbackModal_feedbackHeader__1Z1jH\",\"button\":\"FeedbackModal_button__1SZiJ\",\"ratingContainer\":\"FeedbackModal_ratingContainer__1CV-s\",\"feedbackContainer\":\"FeedbackModal_feedbackContainer__2aVGP\",\"questionText\":\"FeedbackModal_questionText__2_911\",\"textArea\":\"FeedbackModal_textArea__1WUcc\",\"submittedContainer\":\"FeedbackModal_submittedContainer__KzCYU\",\"thankYouMessage\":\"FeedbackModal_thankYouMessage__1tNdm\",\"appreciateMessage\":\"FeedbackModal_appreciateMessage__1Q4CU\",\"starContainer\":\"FeedbackModal_starContainer__tmTD0\",\"feedbackModalTitle\":\"FeedbackModal_feedbackModalTitle__R7ct8\",\"closeIcon\":\"FeedbackModal_closeIcon__3aktM\",\"starsImage\":\"FeedbackModal_starsImage__2nBwk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"TradingAccounts_icon__EhZYf\",\"accountsList\":\"TradingAccounts_accountsList__1gdph\",\"addAccountContainer\":\"TradingAccounts_addAccountContainer__296GZ\",\"plusIcon\":\"TradingAccounts_plusIcon__23_zH\",\"live\":\"TradingAccounts_live__1vmwo\",\"demo\":\"TradingAccounts_demo__3aCV_\",\"accountsListItem\":\"TradingAccounts_accountsListItem__2dOfZ\",\"noPadding\":\"TradingAccounts_noPadding__3AVCy\",\"active\":\"TradingAccounts_active__2Xj82\",\"accountInfo\":\"TradingAccounts_accountInfo__20IZd\",\"statsContainer\":\"TradingAccounts_statsContainer__1VS61\",\"stats\":\"TradingAccounts_stats__3z7yt\",\"selected\":\"TradingAccounts_selected__2XtLr\",\"baseCurrency\":\"TradingAccounts_baseCurrency__qZkbf\",\"accountName\":\"TradingAccounts_accountName__VUHNy\",\"accountType\":\"TradingAccounts_accountType__2Aq8J\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tileContainer\":\"TierTile_tileContainer__2YJaE\",\"selectedText\":\"TierTile_selectedText__KRJ4T\",\"defaultText\":\"TierTile_defaultText__2EKuF\",\"selectorTitle\":\"TierTile_selectorTitle__3heja\",\"selectorIndicator\":\"TierTile_selectorIndicator__12FJp\",\"tierIcon\":\"TierTile_tierIcon__3jJI1\",\"tierTitle\":\"TierTile_tierTitle__OKFQj\",\"tierName\":\"TierTile_tierName__2o7oY\",\"tileSection\":\"TierTile_tileSection__18uOF\",\"padded\":\"TierTile_padded__37Eox\",\"currencyPairs\":\"TierTile_currencyPairs__3xMa7\",\"tradableCurrencyPairs\":\"TierTile_tradableCurrencyPairs__3qa48\",\"price\":\"TierTile_price__2Q5IE\",\"selected\":\"TierTile_selected__3WJlV\"};","import { useContext, useMemo } from 'react';\n\nimport DashboardContext from '../../../contexts/DashboardContext';\n\nimport {\n createMarketItemCodeMap\n} from '../../../utils/functions/marketItems/marketItemGroupMapFormatter';\n\nexport const useMarketItemsMap = () => {\n const dashboardContext = useContext(DashboardContext);\n const marketItems = dashboardContext.marketItems;\n\n return useMemo(() => {\n if (marketItems.length === 0) {\n return {};\n }\n\n return createMarketItemCodeMap(marketItems);\n }, [marketItems.length]);\n};\n","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport statusStore, { StatusStore } from '../../store/accountStatusStore';\n\nimport { TradersGymContext, TradersGymContextType } from '../../pages/TradersGym/TradersGymContext';\n\nimport useSelectedTradingAccount from './useSelectedTradingAccount';\n\nconst useOrderTicketAccess = () => {\n\tconst setShowModal = statusStore((state: StatusStore) => state.setShowModal);\n\tconst setInfoMessage = statusStore((state: StatusStore) => state.setInfoMessage);\n\tconst tradeButtons = statusStore((state: StatusStore) => (state.permissions || {}).tradeButtons);\n\tconst appContext = useContext(AppContext);\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext } = gymContext;\n\n\tconst realTradingAccount = useSelectedTradingAccount();\n\tconst gymTradingAccount = tradersGymContext.gymTradingAccount;\n\n\treturn () => {\n\t\tif (tradeButtons === 'accountStatus') {\n\t\t\tsetShowModal(true);\n\t\t\tappContext.statusModal = true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedTradingAccount = tradersGymContext.isActive ? gymTradingAccount : realTradingAccount;\n\n\t\tif (tradeButtons === 'orderTicket' && !selectedTradingAccount?.balance) {\n\t\t\tsetInfoMessage('INSUFFICIENT_FUNDS');\n\t\t\tsetShowModal(true);\n\t\t\tappContext.statusModal = true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n};\n\nexport default useOrderTicketAccess;\n","import { createContext } from 'react';\nimport { EventEmitter } from 'events';\nimport { INewWindowProps } from 'react-new-window';\nimport { Resolver } from '../utils/functions/Ioc';\nimport { default as Nullable, Optional } from '../utils/functions/Nullable';\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { default as PromiseFactory } from '../utils/functions/PromiseFactory';\nimport { default as TypeUtils } from '../utils/functions/TypeUtils';\nimport { AppContextProvider } from './AppContext';\nimport { ChartContextProvider } from './ChartContext';\nimport { DashboardContextProvider } from './DashboardContext';\nimport { MarginRulesContextProvider } from './MarginRulesContext';\n\nexport interface IWindowContextEventMap {\n\tunload: (sender: WindowContextProvider, event: Event) => any;\n\tload: (sender: WindowContextProvider, event: Event) => any;\n\tbeforeUnload: (sender: WindowContextProvider, event: BeforeUnloadEvent) => any;\n}\n\ninterface IWindowEventListenerMap extends Map {\n\tset(key: K, value: (ev: WindowEventMap[K]) => any): this;\n\tget(key: K): Optional<(ev: WindowEventMap[K]) => any>;\n}\n\ntype TContextProviders = {\n\tapp: AppContextProvider;\n\tchart: ChartContextProvider;\n\tdashboard: DashboardContextProvider;\n\tmarginRules: MarginRulesContextProvider;\n};\n\ninterface IAppStateManager {\n\tcontexts(): TContextProviders;\n}\n\ntype TStateRequestEvent = {\n\tdata: {\n\t\tcallback: (appStateManager: IAppStateManager) => any;\n\t};\n};\n\ninterface IChildWindowProps {\n\turl: string;\n\twindowName?: string;\n\twindowFeatures?: string;\n}\n\nexport const MAIN_WINDOW_NAME = 'mainWindow';\nexport const DETACHED_WINDOW_TRADE = 'detachedTradeWindow';\n\n// export const DETACHED_WINDOW_ONE_CLICK_TRADE = 'detachedOneClickTradeWindow';\nexport const DETACHED_WINDOW_CHARTS = 'detachedChartsWindow';\nexport const DETACHED_WINDOW_WATCHLIST = 'detachedWatchlistWindow';\nexport const DETACHED_WINDOW_POSITIONS = 'detachedPositionsWindow';\n\nexport const WINDOW_NAMES = [\n\tMAIN_WINDOW_NAME,\n\tDETACHED_WINDOW_TRADE,\n\tDETACHED_WINDOW_CHARTS,\n\tDETACHED_WINDOW_WATCHLIST,\n\tDETACHED_WINDOW_POSITIONS,\n];\n\nexport type WTChildWindowType =\n\t| typeof DETACHED_WINDOW_TRADE\n\t| typeof DETACHED_WINDOW_CHARTS\n\t| typeof DETACHED_WINDOW_WATCHLIST\n\t| typeof DETACHED_WINDOW_POSITIONS\n\t// | typeof DETACHED_WINDOW_ONE_CLICK_TRADE;\n\nexport type WTWindowType = WTChildWindowType | typeof MAIN_WINDOW_NAME;\n\ntype IChildWindowTypeMap = Record;\n\n// interface IChildWindowTypeMap {\n// \twatchlist: IChildWindowProps;\n// \torders: IChildWindowProps;\n// \tnews: IChildWindowProps;\n// \taccount: IChildWindowProps;\n// }\n\nconst childWindowTypeMap: IChildWindowTypeMap = {\n\tdetachedChartsWindow: {\n\t\turl: `${window.location.origin}{Routes.detached}}/charts`,\n\t},\n\tdetachedTradeWindow: {\n\t\turl: `${window.location.origin}{Routes.detached}/trade`,\n\t},\n\t// detachedOneClickTradeWindow: {\n\t// \turl: `${window.location.origin}{Routes.detached}/one-cLick-trade`,\n\t// },\n\tdetachedPositionsWindow: {\n\t\turl: `${window.location.origin}{Routes.detached}/positions`,\n\t},\n\tdetachedWatchlistWindow: {\n\t\turl: `${window.location.origin}{Routes.detached}/watchlist`,\n\t},\n\t// watchlist: {\n\t// \turl: `${globalThis.window.location.origin}{Routes.newWindow}/watchlist`,\n\t// },\n\t// orders: {\n\t// \turl: `${window.location.origin}{Routes.trader.watchlist}/window-orders`,\n\t// },\n\t// news: {\n\t// \turl: `${window.location.origin}{Routes.trader.watchlist}/window-news`,\n\t// },\n\t// account: {\n\t// \turl: `${window.location.origin}{Routes.trader.watchlist}/window-account`,\n\t// },\n};\n\nexport class WindowContextProvider {\n\tprivate m_childWindows = new Set();\n\tprivate readonly m_window!: Window;\n\tprivate readonly m_children = new Set();\n\tprivate readonly m_eventEmitter = new Lazy(() => new EventEmitter());\n\tprivate readonly m_windowEventHandlers = new Lazy(() => {\n\t\treturn (new Map() as IWindowEventListenerMap)\n\t\t\t.set('load', (ev) => this.emit('load', this, ev))\n\t\t\t.set('unload', (ev) => this.emit('unload', this, ev))\n\t\t\t.set('beforeunload', (ev) => this.emit('beforeUnload', this, ev));\n\t});\n\tprivate m_type: 'main' | keyof IChildWindowTypeMap = 'main';\n\tprivate readonly childWindowSubscriptions: Set = new Set();\n\tprivate static readonly _default = new Lazy(() => new WindowContextProvider(globalThis.window));\n\tprivate static readonly _defaultWindowProps = new Lazy>(() => {\n\t\treturn {\n\t\t\tfeatures: {\n\t\t\t\twidth: 400,\n\t\t\t\theight: 150,\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0,\n\t\t\t\tmenubar: false,\n\t\t\t\ttoolbar: false,\n\t\t\t\tlocation: false,\n\t\t\t\tstatus: false,\n\t\t\t\tresizable: true,\n\t\t\t},\n\t\t};\n\t});\n\n\tprivate static get defaultWindowProperties(): Partial {\n\t\treturn this._defaultWindowProps.getValue();\n\t}\n\n\tpublic static get default(): WindowContextProvider {\n\t\treturn this._default.getValue();\n\t}\n\n\tpublic get window(): Window {\n\t\treturn this.m_window;\n\t}\n\n\tpublic get opener(): Optional {\n\t\treturn this.window.opener;\n\t}\n\n\tpublic get parent(): Optional {\n\t\treturn this.window.parent === this.window ? null : this.window.parent;\n\t}\n\n\tpublic get children(): ReadonlySet {\n\t\treturn this.m_children;\n\t}\n\tpublic get childWindows(): Set {\n\t\treturn this.m_childWindows;\n\t}\n\n\tpublic get childWindowSubscriptionsSet(): Set {\n\t\treturn this.childWindowSubscriptions;\n\t}\n\n\tpublic get isChildWindow(): boolean {\n\t\t//TODO: change this logic when references to opener are removed\n\t\treturn !!this.opener;\n\t}\n\n\tprivate get eventEmitter(): EventEmitter {\n\t\treturn this.m_eventEmitter.getValue();\n\t}\n\n\tprivate get windowEventHandlers(): IWindowEventListenerMap {\n\t\treturn this.m_windowEventHandlers.getValue();\n\t}\n\n\tpublic constructor();\n\tpublic constructor(window: Window);\n\tpublic constructor(window?: Window) {\n\t\t//ensure window is not null\n\t\tthis.m_window = Nullable.of(window)\n\t\t\t.orElseGetNullable(() => globalThis.window)\n\t\t\t.getOrThrow(() => new Error('window cannot be null or undefined'));\n\n\t\tif (this.m_window === globalThis.window) {\n\t\t\t//ensure window name is not null\n\t\t\tthis.m_window.name =\n\t\t\t\tthis.m_window.name && this.m_window.name.length > 0\n\t\t\t\t\t? this.m_window.name\n\t\t\t\t\t: (() => {\n\t\t\t\t\t\t\tconst name = `${Math.random()}`;\n\t\t\t\t\t\t\tlet parentName = name;\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t// To try to access to this.opener if it's safe, Same-Origin Policy\n\t\t\t\t\t\t\t\tif (this.opener && this.opener.location.origin === this.m_window.location.origin) {\n\t\t\t\t\t\t\t\t\tif (this.opener.hasOwnProperty('name') && this.opener.name) {\n\t\t\t\t\t\t\t\t\t\tparentName = `${this.opener.name}__${name}`;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tconsole.error('Error accessing opener:', error);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn parentName;\n\t\t\t\t\t })();\n\n\t\t\t//attach event handlers to window\n\t\t\tArray.from(this.windowEventHandlers.keys()).forEach((eventName) => {\n\t\t\t\tNullable.of(this.windowEventHandlers.get(eventName)).run((handler) => {\n\t\t\t\t\tthis.window.removeEventListener(eventName, handler);\n\t\t\t\t\tthis.window.addEventListener(eventName, handler);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tfor (const key in childWindowTypeMap) {\n\t\t\t\tconst childWindowType = childWindowTypeMap[key as keyof typeof childWindowTypeMap];\n\t\t\t\tif (TypeUtils.is<{ url: string }>(childWindowType, (subject) => typeof subject.url !== 'undefined')) {\n\t\t\t\t\tif (this.m_window.location.href === childWindowType.url) {\n\t\t\t\t\t\tthis.m_type = key as keyof typeof childWindowTypeMap;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.window.addEventListener('stateRequest', (event: any) => {\n\t\t\t\tif (\n\t\t\t\t\tTypeUtils.is(\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\t(subject) => subject.data && typeof subject.data.callback === 'function'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tevent.data.callback(this.createAppStateManager());\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic requestState(callback: TStateRequestEvent['data']['callback']): void {\n\t\tconst event: any = this.window.document.createEvent('Event');\n\t\tevent.initEvent('stateRequest', true, true);\n\t\tevent.data = { callback: callback };\n\t\tthis.window.dispatchEvent(event);\n\t}\n\n\tpublic openChildWindow(\n\t\ttype: K,\n\t\twindowProps: IChildWindowProps\n\t): Promise {\n\t\twindowProps.windowName = windowProps.windowName || `${Math.random()}`;\n\t\treturn PromiseFactory.default.promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst childWindow = this.window.open(windowProps.url, windowProps.windowName, windowProps.windowFeatures);\n\t\t\t\tthis.m_childWindows.add(childWindow?.window!);\n\t\t\t\tNullable.of(childWindow)\n\t\t\t\t\t.map((window) => new WindowContextProvider(window))\n\t\t\t\t\t.run((childContext) => {\n\t\t\t\t\t\tchildContext.once('unload', (sender, event) => this.m_children.delete(sender));\n\t\t\t\t\t\tthis.m_children.add(childContext);\n\t\t\t\t\t\tlet isResolved = false;\n\t\t\t\t\t\tchildContext.once('load', (sender, event) => {\n\t\t\t\t\t\t\tif (!isResolved) {\n\t\t\t\t\t\t\t\tisResolved = true;\n\t\t\t\t\t\t\t\tresolve(sender);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tif (!isResolved) {\n\t\t\t\t\t\t\t\tisResolved = true;\n\t\t\t\t\t\t\t\tresolve(childContext);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 2000);\n\t\t\t\t\t})\n\t\t\t\t\t.orElseRun(() => {\n\t\t\t\t\t\treject('Unable to create child window');\n\t\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate createAppStateManager(): IAppStateManager {\n\t\treturn {\n\t\t\tcontexts: () => {\n\t\t\t\treturn {\n\t\t\t\t\tapp:\n\t\t\t\t\t\tResolver.isSet && Resolver.isRegistered(AppContextProvider)\n\t\t\t\t\t\t\t? Resolver.resolve(AppContextProvider)\n\t\t\t\t\t\t\t: AppContextProvider.instance,\n\t\t\t\t\tchart:\n\t\t\t\t\t\tResolver.isSet && Resolver.isRegistered(ChartContextProvider)\n\t\t\t\t\t\t\t? Resolver.resolve(ChartContextProvider)\n\t\t\t\t\t\t\t: ChartContextProvider.instance,\n\t\t\t\t\tdashboard:\n\t\t\t\t\t\tResolver.isSet && Resolver.isRegistered(DashboardContextProvider)\n\t\t\t\t\t\t\t? Resolver.resolve(DashboardContextProvider)\n\t\t\t\t\t\t\t: DashboardContextProvider.instance,\n\t\t\t\t\tmarginRules:\n\t\t\t\t\t\tResolver.isSet && Resolver.isRegistered(MarginRulesContextProvider)\n\t\t\t\t\t\t\t? Resolver.resolve(MarginRulesContextProvider)\n\t\t\t\t\t\t\t: MarginRulesContextProvider.instance,\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t}\n\n\tpublic on(event: K, listener: IWindowContextEventMap[K]): this {\n\t\tthis.eventEmitter.on(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic once(event: K, listener: IWindowContextEventMap[K]): this {\n\t\tthis.eventEmitter.once(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic off(event: K, listener: IWindowContextEventMap[K]): this {\n\t\tthis.eventEmitter.off(event, listener);\n\t\treturn this;\n\t}\n\n\tprivate emit(event: K, ...data: Parameters): this {\n\t\ttry {\n\t\t\tthis.eventEmitter.emit(event, ...data);\n\t\t} catch (err) {}\n\t\treturn this;\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(WindowContextProvider)\n\t\t? Resolver.resolve(WindowContextProvider)\n\t\t: WindowContextProvider.default\n);\n","import { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AppContext from '../../contexts/AppContext';\nimport { getTierDisplayName } from '../functions/subscriptionUtils';\n\nconst useGetTranslatedWLName = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tconst getTranslatedWLName = (watchlistName: string | null | undefined) => {\n\t\tif (!watchlistName) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (watchlistName === 'Popular Markets') {\n\t\t\treturn t('wtr:POPULAR_MARKETS');\n\t\t} else if (watchlistName === 'My Watchlist') {\n\t\t\treturn t('wtr:MY_WATCHLIST');\n\t\t} else {\n\t\t\tconst tierId = watchlistName.replace(/\\s+/g, '');\n\t\t\tif (appContext.isJapanAccount) {\n\t\t\t\treturn getTierDisplayName(tierId) || watchlistName;\n\t\t\t}\n\n\t\t\treturn watchlistName;\n\t\t}\n\t};\n\n\treturn getTranslatedWLName;\n};\n\nexport default useGetTranslatedWLName;\n","const isWindowStyles = (styleClass: string, windowStyleClass: string, window?: boolean) => {\n\treturn !window ? styleClass : windowStyleClass;\n};\n\nexport default isWindowStyles;\n","import { createContext } from 'react';\nimport clone from 'clone';\nimport { Resolver } from '../utils/functions/Ioc';\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { ObservableObject } from '../utils/functions/Observables';\nimport { HistorySize } from '../gateways/RfpGateway/rfp.types';\n\nexport type TChart = {\n\tid: string;\n\tisEmpty?: boolean;\n\tsymbol?: string;\n\tlayout: {\n\t\t[key: string]: any;\n\t};\n\tchartParams?: any;\n};\n\nexport type TChartPeriodicity = {\n\tperiod: number;\n\tinterval?: number;\n\ttimeUnit: string;\n};\n\ntype TChartContextProperties = {\n\tactiveChart: string[];\n\tcharts: TChart[];\n\tperiodicityChartId: string;\n};\n\nconst defaultValues = new Lazy(() => {\n\treturn {\n\t\tactiveChart: [],\n\t\tcharts: [\n\t\t\t{\n\t\t\t\tlayout: {},\n\t\t\t\tid: '/',\n\t\t\t\tisEmpty: true,\n\t\t\t\tsymbol: '/',\n\t\t\t\tchartParams: {},\n\t\t\t},\n\t\t],\n\t\tperiodicityChartId: '',\n\t};\n});\n\ninterface IChartContext extends TChartContextProperties {\n\treset(): void;\n\taddChartPanelTab(tab: TChart): void;\n\tsetSingleActiveChart(value: string): void;\n\tsetActiveChart(value: string): void;\n\tresetActiveChart(): void;\n\tsetSymbol(value: string): void;\n\tsetLayout(value: TChart['layout']): void;\n}\n\nexport class ChartContextProvider\n\textends ObservableObject\n\timplements IChartContext\n{\n\tprivate m_propertyValues: TChartContextProperties;\n\tprivate historySizeRecords: Map = new Map();\n\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new ChartContextProvider();\n\t});\n\n\tpublic static get instance(): ChartContextProvider {\n\t\treturn this._instance.getValue();\n\t}\n\n\tpublic getHistorySizeRecord(reqId: string) {\n\t\treturn this.historySizeRecords.get(reqId);\n\t}\n\n\tpublic setHistorySizeRecord(historySize: HistorySize) {\n\t\t// console.log(`Added HistorySize reqId=${historySize.reqId} code=${historySize.code}`);\n\t\treturn this.historySizeRecords.set(historySize.reqId, historySize);\n\t}\n\n\tpublic get activeChart(): any {\n\t\treturn this.m_propertyValues.activeChart;\n\t}\n\n\tpublic set activeChart(value: any) {\n\t\tthis.raiseAndSetIfChanged('activeChart', value, this.m_propertyValues.activeChart, (value) => {\n\t\t\tthis.m_propertyValues.activeChart = value;\n\t\t});\n\t}\n\n\tpublic get charts(): TChart[] {\n\t\treturn this.m_propertyValues.charts;\n\t}\n\n\tpublic set charts(value: TChart[]) {\n\t\tthis.raiseAndSetIfChanged('charts', value, this.m_propertyValues.charts, (value) => {\n\t\t\tthis.m_propertyValues.charts = value;\n\t\t});\n\t}\n\n\tpublic get periodicityChartId(): string {\n\t\treturn this.m_propertyValues.periodicityChartId;\n\t}\n\n\tpublic set periodicityChartId(value: string) {\n\t\tthis.raiseAndSetIfChanged('periodicityChartId', value, this.m_propertyValues.periodicityChartId, (value) => {\n\t\t\tthis.m_propertyValues.periodicityChartId = value;\n\t\t});\n\t}\n\n\tprivate constructor() {\n\t\tsuper();\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic reset(): void {\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic addChartPanelTab(tab: TChart): void {\n\t\tthis.charts = [...this.charts, tab];\n\t}\n\n\tpublic setSingleActiveChart(value: string): void {\n\t\tthis.activeChart = [value];\n\t}\n\n\tpublic setActiveChart(value: string): void {\n\t\tthis.activeChart = [...this.activeChart, value];\n\t}\n\n\tpublic resetActiveChart(): void {\n\t\tconst activeChart = [...this.activeChart];\n\t\tthis.activeChart = [...activeChart.slice(0, 1)];\n\t}\n\n\tpublic setSymbol(value: string): void {\n\t\tconst charts = [...this.charts];\n\t\tconst activeChart = [...this.activeChart];\n\t\tthis.charts = charts.map((chart) => {\n\t\t\treturn activeChart.indexOf(chart.id) >= 0 ? { ...chart, symbol: value } : chart;\n\t\t});\n\t}\n\n\tpublic setLayout(value: TChart['layout']): void {\n\t\tconst charts = [...this.charts];\n\t\tconst activeChart = [...this.activeChart];\n\t\tthis.charts = charts.map((chart) => {\n\t\t\treturn activeChart.indexOf(chart.id) >= 0 ? { ...chart, layout: value } : chart;\n\t\t});\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(ChartContextProvider)\n\t\t? Resolver.resolve(ChartContextProvider)\n\t\t: ChartContextProvider.instance\n);\n","export default class TypeUtils {\n\tpublic static is(subject: unknown, evaluator: (subject: any) => boolean): subject is T {\n\t\treturn evaluator(subject);\n\t}\n\n\tpublic static propertyNames(object: T, inherited: boolean = false): string[] {\n\t\tconst propertyNames: string[] = Object.getOwnPropertyNames(object);\n\t\tconst prototype = inherited ? Object.getPrototypeOf(object) : null;\n\t\tif (prototype != null) {\n\t\t\tArray.prototype.push.apply(propertyNames, this.propertyNames(prototype));\n\t\t}\n\t\treturn prototype == null ? propertyNames : Array.from(new Set(propertyNames));\n\t}\n}\n\nexport type Optional = T | null | undefined;\n\nexport type Impossible = { [P in T]: never };\n\nexport type Sealed = U & Impossible>;\n\nexport type KeysOf = (keyof T)[];\n\nexport type ValuesOf = T[keyof T];\n\nexport type ArrayElementType = Exclude, undefined>;\n\nexport type PropertyIntersection = { [K in Extract]: U[K] extends T[K] ? K : never }[Extract<\n\tkeyof T,\n\tkeyof U\n>];\n\nexport type Intersection = {\n\t[K in PropertyIntersection]: T[K];\n};\n\nexport type ExcludeProperty = {\n\t[K in Exclude]: T[K];\n};\n\nexport type ExcludeProperties> = {\n\t[K in Exclude]: T[K];\n};\n\nexport type ExcludePropertiesOfType = {\n\t[K in PropertyIntersection<{ [K in keyof T]: T[K] extends U ? never : T[K] }, T>]: T[K];\n};\n\nexport type ImmutableMap = ExcludeProperty, 'set' | 'clear' | 'delete'>;\n\nexport type Comparator = (value1: T, value2: T) => boolean;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"TradeBoard_container__3CYoM\",\"marketTickerContainer\":\"TradeBoard_marketTickerContainer__15Jbl\",\"watchlistContainer\":\"TradeBoard_watchlistContainer__2tDg_\",\"watchlistContainerDetach\":\"TradeBoard_watchlistContainerDetach__1v6qU\",\"windowMarketTickerContainer\":\"TradeBoard_windowMarketTickerContainer__3xJTO\",\"noScrollBar\":\"TradeBoard_noScrollBar__3hosJ\",\"instrumentsContainer\":\"TradeBoard_instrumentsContainer__197_U\",\"addInstrumentContainer\":\"TradeBoard_addInstrumentContainer__1KDYR\",\"addInstrument\":\"TradeBoard_addInstrument__BO1yp\",\"centeredText\":\"TradeBoard_centeredText__aDi4v\",\"emptyContainer\":\"TradeBoard_emptyContainer__2M8gE\",\"iconC\":\"TradeBoard_iconC__auMGh\",\"emptyTitle\":\"TradeBoard_emptyTitle__252Aa\",\"addInstrumentIcon\":\"TradeBoard_addInstrumentIcon__2rOlR\",\"addInstrumentTitle\":\"TradeBoard_addInstrumentTitle__3K2aB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"CancelOrderTicket_header__8yhgE\",\"bal\":\"CancelOrderTicket_bal__Wpq28\",\"resizeHeaderText\":\"CancelOrderTicket_resizeHeaderText__1e-Qz\",\"closeContainer\":\"CancelOrderTicket_closeContainer__2nLOd\",\"lightcloseContainer\":\"CancelOrderTicket_lightcloseContainer__3VZV0\",\"closeContainerModal\":\"CancelOrderTicket_closeContainerModal__2n9C_\",\"closeFields\":\"CancelOrderTicket_closeFields__MJPLm\",\"orderModalFooter\":\"CancelOrderTicket_orderModalFooter__3burB\",\"modalPartialButtons\":\"CancelOrderTicket_modalPartialButtons__Cs0rZ\",\"lightticketButton\":\"CancelOrderTicket_lightticketButton__1gl06\",\"lightticketButtonClose\":\"CancelOrderTicket_lightticketButtonClose__32giB\",\"darkticketButton\":\"CancelOrderTicket_darkticketButton__1XQNS\",\"darkticketButtonClose\":\"CancelOrderTicket_darkticketButtonClose__3HYLi\",\"ticketInfo\":\"CancelOrderTicket_ticketInfo__3_moC\",\"closeButtonLocation\":\"CancelOrderTicket_closeButtonLocation__2yj1f\",\"date\":\"CancelOrderTicket_date__2J7b9\"};","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport {\n\tdefaultSubscriptionModalState,\n\tSubscriptionModalReason,\n\tSubscriptionModalState,\n} from '../functions/subscriptionUtils';\n\nconst useSubscriptionModal = () => {\n\tconst appContext = useContext(AppContext);\n\n\tconst setModalStateProps = (setProps: Partial) => {\n\t\tappContext.subscriptionModal = {\n\t\t\t...(appContext.subscriptionModal || defaultSubscriptionModalState),\n\t\t\t...setProps,\n\t\t};\n\t};\n\n\tconst setIsModalOpen = (isOpen: boolean) => {\n\t\tsetModalStateProps({ isOpen });\n\t};\n\n\tconst setModalReason = (reason: SubscriptionModalReason) => {\n\t\tsetModalStateProps({ reason });\n\t};\n\n\tconst resetModalStateProps = () => {\n\t\tsetModalStateProps({\n\t\t\treason: null,\n\t\t\tisOpen: false,\n\t\t\tinstrument: null,\n\t\t\ttext: null,\n\t\t});\n\t};\n\n\treturn {\n\t\tmodalState: appContext.subscriptionModal || defaultSubscriptionModalState,\n\t\tsetIsModalOpen,\n\t\tsetModalReason,\n\t\tsetModalStateProps,\n\t\tresetModalStateProps,\n\t};\n};\n\nexport default useSubscriptionModal;\n","import { createContext } from 'react';\n\nimport clone from 'clone';\n\nimport { Optional } from '../utils/functions/Nullable';\nimport { ObservableObject } from '../utils/functions/Observables';\nimport { PositionSide, TTMarginRuleItem } from '../gateways/RfpGateway/rfp.types';\n\nimport { Resolver } from '../utils/functions/Ioc';\n\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { TradingPositionSide } from '../utils/functions/enums';\n\ntype IMarginRulesContextProperties = {\n\taccountId?: Optional;\n\tmarginRules: TTMarginRuleItem[];\n\tfutureMarginReqId?: Optional;\n\tfutureMarginValue?: Optional;\n};\n\nconst defaultValues = new Lazy(() => {\n\treturn {\n\t\taccountId: null,\n\t\tmarginRules: [],\n\t\tfutureMarginReqId: null,\n\t\tfutureMarginValue: null,\n\t};\n});\n\ninterface IMarginRulesContext extends IMarginRulesContextProperties {\n\treset(): void;\n}\n\n// Had to implement it this way because the current architecture doesn't allow to use proper simple React Contexts,\n// or connect to Zustand store in the websocket subscriptions handler file\nexport class MarginRulesContextProvider\n\textends ObservableObject\n\timplements IMarginRulesContext\n{\n\tprivate m_propertyValues: IMarginRulesContextProperties;\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new MarginRulesContextProvider();\n\t});\n\n\tpublic static get instance(): MarginRulesContextProvider {\n\t\treturn this._instance.getValue();\n\t}\n\n\tpublic get accountId(): Optional | undefined {\n\t\treturn this.m_propertyValues.accountId;\n\t}\n\n\tpublic set accountId(value: Optional | undefined) {\n\t\tthis.raiseAndSetIfChanged('accountId', value, this.m_propertyValues.accountId, (value) => {\n\t\t\tthis.m_propertyValues.accountId = value;\n\t\t});\n\t}\n\n\tpublic get marginRules(): TTMarginRuleItem[] {\n\t\treturn this.m_propertyValues.marginRules;\n\t}\n\n\tpublic set marginRules(value: TTMarginRuleItem[]) {\n\t\tthis.raiseAndSetIfChanged('marginRules', value, this.m_propertyValues.marginRules, (value) => {\n\t\t\tthis.m_propertyValues.marginRules = value;\n\t\t});\n\t}\n\n\tpublic get futureMarginReqId(): Optional | undefined {\n\t\treturn this.m_propertyValues.futureMarginReqId;\n\t}\n\n\tpublic set futureMarginReqId(value: Optional | undefined) {\n\t\tthis.raiseAndSetIfChanged('futureMarginReqId', value, this.m_propertyValues.futureMarginReqId, (value) => {\n\t\t\tthis.m_propertyValues.futureMarginReqId = value;\n\t\t});\n\t}\n\n\tpublic get futureMarginValue(): Optional | undefined {\n\t\treturn this.m_propertyValues.futureMarginValue;\n\t}\n\n\tpublic set futureMarginValue(value: Optional | undefined) {\n\t\tthis.raiseAndSetIfChanged('futureMarginValue', value, this.m_propertyValues.futureMarginValue, (value) => {\n\t\t\tthis.m_propertyValues.futureMarginValue = value;\n\t\t});\n\t}\n\n\tprivate constructor() {\n\t\tsuper();\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic reset(): void {\n\t\tthis.m_propertyValues = {\n\t\t\t...clone(defaultValues.getValue()),\n\t\t};\n\t}\n\n\tpublic resetFutureMargin(): void {\n\t\tthis.m_propertyValues = {\n\t\t\t...clone(defaultValues.getValue()),\n\t\t\taccountId: this.accountId,\n\t\t\tmarginRules: this.marginRules,\n\t\t};\n\t}\n\t\n\tpublic getPositionSideValue(side?: TradingPositionSide): PositionSide {\n\t\tswitch (side) {\n\t\t\tcase TradingPositionSide.Buy:\n\t\t\t\treturn PositionSide.BUY;\n\t\t\tcase TradingPositionSide.Sell:\n\t\t\t\treturn PositionSide.SELL\n\t\t\tdefault:\n\t\t\t\treturn PositionSide.PSD_UNKNOWN;\n\t\t}\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(MarginRulesContextProvider)\n\t\t? Resolver.resolve(MarginRulesContextProvider)\n\t\t: MarginRulesContextProvider.instance\n);\n","import * as ObservableFns from 'observable-fns';\nimport * as ThreadSafeObservableFns from 'threads/observable';\nimport { Comparator } from './TypeUtils';\n\nexport class Observable extends ObservableFns.Observable {}\n\nexport class Subject extends ObservableFns.Subject {}\n\nexport type Subscription = ObservableFns.Subscription;\n\ntype TObservableObjectKeys = Exclude>;\n\ntype TObservableObjectChange> = {\n\tpropertyName: U;\n\tnewValue: U extends keyof T ? T[U] : any;\n\toldValue: U extends keyof T ? T[U] : any;\n};\n\nexport interface IObservableObject {\n\tgetPropertyChangeStream>(\n\t\t...props: U[]\n\t): Observable>;\n}\n\nexport class ObservableObject, K = keyof T | unknown> implements IObservableObject {\n\tprotected readonly m_subject = new Subject>();\n\n\tprotected constructor() {}\n\n\tprotected raiseAndSetIfChanged & keyof T>(\n\t\tprop: U,\n\t\tnewValue: T[U],\n\t\toldValue: T[U],\n\t\tsetter: (value: T[U]) => void\n\t): void {\n\t\tif (newValue !== oldValue) {\n\t\t\tsetter(newValue);\n\t\t\tthis.m_subject.next({ propertyName: prop, newValue: newValue as any, oldValue: oldValue as any });\n\t\t}\n\t}\n\n\tpublic getPropertyChangeStream>(\n\t\t...props: U[]\n\t): Observable> {\n\t\tconst observable = Observable.from(this.m_subject) as unknown as Observable>;\n\t\treturn props == null || props.length < 1\n\t\t\t? observable\n\t\t\t: observable.filter((value) => props.indexOf(value.propertyName as U) >= 0);\n\t}\n\n\tpublic static for(object: T): T & IObservableObject {\n\t\tconst subject = new Subject>();\n\t\tconst proxy = new Proxy(object, {\n\t\t\tget: (target, prop, receiver) => {\n\t\t\t\tif (prop === 'getPropertyChangeStream') {\n\t\t\t\t\tconst getPropertyChangeStream = (...props: K[]) => {\n\t\t\t\t\t\tconst observable = Observable.from(subject);\n\t\t\t\t\t\treturn props == null || props.length < 1\n\t\t\t\t\t\t\t? observable\n\t\t\t\t\t\t\t: observable.filter((value) => props.indexOf(value.propertyName as K) >= 0);\n\t\t\t\t\t};\n\t\t\t\t\treturn getPropertyChangeStream.bind(target);\n\t\t\t\t} else {\n\t\t\t\t\tconst value = (target as any)[prop];\n\t\t\t\t\treturn typeof value === 'function' ? value.bind(target) : value;\n\t\t\t\t}\n\t\t\t},\n\t\t\tset: (target, prop, value, receiver) => {\n\t\t\t\tconst currentValue = (target as any)[prop];\n\t\t\t\tvalue = typeof value === 'function' ? value.bind(target) : value;\n\t\t\t\ttarget[prop as K] = value;\n\t\t\t\tif (currentValue !== value) {\n\t\t\t\t\tsubject.next({ propertyName: prop as any, newValue: value, oldValue: currentValue });\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t},\n\t\t});\n\t\treturn proxy as T & IObservableObject;\n\t}\n}\n\n//export namespace Collections {\n\nexport interface IObservableSetChange {\n\ttype: 'add' | 'delete' | 'clear';\n\tvalues: T[];\n}\n\nexport class ObservableSet extends Set {\n\tprivate readonly m_subject: Subject>;\n\tprivate readonly m_valueComparator?: Comparator | null | undefined;\n\n\tpublic get changeStream(): Observable> {\n\t\treturn Observable.from(this.m_subject);\n\t}\n\n\tpublic get valueComparator(): Comparator | null | undefined {\n\t\treturn this.m_valueComparator;\n\t}\n\n\tpublic constructor(values?: Iterable | null, comparator?: Comparator | null | undefined) {\n\t\tsuper(Array.from(values || []));\n\t\tthis.m_valueComparator = comparator;\n\t\tthis.m_subject = new Subject();\n\t}\n\n\tpublic has(value: T): boolean {\n\t\treturn this.m_valueComparator != null\n\t\t\t? Array.from(this.values()).some((currentValue) => this.m_valueComparator!(currentValue, value))\n\t\t\t: super.has(value);\n\t}\n\n\tpublic add(...values: T[]): this {\n\t\tconst additions: T[] = [];\n\t\tvalues.forEach((value) => {\n\t\t\tthis.has(value) || (super.add(value) && additions.push(value));\n\t\t});\n\t\tif (additions.length > 0 && this.m_subject != null) {\n\t\t\tthis.m_subject.next({ type: 'add', values: additions });\n\t\t}\n\t\treturn this;\n\t}\n\n\tpublic delete(...values: T[]): boolean {\n\t\tconst deletions: T[] = [];\n\t\tif (this.m_valueComparator != null) {\n\t\t\tArray.from(this).forEach((value) => {\n\t\t\t\tif (values.some((element) => this.m_valueComparator!(element, value))) {\n\t\t\t\t\tsuper.delete(value) && deletions.push(value);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tvalues.forEach((value) => {\n\t\t\t\tsuper.delete(value) && deletions.push(value);\n\t\t\t});\n\t\t}\n\t\tif (deletions.length > 0 && this.m_subject != null) {\n\t\t\tthis.m_subject.next({ type: 'delete', values: deletions });\n\t\t}\n\t\treturn deletions.length > 0;\n\t}\n\n\tpublic clear(): this {\n\t\tif (this.size > 0) {\n\t\t\tconst values = Array.from(this.values());\n\t\t\tsuper.clear();\n\t\t\tif (this.m_subject != null) {\n\t\t\t\tthis.m_subject.next({ type: 'clear', values: values });\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tpublic find(predicate: (value: T) => boolean): T | undefined {\n\t\treturn Array.from(this).find(predicate);\n\t}\n\n\tpublic subscribe(\n\t\tonNext: (value: IObservableSetChange) => void,\n\t\tonError?: ((error: any) => void) | undefined,\n\t\tonComplete?: (() => void) | undefined\n\t): Subscription> {\n\t\treturn this.changeStream.subscribe(onNext);\n\t}\n\n\tpublic static from(\n\t\tvalues: Iterable,\n\t\tcomparator?: Comparator | null | undefined\n\t): ObservableSet {\n\t\treturn new ObservableSet(values, comparator);\n\t}\n}\n\nexport interface IObservableMapChange {\n\ttype: 'add' | 'update' | 'delete' | 'clear';\n\tvalues: { key: K; newValue?: V; oldValue?: V }[];\n}\n\nexport interface IObservableMapEntry {\n\tkey: K;\n\tvalue: V;\n}\n\nexport class ObservableMap extends Map {\n\tprivate readonly m_subject: Subject>;\n\tprivate readonly m_keyComparator?: Comparator | null | undefined;\n\n\tpublic get changeStream(): Observable> {\n\t\treturn Observable.from(this.m_subject);\n\t}\n\n\tpublic get keyComparator(): Comparator | null | undefined {\n\t\treturn this.m_keyComparator;\n\t}\n\n\tpublic constructor(\n\t\tentries?: Iterable | null | undefined,\n\t\tkeyComparator?: Comparator | null | undefined\n\t) {\n\t\tsuper(entries || []);\n\t\tthis.m_keyComparator = keyComparator;\n\t\tthis.m_subject = new Subject();\n\t}\n\n\tpublic has(key: K): boolean {\n\t\treturn super.has(this.getRealKey(key) as K);\n\t}\n\n\tpublic get(key: K): V | undefined {\n\t\treturn super.get(this.getRealKey(key) as K);\n\t}\n\n\tpublic set(key: K, value: V): this;\n\tpublic set(values: IObservableMapEntry[]): this;\n\tpublic set(key: K | IObservableMapEntry[], value?: V): this {\n\t\tconst values: IObservableMapEntry[] = Array.isArray(key) ? key : [{ key: key, value: value as V }];\n\t\tconst additions: Map = new Map();\n\t\tconst updates: Map = new Map();\n\t\tvalues.forEach((value) => {\n\t\t\tconst realKey = this.getRealKey(value.key) as K;\n\t\t\tif (super.has(realKey)) {\n\t\t\t\tconst currentValue = super.get(realKey);\n\t\t\t\tcurrentValue !== value.value &&\n\t\t\t\t\tupdates.set(realKey, { key: realKey, newValue: value.value, oldValue: currentValue as V });\n\t\t\t} else {\n\t\t\t\tadditions.set(value.key, { key: value.key, newValue: value.value });\n\t\t\t}\n\t\t});\n\n\t\tupdates.forEach((value) => super.set(value.key, value.newValue));\n\t\tadditions.forEach((value) => super.set(value.key, value.newValue));\n\n\t\tif (this.m_subject != null) {\n\t\t\tif (updates.size > 0) {\n\t\t\t\tthis.m_subject.next({ type: 'update', values: Array.from(updates.values()) });\n\t\t\t}\n\t\t\tif (additions.size > 0) {\n\t\t\t\tthis.m_subject.next({ type: 'add', values: Array.from(additions.values()) });\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tpublic delete(...keys: K[]): boolean {\n\t\tconst deletions: { key: K; oldValue: V }[] = [];\n\t\tkeys.forEach((key) => {\n\t\t\tconst realKey = this.getRealKey(key) as K;\n\t\t\tif (super.has(realKey)) {\n\t\t\t\tconst currentValue = super.get(realKey);\n\t\t\t\tsuper.delete(realKey) && deletions.push({ key: realKey, oldValue: currentValue as V });\n\t\t\t}\n\t\t});\n\t\tif (deletions.length > 0 && this.m_subject != null) {\n\t\t\tthis.m_subject.next({ type: 'delete', values: deletions });\n\t\t}\n\t\treturn deletions.length > 0;\n\t}\n\n\tpublic clear(): this {\n\t\tif (this.size > 0) {\n\t\t\tconst deletions: { key: K; oldValue: V }[] = [];\n\t\t\tthis.forEach((value, key) => deletions.push({ key: key, oldValue: value }));\n\t\t\tsuper.clear();\n\t\t\tif (this.m_subject != null) {\n\t\t\t\tthis.m_subject.next({ type: 'clear', values: deletions });\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tpublic subscribe(onNext: (value: IObservableMapChange) => void): Subscription> {\n\t\treturn this.changeStream.subscribe(onNext);\n\t}\n\n\tprivate getRealKey(key: K): K | undefined {\n\t\treturn this.m_keyComparator != null\n\t\t\t? Array.from(this.keys()).find((value) => this.m_keyComparator!(key, value))\n\t\t\t: key;\n\t}\n\n\tpublic static from(\n\t\tvalues: Iterable,\n\t\tkeyComparator?: Comparator | null | undefined\n\t): ObservableMap {\n\t\treturn new ObservableMap(values, keyComparator);\n\t}\n}\n\nexport interface IObservableQueueChange {\n\ttype: 'enqueue' | 'dequeue' | 'delete' | 'clear';\n\tvalues: T[];\n}\n\nexport class ObservableQueue {\n\tprivate readonly m_items: T[];\n\tprivate readonly m_valueComparator?: Comparator | null | undefined;\n\tprivate readonly m_maxLength: number | null | undefined;\n\tprivate readonly m_subject: Subject>;\n\n\tpublic get maxLength(): number | null | undefined {\n\t\treturn this.m_maxLength;\n\t}\n\n\tpublic get length(): number {\n\t\treturn this.m_items.length;\n\t}\n\n\tpublic get changeStream(): Observable> {\n\t\treturn Observable.from(this.m_subject);\n\t}\n\n\tpublic get valueComparator(): Comparator | null | undefined {\n\t\treturn this.m_valueComparator;\n\t}\n\n\tpublic constructor(\n\t\tvalues?: Iterable | null,\n\t\tcomparator?: Comparator | null | undefined,\n\t\tmaxLength?: number | null | undefined\n\t) {\n\t\tthis.m_items = Array.from(values || []);\n\t\tthis.m_valueComparator = comparator;\n\t\tthis.m_maxLength = maxLength;\n\t\tthis.m_subject = new Subject();\n\t}\n\n\tpublic has(item: T): boolean {\n\t\tconst predicate =\n\t\t\tthis.m_valueComparator ||\n\t\t\t((val1: T, val2: T) => {\n\t\t\t\treturn val1 === val2;\n\t\t\t});\n\t\treturn this.m_items.some((currentValue) => predicate(currentValue, item));\n\t}\n\n\tpublic dequeue(): T | undefined {\n\t\tconst value = this.m_items.pop();\n\t\tif (this.m_subject != null && value !== undefined) {\n\t\t\tthis.m_subject.next({ type: 'dequeue', values: [value] });\n\t\t}\n\t\treturn value;\n\t}\n\n\tpublic enqueue(...items: T[]): T[] {\n\t\tconst enqueuedItems = items.filter((item) => !this.has(item));\n\t\tif (enqueuedItems.length > 0) {\n\t\t\tthis.m_items.unshift(...enqueuedItems);\n\t\t}\n\t\tconst removedItems =\n\t\t\tenqueuedItems.length > 0 && this.maxLength != null && this.length > this.maxLength\n\t\t\t\t? this.m_items.splice(this.maxLength)\n\t\t\t\t: [];\n\t\tif (this.m_subject != null && enqueuedItems.length > 0) {\n\t\t\tthis.m_subject.next({ type: 'enqueue', values: enqueuedItems });\n\t\t}\n\t\treturn removedItems;\n\t}\n\n\tpublic delete(...items: T[]): T[] {\n\t\tconst deletions: T[] = [];\n\t\tconst predicate =\n\t\t\tthis.m_valueComparator ||\n\t\t\t((val1: T, val2: T) => {\n\t\t\t\treturn val1 === val2;\n\t\t\t});\n\t\titems.forEach((item) => {\n\t\t\tconst index = this.m_items.findIndex((value) => predicate(value, item));\n\t\t\tif (index >= 0) {\n\t\t\t\tArray.prototype.push.apply(deletions, this.m_items.splice(index, 1));\n\t\t\t}\n\t\t});\n\t\tif (this.m_subject != null && deletions.length > 0) {\n\t\t\tthis.m_subject.next({ type: 'delete', values: deletions });\n\t\t}\n\t\treturn deletions;\n\t}\n\n\tpublic clear(): this {\n\t\tconst deletions =\n\t\t\tthis.m_items != null && this.m_items.length > 0 ? this.m_items.splice(0, this.m_items.length) : [];\n\t\tif (this.m_subject != null && deletions.length > 0) {\n\t\t\tthis.m_subject.next({ type: 'clear', values: deletions });\n\t\t}\n\t\treturn this;\n\t}\n\n\tpublic values(): IterableIterator {\n\t\treturn (this.m_items || []).values();\n\t}\n\n\tpublic subscribe(\n\t\tonNext: (value: IObservableQueueChange) => void,\n\t\tonError?: ((error: any) => void) | undefined,\n\t\tonComplete?: (() => void) | undefined\n\t): Subscription> {\n\t\treturn this.changeStream.subscribe(onNext);\n\t}\n\n\tpublic static from(\n\t\tvalues: Iterable,\n\t\tcomparator?: Comparator | null | undefined,\n\t\tmaxLength?: number | null | undefined\n\t): ObservableQueue {\n\t\treturn new ObservableQueue(values, comparator, maxLength);\n\t}\n}\n//}\n\n//export namespace Functions {\nexport const filter = ObservableFns.filter;\nexport const flatMap = ObservableFns.flatMap;\nexport const interval = ObservableFns.interval;\nexport const map = ObservableFns.map;\nexport const merge = ObservableFns.merge;\nexport const multicast = ObservableFns.multicast;\nexport const scan = ObservableFns.scan;\nexport const unsubscribe = ObservableFns.unsubscribe;\n//}\n\nexport { ThreadSafeObservableFns as ThreadSafe };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"DetachedModal_modal__OrA2M\",\"modalHeader\":\"DetachedModal_modalHeader__nRNjR\",\"modalTitle\":\"DetachedModal_modalTitle__nR6Rf\",\"noPadding\":\"DetachedModal_noPadding__38-j5\",\"modalBody\":\"DetachedModal_modalBody__2Pbfb\",\"iconContainer\":\"DetachedModal_iconContainer__prfAW\",\"icon\":\"DetachedModal_icon__1bxSQ\",\"modalFooter\":\"DetachedModal_modalFooter__1vm17\",\"modalButtons\":\"DetachedModal_modalButtons__2WcMC\",\"button\":\"DetachedModal_button__1y5A_\",\"cancelButton\":\"DetachedModal_cancelButton__x_UKX\",\"noBody\":\"DetachedModal_noBody__2Rrxg\"};","import React, { useContext } from 'react';\nimport { Popup as SemanticUiPopup } from 'semantic-ui-react';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../contexts/AppContext';\n\nimport styles from './WtrTooltip.module.scss';\n\n/**\n * Wrapper component that allows you to stylize the Semantic UI React Popup Component and use it as a tooltip\n * If no position is specified the tooltip will default to position bottom center\n * Children should be wrapped in
in order to work properly\n */\nconst WtrTooltip = ({ children, position, ...rest }: any) => {\n\tconst { appTheme, isArabic } = useContext(AppContext);\n\n\trest.className = cn(rest.className, appTheme, styles.wtrTooltip);\n\n\t// be smarter about this\n\tif (position && isArabic) {\n\t\tif (position.includes('right')) {\n\t\t\tposition = position.replace('right', 'left');\n\t\t}\n\t}\n\n\trest.position = position || 'bottom center'; //if no position is specified the tooltip will default to position bottom center\n\n\treturn ;\n};\n\nexport default WtrTooltip;\n","import { create as _create } from 'zustand';\nimport type { StateCreator } from 'zustand';\n\nconst storeResetFns = new Set<() => void>();\n\nexport const resetAllStores = () => {\n\tstoreResetFns.forEach((resetFn) => {\n\t\tresetFn();\n\t});\n};\n\nexport const create = (() => {\n\treturn (stateCreator: StateCreator) => {\n\t\tconst store = _create(stateCreator);\n\t\tconst initialState = store.getState();\n\t\tstoreResetFns.add(() => {\n\t\t\tstore.setState(initialState, true);\n\t\t});\n\t\treturn store;\n\t};\n}) as typeof _create;\n","import React, { useContext } from 'react';\nimport AppContext from '../../../contexts/AppContext';\nimport { Tooltip as BootstrapTooltip, TooltipProps } from 'react-bootstrap';\nimport './Tooltip.module.scss';\n\n/**\n * Wrapper component that allows you to stylize the Bootstrap Tooltip Component\n */\nconst Tooltip = React.forwardRef(({ children, ...rest }: TooltipProps, ref) => {\n\tconst { appTheme } = useContext(AppContext);\n\trest.className = `${rest.className || ''} ${appTheme}`;\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n});\n\nexport default Tooltip;\n","import { ChartTimezone } from './enums';\n\nconst convertChartTimeZone = (value: string) => {\n\tif (value === ChartTimezone.NYT) {\n\t\treturn ChartTimezone.NYT;\n\t} else if (value === ChartTimezone.GMT) {\n\t\treturn ChartTimezone.GMT;\n\t}\n\treturn ChartTimezone.Local;\n};\n\nexport default convertChartTimeZone;\n","import clone from 'clone';\n\nimport { useContext } from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport DashboardContext from '../../../contexts/DashboardContext';\nimport {\n\tLastLoggedAct,\n\tTPreferenceResponse,\n\tTWatchlists,\n} from '../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport authStore from '../../../store/authStore';\nimport convertChartTimeZone from '../../../utils/functions/chartIqTimeZone';\n\nimport { DEFAULT_FEED_ID } from '../../functions/WatchlistUtils';\n\nimport useSaveUserPreferences from '../../mutations/useSaveUserPreferences';\nimport { AccountMarketType } from '../../../gateways/RfpGateway/rfp.types';\nimport { useDynamicWatchLists } from '../useDynamicWatchLists';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\n\n/**\n * Fills the contexts used by the model layer from the result recieved by the preferences API\n * @param {TPreferenceResponse} userPreference User preference API call result or default preference object\n * @param {AppContextProvider} appContext The app context state to be filled\n * @param {DashboardContextProvider} dashboardContext The dashboard context state to be filled\n * @since preference version 1.0\n */\n\nexport const useFillContextsFromPreferences = () => {\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst setAccountAvatar = authStore.use.setAccountAvatar();\n\tconst dynamicWatchLists = useDynamicWatchLists();\n\tconst setIsOneClickTradingActive = tradingAccountStore.use.setIsOneClickTradingActive();\n\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\n\treturn (userPrefs: TPreferenceResponse) => {\n\t\tif (!userPrefs) return;\n\t\tconst userPreferences = clone(userPrefs);\n\t\tconst { user_prefs: preferences } = userPreferences;\n\t\tconst accountType = dashboardContext.accountType;\n\n\t\tif (!preferences.platform.lastLoggedAct || typeof preferences.platform.lastLoggedAct !== 'object') {\n\t\t\tappContext.userPreferences!.user_prefs.platform.lastLoggedAct = { demo: '', live: '' };\n\t\t\tsavePreferences();\n\t\t}\n\n\t\tconst isLastLoggedAccountSpreadBetting =\n\t\t\tpreferences.platform?.accountTypes &&\n\t\t\tpreferences.platform?.accountTypes[\n\t\t\t\tpreferences.platform.lastLoggedAct[tradingMode.toLowerCase() as keyof LastLoggedAct]\n\t\t\t] === AccountMarketType.SpreadBetting;\n\n\t\tif (preferences.platform?.accountAvatar) {\n\t\t\tsetAccountAvatar(preferences.platform?.accountAvatar);\n\t\t}\n\t\tconst isLastLoggedAccountJapanSpread =\n\t\t\tpreferences.platform?.accountTypes &&\n\t\t\tpreferences.platform?.accountTypes[\n\t\t\t\tpreferences.platform.lastLoggedAct[tradingMode.toLowerCase() as keyof LastLoggedAct]\n\t\t\t] === AccountMarketType.JapanSpread;\n\n\t\t//Theme Preference\n\t\tif (preferences.platform?.theme !== null) {\n\t\t\t//Theme Preference\n\t\t\tif (preferences.platform.theme._type === 'Light') {\n\t\t\t\tappContext.appTheme = 'light';\n\t\t\t} else if (preferences.platform.theme._type === 'Dark') {\n\t\t\t\tappContext.appTheme = 'dark';\n\t\t\t} else if (preferences.platform.theme._type === 'System') {\n\t\t\t\tconst getCurrentTheme = () => window.matchMedia('(prefers-color-scheme: dark)').matches;\n\t\t\t\tif (getCurrentTheme()) {\n\t\t\t\t\tappContext.appTheme = 'dark';\n\t\t\t\t} else {\n\t\t\t\t\tappContext.appTheme = 'light';\n\t\t\t\t}\n\t\t\t}\n\t\t\tlocalStorage.setItem('wt-theme', appContext.appTheme);\n\t\t}\n\t\t//One-Click Trading Preference\n\t\tif (preferences.trading?.settings['cfd'] !== null) {\n\t\t\t// dashboardContext.oneClickTrading = preferences.trading.settings['cfd']?._mode === '1-Click';\n\t\t\tsetIsOneClickTradingActive(preferences.trading.settings['cfd']?._mode === '1-Click');\n\t\t}\n\t\t//Quantity Type Preference\n\t\tif (preferences.trading?.settings['cfd']?._quantityType !== null) {\n\t\t\tif (isLastLoggedAccountSpreadBetting) {\n\t\t\t\tdashboardContext.quantityType = 'Lots';\n\t\t\t} else {\n\t\t\t\tdashboardContext.quantityType = appContext.isJapanAccount\n\t\t\t\t\t? 'Amount'\n\t\t\t\t\t: preferences.trading?.settings['cfd']?._quantityType!;\n\t\t\t}\n\t\t}\n\n\t\t//Notification sound muted Preference\n\t\tif (preferences.trading?.settings['cfd']?._notificationSoundMuted !== undefined) {\n\t\t\tdashboardContext.notificationSoundMuted = preferences.trading?.settings['cfd']?._notificationSoundMuted;\n\t\t}\n\t\t//Notification sound volume Preference\n\t\tif (preferences.trading?.settings['cfd']?._notificationSoundVolume) {\n\t\t\tdashboardContext.notificationSoundVolume = preferences.trading?.settings['cfd']?._notificationSoundVolume;\n\t\t}\n\t\t//Trade From Chart Preference\n\t\tif (preferences.trading?.settings['cfd']?._tradeFromChartEnabled !== null) {\n\t\t\tdashboardContext.tradeFromChartEnabled = preferences.trading?.settings['cfd']?._tradeFromChartEnabled!;\n\t\t} else {\n\t\t\t// Persist the new setting for existing users\n\t\t\tif (appContext.userPreferences!.user_prefs.trading.settings[accountType]) {\n\t\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._tradeFromChartEnabled = true;\n\t\t\t\tsavePreferences();\n\t\t\t}\n\t\t}\n\t\t//Inactive Time Preference\n\t\tif (preferences.platform?.inactivity !== null) {\n\t\t\tdashboardContext.inactiveTime = preferences.platform.inactivity;\n\t\t}\n\n\t\tif (!preferences.trading.settings[accountType]!.amount) {\n\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!.amount = {};\n\t\t\tsavePreferences();\n\t\t}\n\n\t\t//Watchlist Preference\n\t\tif (preferences.watchlists.account.length > 0) {\n\t\t\tlet cfdWatchlists: TWatchlists[] = [];\n\n\t\t\tconst filteredByModeWatchlists = preferences.watchlists.account.filter((accountType) => {\n\t\t\t\tif (isLastLoggedAccountSpreadBetting) {\n\t\t\t\t\treturn accountType.accountType === 'SpreadBetting';\n\t\t\t\t} else if (isLastLoggedAccountJapanSpread) {\n\t\t\t\t\treturn accountType.accountType === 'JapanSpread';\n\t\t\t\t} else {\n\t\t\t\t\treturn accountType.accountType === undefined;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Ensure Live account watchlists are prioritized\n\t\t\tfilteredByModeWatchlists.sort((a, b) => {\n\t\t\t\tif (a._type === 'Live' && b._type !== 'Live') return -1;\n\t\t\t\tif (a._type !== 'Live' && b._type === 'Live') return 1;\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t\t// Filter out the watchlist but start with Live account\n\t\t\tfilteredByModeWatchlists.forEach((account) => {\n\t\t\t\taccount.watchlist.forEach((watchlist, index) => {\n\t\t\t\t\tif (watchlist._feedId === DEFAULT_FEED_ID) {\n\t\t\t\t\t\tif (!cfdWatchlists.some((existingWatchlist) => existingWatchlist._id === watchlist._id)) {\n\t\t\t\t\t\t\tcfdWatchlists.push(watchlist);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tdynamicWatchLists(cfdWatchlists, isLastLoggedAccountSpreadBetting || false, true);\n\t\t}\n\n\t\t//Timezone Preference - default Local if no time zone specified\n\t\tconst timezone = convertChartTimeZone(preferences.platform?.timezone ? preferences.platform.timezone._name : '');\n\t\tdashboardContext.initialTimezone = timezone;\n\t\tdashboardContext.chartTimezone = timezone;\n\n\t\tif (localStorage) {\n\t\t\tlocalStorage.setItem('charts-timezone', timezone);\n\t\t}\n\n\t\t// Language Preference\n\t\tif (\n\t\t\tpreferences.platform?.lang._code !== null &&\n\t\t\tappContext.languageSettings !== preferences?.platform?.lang._code\n\t\t) {\n\t\t\tappContext.languageSettings = preferences.platform.lang._code;\n\t\t}\n\t};\n};\n","import {\n\tHistoryTick,\n\tMarketItem,\n\tPriceQuote,\n\tRFPDataObjectType,\n\tTradingPosition,\n\tTradingPositionState,\n} from '../../../gateways/RfpGateway/rfp.types';\nimport { isMarketItemType, MarketItemType } from '../../../utils/functions/calculations';\nimport { TradingPositionSide, TradingPositionType } from '../../../utils/functions/enums';\nimport { GymTradingAccount } from '../Accounts/GymTradingAccount';\nimport { GymRefQuotesStore } from '../HistoryData/GymRefQuotesStore';\n\nimport { GymPositionUtils } from './GymPositionUtils';\n\nexport class GymTradingPosition implements TradingPosition {\n\taId: number;\n\tstate: TradingPositionState; // Default state is pending\n\tside: TradingPositionSide;\n\tcode: string;\n\tf: string;\n\ttype?: TradingPositionType | undefined;\n\toP: number = NaN;\n\tcP: number = NaN;\n\tprc: number = NaN;\n\tcomm?: number | undefined;\n\tswap?: number | undefined;\n\tqty: number = 0;\n\toT?: number | undefined;\n\tcT?: number | undefined;\n\teT?: number | undefined;\n\tsl: number = NaN;\n\ttp: number = NaN;\n\tposId: number | undefined;\n\tqCcy?: string | undefined;\n\tdec: number = -1;\n\topenAskPrice?: number;\n\topenBidPrice?: number;\n\tcloseAskPrice?: number;\n\tcloseBidPrice?: number;\n\tprivate _grossProfit: number = NaN;\n\tpublic get grossProfit(): number {\n\t\treturn this._grossProfit;\n\t}\n\tpublic set grossProfit(value: number) {\n\t\tif (!isNaN(value)) {\n\t\t\tthis._grossProfit = value;\n\t\t\tthis.netProfit = value;\n\t\t}\n\t}\n\tdividend?: number | undefined;\n\tmarketItem?: MarketItem | undefined;\n\tcurrentPrice?: number | undefined;\n\tpips?: number | undefined;\n\ttpInPips: number = NaN;\n\tslInPips: number = NaN;\n\tadditionalSubscriptionPair: Set = new Set();\n\tnetProfit: number = NaN;\n\tcomment?: string | undefined;\n\tdataObjectType = RFPDataObjectType.TradingPosition;\n\tbaseCurrency?: string | undefined;\n\tcancelRequestSent?: boolean | undefined;\n\ttrailingStop?: number = NaN;\n\t/*\n\t * Position will belong to specific simulation\n\t */\n\tprivate _simulationId: string;\n\tpublic get simulationId(): string {\n\t\treturn this._simulationId;\n\t}\n\tpublic set simulationId(value: string) {\n\t\tthis._simulationId = value;\n\t}\n\n\tprivate _lastDataClosePrice: number = 0;\n\tpublic get lastDataClosePrice(): number {\n\t\treturn this._lastDataClosePrice;\n\t}\n\tpublic set lastDataClosePrice(value: number) {\n\t\tthis._lastDataClosePrice = value;\n\t\tthis.currentPrice = this._lastDataClosePrice;\n\t}\n\tprivate _lastDataCloseTime: number = 0;\n\tpublic get lastDataCloseTime(): number {\n\t\treturn this._lastDataCloseTime;\n\t}\n\tpublic set lastDataCloseTime(value: number) {\n\t\tthis._lastDataCloseTime = value;\n\t}\n\n\tdeepCopy() {\n\t\tconst copyPos = new GymTradingPosition(\n\t\t\tthis.aId,\n\t\t\tthis.f,\n\t\t\tthis.code,\n\t\t\tthis.state,\n\t\t\tthis.side,\n\t\t\tthis.type ?? TradingPositionType.Market,\n\t\t\tthis._simulationId\n\t\t);\n\t\tObject.assign(copyPos, this);\n\n\t\treturn copyPos;\n\t}\n\n\tconstructor(\n\t\taccountId: number,\n\t\tfeedId: string,\n\t\tcode: string,\n\t\tstate: TradingPositionState,\n\t\tside: TradingPositionSide,\n\t\ttype: TradingPositionType,\n\t\tsimulationId: string\n\t) {\n\t\tthis.aId = accountId;\n\t\tthis.f = feedId;\n\t\tthis.code = code;\n\t\tthis.state = state;\n\t\tthis.side = side;\n\t\tthis.type = type;\n\t\tthis._simulationId = simulationId;\n\t}\n\n\tupdatePosition(account: GymTradingAccount, dataItem: HistoryTick, priceQuote: PriceQuote): boolean {\n\t\tconst accountCurrency = account.baseCurrency;\n\t\tthis.calcProfit(account, priceQuote, accountCurrency);\n\n\t\tif (this.lastDataCloseTime >= priceQuote.t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.lastDataClosePrice = this.getCurrentPrice(priceQuote);\n\t\tthis.lastDataCloseTime = priceQuote.t;\n\n\t\tswitch (this.state) {\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\treturn this.updateActivePosition(dataItem, accountCurrency);\n\t\t\t}\n\t\t\tcase TradingPositionState.pending: {\n\t\t\t\treturn this.updatePendingPosition(account, dataItem, priceQuote, accountCurrency);\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn false;\n\t}\n\n\tupdateActivePosition(dataItem: HistoryTick, accountCurrency: string): boolean {\n\t\tlet res = false;\n\t\tswitch (this.side) {\n\t\t\tcase TradingPositionSide.Buy: {\n\t\t\t\tif (this.hasStopLoss() && dataItem.low <= this.sl) {\n\t\t\t\t\tthis.cP = this.sl;\n\t\t\t\t\tthis.cT = dataItem.closeTime;\n\t\t\t\t\tthis.comment = 'Position was close by triggered stop loss';\n\t\t\t\t\tthis.setPositionInClosedState(accountCurrency);\n\t\t\t\t\tres = true;\n\t\t\t\t}\n\n\t\t\t\tif (this.hasTakeProfit() && dataItem.high >= this.tp) {\n\t\t\t\t\tthis.cP = this.tp;\n\t\t\t\t\tthis.cT = dataItem.closeTime;\n\t\t\t\t\tthis.comment = 'Position was close by triggered take profit';\n\t\t\t\t\tthis.setPositionInClosedState(accountCurrency);\n\t\t\t\t\tres = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionSide.Sell: {\n\t\t\t\tif (this.hasStopLoss() && dataItem.high >= this.sl) {\n\t\t\t\t\tthis.cP = this.sl;\n\t\t\t\t\tthis.cT = dataItem.closeTime;\n\t\t\t\t\tthis.comment = 'Position was close by triggered stop loss';\n\t\t\t\t\tthis.setPositionInClosedState(accountCurrency);\n\t\t\t\t\tres = true;\n\t\t\t\t}\n\n\t\t\t\tif (this.hasTakeProfit() && dataItem.low <= this.tp) {\n\t\t\t\t\tthis.cP = this.tp;\n\t\t\t\t\tthis.cT = dataItem.closeTime;\n\t\t\t\t\tthis.comment = 'Position was close by triggered take profit';\n\t\t\t\t\tthis.setPositionInClosedState(accountCurrency);\n\t\t\t\t\tres = true;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tGymTradingPosition.storePosition(this);\n\t\t}\n\t\treturn res;\n\t}\n\n\tupdatePendingPosition(\n\t\taccount: GymTradingAccount,\n\t\tdataItem: HistoryTick,\n\t\tpriceQuote: PriceQuote,\n\t\taccountCurrency: string\n\t): boolean {\n\t\tlet shouldSetInOpenState = false;\n\n\t\tswitch (this.side) {\n\t\t\tcase TradingPositionSide.Buy: {\n\t\t\t\tswitch (this.type) {\n\t\t\t\t\tcase TradingPositionType.Limit: {\n\t\t\t\t\t\tif (dataItem.low <= this.prc) {\n\t\t\t\t\t\t\tshouldSetInOpenState = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase TradingPositionType.Stop: {\n\t\t\t\t\t\tif (dataItem.high >= this.prc) {\n\t\t\t\t\t\t\tshouldSetInOpenState = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionSide.Sell: {\n\t\t\t\tswitch (this.type) {\n\t\t\t\t\tcase TradingPositionType.Limit: {\n\t\t\t\t\t\tif (dataItem.high >= this.prc) {\n\t\t\t\t\t\t\tshouldSetInOpenState = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase TradingPositionType.Stop: {\n\t\t\t\t\t\tif (dataItem.low <= this.prc) {\n\t\t\t\t\t\t\tshouldSetInOpenState = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (shouldSetInOpenState) {\n\t\t\tthis.oT = dataItem.closeTime;\n\t\t\tthis.oP = this.prc;\n\t\t\tthis.state = TradingPositionState.open;\n\t\t\tthis.type = TradingPositionType.Market;\n\n\t\t\tif (this.posId && !GymPositionUtils.validateMargin(account, this)) {\n\t\t\t\tGymTradingPosition.removePositionStore(this.simulationId, this.posId);\n\t\t\t\tthis.state = TradingPositionState.deleted;\n\n\t\t\t\tthrow new Error('Failed to open pending position. Insufficient Available Margin!');\n\t\t\t}\n\n\t\t\tthis.calcProfit(account, priceQuote, accountCurrency);\n\t\t}\n\n\t\tGymTradingPosition.storePosition(this);\n\n\t\treturn shouldSetInOpenState;\n\t}\n\n\tcalcUsedMargin(account: GymTradingAccount): number {\n\t\tif (this.aId !== account.id) {\n\t\t\tthrow Error('Trying to calcUsedMargin with wrong account data');\n\t\t}\n\n\t\tif (this.state !== TradingPositionState.open) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet usedMargin = 0.0;\n\t\tif (!isNaN(this.oP)) {\n\t\t\tif (this.marketItem) {\n\t\t\t\tconst quoteCurrency = this.qCcy ?? '';\n\t\t\t\tlet effectivePrice = GymRefQuotesStore.sharedInstance().getPrice(\n\t\t\t\t\tquoteCurrency,\n\t\t\t\t\taccount.baseCurrency,\n\t\t\t\t\tthis.lastDataCloseTime,\n\t\t\t\t\tthis.simulationId\n\t\t\t\t);\n\t\t\t\tif (isNaN(effectivePrice) || effectivePrice === 0) {\n\t\t\t\t\teffectivePrice = 1;\n\t\t\t\t}\n\n\t\t\t\tif (!isMarketItemType(this.marketItem, MarketItemType.FOREX)) {\n\t\t\t\t\teffectivePrice *= this.oP;\n\t\t\t\t}\n\n\t\t\t\tusedMargin = account.leverage * effectivePrice * this.qty;\n\t\t\t}\n\t\t}\n\n\t\treturn usedMargin;\n\t}\n\n\tmultiplayer() {\n\t\treturn this.side === TradingPositionSide.Buy ? 1 : -1;\n\t}\n\n\thasStopLoss() {\n\t\treturn !isNaN(this.sl) && this.sl > 0;\n\t}\n\n\thasTakeProfit() {\n\t\treturn !isNaN(this.tp) && this.tp > 0;\n\t}\n\n\tsetPositionInClosedState(accountCurrency: string) {\n\t\tthis.state = TradingPositionState.closed;\n\n\t\tthis.calcProfitOnClosedPositionWithAccountCurrency(accountCurrency);\n\t}\n\n\tgetCurrentPrice(priceQuote: PriceQuote) {\n\t\treturn this.side === TradingPositionSide.Buy ? priceQuote.b : priceQuote.a;\n\t}\n\n\tcalcInPips(priceQuote: PriceQuote) {\n\t\tif (this.dec !== -1) {\n\t\t\tconst currentPrice = this.getCurrentPrice(priceQuote);\n\t\t\tif (currentPrice !== 0 && !isNaN(currentPrice)) {\n\t\t\t\tif (this.tp !== 0.0 && !isNaN(this.tp)) {\n\t\t\t\t\tthis.tpInPips = Math.abs(currentPrice - this.tp) * this.multiplayer();\n\t\t\t\t}\n\n\t\t\t\tif (this.sl !== 0.0 && !isNaN(this.sl)) {\n\t\t\t\t\tthis.slInPips = Math.abs(currentPrice - this.sl) * this.multiplayer();\n\t\t\t\t}\n\n\t\t\t\tif (this.state === TradingPositionState.pending) {\n\t\t\t\t\tif (this.oP !== 0.0 && !isNaN(this.oP)) {\n\t\t\t\t\t\tthis.pips = Math.abs(this.oP - currentPrice) * this.multiplayer();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tcalcProfitOnClosedPositionWithAccountCurrency(accountCurrency: string) {\n\t\tconst closePrice = this.cP;\n\t\tconst openPrice = this.oP;\n\t\tconst digits = this.dec;\n\t\tconst amount = this.qty;\n\t\tconst quoteCurrency = this.qCcy;\n\t\tif (quoteCurrency && closePrice) {\n\t\t\tswitch (this.state) {\n\t\t\t\tcase TradingPositionState.canceled: {\n\t\t\t\t\tthis.pips = NaN;\n\t\t\t\t\tif (digits !== -1) {\n\t\t\t\t\t\tthis.pips =\n\t\t\t\t\t\t\t(closePrice - openPrice) * Math.pow(10, digits !== 0 ? digits - 1 : digits) * this.multiplayer();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!this.baseCurrency) {\n\t\t\t\t\t\tif (!this.marketItem) {\n\t\t\t\t\t\t\tthis.grossProfit = 0;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.baseCurrency = this.marketItem.bCcy;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst plPositionCurrency = (closePrice - openPrice) * this.multiplayer() * amount;\n\n\t\t\t\t\tif (!(this.qCcy === accountCurrency)) {\n\t\t\t\t\t\tconst effectivePrice = GymRefQuotesStore.sharedInstance().getPrice(\n\t\t\t\t\t\t\tquoteCurrency,\n\t\t\t\t\t\t\taccountCurrency,\n\t\t\t\t\t\t\tthis.lastDataCloseTime,\n\t\t\t\t\t\t\tthis.simulationId\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (isNaN(effectivePrice)) {\n\t\t\t\t\t\t\tthis.grossProfit = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.grossProfit = plPositionCurrency * effectivePrice;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.grossProfit = plPositionCurrency;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tcalcProfit(account: GymTradingAccount, priceQuote: PriceQuote, accountCurrency: string) {\n\t\tswitch (this.state) {\n\t\t\tcase TradingPositionState.closed: {\n\t\t\t\tif (isNaN(this.grossProfit)) {\n\t\t\t\t\tthis.calcProfitOnClosedPositionWithAccountCurrency(accountCurrency);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\tthis.calcInPips(priceQuote);\n\n\t\t\t\tif (isNaN(this.oP) || this.oP === 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst currentPrice = this.getCurrentPrice(priceQuote);\n\n\t\t\t\tthis.pips = NaN;\n\t\t\t\tconst digits = this.dec;\n\t\t\t\tif (digits !== -1) {\n\t\t\t\t\tthis.pips = (currentPrice - this.oP) * Math.pow(10, digits !== 0 ? digits - 1 : digits) * this.multiplayer();\n\t\t\t\t}\n\n\t\t\t\tif (!this.baseCurrency) {\n\t\t\t\t\tif (!this.marketItem) {\n\t\t\t\t\t\tthis.grossProfit = 0;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.baseCurrency = this.marketItem.bCcy;\n\t\t\t\t}\n\n\t\t\t\tconst amount = this.qty;\n\t\t\t\tconst plPositionCurrency = (currentPrice - this.oP) * this.multiplayer() * amount;\n\n\t\t\t\tconst basePositionCurrency = this.qCcy;\n\t\t\t\tif (this.marketItem && basePositionCurrency && basePositionCurrency !== accountCurrency) {\n\t\t\t\t\tthis.grossProfit = GymRefQuotesStore.sharedInstance().convertToBaseCurrency(\n\t\t\t\t\t\taccount,\n\t\t\t\t\t\tbasePositionCurrency,\n\t\t\t\t\t\tthis.marketItem.feedId,\n\t\t\t\t\t\tthis.marketItem.code,\n\t\t\t\t\t\tthis.side === TradingPositionSide.Buy,\n\t\t\t\t\t\tplPositionCurrency,\n\t\t\t\t\t\tcurrentPrice,\n\t\t\t\t\t\tthis.lastDataCloseTime,\n\t\t\t\t\t\tthis.simulationId\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis.grossProfit = plPositionCurrency;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.pending: {\n\t\t\t\tthis.calcInPips(priceQuote);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.deleted: {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static buildKey(simulationId: string, posId: number | undefined) {\n\t\treturn `${simulationId}_${posId}`;\n\t}\n\n\tprivate static ignoreProps(this: any, key: any, value: any) {\n\t\tif (['marketItem'].indexOf(key) > -1) return undefined;\n\t\telse return value;\n\t}\n\n\tstatic storePosition(position: GymTradingPosition) {\n\t\tif (localStorage) {\n\t\t\tlocalStorage.setItem(\n\t\t\t\tGymTradingPosition.buildKey(position.simulationId, position.posId),\n\t\t\t\tJSON.stringify(position, GymTradingPosition.ignoreProps)\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic restoreTradingPosition(simulationId: string, positionId: number): GymTradingPosition | undefined {\n\t\tif (localStorage) {\n\t\t\tconst positionData = localStorage.getItem(GymTradingPosition.buildKey(simulationId, positionId));\n\t\t\tif (positionData) {\n\t\t\t\tconst position = JSON.parse(positionData);\n\t\t\t\tif (position) {\n\t\t\t\t\tconst copyPos = new GymTradingPosition(\n\t\t\t\t\t\tposition.aId,\n\t\t\t\t\t\tposition.f,\n\t\t\t\t\t\tposition.code,\n\t\t\t\t\t\tposition.state,\n\t\t\t\t\t\tposition.side,\n\t\t\t\t\t\tposition.type ?? TradingPositionType.Market,\n\t\t\t\t\t\tposition._simulationId\n\t\t\t\t\t);\n\t\t\t\t\tObject.assign(copyPos, position);\n\n\t\t\t\t\tif (position.additionalSubscriptionPair.length > 0) {\n\t\t\t\t\t\tcopyPos.additionalSubscriptionPair = new Set(...position.additionalSubscriptionPair);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcopyPos.additionalSubscriptionPair = new Set();\n\t\t\t\t\t}\n\t\t\t\t\t// TODO: GYM set MarketItem prop\n\t\t\t\t\treturn copyPos;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tstatic removePositionStore(simulationId: string, posId: number) {\n\t\tif (localStorage) {\n\t\t\tlocalStorage.removeItem(GymTradingPosition.buildKey(simulationId, posId));\n\t\t}\n\t}\n}\n","import React, { useContext } from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { defineBaseCurrencySymbol } from '../../../utils/functions/calculations';\nimport useSelectedTradingAccount from '../../../utils/hooks/useSelectedTradingAccount';\nimport { formatNumberWithCommas } from '../../features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nconst MoneyFormatter = ({ money }: { money: number }) => {\n\tlet value = parseFloat(money!.toString());\n\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst { languageSettings: language, isArabic, isJapanAccount } = useContext(AppContext);\n\n\tlet result = null;\n\n\tif (!isNaN(value) && selectedTradingAccount) {\n\t\tconst symbol = defineBaseCurrencySymbol(selectedTradingAccount!);\n\t\tconst decPrec = isJapanAccount ? 0 : 2;\n\t\t// all number related to Japan account must be rounding with floor function\n\t\tif (isJapanAccount) {\n\t\t\tvalue = Math.floor(value);\n\t\t}\n\n\t\tif (isArabic) {\n\t\t\tresult =\n\t\t\t\tvalue < 0\n\t\t\t\t\t? `${formatNumberWithCommas(Math.abs(value), decPrec, language)} ${symbol} -`\n\t\t\t\t\t: `${formatNumberWithCommas(value, decPrec, language)} ${symbol}`;\n\t\t} else {\n\t\t\tresult =\n\t\t\t\tvalue < 0\n\t\t\t\t\t? `- ${symbol} ${formatNumberWithCommas(Math.abs(value), decPrec, language)}`\n\t\t\t\t\t: `${symbol} ${formatNumberWithCommas(value, decPrec, language)}`;\n\t\t}\n\t}\n\n\treturn <>{result};\n};\n\nexport default MoneyFormatter;\n","import { MarketItem, MarketWatchItem } from '../../../gateways/RfpGateway/rfp.types';\n\n/**\n * Creates a map of market items grouped by groupCode\n * @param data {MarketItem} - Array of market items\n * @returns {Record} - Map of market items grouped by groupCode\n */\nexport const createMarketItemCodeMap = (data: MarketItem[]): Record =>\n\tdata.reduce((all, item) => {\n\t\tall[item.code] = item;\n\n\t\treturn all;\n\t}, {} as Record);\n\n/**\n * Creates a map of market items grouped by group for CFD\n * @param data {MarketItem[]} - Array of market items\n * @returns {Record} - Map of market items grouped by groupCode\n */\nexport const createMarketItemGroupMap = (data: MarketItem[]): Record =>\n\tdata.reduce((all, item) => {\n\t\tif (all[item.grp]) {\n\t\t\tall[item.grp].push(item);\n\t\t} else {\n\t\t\tall[item.grp] = [item];\n\t\t}\n\n\t\treturn all;\n\t}, {} as Record);\n\nexport interface TableMarketItem {\n\tsymbol: string;\n\tname: string;\n\tvolatility: number;\n\tcurrency: string;\n\tchange: number;\n\tlow: string;\n\thigh: string;\n\tsell: string;\n\tbuy: string;\n\tsettings: string;\n}\n\nexport interface PositionTableItem {\n\tsimulationId: string;\n\tinstrument: string;\n\tside: string;\n\tLots: number;\n\tAmount: number;\n\tquantityType: number;\n\tonDate: string;\n\topen: string;\n\tchange: number;\n\tcurrent: number;\n\tTakeProfit: number;\n\tStopLoss: number;\n\tnetPL: number;\n\tgrossPL: number;\n\tsettings: string;\n\tsubRows: any;\n\tclose: boolean;\n\ttime: string;\n\tcomment: string;\n\tcomm: string;\n\tdividend: string;\n\tswap: string;\n\tposId: string;\n\theadID: string;\n\tpipsChange: string;\n\tid: string;\n\tisGroupRow: boolean;\n\tcode: string;\n}\nexport interface CloseTableItem {\n\tsimulationId: string;\n\tinstrument: string;\n\theadID: string;\n\tside: string;\n\tLots: number;\n\tAmount: number;\n\tquantityType: number;\n\tonDate: string;\n\topen: string;\n\tcloseOn: string;\n\topenDate: string;\n\tchange: number;\n\tcurrent: number;\n\tTakeProfit: number;\n\tStopLoss: number;\n\tnetPL: number;\n\tgrossPL: number;\n\tsettings: string;\n\tsubRows: any;\n\tclose: boolean;\n\tclosed: boolean;\n\ttime: string;\n\tclosedTime: string;\n\tcomment: string;\n\tcomm: string;\n\tdividend: string;\n\tswap: string;\n\tposId: string;\n\tpipsChange: string;\n\tid: string;\n}\n\nexport interface OrderTableItem {\n\tsimulationId: string;\n\tinstrument: string;\n\tside: string;\n\tLots: number;\n\tAmount: number;\n\tquantityType: number;\n\tonDate: string;\n\topen: string;\n\tcreatedOn: string;\n\texpiryOn: string;\n\theadID: string;\n\tchange: number;\n\tcurrent: number;\n\tTakeProfit: number;\n\tStopLoss: number;\n\tdistanceToMarket: number;\n\ttype: string;\n\tsettings: string;\n\tsubRows: any;\n\tclose: boolean;\n\ttime: string;\n\tposId: string;\n\tisGroupRow: boolean;\n\tcode: string;\n}\n\ninterface CreateMarketItemGroupTableDataProps {\n\tmarketItems: MarketItem[];\n\tchangeMap?: Record;\n\tvolatilityMap?: Record;\n}\n\n/**\n * Creates a map of market items that is ready for the table\n * @param marketItems {MarketItem[]} - Array of market items\n * @param changeMap {Record} - Map of market items with change\n * @param volatilityMap {Record} - Map of market items with volatility\n * @returns {TableMarketItem[]} - Array of market items ready for the table\n */\nexport const createMarketItemGroupTableData = ({\n\tmarketItems,\n\tchangeMap = {},\n\tvolatilityMap = {},\n}: CreateMarketItemGroupTableDataProps): TableMarketItem[] =>\n\tmarketItems.reduce((all, item) => {\n\t\tconst tableItem: TableMarketItem = {\n\t\t\tsymbol: item.code,\n\t\t\tname: item.fullName,\n\t\t\tvolatility: volatilityMap[item.code] || 0,\n\t\t\tcurrency: item.ccy,\n\t\t\tchange: changeMap[item.code] || 0,\n\t\t\tlow: item.code,\n\t\t\thigh: item.code,\n\t\t\tsell: item.code,\n\t\t\tbuy: item.code,\n\t\t\tsettings: item.code,\n\t\t};\n\n\t\tall.push(tableItem);\n\t\treturn all;\n\t}, [] as TableMarketItem[]);\n\n/**\n * Creates an array with market item codes from Market Item Type\n * @param data {MarketItem[]} - Array of market items\n * @returns {string[]} - Array of market item codes\n */\nexport const createMarketItemCodes = (data: MarketItem[]): string[] =>\n\tdata.reduce((all, item) => {\n\t\tall.push(item.code);\n\t\treturn all;\n\t}, [] as string[]);\n\n/**\n * Creates an array with market item codes from Market Watch Item type\n * @param data {MarketItem[]} - Array of market items\n * @returns {string[]} - Array of market item codes\n */\nexport const createMarketWatchItemCodes = (data: MarketWatchItem[]): string[] =>\n\tdata.reduce((all, item) => {\n\t\tif (item.code) {\n\t\t\tall.push(item.code);\n\t\t}\n\n\t\treturn all;\n\t}, [] as string[]);\n\nenum Tier {\n\tTier1 = 'Tier1',\n\tTier2 = 'Tier2',\n\tTier3 = 'Tier3',\n}\n\n/**\n * Creates a map of market items grouped by tier for Japanese market\n * @param data {MarketItem[]} - Array of market items\n * @returns {Record} - Map of market items grouped by tier\n */\nexport const createMarketItemTierMap = (data: MarketItem[]): Record =>\n\tdata.reduce(\n\t\t(all, item) => {\n\t\t\tconst tier = item.minTier as number;\n\n\t\t\tif (tier === 1) {\n\t\t\t\tall[Tier.Tier1].push(item);\n\t\t\t\tall[Tier.Tier2].push(item);\n\t\t\t\tall[Tier.Tier3].push(item);\n\t\t\t}\n\n\t\t\tif (tier === 2) {\n\t\t\t\tall[Tier.Tier2].push(item);\n\t\t\t\tall[Tier.Tier3].push(item);\n\t\t\t}\n\n\t\t\tif (tier === 3) {\n\t\t\t\tall[Tier.Tier3].push(item);\n\t\t\t}\n\n\t\t\treturn all;\n\t\t},\n\t\t{\n\t\t\tTier1: [],\n\t\t\tTier2: [],\n\t\t\tTier3: [],\n\t\t} as Record\n\t);\n\ninterface CreateMarketItemsArrayFromCodesProps {\n\tcodes: string[];\n\tmarketsItemMap: Record;\n}\n\n/**\n * Creates an array with market items from Market Item Codes\n * @param codes {string[]} - Array of market item codes\n * @param marketsItemMap {Record} - Map of market items by Code\n * @returns {MarketItem[]} - Array of market items\n */\nexport const createMarketItemsArrayFromCodes = ({\n\tcodes,\n\tmarketsItemMap,\n}: CreateMarketItemsArrayFromCodesProps): MarketItem[] =>\n\tcodes.reduce((all, code) => {\n\t\tif (marketsItemMap[code]) {\n\t\t\tall.push(marketsItemMap[code]);\n\t\t}\n\n\t\treturn all;\n\t}, [] as MarketItem[]);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"SubscriptionSelector_modalDialog__2Tw_l\",\"modalHeader\":\"SubscriptionSelector_modalHeader__1in4r\",\"modalFooter\":\"SubscriptionSelector_modalFooter__2JnT9\",\"tierInfoContainer\":\"SubscriptionSelector_tierInfoContainer__2AWf_\",\"tierInfo\":\"SubscriptionSelector_tierInfo__29U8R\",\"viewDetails\":\"SubscriptionSelector_viewDetails__3jPTY\",\"detailsModalHeader\":\"SubscriptionSelector_detailsModalHeader__39Bad\",\"confirmModalHeader\":\"SubscriptionSelector_confirmModalHeader__2U6ir\",\"wrapper\":\"SubscriptionSelector_wrapper__2_2-t\",\"title\":\"SubscriptionSelector_title__1ZDQE\",\"backButton\":\"SubscriptionSelector_backButton__1ZJ7E\",\"ctaText\":\"SubscriptionSelector_ctaText__3m5W4\",\"modalBody\":\"SubscriptionSelector_modalBody__1jOtT\",\"confirmModalBody\":\"SubscriptionSelector_confirmModalBody__ztg4F\",\"detailsModalBody\":\"SubscriptionSelector_detailsModalBody__2Q4iB\",\"scroll\":\"SubscriptionSelector_scroll__s7rWD\",\"instrumentGroupContainer\":\"SubscriptionSelector_instrumentGroupContainer__L_83W\",\"groupName\":\"SubscriptionSelector_groupName__2esXk\",\"confitmTextWrapper\":\"SubscriptionSelector_confitmTextWrapper__3yKsP\",\"courseChangeTitle\":\"SubscriptionSelector_courseChangeTitle__2v8kV\",\"tilesContainer\":\"SubscriptionSelector_tilesContainer__lmJFH\"};","import { metals, forex, commodities, crypto, efts, stocks, indices, energy } from '../../images';\nimport { ResolutionString } from '../../charting_library';\n\nexport const BASE_DOCUMENT_TITLE = 'ThinkTrader';\n\nexport const timezoneProperties = {\n\tDEFAULT_TIMEZONE: '',\n};\n\nexport const instrumentGroupProps: {\n\t[key: string]: {\n\t\tname: string;\n\t\ticon: string;\n\t};\n} = {\n\tForex: {\n\t\tname: 'wtr:WTR_FOREX',\n\t\ticon: forex,\n\t},\n\tForexSB: {\n\t\tname: 'wtr:WTR_FOREX',\n\t\ticon: forex,\n\t},\n\tIndices: {\n\t\tname: 'wtr:WTR_INDICES',\n\t\ticon: indices,\n\t},\n\tIndicesSB: {\n\t\tname: 'wtr:WTR_INDICES',\n\t\ticon: indices,\n\t},\n\tStocks: {\n\t\tname: 'wtr:SHARE_CFDS',\n\t\ticon: stocks,\n\t},\n\tEnergy: {\n\t\tname: 'wtr:ENERGY',\n\t\ticon: energy,\n\t},\n\tEnergySB: {\n\t\tname: 'wtr:ENERGY',\n\t\ticon: energy,\n\t},\n\tCommodities: {\n\t\tname: 'wtr:WTR_COMMODITIES',\n\t\ticon: commodities,\n\t},\n\tCrypto: {\n\t\tname: 'wtr:CRYPTO',\n\t\ticon: crypto,\n\t},\n\tMetals: {\n\t\tname: 'wtr:METALS',\n\t\ticon: metals,\n\t},\n\tMetalsSB: {\n\t\tname: 'wtr:METALS',\n\t\ticon: metals,\n\t},\n\tShares: {\n\t\tname: 'wtr:SHARE_CFDS',\n\t\ticon: stocks,\n\t},\n\tCFD: {\n\t\tname: 'wtr:EQUITIES',\n\t\ticon: efts,\n\t},\n\tETFs: {\n\t\tname: 'wtr:EQUITIES',\n\t\ticon: efts,\n\t},\n};\n\nexport const SUPPORTED_RESOLUTIONS = [\n\t'1',\n\t'2',\n\t'3',\n\t'5',\n\t'10',\n\t'15',\n\t'30',\n\t'60',\n\t// '120',\n\t// '180',\n\t'240',\n\t// '480',\n\t'1D',\n\t'1W',\n\t'1M',\n] as ResolutionString[];\n\nexport const CALENDAR_MONTHS_SHORT_EN = [\n\t'Jan',\n\t'Feb',\n\t'Mar',\n\t'Apr',\n\t'May',\n\t'Jun',\n\t'Jul',\n\t'Aug',\n\t'Sept',\n\t'Oct',\n\t'Nov',\n\t'Dec',\n];\n","import React, { useContext } from 'react';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { default as AppContext } from '../../../contexts/AppContext';\n\nimport styles from './CloseButton.module.scss';\n\ninterface CloseButtonProps {\n\tonClick?: () => void;\n\ttooltipID?: string;\n\tisItClosed?: boolean;\n\tbuttonPositioning?: string;\n}\n\nconst CloseButton: React.FC = ({ onClick, tooltipID, isItClosed=true, buttonPositioning=\"bottom\" }) => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tconst isArabic = appContext.isArabic;\n\n\tconst handleButtonClick = () => {\n\t\tif (typeof onClick === 'function') {\n\t\t\tonClick();\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\t\t{isItClosed ? t('en:CHART_COLLAPSE') : t('en:CHART_EXPAND')}\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t
handleButtonClick()}>\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default CloseButton;\n","import { Instrument, MarketItem, PriceQuote, TradingPosition } from '../../gateways/RfpGateway/rfp.types';\n\nimport { TradingPositionLimitType, TradingPositionSide, TradingPositionType } from '../../utils/functions/enums';\n\nexport interface IPriceInfo {\n\tprice?: number;\n\tisActive?: boolean;\n\tpotentialProfitLoss?: string;\n\terror?: string;\n\tisTriggered?: boolean;\n}\n\nexport interface IAmountInfo {\n\tamount?: number;\n\tmin?: number;\n\tmax?: number;\n\tstep?: number;\n\trndLot?: number; // TODO:use tradingInstrument\n\terror?: string;\n}\n\nexport interface ITradeObjProps {\n\tstopLevel: number | null;\n\tlimitLevel: number | null;\n\ttrailingStop: number | null;\n\treqId: number;\n\tacctId: number;\n}\n\nexport enum ActionType {\n\tunknown = 'UNKNOWN',\n\tconfirm = 'CONFIRM',\n\tcancel = 'CANCEL',\n\tclose = 'CLOSE',\n}\n\nexport interface Order {\n\taccountId?: number;\n\tside?: TradingPositionSide;\n\ttype?: TradingPositionType;\n\tisPreservedValue?: boolean;\n\n\t// Modify only Take Profit / Stop Loss prices\n\tlimitsOnly?: TradingPositionLimitType[];\n\tdate?: any;\n\n\t// TODO: - Remove quantity and replace with amountInfo\n\tquantity?: number;\n\n\tamountInfo?: IAmountInfo;\n\topenPriceInfo?: IPriceInfo;\n\tstopLossInfo?: IPriceInfo;\n\ttakeProfitInfo?: IPriceInfo;\n\tisPositionDraggingDisabled?: boolean;\n\tstopLossType?: string;\n}\n\nexport interface OrderStoreActions {\n\tsetAction: (action: ActionType) => void;\n\tsetTradingPosition: (position: TradingPosition | undefined) => void;\n\tsetTradingInstrument: (instrument: Instrument | undefined) => void;\n\tsetCurrentQuote: (priceQuote: PriceQuote | undefined) => void;\n\tsetMarketItem: (marketItem: MarketItem | undefined) => void;\n\tsetTradeProps: (values: Order) => void;\n\tsetAmountInfo: (values: IAmountInfo) => void;\n\tsetOpenPriceInfo: (values: IPriceInfo) => void;\n\tsetTakeProfitInfo: (values: IPriceInfo) => void;\n\tsetStopLossInfo: (values: IPriceInfo) => void;\n\tfillStoreFromPosition: (\n\t\tposition: TradingPosition,\n\t\tlimitsType?: TradingPositionLimitType[],\n\t\tisPositionDraggingDisabled?: boolean,\n\t\tpips?: { takeProfitPips: number; stopLossPips: number }\n\t) => void;\n\tcreateTradeRequestObject: (\n\t\tpips?: { takeProfitPips: number; stopLossPips: number },\n\t\tcurrentPriceQuote?: PriceQuote\n\t) => any;\n\tsetIsSignalOrder: (value: boolean) => any;\n\treset: () => void;\n\tresetExceptSide: () => void;\n}\n\nexport interface OrderStoreValues {\n\tcurrent: Order;\n\taction: ActionType;\n\t// Read only purposes\n\ttradingPosition?: TradingPosition;\n\ttradingInstrument?: Instrument;\n\tcurrentQuote?: PriceQuote;\n\tmarketItem?: MarketItem;\n\tisSignalOrder: boolean;\n}\n\nexport type OrderStore = OrderStoreValues & OrderStoreActions;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mfaModal\":\"TwoFactorAuthModal_mfaModal__2b-6x\",\"header\":\"TwoFactorAuthModal_header__3W2Xn\",\"title\":\"TwoFactorAuthModal_title__2lLrw\",\"actions\":\"TwoFactorAuthModal_actions__3J8bB\",\"content\":\"TwoFactorAuthModal_content__3QCOi\",\"qrCode\":\"TwoFactorAuthModal_qrCode__1j_Ei\",\"key\":\"TwoFactorAuthModal_key__2krqi\",\"otpContainer\":\"TwoFactorAuthModal_otpContainer__3xD0a\",\"otpInput\":\"TwoFactorAuthModal_otpInput__1bOpC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"resultItem\":\"SearchResult_resultItem__3Jaos\",\"resultItemContainer\":\"SearchResult_resultItemContainer__1dvMe\",\"instrumentIcon\":\"SearchResult_instrumentIcon__2zSfw\",\"textGroup\":\"SearchResult_textGroup__3mmsc\",\"resultCode\":\"SearchResult_resultCode__1gum6\",\"resultName\":\"SearchResult_resultName__1i89A\",\"matchName\":\"SearchResult_matchName__2ZrA_\",\"leftContainer\":\"SearchResult_leftContainer__k4zWe\",\"icon\":\"SearchResult_icon__3Qi-p\",\"addToWatchlistIcon\":\"SearchResult_addToWatchlistIcon__3nF_f\",\"existsIcon\":\"SearchResult_existsIcon__3DMf0\",\"code\":\"SearchResult_code__1XYJ2\",\"matchText\":\"SearchResult_matchText__1KJ0g\",\"watchlistIcon\":\"SearchResult_watchlistIcon__1CMfB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"watchlistAccordion\":\"WatchlistHeader_watchlistAccordion__11Ywb\",\"windowInstrument\":\"WatchlistHeader_windowInstrument__JRoge\",\"header\":\"WatchlistHeader_header__3Kbip\",\"headerEdit\":\"WatchlistHeader_headerEdit__Oh0Ok\",\"marketActions\":\"WatchlistHeader_marketActions__3U7Ca\",\"columnLabelContainer\":\"WatchlistHeader_columnLabelContainer__1zaW2\",\"lightMarketActions\":\"WatchlistHeader_lightMarketActions__27RmX\",\"darkMarketActions\":\"WatchlistHeader_darkMarketActions__2o5fv\",\"lightIconTheme\":\"WatchlistHeader_lightIconTheme__3Celn\",\"darkIconTheme\":\"WatchlistHeader_darkIconTheme__2rSMG\",\"instrument\":\"WatchlistHeader_instrument__2dSBo\",\"editInstrument\":\"WatchlistHeader_editInstrument__3Nw1A\",\"instrumentHeader\":\"WatchlistHeader_instrumentHeader__UfjN9\",\"delayedQuote\":\"WatchlistHeader_delayedQuote__fs8Em\",\"watchlistHeader\":\"WatchlistHeader_watchlistHeader__16yU2\",\"columnLabel\":\"WatchlistHeader_columnLabel__387tN\",\"instrumentChevron\":\"WatchlistHeader_instrumentChevron__2Cuhp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WtrToggle_container__2CRg0\",\"checkbox\":\"WtrToggle_checkbox__3X2vv\",\"horizontal\":\"WtrToggle_horizontal__1c1Bh\",\"toggle\":\"WtrToggle_toggle__2hgnK\",\"active\":\"WtrToggle_active__1kW2l\",\"sm\":\"WtrToggle_sm__2HHtv\",\"md\":\"WtrToggle_md__1DDTI\",\"icon\":\"WtrToggle_icon__S3R87\",\"start\":\"WtrToggle_start__3kKwX\",\"end\":\"WtrToggle_end__1wjC-\",\"faIcon\":\"WtrToggle_faIcon__1_rEI\",\"modalActivate\":\"WtrToggle_modalActivate__1QCwn\",\"modalMessage\":\"WtrToggle_modalMessage__1i37k\",\"modalFooter\":\"WtrToggle_modalFooter__1Xwox\",\"modalActionButtons\":\"WtrToggle_modalActionButtons__17V6y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headerText\":\"ContactModal_headerText__35gfQ\",\"modalBody\":\"ContactModal_modalBody__10ByA\",\"optionContainer\":\"ContactModal_optionContainer__1I1D4\",\"option\":\"ContactModal_option__1o77x\",\"icon\":\"ContactModal_icon___ce1H\",\"location\":\"ContactModal_location__2h8fU\",\"email\":\"ContactModal_email__36NZO\",\"mailLink\":\"ContactModal_mailLink__3MpLt\"};","import React, { useContext } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport loaderSVG from '../../../images/loader.svg';\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\n\nimport styles from './Loading.module.scss';\n\ninterface LoadingProps {\n\tsize?: string;\n\tclassName?: string;\n}\n\nconst Loading: React.FC = ({ size, className }) => {\n\tconst appContext = useContext(AppContext);\n\tconst forceRerender = useForceRerender();\n\tconst theme = appContext.appTheme;\n\tconst { t } = useTranslation();\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => forceRerender());\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default Loading;\n","import React, { useEffect, useState } from 'react';\n\nimport { MarketItem } from '../../../gateways/RfpGateway/rfp.types';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\nimport { IGridRecord } from '../../features/Markets/MarketsGrid';\n\nimport GroupBadge from './GroupBadge';\n\ninterface InstrumentIconProps {\n\tmarketItem: IGridRecord | MarketItem;\n}\nconst InstrumentIcon = ({ marketItem }: InstrumentIconProps) => {\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tconst [iconSrc, setIconSrc] = useState('');\n\tconst [isRendered, setIsRendered] = useState(false);\n\tlet group = (isJapanSubscriptionAccount ? marketItem.minTier : marketItem.grp) || marketItem.category;\n\tlet name = marketItem.displayName || marketItem.code;\n\n\tif (name.endsWith('_SB')) {\n\t\tname = name.replace('_SB', '');\n\t}\n\tif (group && typeof group === 'string' && group.endsWith('SB')) {\n\t\tgroup = group.replace('SB', '');\n\t}\n\n\tuseEffect(() => {\n\t\tconst loadIcon = async () => {\n\t\t\ttry {\n\t\t\t\tconst iconModule = await import(`../../../images/${group}/${name}.svg`);\n\t\t\t\tsetIconSrc(iconModule.default);\n\t\t\t\tsetIsRendered(true);\n\t\t\t} catch (error) {\n\t\t\t\tconst defaultIcon = await import(`../../../images/default-icon.svg`);\n\t\t\t\tsetIconSrc(defaultIcon.default);\n\t\t\t\tsetIsRendered(true);\n\t\t\t}\n\t\t};\n\n\t\tloadIcon();\n\t}, [name, group]);\n\n\treturn <>{isRendered && (iconSrc ? \"badge\" : )};\n};\n\nexport default InstrumentIcon;\n","import { HistoryTick, PriceQuote, TradingPositionState } from '../../../gateways/RfpGateway/rfp.types';\n\nimport { GymTradingAccount } from './GymTradingAccount';\nimport { GymTradingPosition } from '../Positions/GymTradingPosition';\nimport { GymHistoryManager } from '../HistoryData/GymHistoryManager';\nimport { GymSimulation } from '../Simulations/GymSimulation';\n\nexport class GymTradingManager {\n\tprivate static instance: GymTradingManager;\n\n\t/**\n\t * The GymTradingManager's constructor should always be private to prevent direct\n\t * construction calls with the `new` operator.\n\t */\n\tprivate constructor() {}\n\n\t/**\n\t * The static method that controls the access to the singleton instance.\n\t */\n\tpublic static sharedInstance(): GymTradingManager {\n\t\tif (!GymTradingManager.instance) {\n\t\t\tGymTradingManager.instance = new GymTradingManager();\n\t\t}\n\t\treturn GymTradingManager.instance;\n\t}\n\n\trestorePosition(account: GymTradingAccount, position: GymTradingPosition, simulation: GymSimulation) {\n\t\taccount.positionManager.restorePosition(position);\n\n\t\tif (\n\t\t\t(position.state === TradingPositionState.open || position.state === TradingPositionState.pending) &&\n\t\t\tposition.marketItem\n\t\t) {\n\t\t\tGymHistoryManager.sharedInstance().requestRefQuotes(account, position.marketItem, simulation);\n\t\t}\n\t}\n\n\topenOrder(account: GymTradingAccount, position: GymTradingPosition, simulation: GymSimulation) {\n\t\tposition.aId = account.id;\n\t\taccount.positionManager.openOrder(position);\n\n\t\tif (position.marketItem) {\n\t\t\tGymHistoryManager.sharedInstance().requestRefQuotes(account, position.marketItem, simulation);\n\t\t}\n\t}\n\n\tmodifyPosition(account: GymTradingAccount, position: GymTradingPosition) {\n\t\taccount.positionManager.modifyPosition(position);\n\t}\n\n\tpartialClosePosition(\n\t\taccount: GymTradingAccount,\n\t\tposition: GymTradingPosition,\n\t\tamount: number,\n\t\tdataItem: HistoryTick,\n\t\tpriceQuote: PriceQuote\n\t) {\n\t\taccount.positionManager.partialClosePosition(position, amount, dataItem, priceQuote);\n\t}\n\n\tclosePosition(account: GymTradingAccount, position: GymTradingPosition) {\n\t\taccount.positionManager.closePosition(position);\n\t}\n\n\tdeletePosition(account: GymTradingAccount, position: GymTradingPosition) {\n\t\taccount.positionManager.deletePosition(position);\n\t}\n}\n","import { SubscriptionStatus, SubscriptionTier } from '../../utils/functions/subscriptionUtils';\n\nexport type TResponseStatus =\n\t| never\n\t| 'OK'\n\t| 'PENDING_APPROVAL'\n\t| 'SYS_ERR'\n\t| 'NOT_FOUND'\n\t| 'CHALLENGE'\n\t| 'VALIDATION_ERROR'\n\t| 'ALREADY_REGISTERED'\n\t| 'NOT_AUTHORIZED';\n\nexport type TLoginResponseStatus =\n\t| TResponseStatus\n\t| 'OK'\n\t| 'PENDING_APPROVAL'\n\t| 'PENDING_REVIEW'\n\t| 'PENDING_ID_ADDRESS'\n\t| 'PENDING_ID'\n\t| 'PENDING_ADDRESS'\n\t| 'NOT_AUTHORIZED';\n\nexport type TApplicationStatus =\n\t| never\n\t| 'APPROVED'\n\t| 'PENDING_REVIEW'\n\t| 'PENDING'\n\t| 'DENIED'\n\t| 'PENDING_ID_ADDRESS'\n\t| 'PENDING_ID'\n\t| 'PENDING_ADDRESS'\n\t| 'PENDING_APPROPRIATENESS_TEST'\n\t| 'PENDING_PROPER_DOCUMENTS'\n\t| 'PENDING_TRANSFER'\n\t| 'PENDING_NEW_TnC_ACCEPTANCE'\n\t| 'DUPLICATE'\n\t| 'INCOMPLETE'\n\t| 'INTERNAL_TESTING'\n\t| 'PENDING_TRANSLATION'\n\t| 'PENDING_RG227'\n\t| 'FAILED';\n\nexport type TUserAddress = {\n\taddress1: string;\n\tcity: string;\n\tpostalCode: string;\n\tstate: string;\n};\n\nexport type TOrganization = {\n\tguid: string;\n\tid: number;\n\tname: string;\n};\n\nexport type TPlatform = {\n\tid: number;\n\tname: string;\n\tcode: string;\n};\n\nexport type TCurrency = {\n\tcode: string;\n\tid: number;\n\tname: string;\n\tsymbol: string;\n};\n\nexport type TUserPhone = {\n\tmobile: string;\n\tmobileCountryCode: number;\n\tphone: string;\n\tphoneCountryCode: number;\n};\n\nexport type TLanguage = {\n\tid: number;\n\tlanguage_code: string;\n\tlanguage_name: string;\n};\n\nexport type TCountry = {\n\tcTraderCountryId: number;\n\tcode2: string;\n\tcode3: string;\n\tcurrency: TCurrency;\n\tdefaultLeverage: string;\n\tdemoBalance: number;\n\tdemoCurrency: TCurrency;\n\teVerificationStatus: boolean;\n\teVerificationType: {\n\t\ttype: string;\n\t\tid: number;\n\t};\n\teuropean: boolean;\n\tforceEmailValidate: boolean;\n\tid: number;\n\tisRequireEnglishNames: boolean;\n\tlegacyOrganization: TOrganization;\n\tliveCurrency: TCurrency;\n\tmaxLeverage: string;\n\tname: string;\n\torganization: TOrganization;\n\tphoneCode: number;\n\tpreKycFunds: number;\n\tregion: number;\n\triskProfile: string;\n\ttfaEnabled: boolean;\n\tused: boolean;\n};\n\nexport type TAccountExpiry = {\n\taccountExpirationDate: string;\n\tisExpired: boolean;\n\tnumberOfDaysRemaining: number;\n};\n\nexport type Account = {\n\tid: number;\n\taccountNumber: number;\n\ttype: 'LIVE' | 'DEMO' | 'GYM';\n\tcurrency: TCurrency;\n\texpires: TAccountExpiry;\n\torganization: TOrganization;\n\tplatform: TPlatform;\n};\nexport type TAccountStats = {\n\taccount: Account;\n\tarchived: boolean;\n\tbalanceInUSD: number;\n\tbalance: number;\n\tequity: number;\n\tmargin: number;\n\tmarginFree: number;\n\thasOpenPositions: boolean;\n\tplatformAccountType: TradingAccountType;\n};\n\nexport enum AccountBrand {\n\tThinkMarkets = 'ThinkMarkets',\n}\n\nexport enum PlatformCode {\n\tThinkTrader = 'ThinkTrader',\n}\n\nexport enum AccountTradingType {\n\tCFD = 'CFD',\n\tCE = 'CE',\n\tSpreadBetting = 'spreadBetting',\n}\n\nexport enum TradingAccountType {\n\tThinkTrader = 'ThinkTrader',\n\tSpreadBetting = 'spreadBetting',\n\tJapanSpread = 'JapanSpread',\n}\n\nexport type TTfboResponsePayload = {\n\tmodule: string;\n\taction: string;\n\tresult: TRESULT;\n\tstatus: TSTATUS;\n\tdetails?: any;\n};\n\nexport type TTfboRequestPayload = {\n\tmodule: string;\n\taction: string;\n\tparameters: T;\n};\n\ntype TTfboPayloadContent = {\n\t'account.addDemo': {\n\t\trequest: {\n\t\t\tfirst_name: string;\n\t\t\tlast_name: string;\n\t\t\temail: string;\n\t\t\tphone: string;\n\t\t\tphonecode: number;\n\t\t\tcountry: number;\n\t\t\tcurrency: string;\n\t\t\tbalance: number;\n\t\t\tleverage: number;\n\t\t\tplatformCode: PlatformCode;\n\t\t\tpassword: string;\n\t\t\tbrand: AccountBrand;\n\t\t\tplatformAccountType: TradingAccountType;\n\t\t\tpreferredLanguageId?: number | null | undefined;\n\t\t\tafs_aid?: string | null | undefined;\n\t\t\tafs_clickid?: string | null | undefined;\n\t\t\tcollection_policy_agreed?: boolean | null | undefined;\n\t\t\tvisitorId?: string | null | undefined;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'account.stats': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tdata: TAccountStats[];\n\t\t\tdraw: number;\n\t\t\trecordsFiltered: number;\n\t\t\trecordsTotal: number;\n\t\t};\n\t};\n\t'account.getUserAccounts': {\n\t\trequest: null | undefined | {};\n\t\tresponse: any;\n\t};\n\t'account.getSignalsList': {\n\t\trequest: null | undefined | {};\n\t\tresponse: [];\n\t};\n\t'application.checkApplicationStatus': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tapplication_status: TApplicationStatus;\n\t\t\tappropriateness_level: string;\n\t\t\torganizationId: string;\n\t\t\tpreKycRequired: boolean;\n\t\t};\n\t};\n\t'application.getApplicationInfo': {\n\t\trequest: null | undefined | {};\n\t\tresponse: any;\n\t};\n\t'application.apps': {\n\t\trequest: null | undefined | {};\n\t\tresponse: any;\n\t};\n\t'authentication.generateSsoToken': {\n\t\trequest: {\n\t\t\temail: string;\n\t\t};\n\t\tresponse: {\n\t\t\tssoToken: string;\n\t\t};\n\t};\n\t'authentication.validatessotoken': {\n\t\trequest: {\n\t\t\temail: string;\n\t\t\tssoToken: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'authentication.changePassword': {\n\t\trequest: {\n\t\t\tpassword: string;\n\t\t\tnew_password: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'authentication.forgotPassword': {\n\t\trequest: {\n\t\t\temail_id: string;\n\t\t\tsource: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'authentication.login': {\n\t\trequest: {\n\t\t\temail_id: string;\n\t\t\tpassword: string;\n\t\t};\n\t\tresponse: {\n\t\t\tlast_name: string;\n\t\t\tsession_life: number;\n\t\t\tid: number;\n\t\t\tfirst_name: string;\n\t\t\tlast_login_date: string;\n\t\t\ttoken: string;\n\t\t\tkeep_alive_interval: number;\n\t\t};\n\t};\n\t'authentication.logout': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {};\n\t};\n\t'authentication.isSessionValid': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {};\n\t};\n\t'emailValidation.isUserVerified': {\n\t\trequest: null | undefined | {};\n\t\tresponse: boolean;\n\t};\n\t'emailValidation.sendVerificationCode': {\n\t\trequest: {\n\t\t\toriginCountry: number;\n\t\t\taccountHolderFirstName: string;\n\t\t\taccountHolderLastName: string;\n\t\t\tpreferredLanguage: number;\n\t\t\taccountHolderEmail: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'emailValidation.validateVerificationCode': {\n\t\trequest: {\n\t\t\totpValue: string;\n\t\t\taccountHolderEmail: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'profile.feedback': {\n\t\trequest: {\n\t\t\temail?: string | null;\n\t\t\tcomments?: string;\n\t\t\tcontext?: string;\n\t\t\tscore: number;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'profile.getUser': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tadditionalAttributes: {};\n\t\t\taddress: TUserAddress;\n\t\t\tapproved: boolean;\n\t\t\tbrand: string;\n\t\t\tcif: string;\n\t\t\tclassification: string;\n\t\t\tcountry: TCountry;\n\t\t\tcurrentEquity: number;\n\t\t\tdateOfBirth: string;\n\t\t\temail: string;\n\t\t\temploymentStatus: string;\n\t\t\tfirstName: string;\n\t\t\tfirstNameEnglish: string;\n\t\t\tfullName: string;\n\t\t\tid: number;\n\t\t\tisProfessionalClient: boolean;\n\t\t\tlastName: string;\n\t\t\tlastNameEnglish: string;\n\t\t\tmaxDemoAccounts: number;\n\t\t\tmaxInterAccountTransfers: number;\n\t\t\tmaxLiveAccounts: number;\n\t\t\tnationality: {};\n\t\t\torganization: TOrganization;\n\t\t\tpartnerStatus: string;\n\t\t\tpassportId: string;\n\t\t\tphone: TUserPhone;\n\t\t\tpreferredLanguage: TLanguage;\n\t\t\tthinkTraderEULA: boolean;\n\t\t\ttitle: string;\n\t\t\ttwoFAenabled: boolean;\n\t\t\tvisitorId: string;\n\t\t};\n\t};\n\t'profile.checkAgreementStatus': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tlatestVersion: string;\n\t\t\tcustomerVersion: string;\n\t\t};\n\t};\n\t'profile.confirmAgreement': {\n\t\trequest: {\n\t\t\tversionNumber: string;\n\t\t};\n\t\tresponse: {\n\t\t\tstatus: string;\n\t\t};\n\t};\n\n\t'utility.createHandshakeUrl': {\n\t\trequest: {\n\t\t\tusi: string;\n\t\t\tpage: string;\n\t\t\tlang: string;\n\t\t};\n\t\tresponse: string;\n\t};\n\t'utility.getCountries': {\n\t\trequest: null | undefined | {};\n\t\tresponse: TCountry[];\n\t};\n\t'utility.getUserIp': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tcountry?: string | null | undefined;\n\t\t\tcountry_code?: string | null | undefined;\n\t\t};\n\t};\n\t'subscriptions.getSubscriptionStatus': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t};\n\t\tresponse: {\n\t\t\tstatus: string;\n\t\t\tcurrentSubscriptionTier?: string | null | undefined;\n\t\t\tnextSubscriptionTier?: string | null | undefined;\n\t\t};\n\t};\n\t'subscriptions.subscribe': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t\ttier: SubscriptionTier;\n\t\t\tsource: string;\n\t\t};\n\t\tresponse: {};\n\t};\n\t'subscriptions.changeTier': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t\trequestedTier: SubscriptionTier;\n\t\t};\n\t\tresponse: {};\n\t};\n\t'subscriptions.stopSubscription': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t};\n\t\tresponse: {};\n\t};\n\t'subscriptions.cancelSubscription': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t};\n\t\tresponse: {};\n\t};\n\t'subscriptions.resumeSubscription': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t};\n\t\tresponse: {};\n\t};\n};\n\nexport type TTfboGatewayRequestPayload<\n\tT extends Array,\n\tU extends 'requestPayload' | 'responsePayload'\n> = {\n\t[K in keyof T]: T[K] extends keyof typeof TfboApiMethodMeta ? (typeof TfboApiMethodMeta)[T[K]][U] : never;\n};\n\nexport type TTfboGatewayResponse> = {\n\tfilter?: any;\n\terror?: {\n\t\tcode?: any;\n\t\tdescription?: string;\n\t};\n\tvalidationErrors?: any;\n\tmessage?: string;\n\tid: number;\n\tprv_id: number;\n\ttransmission_time: number;\n\tsession_id: string;\n\ttoken: string;\n\tpayload: TTfboGatewayRequestPayload;\n};\n\nexport const TfboApiMethodMeta = {\n\t'account.addDemo': {\n\t\tmodule: 'account',\n\t\taction: 'adddemo',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'account.stats': {\n\t\tmodule: 'account',\n\t\taction: 'stats',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'account.getUserAccounts': {\n\t\tmodule: 'account',\n\t\taction: 'stats',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['account.getUserAccounts']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'account.getSignalsList': {\n\t\tmodule: 'account',\n\t\taction: 'getSignalsList',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'application.checkApplicationStatus': {\n\t\tmodule: 'application',\n\t\taction: 'check_application_status',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['application.checkApplicationStatus']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['application.checkApplicationStatus']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'application.apps': {\n\t\tmodule: 'application',\n\t\taction: 'apps',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'application.getApplicationInfo': {\n\t\tmodule: 'application',\n\t\taction: 'get_application_info',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['application.getApplicationInfo']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['application.getApplicationInfo']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'authentication.generateSsoToken': {\n\t\tmodule: 'authentication',\n\t\taction: 'generateSsoToken',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.generateSsoToken']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.generateSsoToken']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'authentication.validatessotoken': {\n\t\tmodule: 'authentication',\n\t\taction: 'validatessotoken',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.validatessotoken']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.validatessotoken']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'authentication.changePassword': {\n\t\tmodule: 'authentication',\n\t\taction: 'change_password',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.changePassword']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.changePassword']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'authentication.forgotPassword': {\n\t\tmodule: 'authentication',\n\t\taction: 'forgot_password',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.forgotPassword']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.forgotPassword']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'authentication.login': {\n\t\tmodule: 'authentication',\n\t\taction: 'login',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'authentication.logout': {\n\t\tmodule: 'authentication',\n\t\taction: 'logout',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'authentication.isSessionValid': {\n\t\tmodule: 'authentication',\n\t\taction: 'is_valid',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.isSessionValid']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.isSessionValid']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'emailValidation.isUserVerified': {\n\t\tmodule: 'emailvalidation',\n\t\taction: 'isuserverified',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['emailValidation.isUserVerified']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['emailValidation.isUserVerified']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'emailValidation.sendVerificationCode': {\n\t\tmodule: 'emailvalidation',\n\t\taction: 'send_verification_code',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['emailValidation.sendVerificationCode']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['emailValidation.sendVerificationCode']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'emailValidation.validateVerificationCode': {\n\t\tmodule: 'emailvalidation',\n\t\taction: 'verify_otp_code',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['emailValidation.validateVerificationCode']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['emailValidation.validateVerificationCode']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'profile.feedback': {\n\t\tmodule: 'profile',\n\t\taction: 'feedback',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'profile.getUser': {\n\t\tmodule: 'profile',\n\t\taction: 'get_user',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'profile.checkAgreementStatus': {\n\t\tmodule: 'profile',\n\t\taction: 'checkUserTermsAndConditions',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['profile.checkAgreementStatus']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['profile.checkAgreementStatus']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'profile.confirmAgreement': {\n\t\tmodule: 'profile',\n\t\taction: 'agreeToLatestTermsAndConditions',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['profile.confirmAgreement']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\n\t'utility.createHandshakeUrl': {\n\t\tmodule: 'utility',\n\t\taction: 'createHandshakeURL',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['utility.createHandshakeUrl']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['utility.createHandshakeUrl']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'utility.getCountries': {\n\t\tmodule: 'utility',\n\t\taction: 'getCountries',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'utility.getUserIp': {\n\t\tmodule: 'utility',\n\t\taction: 'ip',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'subscriptions.getSubscriptionStatus': {\n\t\tmodule: 'subscription',\n\t\taction: 'getSubscriptionStatus',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['subscriptions.getSubscriptionStatus']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.getSubscriptionStatus']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.subscribe': {\n\t\tmodule: 'subscription',\n\t\taction: 'subscribe',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.subscribe']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.changeTier': {\n\t\tmodule: 'subscription',\n\t\taction: 'changeTier',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.changeTier']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.stopSubscription': {\n\t\tmodule: 'subscription',\n\t\taction: 'stopSubscription',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['subscriptions.stopSubscription']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.stopSubscription']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.cancelSubscription': {\n\t\tmodule: 'subscription',\n\t\taction: 'cancelSubscription',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['subscriptions.cancelSubscription']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.cancelSubscription']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.resumeSubscription': {\n\t\tmodule: 'subscription',\n\t\taction: 'restartSubscription',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['subscriptions.resumeSubscription']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.resumeSubscription']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n} as const;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"options\":\"OneClickTradeDropdown_options__2-flt\",\"dropdown\":\"OneClickTradeDropdown_dropdown__15dy0\",\"dropdownError\":\"OneClickTradeDropdown_dropdownError__21bvZ\",\"dropdownIconWrapper\":\"OneClickTradeDropdown_dropdownIconWrapper__8BjLE\",\"active\":\"OneClickTradeDropdown_active__1MQvJ\",\"inputSkeleton\":\"OneClickTradeDropdown_inputSkeleton__2khOM\",\"option\":\"OneClickTradeDropdown_option__3Nu0S\",\"optionSelected\":\"OneClickTradeDropdown_optionSelected__CAide\",\"pound\":\"OneClickTradeDropdown_pound__1VNqF\",\"points\":\"OneClickTradeDropdown_points__3-Eki\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SignalsFilter_container__1a9Hh\",\"easeInAnimation\":\"SignalsFilter_easeInAnimation__3iTh5\",\"inAnimation\":\"SignalsFilter_inAnimation__1MvOl\",\"easeOutAnimation\":\"SignalsFilter_easeOutAnimation__2N3zz\",\"outAnimation\":\"SignalsFilter_outAnimation__1iz5q\",\"label\":\"SignalsFilter_label__3n-ym\",\"padded\":\"SignalsFilter_padded__1GRet\",\"slider\":\"SignalsFilter_slider__4WlcG\",\"signalsFilterDropDown\":\"SignalsFilter_signalsFilterDropDown__Hqnhn\"};","import { default as Lazy } from './Lazy';\nexport type DelayedPromise = Promise & { cancel: () => void };\n\nexport default class PromiseFactory {\n\tprivate static readonly _default = new Lazy(() => new PromiseFactory());\n\tprivate readonly m_singletonPromises = new Map>();\n\tprivate readonly m_thottledPromises = new Map>();\n\n\tpublic static get default(): PromiseFactory {\n\t\treturn this._default.getValue();\n\t}\n\n\tpublic promise(\n\t\texecutor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): Promise {\n\t\treturn new Promise(executor);\n\t}\n\n\tpublic singleton(\n\t\tkey: string,\n\t\texecutor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void,\n\t\ttimeout?: number\n\t): Promise {\n\t\tlet promise = this.m_singletonPromises.get(key);\n\t\tif (promise == null) {\n\t\t\tpromise = this.promise(executor);\n\t\t\tpromise.finally(() => {\n\t\t\t\tthis.m_singletonPromises.delete(key);\n\t\t\t});\n\t\t\tthis.m_singletonPromises.set(key, promise);\n\t\t}\n\t\treturn promise;\n\t}\n\n\tpublic delay(delay: number): DelayedPromise;\n\tpublic delay(\n\t\tdelay: number,\n\t\texecutor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): DelayedPromise;\n\tpublic delay(\n\t\tdelay: number,\n\t\texecutor?: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): DelayedPromise {\n\t\tlet interval: any = null;\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tinterval = setTimeout(() => {\n\t\t\t\tinterval = null;\n\t\t\t\texecutor != null ? executor(resolve, reject) : resolve();\n\t\t\t}, Math.round(Math.max(0, delay)));\n\t\t});\n\t\treturn new Proxy(promise, {\n\t\t\tget: (target, prop, receiver) => {\n\t\t\t\tif (prop == 'cancel') {\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tclearInterval(interval);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst value = (target as any)[prop];\n\t\t\t\treturn typeof value == 'function' ? value.bind(target) : value;\n\t\t\t},\n\t\t}) as DelayedPromise;\n\t}\n\n\tpublic throttle(key: string, delay: number): DelayedPromise;\n\tpublic throttle(\n\t\tkey: string,\n\t\tdelay: number,\n\t\texecutor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): DelayedPromise;\n\tpublic throttle(\n\t\tkey: string,\n\t\tdelay: number,\n\t\texecutor?: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): DelayedPromise {\n\t\tlet promise = this.m_thottledPromises.get(key);\n\t\tif (promise != null) {\n\t\t\tpromise.cancel();\n\t\t}\n\t\tpromise = executor != null ? this.delay(delay, executor) : this.delay(delay);\n\t\tpromise.finally(() => {\n\t\t\tthis.m_thottledPromises.delete(key);\n\t\t});\n\t\tthis.m_thottledPromises.set(key, promise);\n\t\treturn promise;\n\t}\n}\n","import React, { FC, useContext } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { default as DashboardContext } from '../../../../../contexts/DashboardContext';\nimport { default as useForceRerender } from '../../../../../utils/hooks/useForceRerender';\nimport { default as useObservable } from '../../../../../utils/hooks/useObservable';\nimport { default as usePromiseFactory } from '../../../../../utils/hooks/usePromiseFactory';\nimport useSaveWatchlistToPreferences from '../../../../../utils/hooks/watchlist/useSaveWatchlistToPreferences';\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\nimport watchListStore from '../../../../../store/WatchListStore/watchListStore';\nimport authStore from '../../../../../store/authStore';\n\nimport styles from './AddToWatchlist.module.scss';\n\ninterface AddToWatchlistProps {\n\twatchlistName: string;\n\tmaxReached?: boolean;\n\t// TODO: - Use the action prop to handle the edit watchlist icon functionality\n\taction: 'ADD' | 'EDIT';\n}\n\nconst AddToWatchlist: FC = ({ watchlistName, maxReached }) => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst forceRerender = useForceRerender();\n\tconst promiseFactory = usePromiseFactory();\n\n\tconst selectedInstrument = dashboardContext.selectedInstrument;\n\tconst selectedTradingAccountWatchlist = dashboardContext.watchlist;\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst getWatchlists = watchListStore.use.getWatchlists();\n\tconst isInstrumentExistsInWatchlist = watchListStore.use.isInstrumentExistsInWatchlist();\n\tconst addInstruments = watchListStore.use.addInstruments();\n\tconst removeInstruments = watchListStore.use.removeInstruments();\n\tconst allWatchlists = getWatchlists(tradingMode);\n\n\tconst saveWatchlistToPreferences = useSaveWatchlistToPreferences();\n\n\tuseObservable(\n\t\tdashboardContext.getPropertyChangeStream('selectedInstrument', 'tradingAccount', 'watchlist'),\n\t\t(change) => {\n\t\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => forceRerender());\n\t\t}\n\t);\n\n\tconst handleAddToWatchlist = () => {\n\t\tif (maxReached) return;\n\t\tif (!selectedInstrument) return;\n\n\t\tconst updatePreferenceObject = selectedTradingAccountWatchlist.find(\n\t\t\t(watchlist) => watchlist._name === watchlistName\n\t\t);\n\n\t\tif (updatePreferenceObject) {\n\t\t\tupdatePreferenceObject.instrument.push({ _code: selectedInstrument.code });\n\t\t\taddInstruments(tradingMode, watchlistName, [selectedInstrument.code]);\n\t\t}\n\n\t\tsaveWatchlistToPreferences(selectedTradingAccountWatchlist, isSpreadBettingAccount);\n\t};\n\n\tconst handleRemoveFromWatchlist = () => {\n\t\tif (allWatchlists && selectedInstrument) {\n\t\t\tconst updatePreferenceObject = selectedTradingAccountWatchlist.find(\n\t\t\t\t(watchlist) => watchlist._name === watchlistName\n\t\t\t);\n\n\t\t\tif (updatePreferenceObject) {\n\t\t\t\tconst removed = updatePreferenceObject.instrument.filter((item) => item._code !== selectedInstrument.code);\n\t\t\t\tupdatePreferenceObject.instrument = removed;\n\t\t\t\tremoveInstruments(tradingMode, watchlistName, [selectedInstrument.code]);\n\t\t\t}\n\t\t}\n\n\t\tsaveWatchlistToPreferences(selectedTradingAccountWatchlist, isSpreadBettingAccount);\n\t};\n\n\tconst exists = () => {\n\t\treturn selectedInstrument\n\t\t\t? isInstrumentExistsInWatchlist(tradingMode, watchlistName, selectedInstrument.code)\n\t\t\t: false;\n\t};\n\n\treturn (\n\t\t\n\t\t\t{exists() && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{!exists() && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default AddToWatchlist;\n","import React, { FC, useContext } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nimport { default as DashboardContext } from '../../../../../contexts/DashboardContext';\nimport {\n\tinstrumentExistsInDynamicWatchlists,\n\tMAX_INSTRUMENTS_ALLOWED,\n\tMAX_INSTRUMENTS_ALLOWED_JP,\n} from '../../../../../utils/functions/WatchlistUtils';\n\nimport AddToWatchlist from '../AddToWatchlist';\n\nimport useGetTranslatedWLName from '../../../../../utils/hooks/useGetTranslatedWLName';\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\nimport watchListStore from '../../../../../store/WatchListStore/watchListStore';\nimport authStore from '../../../../../store/authStore';\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport styles from './WatchlistsList.module.scss';\n\ninterface WatchlistsListProps {\n\thasLeftIcon?: boolean;\n}\n\nconst WatchlistsList: FC = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst getTranslatedWLName = useGetTranslatedWLName();\n\tconst { t } = useTranslation();\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst getWatchlists = watchListStore.use.getWatchlists();\n\tconst getSelectedWatchlist = watchListStore.use.getSelectedWatchlist();\n\tconst allWatchlists = getWatchlists(tradingMode);\n\tconst isChildWindow = appContext.isChildWindow || false;\n\tconst selectedWatchlist = getSelectedWatchlist(tradingMode, isChildWindow);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
{t('wtr:SELECT_WATCHLIST')}
\n\t\t\t
\n\t\t\t
\n\t\t\t\t{allWatchlists &&\n\t\t\t\t\tselectedWatchlist &&\n\t\t\t\t\tallWatchlists.map((watchlistData) => {\n\t\t\t\t\t\tconst watchlistName = watchlistData.name;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tinstrumentExistsInDynamicWatchlists(\n\t\t\t\t\t\t\t\twatchlistName,\n\t\t\t\t\t\t\t\tdashboardContext.defaultWatchLists,\n\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst maxInstruments = appContext.isJapanAccount ? MAX_INSTRUMENTS_ALLOWED_JP : MAX_INSTRUMENTS_ALLOWED;\n\t\t\t\t\t\tconst maxReached = watchlistData.instruments.length >= maxInstruments;\n\t\t\t\t\t\tconst isInstrumentExistInWatchlist = dashboardContext.selectedInstrument\n\t\t\t\t\t\t\t? watchlistData.instruments.includes(dashboardContext.selectedInstrument.code)\n\t\t\t\t\t\t\t: false;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{getTranslatedWLName(watchlistName)}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{getTranslatedWLName(watchlistName)}\n\t\t\t\t\t\t\t\t\t\t\t{maxReached &&
{t('wtr:MAX_INSTRUMENT_ERROR')}
}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default WatchlistsList;\n","import React, { useContext } from 'react';\n\nimport cn from 'classnames';\n\nimport DashboardContext from '../../../contexts/DashboardContext';\nimport { PriceQuote } from '../../../gateways/RfpGateway/rfp.types';\nimport { Optional } from '../../../utils/functions/Nullable';\n\nimport styles from './DailyPercent.module.scss';\n\ninterface DailyPercentProps {\n\tcurrentPriceQuote: Optional;\n\tdecimalPrecision?: number;\n}\n\nconst DailyPercent = ({ currentPriceQuote, decimalPrecision }: DailyPercentProps) => {\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tlet dailyValue = 0;\n\tlet dailyPercent = 0;\n\n\tconst previousClosePrice = dashboardContext.selectedInstrument\n\t\t? dashboardContext.previousDayClosePrices[dashboardContext.selectedInstrument.code]\n\t\t: 0;\n\n\tif (!currentPriceQuote?.a || !currentPriceQuote?.b || !previousClosePrice) return null;\n\n\t// a - ask, b - bid\n\tconst averageCurrentPrice = (currentPriceQuote!.a + currentPriceQuote!.b) / 2;\n\n\tdailyValue = averageCurrentPrice - previousClosePrice;\n\n\tdailyPercent = (dailyValue! / previousClosePrice) * 100;\n\n\treturn (\n\t\t
\n\t\t\t 0 ? styles.positive : styles.negative)}>\n\t\t\t\t{`${dailyValue > 0 ? '+' : ''}${dailyValue.toFixed(decimalPrecision)}`}\n\t\t\t\n\t\t\t 0 ? styles.positive : styles.negative)}>\n\t\t\t\t{` (${dailyPercent > 0 ? '+' : ''}${dailyPercent?.toFixed(2)}%)`}\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default DailyPercent;\n","import React, { useState, useEffect, useContext, useRef, useMemo, useCallback } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport cn from 'classnames';\n\nimport { default as RfpGatewayContext } from '../../../contexts/RfpGatewayContext';\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../contexts/DashboardContext';\n\nimport { RFP } from '../../../gateways/RfpGateway/rfpConstants';\nimport { MarketItem, PriceQuote } from '../../../gateways/RfpGateway/rfp.types';\nimport { default as usePromiseFactory } from '../../../utils/hooks/usePromiseFactory';\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\nimport { Optional } from '../../../utils/functions/Nullable';\n\nimport Button from '../../../shared/Button/Button';\nimport WtrPopup from '../WtrPopup/WtrPopup';\nimport Instrument from '../../features/Dashboard/Watchlist/Instrument/Instrument';\nimport { formatNumberWithCommas } from '../../features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nimport { instrumentGroupProps } from '../../../utils/functions/constants';\n\nimport useShortTranslation from '../../../utils/hooks/useShortTranslation';\nimport {\n\tDEFAULT_FEED_ID,\n\tMAX_WATCHLISTS_ALLOWED,\n\tcreateNewWatchlist,\n\tMAX_INSTRUMENTS_ALLOWED_JP,\n\tMAX_INSTRUMENTS_ALLOWED,\n} from '../../../utils/functions/WatchlistUtils';\nimport usePreferredFeedId from '../../../utils/hooks/usePreferredFeedId';\nimport WatchlistsList from '../../features/Dashboard/Watchlist/Lists';\nimport CreateWatchlistButton from '../../features/Dashboard/Watchlist/CreateWatchlistButton';\nimport useGetTranslatedWLName from '../../../utils/hooks/useGetTranslatedWLName';\nimport DailyPercent from '../DailyPercent/DailyPercent';\nimport { TicketLayout, TradingPositionLimitType, TradingPositionType } from '../../../utils/functions/enums';\nimport { TradersGymContext, TradersGymContextType } from '../../../pages/TradersGym/TradersGymContext';\nimport useSaveWatchlistToPreferences from '../../../utils/hooks/watchlist/useSaveWatchlistToPreferences';\nimport useSelectedTradingAccount from '../../../utils/hooks/useSelectedTradingAccount';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\nimport watchListStore from '../../../store/WatchListStore/watchListStore';\nimport InstrumentIcon from '../GroupBadge/InstrumentIcon';\nimport TradingSessionTooltip from '../Shared/TradingSessionTooltip';\nimport tradingViewStore from '../../../store/tradingViewStore';\nimport authStore from '../../../store/authStore';\nimport BidAskSpread from '../BidAskSpread/BidAskSpread';\nimport StringUtils from '../../../utils/functions/StringUtils';\n\nimport styles from './InstrumentHeader.module.scss';\n\ntype InstrumentHeaderProps = {\n\tshowButtons?: boolean;\n\tresizeHeader?: boolean;\n\theaderActions?: boolean;\n\tundock?: any;\n\tshowBidAskSpread?: boolean;\n\tbidAskSpreadData?: BidAskSpreadDataProps;\n\tonCloseButtonCLick?: () => void;\n\tredirectFromDashboard: boolean;\n};\ntype BidAskSpreadDataProps = {\n\tinstrument: PriceQuote | undefined;\n\tmarketItem: MarketItem | undefined;\n\torder: boolean;\n\ttypeOfOrder: TradingPositionType | undefined;\n\tisBidAskDisabled: boolean;\n\tticketLayout: string;\n\tcurrent: TradingPositionLimitType[] | undefined;\n};\n\nconst InstrumentHeader = React.memo(\n\t({\n\t\tshowButtons,\n\t\tresizeHeader,\n\t\theaderActions,\n\t\tundock,\n\t\tshowBidAskSpread,\n\t\tbidAskSpreadData,\n\t\tonCloseButtonCLick,\n\t\tredirectFromDashboard,\n\t}) => {\n\t\tconst saveWatchlistToPreferences = useSaveWatchlistToPreferences();\n\n\t\tconst appContext = useContext(AppContext);\n\t\tconst dashboardContext = useContext(DashboardContext);\n\t\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\t\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\t\tconst { tradersGymContext } = gymContext;\n\n\t\tconst tradingMode = authStore.use.tradingMode();\n\n\t\tconst isChildWindow = appContext.isChildWindow || false;\n\t\tconst getCurrentWatchList = watchListStore.use.getCurrentWatchList();\n\t\tconst currentWatchList = getCurrentWatchList(isChildWindow);\n\t\tconst getWatchlists = watchListStore.use.getWatchlists();\n\t\tconst getSelectedWatchlist = watchListStore.use.getSelectedWatchlist();\n\t\tconst selectedWatchlist = getSelectedWatchlist(tradingMode, isChildWindow);\n\t\tconst allWatchlists = getWatchlists(tradingMode);\n\n\t\tconst promiseFactory = usePromiseFactory();\n\t\tconst forceRerender = useForceRerender();\n\t\tconst { t } = useTranslation();\n\t\tconst tt = useShortTranslation('en:');\n\n\t\tconst [openWatchlist, setOpenWatchlist] = useState(false);\n\t\tconst [create, setCreate] = useState(false);\n\t\tconst [listName, setListName] = useState('');\n\t\tconst [disabled, setDisabled] = useState(false);\n\t\tconst [currentPriceQuote, setCurrentPriceQuote] = useState>(undefined);\n\n\t\tconst subIdRef = useRef(undefined);\n\n\t\tconst [high, setHigh] = useState('0');\n\t\tconst [low, setLow] = useState('0');\n\n\t\tconst [nameError, setNameError] = useState('');\n\t\tconst [maxWatchlistsError, setMaxWatchlistsError] = useState(false);\n\t\tconst getTranslatedWLName = useGetTranslatedWLName();\n\n\t\tconst isArabic = appContext.isArabic;\n\t\tconst languageSettings = appContext.languageSettings;\n\t\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\t\tconst watchlist = dashboardContext.watchlist;\n\t\tconst marketItem = dashboardContext.selectedInstrument;\n\t\tconst marketItems = dashboardContext.marketItems;\n\t\tconst activeTradingAccount = useSelectedTradingAccount();\n\t\tconst preferredFeedId = usePreferredFeedId(activeTradingAccount);\n\t\tconst isTradersGymActive = tradersGymContext.isActive;\n\n\t\tconst traderGymPriceQuote = tradersGymContext.priceQuote;\n\t\tconst closedTicket = dashboardContext.modalToggle.closePosition;\n\t\tconst openOrderInformation = tradingViewStore.use.openOrderInformation();\n\t\tconst setOpenOrderInformation = tradingViewStore.use.setOpenOrderInformation();\n\t\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\t\tconst setDockStylesTicket = tradingViewStore.use.setDockStylesTicket();\n\n\t\tuseEffect(() => {\n\t\t\tsetDockStylesTicket(redirectFromDashboard);\n\t\t}, []);\n\n\t\tuseObservable(\n\t\t\tappContext.getPropertyChangeStream('appTheme', 'languageSettings', 'accountStats'),\n\t\t\tasync (_change) => {\n\t\t\t\tawait promiseFactory.throttle('appContext.propertyChanged', 100);\n\t\t\t\tforceRerender();\n\t\t\t}\n\t\t);\n\n\t\tuseObservable(\n\t\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t\t'watchlist',\n\t\t\t\t'selectedPosition',\n\t\t\t\t'selectedInstrument',\n\t\t\t\t'marketItems',\n\t\t\t\t'tradingAccount',\n\t\t\t\t'previousDayClosePrices'\n\t\t\t),\n\t\t\tasync (_change) => {\n\t\t\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\t\t\tforceRerender();\n\t\t\t}\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\tlistName.trim().length === 0 && setNameError('');\n\t\t}, [listName]);\n\n\t\tuseEffect(() => {\n\t\t\tif (allWatchlists && allWatchlists.length >= MAX_WATCHLISTS_ALLOWED) {\n\t\t\t\treturn setDisabled(true);\n\t\t\t} else if (listName.trim().length === 0) {\n\t\t\t\treturn setDisabled(true);\n\t\t\t} else {\n\t\t\t\treturn setDisabled(false);\n\t\t\t}\n\t\t}, [listName, allWatchlists]);\n\n\t\tuseEffect(() => {\n\t\t\tif (allWatchlists && allWatchlists.length >= MAX_WATCHLISTS_ALLOWED) {\n\t\t\t\tsetMaxWatchlistsError(true);\n\t\t\t} else {\n\t\t\t\tsetMaxWatchlistsError(false);\n\t\t\t}\n\t\t}, [openWatchlist, allWatchlists]);\n\n\t\tuseEffect(() => {\n\t\t\tif (marketItem && rfpGatewayContext) {\n\t\t\t\trfpGatewayContext.send(RFP.queuePreviousDayClosePrice, { code: [marketItem.code] });\n\t\t\t}\n\t\t}, [marketItem, rfpGatewayContext]);\n\n\t\t/**\n\t\t * Checks if the instrument exists in a watchlist\n\t\t */\n\t\tconst existsInWatchlist = useCallback(() => {\n\t\t\tif (allWatchlists && marketItem) {\n\t\t\t\treturn allWatchlists.some((watchlist) => watchlist.instruments.includes(marketItem.code));\n\t\t\t}\n\t\t\treturn false;\n\t\t}, [allWatchlists, marketItem]);\n\n\t\tconst DisplayIcon = () => {\n\t\t\tconst instrumentExists = existsInWatchlist();\n\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t};\n\n\t\tconst handleOpenWatchlistMenu = (_e: any) => {\n\t\t\t//If only 1 watchlist is present, then add or remove the instrument directly\n\t\t\tlet preferenceToUpdate = watchlist.find((list) => list._name === currentWatchList);\n\t\t\tif (allWatchlists && allWatchlists.length === 1 && marketItem && selectedWatchlist) {\n\t\t\t\tconst maxInstruments = appContext.isJapanAccount ? MAX_INSTRUMENTS_ALLOWED_JP : MAX_INSTRUMENTS_ALLOWED;\n\t\t\t\tconst isMaxedOut = selectedWatchlist.instruments.length >= maxInstruments;\n\t\t\t\tif (preferenceToUpdate) {\n\t\t\t\t\tconst isInstrumentExistsInWatchlist = selectedWatchlist.instruments.includes(marketItem.code);\n\t\t\t\t\tif (!isInstrumentExistsInWatchlist && !isMaxedOut) {\n\t\t\t\t\t\tpreferenceToUpdate.instrument = [...preferenceToUpdate.instrument, { _code: marketItem.code }];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpreferenceToUpdate.instrument = preferenceToUpdate.instrument.filter(\n\t\t\t\t\t\t\t(symbol) => symbol._code !== marketItem.code\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tdashboardContext.watchlist = watchlist;\n\t\t\t\t\tsaveWatchlistToPreferences(dashboardContext.watchlist, isSpreadBettingAccount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetOpenWatchlist(!openWatchlist);\n\t\t\t\tsetCreate(false);\n\t\t\t}\n\t\t};\n\n\t\tconst handleCreateWatchlist = () => {\n\t\t\tif (!maxWatchlistsError) {\n\t\t\t\tsetCreate(!create);\n\t\t\t\tsetOpenWatchlist(!openWatchlist);\n\t\t\t}\n\t\t};\n\n\t\tconst handleInputChange = (e: any) => {\n\t\t\tsetListName(e.target.value);\n\t\t\tnameError && setNameError('');\n\t\t};\n\n\t\tconst handleCancelWatchlist = () => {\n\t\t\tsetCreate(false);\n\t\t\tsetNameError('');\n\t\t\tsetListName('');\n\t\t};\n\n\t\tconst verifyWatchlistName = () => {\n\t\t\tif (allWatchlists) {\n\t\t\t\tconst validateName = allWatchlists.some((watchlist) => watchlist.name === listName.trim());\n\t\t\t\tif (!validateName) {\n\t\t\t\t\tsetNameError('');\n\t\t\t\t\thandleAddNewWatchlist();\n\t\t\t\t} else {\n\t\t\t\t\tsetNameError(t('wtr:NAME_IN_USE'));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst handleAddNewWatchlist = () => {\n\t\t\tif (listName.trim().length > 0 && allWatchlists && marketItem && allWatchlists.length < MAX_WATCHLISTS_ALLOWED) {\n\t\t\t\tconst feedId = StringUtils.isNullOrEmpty(preferredFeedId) ? DEFAULT_FEED_ID : preferredFeedId;\n\t\t\t\tconst newWatchlistEntry = createNewWatchlist(listName.trim(), feedId, [{ _code: marketItem.code }]);\n\t\t\t\tdashboardContext.watchlist.push(newWatchlistEntry);\n\t\t\t\tsaveWatchlistToPreferences(dashboardContext.watchlist);\n\t\t\t\tsetListName('');\n\t\t\t\tsetCreate(!create);\n\t\t\t\tsetOpenWatchlist(false);\n\t\t\t}\n\t\t};\n\n\t\tuseEffect(() => {\n\t\t\tif (traderGymPriceQuote) {\n\t\t\t\tsetCurrentPriceQuote(traderGymPriceQuote);\n\t\t\t}\n\t\t}, [traderGymPriceQuote]);\n\n\t\tuseEffect(() => {\n\t\t\tif (marketItem && rfpGatewayContext) {\n\t\t\t\t// unsubscribe previous quotes\n\t\t\t\tif (subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribePriceQuote(subIdRef.current);\n\t\t\t\t}\n\n\t\t\t\t// subscribe quotes\n\t\t\t\tsubIdRef.current = rfpGatewayContext.subscribePriceQuote(marketItem.feedId, [marketItem.code], (priceQuote) => {\n\t\t\t\t\tif (!isTradersGymActive) {\n\t\t\t\t\t\tsetCurrentPriceQuote(priceQuote);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\t// unsubscribe quotes on unmount\n\t\t\t\tif (rfpGatewayContext && subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribePriceQuote(subIdRef.current);\n\t\t\t\t\tsubIdRef.current = undefined;\n\t\t\t\t}\n\t\t\t};\n\t\t}, [marketItem, rfpGatewayContext]);\n\n\t\tuseEffect(() => {\n\t\t\tif (currentPriceQuote && marketItem) {\n\t\t\t\tsetHigh(currentPriceQuote.h.toFixed(marketItem.decPrec));\n\t\t\t\tsetLow(currentPriceQuote.l.toFixed(marketItem.decPrec));\n\t\t\t}\n\t\t}, [currentPriceQuote]);\n\n\t\tconst tooltip = useMemo(() => {\n\t\t\tlet watchlistsNames: string[] = [];\n\t\t\tlet inWatchlist: boolean = false;\n\t\t\tif (allWatchlists && marketItem) {\n\t\t\t\tinWatchlist = existsInWatchlist();\n\t\t\t\tif (inWatchlist) {\n\t\t\t\t\twatchlistsNames = [\n\t\t\t\t\t\t...allWatchlists\n\t\t\t\t\t\t\t.filter((watchlist) => watchlist.instruments.includes(marketItem.code))\n\t\t\t\t\t\t\t.map((watchlist) => watchlist.name),\n\t\t\t\t\t];\n\t\t\t\t\twatchlistsNames.forEach((watchlistName, index, thisArray) => {\n\t\t\t\t\t\tthisArray[index] = getTranslatedWLName(watchlistName);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn inWatchlist ? (\n\t\t\t\t
\n\t\t\t\t\t{t('wtr:EXISTS_IN')} {'\"' + watchlistsNames.join(' \", \" ') + '\"'}\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t\n\t\t\t);\n\t\t}, [marketItem, allWatchlists]);\n\n\t\tconst handleOpenInfoClick = () => {\n\t\t\tsetOpenOrderInformation(!openOrderInformation);\n\t\t};\n\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{ticketLayout === TicketLayout.Undock &&\n\t\t\t\t\t\tredirectFromDashboard &&\n\t\t\t\t\t\t!dashboardContext.newOrderModalToggle.confirmOrder &&\n\t\t\t\t\t\t!dashboardContext.showConfirmTicket &&\n\t\t\t\t\t\t!closedTicket && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t\t{marketItem && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{marketItem.grp && t(instrumentGroupProps[marketItem.grp]?.name)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{marketItem && marketItem.displayName}\n\t\t\t\t\t\t\t\t{marketItem && }\n\n\t\t\t\t\t\t\t\t{!isTradersGymActive && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{/* Full instrument name */}\n\t\t\t\t\t\t\t
{marketItem && marketItem.fullName}
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{headerActions ? (\n\t\t\t\t\t\t!isTradersGymActive && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t setOpenWatchlist(false)}\n\t\t\t\t\t\t\t\t\tclassName={styles.popupContainer}\n\t\t\t\t\t\t\t\t\ton=\"click\"\n\t\t\t\t\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{tooltip}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!openOrderInformation &&\n\t\t\t\t\t\t\t\t!dashboardContext.newOrderModalToggle.confirmOrder &&\n\t\t\t\t\t\t\t\t!dashboardContext.showConfirmTicket && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ticketLayout === TicketLayout.Undock ? t('en:ATTACH') : t('en:DETACH')}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t{ticketLayout === TicketLayout.Undock && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{create && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{tt('CREATE_WATCHLIST')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('wtr:WATCHLIST_NAME')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{nameError.length > 0 &&
{nameError}
}\n\t\t\t\t\t\t\t\t\t{listName.trim().length}/20\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{!openOrderInformation &&\n\t\t\t\t\tshowBidAskSpread &&\n\t\t\t\t\tbidAskSpreadData &&\n\t\t\t\t\tbidAskSpreadData.marketItem &&\n\t\t\t\t\t!bidAskSpreadData.current && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{tt('LOW')}:{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{isNaN(+low.toString()?.replaceAll(',', ''))\n\t\t\t\t\t\t\t\t? t('wtr:NA')\n\t\t\t\t\t\t\t\t: formatNumberWithCommas(parseFloat(low), marketItem?.decPrec || 0, languageSettings)}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{tt('HIGH')}:{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{isNaN(+high.toString()?.replaceAll(',', ''))\n\t\t\t\t\t\t\t\t? t('wtr:NA')\n\t\t\t\t\t\t\t\t: formatNumberWithCommas(parseFloat(high), marketItem?.decPrec || 0, languageSettings)}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t{showButtons && marketItems && marketItem && (\n\t\t\t\t\t
\n\t\t\t\t\t\t console.log('clicked')}\n\t\t\t\t\t\t\tbuttonsClass={styles.bidAskSpreadButtons}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\tconst keys: Array = ['showButtons', 'resizeHeader', 'headerActions', 'undock'];\n\t\treturn keys.every((key) => prevProps[key] === nextProps[key]);\n\t}\n);\n\nexport default InstrumentHeader;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"createWatchList\":\"CreateWatchlistButton_createWatchList__3JXu7\",\"errorCreateWatchlist\":\"CreateWatchlistButton_errorCreateWatchlist__2lsGc\",\"createWatchListUpdated\":\"CreateWatchlistButton_createWatchListUpdated__bdGqS\",\"iconContainer\":\"CreateWatchlistButton_iconContainer__sCYfh\",\"plusIcon\":\"CreateWatchlistButton_plusIcon__1fT4w\",\"createFooter\":\"CreateWatchlistButton_createFooter__1mk1W\",\"createErrorMessage\":\"CreateWatchlistButton_createErrorMessage__10a_1\",\"errorFooter\":\"CreateWatchlistButton_errorFooter__2XZyu\",\"bottomFooterTitle\":\"CreateWatchlistButton_bottomFooterTitle__1jkeN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"infoElement\":\"InfoElement_infoElement__1J1Mw\",\"infoElementUndock\":\"InfoElement_infoElementUndock__L-LIx\",\"infoGroup\":\"InfoElement_infoGroup__3EhH3\",\"label\":\"InfoElement_label__cLFs6\",\"value\":\"InfoElement_value__Rv-mx\",\"red\":\"InfoElement_red__1FI2c\",\"green\":\"InfoElement_green__2ZQzZ\",\"popupText\":\"InfoElement_popupText__2LKeo\",\"icon\":\"InfoElement_icon__3V1ra\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NotificationModal_container__1nnce\",\"backdrop\":\"NotificationModal_backdrop__JK8gO\",\"notificationModal\":\"NotificationModal_notificationModal__1Gkg0\",\"closeIconWrapper\":\"NotificationModal_closeIconWrapper__2nf90\",\"contentWrapper\":\"NotificationModal_contentWrapper__1jLcZ\",\"header\":\"NotificationModal_header__2QP4r\",\"content\":\"NotificationModal_content__26gOM\",\"footer\":\"NotificationModal_footer__3C9ik\",\"dialog\":\"NotificationModal_dialog__3H57d\",\"error\":\"NotificationModal_error__3-Gdr\",\"title\":\"NotificationModal_title__FFZWx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reconnectModal\":\"ReconnectModal_reconnectModal__1aLVT\",\"modalHeader\":\"ReconnectModal_modalHeader__FwUup\",\"modalBody\":\"ReconnectModal_modalBody__3JMuD\",\"modalText\":\"ReconnectModal_modalText__yr6RI\",\"modalFooter\":\"ReconnectModal_modalFooter__3IcSx\",\"button\":\"ReconnectModal_button__1DjYD\",\"iconContainer\":\"ReconnectModal_iconContainer__1U8yp\",\"loadingIcon\":\"ReconnectModal_loadingIcon__1jOtF\",\"failedIcon\":\"ReconnectModal_failedIcon__1MpMd\"};","import React, { FC, CSSProperties } from 'react';\nimport cn from 'classnames';\nimport { CSS } from '@dnd-kit/utilities';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Header, flexRender, Table } from '@tanstack/react-table';\n\nimport {\n\tPositionTableItem,\n\tTableMarketItem,\n} from '../../../../../utils/functions/marketItems/marketItemGroupMapFormatter';\n\nimport styles from '../MarketsTable.module.scss';\n\ninterface DraggableTableHeaderProps {\n\theader: Header;\n\ttable: Table;\n}\n\nconst DraggableTableHeader: FC = ({ header, table }) => {\n\tconst { attributes, isDragging, listeners, transform } = useSortable({\n\t\tid: header.column.id,\n\t});\n\n\tconst style: CSSProperties = {\n\t\topacity: isDragging ? 0.8 : 1,\n\t\tposition: 'relative',\n\t\ttransform: CSS.Translate.toString(transform), // translate instead of transform to avoid squishing\n\t\ttransition: 'width transform 0.2s ease-in-out',\n\t\twhiteSpace: 'nowrap',\n\t\twidth: header.column.getSize(),\n\t\tzIndex: isDragging ? 1 : 0,\n\t};\n\n\tif (header.column.id === 'settings' || header.column.id === 'close') {\n\t\treturn (\n\t\t\t\n\t\t\t\t{header.isPlaceholder ? null : (\n\t\t\t\t\t
\n\t\t\t\t\t\t{flexRender(header.column.columnDef.header, header.getContext())}\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t header.column.resetSize(),\n\t\t\t\t\t\tonMouseDown: header.getResizeHandler(),\n\t\t\t\t\t\tonTouchStart: header.getResizeHandler(),\n\t\t\t\t\t\tclassName: `${styles.resizer} ${table.options.columnResizeDirection === 'ltr' ? styles.ltr : styles.rtl} ${\n\t\t\t\t\t\t\theader.column.getIsResizing() && styles.isResizing\n\t\t\t\t\t\t}`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t);\n\t}\n\n\tconst columnSizingHandler = (thElem: HTMLTableCellElement | null, table: any, column: any) => {\n\t\tif (!thElem) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If you don't do that, there will be an infinite loop. We update the value in state only if the value has actually changed.\n\t\tif (Math.round(table.getState().columnSizing[column.id]) === Math.round(thElem.getBoundingClientRect().width)) {\n\t\t\treturn;\n\t\t}\n\n\t\ttable.setColumnSizing((prevSizes: any) => ({\n\t\t\t...prevSizes,\n\t\t\t// 100% accurate float-point width, even if table content is loaded async\n\t\t\t[column.id]: thElem.getBoundingClientRect().width,\n\t\t}));\n\t};\n\n\treturn (\n\t\t columnSizingHandler(thElem, table, header.column),\n\t\t\t\tcolSpan: header.colSpan,\n\t\t\t\tclassName: cn(styles.tableHeader),\n\t\t\t\tstyle: {\n\t\t\t\t\t...style,\n\t\t\t\t},\n\t\t\t}}\n\t\t>\n\t\t\t
\n\t\t\t\t{header.isPlaceholder ? null : (\n\t\t\t\t\t
\n\t\t\t\t\t\t{flexRender(header.column.columnDef.header, header.getContext())}\n\t\t\t\t\t\t \n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tasc: ' ↑',\n\t\t\t\t\t\t\tdesc: ' ↓',\n\t\t\t\t\t\t}[header.column.getIsSorted() as string] ?? null}\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t header.column.resetSize(),\n\t\t\t\t\tonMouseDown: header.getResizeHandler(),\n\t\t\t\t\tonTouchStart: header.getResizeHandler(),\n\t\t\t\t\tclassName: `${styles.resizer} ${table.options.columnResizeDirection === 'ltr' ? styles.ltr : styles.rtl} ${\n\t\t\t\t\t\theader.column.getIsResizing() && styles.isResizing\n\t\t\t\t\t}`,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\nexport default DraggableTableHeader;\n","import React, { FC, CSSProperties } from 'react';\nimport cn from 'classnames';\nimport { CSS } from '@dnd-kit/utilities';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { Cell, flexRender } from '@tanstack/react-table';\n\nimport { TableMarketItem } from '../../../../../utils/functions/marketItems/marketItemGroupMapFormatter';\n\nimport styles from '../MarketsTable.module.scss';\n\ninterface DragAlongCellProps {\n\tcell: Cell;\n\thandleSelectedInstrument: (cell: Cell) => void;\n}\n\nconst DragAlongCell: FC = ({ cell, handleSelectedInstrument }) => {\n\tconst { isDragging, setNodeRef, transform } = useSortable({\n\t\tid: cell.column.id,\n\t});\n\n\tconst style: CSSProperties = {\n\t\topacity: isDragging ? 0.8 : 1,\n\t\tposition: 'relative',\n\t\ttransform: CSS.Translate.toString(transform),\n\t\ttransition: 'width transform 0.2s ease-in-out',\n\t\twidth: cell.column.getSize(),\n\t\tzIndex: isDragging ? 1 : 0,\n\t\twhiteSpace: 'nowrap',\n\t\toverflow: 'hidden',\n\t\ttextOverflow: 'ellipsis',\n\t\tlineHeight: '1.5',\n\t};\n\n\treturn (\n\t\t handleSelectedInstrument(cell),\n\t\t\t}}\n\t\t>\n\t\t\t{flexRender(cell.column.columnDef.cell, cell.getContext())}\n\t\t\n\t);\n};\n\nexport default DragAlongCell;\n","export { default } from './WtrModal';\n","import React, { createContext, FC, ReactNode, useContext, useEffect, useState } from 'react';\n\nimport { TradersGymContext, TradersGymContextType } from '../pages/TradersGym/TradersGymContext';\nimport useSelectedTradingAccount from '../utils/hooks/useSelectedTradingAccount';\nimport { AccountMarketType, Instrument, TradingAccount, TTMarginRuleItem } from '../gateways/RfpGateway/rfp.types';\n\nimport usePromiseFactory from '../utils/hooks/usePromiseFactory';\nimport useForceRerender from '../utils/hooks/useForceRerender';\nimport useObservable from '../utils/hooks/useObservable';\n\nimport { RFP } from '../gateways/RfpGateway/rfpConstants';\n\nimport UniqueId from '../utils/functions/uniqueId';\nimport orderStore from '../store/OrderStore/orderStore';\n\nimport MarginRulesContext from './MarginRulesContext';\nimport DashboardContext from './DashboardContext';\nimport RfpGatewayContext from './RfpGatewayContext';\n\ninterface TTMarginRuleItemToApply extends TTMarginRuleItem {\n\trndLot: number;\n}\n\ninterface MarginRequirementsContextProps {\n\tselectedAccountNumber?: number;\n\tdoesRulesApply: boolean;\n\tmarginRequirementsToApply?: TTMarginRuleItemToApply;\n}\n\nconst ACCOUNT_MARKET_TYPES_NOT_ALLOWED = [AccountMarketType.Japan, AccountMarketType.JapanSpread];\nconst MarginRequirementsContext = createContext(undefined);\n\nexport const MarginRequirementsContextProvider: FC<{\n\tchildren: ReactNode;\n}> = ({ children }) => {\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\tconst marginRulesContext = useContext(MarginRulesContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\tconst { tradersGymContext } = gymContext;\n\tconst realTradingAccount = useSelectedTradingAccount();\n\tconst gymTradingAccount = tradersGymContext.gymTradingAccount;\n\tconst [selectedTradingAccount, setSelectedTradingAccount] = useState(realTradingAccount);\n\tconst [doesRulesApply, setDoesRulesApply] = useState(false);\n\tconst [marginRequirementsToApply, setMarginRequirementsToApply] = useState();\n\tconst { marginRules } = marginRulesContext;\n\tconst current = orderStore((state) => state.current);\n\n\tconst detailedInfo = dashboardContext.detailedInformation;\n\tconst selectedMarketItem = dashboardContext.selectedInstrument;\n\n\t// TODO: Refactor the following all over the application into the useSelectedTradingAccount hook\n\tuseEffect(() => {\n\t\tif (tradersGymContext.isActive && gymTradingAccount) {\n\t\t\tsetSelectedTradingAccount(gymTradingAccount);\n\t\t} else {\n\t\t\tsetSelectedTradingAccount(realTradingAccount);\n\t\t}\n\t}, [realTradingAccount, gymTradingAccount, tradersGymContext.isActive]);\n\n\tuseObservable(\n\t\tdashboardContext.getPropertyChangeStream('selectedInstrument', 'detailedInformation'),\n\t\tasync (_change) => {\n\t\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\t\tforceRerender();\n\t\t}\n\t);\n\n\t// Had to implement it this way because the current architecture doesn't allow to use proper simple React Contexts,\n\t// or connect to Zustand store in the websocket subscriptions handler file\n\tuseObservable(\n\t\tmarginRulesContext.getPropertyChangeStream('accountId', 'marginRules', 'futureMarginReqId', 'futureMarginValue'),\n\t\tasync () => {\n\t\t\tawait promiseFactory.throttle('marginRulesContext.propertyChanged', 100);\n\t\t\tforceRerender();\n\t\t}\n\t);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tmarginRulesContext.resetFutureMargin();\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tselectedTradingAccount?.accountType === 'GYM' ||\n\t\t\t(selectedTradingAccount &&\n\t\t\t\tselectedTradingAccount.accountMarketType &&\n\t\t\t\tACCOUNT_MARKET_TYPES_NOT_ALLOWED.includes(selectedTradingAccount.accountMarketType))\n\t\t) {\n\t\t\tsetDoesRulesApply(false);\n\t\t\tmarginRulesContext.reset();\n\t\t\treturn;\n\t\t}\n\n\t\tif (rfpGatewayContext && selectedTradingAccount?.accountNumber && selectedTradingAccount?.isLoggedIn) {\n\t\t\trfpGatewayContext.send(RFP.requestTTMarginRules, {\n\t\t\t\taccountId: selectedTradingAccount.accountNumber,\n\t\t\t});\n\t\t}\n\t}, [selectedTradingAccount, rfpGatewayContext]);\n\n\tuseEffect(() => {\n\t\tif (selectedTradingAccount?.id && selectedTradingAccount?.accountType !== 'GYM') {\n\t\t\tconst selectedAccountDetailedInformation = detailedInfo.find(\n\t\t\t\t({ account }) => account === selectedTradingAccount?.id\n\t\t\t);\n\n\t\t\tconst code = selectedMarketItem?.code;\n\t\t\tif (selectedAccountDetailedInformation && code) {\n\t\t\t\tconst matchingRule = marginRules.find((rule) => rule.instruments.includes(code));\n\t\t\t\tconst tradingInstrument: Instrument | undefined = selectedAccountDetailedInformation.instruments[code];\n\t\t\t\tconst rndLot = tradingInstrument?.rndLot || 0;\n\n\t\t\t\tsetDoesRulesApply(!!matchingRule);\n\t\t\t\tconst requirementsToApply = matchingRule && ({ ...matchingRule, rndLot } as TTMarginRuleItemToApply);\n\t\t\t\tsetMarginRequirementsToApply(requirementsToApply);\n\t\t\t}\n\t\t}\n\t}, [detailedInfo, selectedMarketItem?.code, marginRules]);\n\n\tuseEffect(() => {\n\t\tif (doesRulesApply) {\n\t\t\tif (\n\t\t\t\trfpGatewayContext &&\n\t\t\t\tselectedTradingAccount?.accountNumber &&\n\t\t\t\tselectedMarketItem?.code &&\n\t\t\t\tcurrent.amountInfo?.amount !== undefined\n\t\t\t) {\n\t\t\t\tconst payload = {\n\t\t\t\t\tacctId: selectedTradingAccount?.accountNumber,\n\t\t\t\t\tsymbol: selectedMarketItem?.code,\n\t\t\t\t\treqId: UniqueId(),\n\t\t\t\t\tamount: current.amountInfo?.amount,\n\t\t\t\t\tside: marginRulesContext.getPositionSideValue(current.side),\n\t\t\t\t};\n\n\t\t\t\trfpGatewayContext.send(RFP.requestFutureMargin, payload);\n\t\t\t}\n\t\t} else {\n\t\t\tmarginRulesContext.resetFutureMargin();\n\t\t}\n\t}, [doesRulesApply, current.amountInfo?.amount, current.side]);\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default MarginRequirementsContext;\n","import {useEffect, useState} from 'react';\n\nimport {TradingAccount} from '../../gateways/RfpGateway/rfp.types';\n\nconst usePreferredFeedId = (account?: TradingAccount) => {\n const [preferredFeedId, setPreferredFeedId] = useState('');\n\n useEffect(() => {\n if (!account) return;\n setPreferredFeedId(account.preferredFeed);\n }, [account]);\n\n return preferredFeedId === 'TIFeed' ? 'VTFeed' : preferredFeedId;\n};\n\nexport default usePreferredFeedId;\n","import React from 'react';\n\nimport styles from './ToastNotificationContent.module.scss';\n\nexport type ToastNotificationType = 'success' | 'danger' | 'fatal' | undefined;\n\ninterface IToastNotificationContent {\n\ttype: ToastNotificationType;\n\tmessage: string;\n\ttitle?: string;\n}\n\nconst TYPE_TO_CLASS_SUFFIX_MAP = {\n\tsuccess: 'Info',\n\tdanger: 'Error',\n\tfatal: 'Fatal',\n};\n\nconst ToastNotificationContent = ({ type = 'success', title, message }: IToastNotificationContent) => (\n\t
\n\t\t
\n\t\t
\n\t\t\t{title && (\n\t\t\t\t
\n\t\t\t\t\t
{title}
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t
\n\t\t\t\t

{message}

\n\t\t\t
\n\t\t
\n\t
\n);\n\nexport default ToastNotificationContent;\n","import React from 'react';\nimport { Store } from 'react-notifications-component';\n\nimport ToastNotificationContent, {\n\tToastNotificationType,\n} from '../../views/components/ToastNotificationContent/ToastNotificationContent';\n\nexport const addToastNotification = (\n\ttype: ToastNotificationType,\n\tmessage: string,\n\ttitle?: string,\n\tduration: number = 5000\n): string => {\n\tconst notificationId = Store.addNotification({\n\t\ttype: type === 'fatal' ? 'danger' : type,\n\t\tinsert: 'top',\n\t\tcontainer: 'top-right',\n\t\tcontent: ,\n\t\tanimationIn: ['animate__animated', 'animate__faster', 'animate__slideInRight'],\n\t\tanimationOut: ['animate__animated', 'animate__slideOutRight'],\n\t\tdismiss: {\n\t\t\tduration,\n\t\t\tshowIcon: true,\n\t\t},\n\t});\n\n\tsetTimeout(() => {\n\t\t// Make sure the notification disappears\n\t\tStore.removeNotification(notificationId);\n\t}, duration);\n\n\treturn notificationId;\n};\n\nexport const removeToastNotification = (toastNotificationId: string) => {\n\tStore.removeNotification(toastNotificationId);\n};\n","import React, { FC } from 'react';\n\nimport quoteStore from '../../../../../store/QuoteStore/quoteStore';\n\nexport enum LowOrHighType {\n\tLow = 'low',\n\tHigh = 'high',\n}\n\ninterface LowProps {\n\tmarketItemCode: string;\n\ttype: LowOrHighType;\n}\n\nconst LowOrHigh: FC = ({ marketItemCode, type }): JSX.Element => {\n\tconst quote = quoteStore((state) => state.quotes[marketItemCode]);\n\n\tif (!quote || !quote.currentQuote) {\n\t\treturn
0
;\n\t}\n\n\treturn (\n\t\t
\n\t\t\t{type === LowOrHighType.Low\n\t\t\t\t? isNaN(quote.currentQuote.l)\n\t\t\t\t\t? 'N/A'\n\t\t\t\t\t: String(quote.currentQuote.l)\n\t\t\t\t: isNaN(quote.currentQuote.h)\n\t\t\t\t? 'N/A'\n\t\t\t\t: String(quote.currentQuote.h)}\n\t\t
\n\t);\n};\n\nexport default LowOrHigh;\n","import React, { FC, useContext } from 'react';\nimport moment from 'moment/moment';\nimport { useTranslation } from 'react-i18next';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport quoteStore from '../../../../../store/QuoteStore/quoteStore';\n\nimport { formatNumberWithCommas } from '../../../Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nimport { MarketItem } from '../../../../../gateways/RfpGateway/rfp.types';\n\nimport styles from '../MarketsTable.module.scss';\n\nexport enum SellOrBuyType {\n\tSell = 'sell',\n\tBuy = 'buy',\n}\n\ninterface SellOrBuyButtonProps {\n\tmarketItem: MarketItem;\n\ttype: SellOrBuyType;\n}\n\nconst SellOrBuyButton: FC = ({ marketItem, type }): JSX.Element => {\n\tconst appContext = useContext(AppContext);\n\tconst languageSettings = appContext.languageSettings;\n\tconst { t } = useTranslation();\n\tconst quote = quoteStore((state) => state.quotes[marketItem && marketItem.code]);\n\n\tconst addCommas = (current: number | string, decimalPrecision: number) => {\n\t\tconst decPrec = current === 0 ? 0 : decimalPrecision;\n\t\treturn formatNumberWithCommas(current, decPrec, languageSettings);\n\t};\n\n\tif (!marketItem) {\n\t\treturn
;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(`en:${type === SellOrBuyType.Sell ? 'SELL_ACTION' : 'BUY_ACTION'}`)}{' '}\n\t\t\t\t\t\t\t{marketItem.code.replace('_SB', '')}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{quote && quote.currentQuote && quote.currentQuote.t\n\t\t\t\t\t\t\t\t? moment(quote.currentQuote.t).format('DD MMM YY H:mm:ss')\n\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t{type === SellOrBuyType.Buy ? (\n\t\t\t\t
0 ? styles.typeButton : styles.testButton}>\n\t\t\t\t\t
\n\t\t\t\t\t\t{quote && quote.currentQuote ? addCommas(quote.currentQuote.a, marketItem.decPrec) : 0}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t
0 ? styles.typeButton : styles.testButton}>\n\t\t\t\t\t
\n\t\t\t\t\t\t{quote && quote.currentQuote ? addCommas(quote.currentQuote.b, marketItem.decPrec) : 0}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default SellOrBuyButton;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalActivate\":\"Signals_modalActivate__3Y6-N\",\"modalFooter\":\"Signals_modalFooter__mMmVa\",\"modalActionButtons\":\"Signals_modalActionButtons__36GsH\",\"modalButton\":\"Signals_modalButton__rydJh\",\"buttonsContainer\":\"Signals_buttonsContainer__QPHTy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"playerModal\":\"Tutorials_playerModal__1n1O3\",\"container\":\"Tutorials_container__1_IcP\",\"list\":\"Tutorials_list__1xRPC\",\"videoArticle\":\"Tutorials_videoArticle__113uG\",\"descriptionWrapper\":\"Tutorials_descriptionWrapper__1NF52\",\"image\":\"Tutorials_image__226UK\",\"headline\":\"Tutorials_headline__1qkgC\",\"date\":\"Tutorials_date__20ziJ\",\"description\":\"Tutorials_description__2AC3s\",\"loadingTutorials\":\"Tutorials_loadingTutorials__2bXq8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"ClosedTicketModal_modal__MIvYL\",\"modalHeader\":\"ClosedTicketModal_modalHeader__3DbvK\",\"modalTitle\":\"ClosedTicketModal_modalTitle__v7_Yc\",\"modalBody\":\"ClosedTicketModal_modalBody__2l6OM\",\"closeIcon\":\"ClosedTicketModal_closeIcon__1L52i\",\"pL\":\"ClosedTicketModal_pL__Tqwxz\",\"date\":\"ClosedTicketModal_date__lvTuR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleContainer\":\"NewWatchlistsList_titleContainer__2H8qN\",\"titleWatchlist\":\"NewWatchlistsList_titleWatchlist__2QMOw\",\"watchlistContainer\":\"NewWatchlistsList_watchlistContainer__221y3\",\"watchlistItem\":\"NewWatchlistsList_watchlistItem__1NhBC\",\"itemContainer\":\"NewWatchlistsList_itemContainer__1rUNR\",\"maxItemContainer\":\"NewWatchlistsList_maxItemContainer__1l5rk\",\"addInstrumentContainer\":\"NewWatchlistsList_addInstrumentContainer__1IRBn\",\"addToWatchlistIcon\":\"NewWatchlistsList_addToWatchlistIcon__nGDfk\",\"existsInWatchlistIcon\":\"NewWatchlistsList_existsInWatchlistIcon__2pN5G\",\"watchlistIcon\":\"NewWatchlistsList_watchlistIcon__22vwN\",\"maxErrorMessage\":\"NewWatchlistsList_maxErrorMessage__wgKc4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"AccountStatusCTA_button__4LQC4\",\"sm\":\"AccountStatusCTA_sm__28Qh-\",\"md\":\"AccountStatusCTA_md__IZr1n\",\"lg\":\"AccountStatusCTA_lg__1lcRL\",\"fluid\":\"AccountStatusCTA_fluid__aUDbG\",\"buttonLabel\":\"AccountStatusCTA_buttonLabel__2ArgJ\",\"primary\":\"AccountStatusCTA_primary__3hroN\",\"danger\":\"AccountStatusCTA_danger__G5Rwh\",\"outline\":\"AccountStatusCTA_outline__3nZjW\",\"secondary\":\"AccountStatusCTA_secondary__iNlPA\",\"disabled\":\"AccountStatusCTA_disabled__1xkvV\",\"outlineDisabled\":\"AccountStatusCTA_outlineDisabled__Z8_wq\",\"smallFont\":\"AccountStatusCTA_smallFont__3-G2e\",\"fullWidth\":\"AccountStatusCTA_fullWidth__2RkSr\",\"fullHeight\":\"AccountStatusCTA_fullHeight__30wbe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Item_container__3Tx51\",\"iconContainer\":\"Item_iconContainer__OqPBM\",\"itemDisabled\":\"Item_itemDisabled__3G0VV\",\"itemLoading\":\"Item_itemLoading__3ubgS\",\"icon\":\"Item_icon__3Ky6Z\",\"iconDisabled\":\"Item_iconDisabled__1czYm\",\"iconLoading\":\"Item_iconLoading__17xY-\",\"item\":\"Item_item__Sj8ax\",\"active\":\"Item_active__3yXTQ\",\"indicator\":\"Item_indicator__HSc2X\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Checkbox_container__sDrBs\",\"text\":\"Checkbox_text__2fCPa\",\"label\":\"Checkbox_label__vjtzO\",\"constrainedLabel\":\"Checkbox_constrainedLabel__2fpzD\",\"icon\":\"Checkbox_icon__23U6i\",\"input\":\"Checkbox_input__22VnQ\",\"unCheckedIcon\":\"Checkbox_unCheckedIcon__3oY2T\",\"checkedIcon\":\"Checkbox_checkedIcon__CWNEb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"CurrencyDetails_modalDialog__1h3X6\",\"modalHeader\":\"CurrencyDetails_modalHeader__2fLSU\",\"modalFooter\":\"CurrencyDetails_modalFooter__-aPSe\",\"modalContent\":\"CurrencyDetails_modalContent__2sZPM\",\"tierInfoContainer\":\"CurrencyDetails_tierInfoContainer__GlXR-\",\"tierInfo\":\"CurrencyDetails_tierInfo__2IcVz\",\"viewDetails\":\"CurrencyDetails_viewDetails__BXSfm\",\"detailsModalHeader\":\"CurrencyDetails_detailsModalHeader__2ZFKD\",\"wrapper\":\"CurrencyDetails_wrapper__2x9nN\",\"title\":\"CurrencyDetails_title__xi2jn\",\"backButton\":\"CurrencyDetails_backButton__2kEYe\",\"confirmModalHeader\":\"CurrencyDetails_confirmModalHeader__37GYa\",\"modalBody\":\"CurrencyDetails_modalBody__3S--r\",\"detailsModalBody\":\"CurrencyDetails_detailsModalBody__RdKRZ\",\"scroll\":\"CurrencyDetails_scroll__2pjl0\",\"instrumentGroupContainer\":\"CurrencyDetails_instrumentGroupContainer__2NaF2\",\"groupName\":\"CurrencyDetails_groupName__IFhP0\",\"tilesContainer\":\"CurrencyDetails_tilesContainer__2eKAu\",\"tableContainer\":\"CurrencyDetails_tableContainer__1YABW\"};","import React, { useContext } from 'react';\nimport { Dropdown as SemanticUiDropdown } from 'semantic-ui-react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport './WtrDropdown.module.scss';\n\nconst WtrDropdown = ({ ...rest }) => {\n\tconst { appTheme } = useContext(AppContext);\n\n\trest.className = `${rest.className || ''} ${appTheme}`;\n\n\treturn ;\n};\n\nexport default WtrDropdown;\n","import { useContext } from 'react';\n\nimport { useHistory } from 'react-router';\n\nimport AppContext from '../../contexts/AppContext';\nimport DashboardContext from '../../contexts/DashboardContext';\nimport ChartContext from '../../contexts/ChartContext';\nimport credentials from '../../setup/credentials';\nimport { closeChildWindows } from '../functions/closeChildWindows';\nimport WindowContext from '../../contexts/WindowContext';\nimport RfpGatewayContext from '../../contexts/RfpGatewayContext';\n\nimport { ACCESS_TOKEN_KEY, REFRESH_TOKEN_KEY, USER_EMAIL_KEY } from '../../setup/config';\nimport useSaveUserPreferences from '../mutations/useSaveUserPreferences';\nimport authStore from '../../store/authStore';\nimport Routes from '../../setup/routes';\nimport { resetAllStores } from '../../store/create';\n\nconst useLogout = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst chartContext = useContext(ChartContext);\n\tconst windowContext = useContext(WindowContext);\n\tconst rfpGateway = useContext(RfpGatewayContext);\n\n\tconst setIsAuthenticated = authStore.use.setIsAuthenticated();\n\tconst setIsJapanAccount = authStore.use.setIsJapanAccount();\n\tconst setIsSouthAfricaAccount = authStore.use.setIsSouthAfricaAccount();\n\n\tconst { mutate: saveUserPreference } = useSaveUserPreferences();\n\n\tconst history = useHistory();\n\n\tconst logOut = () => {\n\t\t//Close any open child windows\n\t\tcloseChildWindows(windowContext);\n\n\t\tconst promises: Promise[] = [];\n\t\t//disconnect RFP Gateway\n\t\tif (rfpGateway) {\n\t\t\tpromises.push(rfpGateway.disconnect());\n\t\t}\n\n\t\tif (appContext.userPreferences && appContext.email) {\n\t\t\tsaveUserPreference();\n\t\t}\n\n\t\t//logout user and reset session\n\t\tPromise.allSettled(promises).then(() => {\n\t\t\t// clear stored TFBO tokes as we are logging out we don't want to sign in the user again\n\t\t\tcredentials.clearCredentials();\n\t\t\t// reset contexts\n\t\t\tappContext.logout();\n\t\t\tappContext.reset();\n\t\t\tappContext.isJapanAccount = false;\n\t\t\tsetIsJapanAccount(false);\n\t\t\tsetIsSouthAfricaAccount(false);\n\t\t\tdashboardContext.reset();\n\t\t\tchartContext.reset();\n\t\t\t// reset session\n\t\t\tsessionStorage.clear();\n\t\t\tsetIsAuthenticated(false);\n\t\t\t// redirect to login\n\t\t\tlocalStorage.removeItem(ACCESS_TOKEN_KEY);\n\t\t\tlocalStorage.removeItem(REFRESH_TOKEN_KEY);\n\t\t\tlocalStorage.removeItem(USER_EMAIL_KEY);\n\n\t\t\tresetAllStores();\n\t\t\tdocument.title = 'ThinkTrader Web';\n\t\t\thistory.push(Routes.account.login);\n\t\t\t// we need to reload in order to reset zustand\n\t\t\t// https://docs.pmnd.rs/zustand/guides/how-to-reset-state\n\t\t});\n\t};\n\n\treturn logOut;\n};\n\nexport default useLogout;\n","import { useContext } from 'react';\n\nimport WindowContext from '../../../contexts/WindowContext';\nimport authStore, { AuthStore, TradingMode } from '../../../store/authStore';\nimport { closeChildWindows } from '../../functions/closeChildWindows';\n\nconst useSwitchMode = () => {\n\tconst setTradingMode = authStore((store: AuthStore) => store.setTradingMode);\n\tconst windowContext = useContext(WindowContext);\n\n\treturn (mode: TradingMode) => {\n\t\tcloseChildWindows(windowContext);\n\t\tsetTradingMode(mode);\n\t\twindow.location.reload();\n\t};\n};\n\nexport const useSwitchToDemo = () => {\n\tconst switchMode = useSwitchMode();\n\treturn () => {\n\t\tdocument.body.click();\n\t\tswitchMode(TradingMode.Demo);\n\t};\n};\n\nexport const useSwitchToLive = () => {\n\tconst switchMode = useSwitchMode();\n\treturn () => {\n\t\tdocument.body.click();\n\t\tswitchMode(TradingMode.Live);\n\t};\n};\n","import React, { useContext } from 'react';\nimport { NumericFormat } from 'react-number-format';\n\nimport { isCommaSeparator } from '../../../Watchlist/Instrument/formattedQuoteNumber';\nimport AppContext from '../../../../../../contexts/AppContext';\n\nimport styles from './FormattedNumberInput.module.scss';\n\ninterface FormattedNumberInputProps {\n\tvalue: any;\n\tonChange: (value: number) => void;\n\tdecimalPrecision?: number;\n\tdisabled?: boolean;\n\tisAllowed?: (value: number) => boolean;\n\tallowNegative?: boolean;\n}\n\nconst FormattedNumberInput = React.memo(\n\t({ value, decimalPrecision, disabled, onChange, isAllowed, allowNegative = false }: FormattedNumberInputProps) => {\n\t\tconst appContext = useContext(AppContext);\n\t\tconst { languageSettings } = appContext;\n\t\treturn (\n\t\t\t {\n\t\t\t\t\tif (!isAllowed) return true;\n\t\t\t\t\treturn isAllowed(floatValue!);\n\t\t\t\t}}\n\t\t\t\tonValueChange={({ floatValue }) => onChange(floatValue!)}\n\t\t\t/>\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn prevProps && nextProps && prevProps.value === nextProps.value;\n\t}\n);\n\nexport default FormattedNumberInput;\n","import React, { useState, useEffect, useContext } from 'react';\n\nimport FormattedNumberInput from '../FormattedNumberInput';\n\nimport { QuantityType } from '../../../../../../utils/functions/enums';\nimport { convertAmountToLot, convertLotToAmount } from '../../../../../../utils/functions/calculations';\nimport { MarketItem } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport orderStore from '../../../../../../store/OrderStore/orderStore';\n\ninterface LotsAwareInputProps {\n\tvalue: number;\n\tonChange: (value: number) => void;\n\troundLot?: number;\n\tmarketItem?: MarketItem;\n\tdisabled?: boolean;\n\tisAllowed?: (value: number) => boolean;\n}\n\nconst LotsAwareInput = ({ value, roundLot, disabled, onChange, isAllowed }: LotsAwareInputProps) => {\n\tconst dashboard = useContext(DashboardContext);\n\tconst quantityType = dashboard.quantityType === 'Amount' ? QuantityType.Amount : QuantityType.Lots;\n\tconst [formattedValue, setFormattedValue] = useState(value);\n\tconst [prevValue, setPrevValue] = useState(undefined);\n\tconst [prevQuantityType, setQuantityType] = useState(undefined);\n\tconst lot = orderStore((state) => state.current.amountInfo?.rndLot);\n\tconst rndLot = lot ?? roundLot;\n\n\tuseEffect(() => {\n\t\tif (prevValue !== value || prevQuantityType !== quantityType || rndLot !== undefined) {\n\t\t\tformatValue();\n\t\t\tsetPrevValue(value);\n\t\t\tsetQuantityType(quantityType);\n\t\t}\n\t}, [value, quantityType, rndLot]);\n\n\tconst formatValue = () => {\n\t\tif (quantityType && rndLot) {\n\t\t\tif (quantityType === QuantityType.Lots) {\n\t\t\t\tconst lotValue = convertAmountToLot(value, rndLot);\n\t\t\t\tsetFormattedValue(lotValue);\n\t\t\t} else {\n\t\t\t\tsetFormattedValue(value);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleChange = (value: number) => {\n\t\tif (quantityType && rndLot) {\n\t\t\tif (quantityType === QuantityType.Lots && rndLot) {\n\t\t\t\tconst amountValue = convertLotToAmount(value, rndLot);\n\t\t\t\tonChange(amountValue);\n\t\t\t} else {\n\t\t\t\tonChange(value);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default LotsAwareInput;\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport cn from 'classnames';\n\nimport { MarketItem } from '../../../../../gateways/RfpGateway/rfp.types';\n\nimport LotsAwareInput from './LotsAwareInput';\nimport styles from './NumberInput.module.scss';\nimport FormattedNumberInput from './FormattedNumberInput';\n\ninterface Incrementor {\n\tquantityValues?: number[];\n\tmin?: number;\n\tmax?: number;\n\tstep?: number;\n}\n\ninterface NumberInputProps {\n\tlotAware: boolean;\n\tincrementor: Incrementor;\n\troundLot?: number;\n\tmarketItem?: MarketItem;\n\tvalue: any;\n\tdisabled?: boolean;\n\tonChange: (value: number) => void;\n\tamountErrorClass?: boolean;\n\tdecimalPrecision?: number;\n\tallowNegativeValues?: boolean;\n}\n\nconst NumberInput = ({\n\tlotAware,\n\tincrementor,\n\tvalue,\n\troundLot,\n\tdecimalPrecision,\n\tmarketItem,\n\tdisabled,\n\tonChange,\n\tamountErrorClass,\n\tallowNegativeValues = false,\n}: NumberInputProps) => {\n\tconst incrementQuantity = () => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst { step } = incrementor;\n\t\tconst decPrec = marketItem?.decPrec;\n\t\tlet currentValue = 0;\n\t\tif (value && !isNaN(value)) {\n\t\t\tcurrentValue = value;\n\t\t}\n\t\tif (step) {\n\t\t\tcurrentValue = currentValue + step;\n\t\t\tonChange(+currentValue.toFixed(decPrec));\n\t\t} else {\n\t\t\tonChange(findNextValue(true, currentValue));\n\t\t}\n\t};\n\n\tconst decrementQuantity = () => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst { step } = incrementor;\n\t\tconst decPrec = marketItem?.decPrec;\n\t\tlet currentValue = 0;\n\t\tif (value && !isNaN(value)) {\n\t\t\tcurrentValue = value;\n\t\t}\n\t\tif (step && (allowNegativeValues || currentValue > step)) {\n\t\t\tcurrentValue = currentValue - step;\n\t\t\tonChange(+currentValue.toFixed(decPrec));\n\t\t} else {\n\t\t\tonChange(findNextValue(false, currentValue));\n\t\t}\n\t};\n\n\tconst handleIsAllowed = (value: number) => {\n\t\tif (value) {\n\t\t\tconst { max = Infinity } = incrementor;\n\t\t\treturn value >= 0 && value <= max * 10;\n\t\t}\n\t\treturn true;\n\t};\n\n\tconst findNextValue = (isIncrement: boolean, value: number) => {\n\t\tconst { quantityValues, min = -Infinity, max = Infinity } = incrementor;\n\n\t\tif (quantityValues) {\n\t\t\tif (value < min) {\n\t\t\t\treturn min;\n\t\t\t}\n\t\t\tif (value > max) {\n\t\t\t\treturn max;\n\t\t\t}\n\n\t\t\tif (isIncrement) {\n\t\t\t\treturn quantityValues.find((element) => element > value) ?? max;\n\t\t\t} else {\n\t\t\t\treturn (\n\t\t\t\t\tquantityValues\n\t\t\t\t\t\t.slice()\n\t\t\t\t\t\t.reverse()\n\t\t\t\t\t\t.find((element) => element < value) ?? min\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\te.stopPropagation();\n\t\t\t}}\n\t\t>\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t{lotAware ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default NumberInput;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"Button_button__CftuL\",\"sm\":\"Button_sm__34bkM\",\"md\":\"Button_md__2QS3e\",\"lg\":\"Button_lg__3_wBu\",\"fluid\":\"Button_fluid__aT5Xk\",\"buttonLabel\":\"Button_buttonLabel__3kVe6\",\"primary\":\"Button_primary__1oNRD\",\"primary-updated\":\"Button_primary-updated__1wKba\",\"danger\":\"Button_danger__2puv2\",\"outline\":\"Button_outline__1NkcI\",\"tertiary\":\"Button_tertiary__23kfq\",\"secondary\":\"Button_secondary__MC07q\",\"disabled\":\"Button_disabled__3scQp\",\"outlineDisabled\":\"Button_outlineDisabled__1KbCh\",\"smallFont\":\"Button_smallFont__1fzYG\",\"fullWidth\":\"Button_fullWidth__39LmF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ttSessionInfoContainer\":\"TradingSessionTooltip_ttSessionInfoContainer__1hI63\",\"ttSessionMarketStatusInfo\":\"TradingSessionTooltip_ttSessionMarketStatusInfo__3NgPh\",\"open\":\"TradingSessionTooltip_open__1AarU\",\"closed\":\"TradingSessionTooltip_closed__2Kfqc\",\"gray\":\"TradingSessionTooltip_gray__1nJFS\",\"sessionIcon\":\"TradingSessionTooltip_sessionIcon__3aZWG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"NotificationsList_popup__Vh4WE\",\"content\":\"NotificationsList_content__nA9WW\",\"header\":\"NotificationsList_header__ISnL3\",\"list\":\"NotificationsList_list__j3stU\",\"emptyList\":\"NotificationsList_emptyList__2288q\",\"emptyListIcon\":\"NotificationsList_emptyListIcon__1iTpi\",\"emptyText\":\"NotificationsList_emptyText__26Io4\",\"emptySubText\":\"NotificationsList_emptySubText__3A-8y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"AccountMenuPopup_header__2Nr7U\",\"account\":\"AccountMenuPopup_account__2H6hU\",\"tierInfo\":\"AccountMenuPopup_tierInfo__YlAIq\",\"viewSubscriptionDetailsButton\":\"AccountMenuPopup_viewSubscriptionDetailsButton__33eJR\",\"userIconContainer\":\"AccountMenuPopup_userIconContainer__1sj44\",\"userIcon\":\"AccountMenuPopup_userIcon__3MLvz\",\"userIconContainerFullWidth\":\"AccountMenuPopup_userIconContainerFullWidth__LW7hU\",\"fullName\":\"AccountMenuPopup_fullName__aeIom\",\"fullNameJP\":\"AccountMenuPopup_fullNameJP__2je6l\",\"email\":\"AccountMenuPopup_email__3lXCB\",\"switchButtonContainer\":\"AccountMenuPopup_switchButtonContainer__2jQEB\",\"borderBottom\":\"AccountMenuPopup_borderBottom__-pLT7\",\"options\":\"AccountMenuPopup_options__1Xmzg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Carousel_container__1-wGi\",\"details\":\"Carousel_details__I__ly\",\"viewDetails\":\"Carousel_viewDetails__32AsI\",\"noDetailsTopMargin\":\"Carousel_noDetailsTopMargin__3Zw6M\",\"caroucel\":\"Carousel_caroucel__1F8ID\",\"carouselDot\":\"Carousel_carouselDot__1W3bJ\",\"active\":\"Carousel_active__3MB5U\"};","import { useContext } from 'react';\nimport AppContext from '../../contexts/AppContext';\nimport positionsStore from '../../store/PositionsStore/positionsStore';\n\nconst useGridHeight = (rowVirtualizer: any, windowHeaderHeight: number = 50) => {\n\tconst appContext = useContext(AppContext);\n\tconst isChildWindow = appContext.isChildWindow;\n\n\tconst positionPanelHeight = positionsStore.use.positionPanelHeight();\n\tconst gridHeight = positionsStore.use.gridHeight();\n\n\tconst documentHeight = document.documentElement.clientHeight;\n\tconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n\tif (isChildWindow) {\n\t\tif (!isSafari) {\n\t\t\treturn {};\n\t\t} else {\n\t\t\treturn { height: documentHeight - windowHeaderHeight }; // window height - header\n\t\t}\n\t} else if (rowVirtualizer.getTotalSize() + 25 > gridHeight - positionPanelHeight || isSafari) {\n\t\treturn {\n\t\t\theight: gridHeight - positionPanelHeight, //tells scrollbar how big the table is\n\t\t\tposition: 'relative',\n\t\t};\n\t} else {\n\t\treturn {};\n\t}\n};\n\nexport default useGridHeight;\n","import React, { Dispatch, FC, SetStateAction } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\ninterface SettingTriggerProps {\n\thandleShowColumnChooser: Dispatch>;\n}\n\nconst SettingTrigger: FC = ({ handleShowColumnChooser }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\t\t{t('en:SETTINGS')}\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t
handleShowColumnChooser((state) => !state)}>\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SettingTrigger;\n","import { useCallback } from 'react';\nimport moment from 'moment';\nimport { formatDuration, intervalToDuration } from 'date-fns';\nimport { useTranslation } from 'react-i18next';\n\nimport { MarketItem, TradingSession } from '../../gateways/RfpGateway/rfp.types';\n\nconst useTimeSessions = () => {\n\tconst { t } = useTranslation();\n\n\tconst getNextOpenTradingSessions = useCallback((marketItem: MarketItem, day: number) => {\n\t\tif (marketItem.tradingSessions) {\n\t\t\tlet nextDay = day;\n\t\t\tfor (let i = 0; i < 7; i++) {\n\t\t\t\tnextDay = (nextDay + 1) % 7;\n\t\t\t\tlet tradingSessions = marketItem.tradingSessions.sessions[nextDay];\n\t\t\t\tif (tradingSessions) {\n\t\t\t\t\tfor (let j = 0; j < tradingSessions.length; j++) {\n\t\t\t\t\t\tif (tradingSessions[j].isOpen) {\n\t\t\t\t\t\t\tif (day > nextDay) {\n\t\t\t\t\t\t\t\t// If next day is less than current day, it means next day is in the next week\n\t\t\t\t\t\t\t\t// So we need to add 7 days to the open and close date\n\t\t\t\t\t\t\t\tconst newTradingSessions = tradingSessions.map((ts) => {\n\t\t\t\t\t\t\t\t\tconst openDate = new Date(ts.openDate);\n\t\t\t\t\t\t\t\t\topenDate.setDate(openDate.getDate() + 7);\n\t\t\t\t\t\t\t\t\tconst closeDate = new Date(ts.closeDate);\n\t\t\t\t\t\t\t\t\tcloseDate.setDate(closeDate.getDate() + 7);\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t...ts,\n\t\t\t\t\t\t\t\t\t\topenDate: openDate,\n\t\t\t\t\t\t\t\t\t\tcloseDate: closeDate,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\treturn newTradingSessions;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn tradingSessions;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst getOpenTime = useCallback((tradingSessions: TradingSession[], time: Date) => {\n\t\tfor (let i = 0; i < tradingSessions.length; i++) {\n\t\t\tconst tradingSession = tradingSessions[i];\n\t\t\tif (tradingSession.isOpen && tradingSession.openDate > time) {\n\t\t\t\tconst duration = intervalToDuration({ start: new Date(), end: tradingSession.openDate });\n\t\t\t\tconst formatted = formatDuration(duration, { format: ['hours', 'minutes'] });\n\n\t\t\t\t/*\n If the market opens in more than 2 days - present the exact day when the market will open\n If the market opens in 2 days (24h - 47h 59 m) - present: tomorrow\n If the market opens in a day (24 h) - present: countdown \n */\n\n\t\t\t\tif (duration.days !== undefined) {\n\t\t\t\t\tif (duration.days === 0) {\n\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_OPENS_IN', { formatted });\n\t\t\t\t\t} else if (duration.days === 1) {\n\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_OPENS_TOMORROW');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst timeFromNow = moment(tradingSession.openDate).fromNow();\n\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_OPENS', { timeFromNow });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst findLastTradingSession = useCallback((marketItem: MarketItem, day: number) => {\n\t\tif (marketItem.tradingSessions) {\n\t\t\t// Find the last closes time\n\t\t\tconst tradingSessions = marketItem.tradingSessions.sessions[day];\n\t\t\tif (tradingSessions.length > 0) {\n\t\t\t\tconst closeDate = tradingSessions[tradingSessions.length - 1].closeDate;\n\t\t\t\tconst nextTradingSession = getNextOpenTradingSessions(marketItem, day);\n\t\t\t\tif (nextTradingSession && nextTradingSession.length > 0) {\n\t\t\t\t\tconst nextOpenTime = nextTradingSession[0].openDate;\n\t\t\t\t\tif (nextOpenTime !== closeDate) {\n\t\t\t\t\t\treturn tradingSessions;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst getClosesTime = useCallback((marketItem: MarketItem, time: Date) => {\n\t\tif (marketItem.tradingSessions && isWorkingTime(marketItem, time)) {\n\t\t\tconst day = time.getDay();\n\t\t\tlet tradingSessions = undefined;\n\t\t\tfor (let index = day; index < 7; index++) {\n\t\t\t\ttradingSessions = findLastTradingSession(marketItem, index);\n\t\t\t\tif (tradingSessions) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (tradingSessions && tradingSessions.length > 0) {\n\t\t\t\tfor (let i = 0; i < tradingSessions.length; i++) {\n\t\t\t\t\tconst tradingSession = tradingSessions[i];\n\t\t\t\t\tif (tradingSession.isOpen && tradingSession.closeDate > time) {\n\t\t\t\t\t\tconst duration = intervalToDuration({ start: new Date(), end: tradingSession.closeDate });\n\t\t\t\t\t\tconst format = duration.days && duration.days > 0 ? ['days', 'hours', 'minutes'] : ['hours', 'minutes'];\n\t\t\t\t\t\tconst formatted = formatDuration(duration, { format: format });\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tIf the market closes in more than 2 days - present the exact day when the market will close\n\t\t\t\t\t\tIf the market closes in 2 days (24h - 47h 59 m) - present: tomorrow\n\t\t\t\t\t\tIf the market closes in a day (24 h) - present: countdown \n\t\t\t\t\t\t*/\n\n\t\t\t\t\t\tif (duration.days !== undefined) {\n\t\t\t\t\t\t\tif (duration.days === 0) {\n\t\t\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_CLOSES_IN', { formatted });\n\t\t\t\t\t\t\t} else if (duration.days === 1) {\n\t\t\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_CLOSES_TOMORROW');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst timeFromNow = moment(tradingSession.closeDate).fromNow();\n\t\t\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_CLOSES', { timeFromNow });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst getNextOpenDate = useCallback((marketItem: MarketItem, time: Date): string | undefined => {\n\t\tif (marketItem.tradingSessions && !isWorkingTime(marketItem, time)) {\n\t\t\tconst day = time.getDay();\n\t\t\tconst tradingSessions = marketItem.tradingSessions.sessions[day];\n\t\t\tlet openTime = getOpenTime(tradingSessions, time);\n\t\t\tif (openTime) {\n\t\t\t\treturn openTime;\n\t\t\t}\n\t\t\tconst nextOpenTradingSessions = getNextOpenTradingSessions(marketItem, day);\n\t\t\tif (nextOpenTradingSessions) {\n\t\t\t\topenTime = getOpenTime(nextOpenTradingSessions, time);\n\t\t\t\tif (openTime) {\n\t\t\t\t\treturn openTime;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst isWorkingTime = useCallback((marketItem: MarketItem, time: Date) => {\n\t\tif (marketItem.tradingSessions) {\n\t\t\tconst orgTime = new Date(time);\n\n\t\t\tconst day = time.getDay();\n\t\t\tconst tradingSessions = marketItem.tradingSessions.sessions[day];\n\t\t\tfor (let i = 0; i < tradingSessions.length; i++) {\n\t\t\t\tconst tradingSession = tradingSessions[i];\n\t\t\t\tif (tradingSession.isOpen) {\n\t\t\t\t\tconst currentTime = orgTime.getHours() * 60 + orgTime.getMinutes();\n\t\t\t\t\tconst openTime = tradingSession.openDate.getHours() * 60 + tradingSession.openDate.getMinutes();\n\t\t\t\t\tconst closeTime = (\n\t\t\t\t\t\topenTime +\n\t\t\t\t\t\t(tradingSession.closeDate.getTime() - tradingSession.openDate.getTime()) / 1000 / 60\n\t\t\t\t\t).toFixed(0);\n\n\t\t\t\t\tif (currentTime >= openTime && currentTime < +closeTime) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn undefined;\n\t}, []);\n\n\treturn { getNextOpenDate, isWorkingTime, getClosesTime };\n};\n\nexport default useTimeSessions;\n","import React from 'react';\nimport MoneyFormatter from '../../../../../components/MoneyFormatter';\n\ninterface CalcSwapValueProps {\n\tdata: any;\n\ttype: string;\n}\nconst CalcSwapValue = ({ data, type }: CalcSwapValueProps) => {\n\tconst record = data.row.original;\n\treturn <>{!record.isGroupRow && };\n};\n\nexport default CalcSwapValue;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './CreateWatchlistButton.module.scss';\n\ninterface CreateWatchlistButtonProps {\n maxWatchlistsError: boolean;\n handleCreateWatchlist: () => void;\n updatedStyles?: boolean;\n}\n\nconst CreateWatchlistButton: FC = ({ maxWatchlistsError, handleCreateWatchlist, updatedStyles }) => {\n const { t } = useTranslation();\n const wrapperClasses = updatedStyles ? (maxWatchlistsError ? styles.errorCreateWatchlist : styles.createWatchListUpdated) : (maxWatchlistsError ? styles.errorCreateWatchlist : styles.createWatchList);\n return (\n handleCreateWatchlist()}\n >\n
\n {\n !maxWatchlistsError && (\n \n )\n }\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{t('en:CREATE_WATCHLIST')}\n\t\t\t\t\t\n\t\t\t\t\t{maxWatchlistsError &&
{t('wtr:MAX_WATCHLIST_ERROR')}
}\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default CreateWatchlistButton;\n","import {\n\tHistoryTick,\n\tMarketItem,\n\tPriceQuote,\n\tTradingAccount,\n\tTradingPositionState,\n} from '../../../gateways/RfpGateway/rfp.types';\nimport { TradingPositionSide, TradingPositionType } from '../../../utils/functions/enums';\nimport { GymTradingAccount } from '../Accounts/GymTradingAccount';\n\nimport { GymTradingPosition } from './GymTradingPosition';\n\nexport class GymPositionUtils {\n\tstatic generatePositionId(): number {\n\t\treturn Date.now();\n\t}\n\n\tstatic getDefaultAmount(account: TradingAccount, marketItem: MarketItem) {\n\t\tconst instrumentDetails = account.tradingInstruments?.instruments[marketItem.code];\n\t\tif (instrumentDetails) {\n\t\t\treturn instrumentDetails.minAmount;\n\t\t}\n\t\treturn 1;\n\t}\n\n\tstatic buildPosition(\n\t\taccount: TradingAccount,\n\t\tmarketItem: MarketItem,\n\t\tisBuy: boolean,\n\t\tpriceQuote: PriceQuote,\n\t\tsimulationId: string,\n\t\tstopLoss: number | undefined,\n\t\ttakeProfit: number | undefined,\n\t\tamount: number\n\t): GymTradingPosition {\n\t\tconst position = new GymTradingPosition(\n\t\t\taccount.id,\n\t\t\tmarketItem.feedId,\n\t\t\tmarketItem.code,\n\t\t\tTradingPositionState.open,\n\t\t\tisBuy ? TradingPositionSide.Buy : TradingPositionSide.Sell,\n\t\t\tTradingPositionType.Market,\n\t\t\tsimulationId\n\t\t);\n\n\t\tposition.marketItem = marketItem;\n\t\tposition.qCcy = marketItem.ccy;\n\t\tposition.dec = marketItem.decPrec;\n\t\tposition.qty = amount ?? GymPositionUtils.getDefaultAmount(account, marketItem);\n\t\tposition.posId = GymPositionUtils.generatePositionId();\n\t\tposition.lastDataCloseTime = priceQuote.t;\n\t\tposition.lastDataClosePrice = isBuy ? priceQuote.a : priceQuote.b;\n\t\tposition.oP = isBuy ? priceQuote.a : priceQuote.b;\n\t\tposition.oT = priceQuote.t;\n\t\tposition.grossProfit = 0;\n\t\tposition.tp = takeProfit ?? 0;\n\t\tposition.sl = stopLoss ?? 0;\n\n\t\treturn position;\n\t}\n\n\tstatic buildPendingPosition(\n\t\taccount: TradingAccount,\n\t\tmarketItem: MarketItem,\n\t\tprice: number,\n\t\tisBuy: boolean,\n\t\thistoryTick: HistoryTick,\n\t\tpositionType: TradingPositionType,\n\t\tsimulationId: string,\n\t\tstopLoss: number,\n\t\ttakeProfit: number,\n\t\tamount?: number\n\t) {\n\t\tconst position = new GymTradingPosition(\n\t\t\taccount.id,\n\t\t\tmarketItem.feedId,\n\t\t\tmarketItem.code,\n\t\t\tTradingPositionState.pending,\n\t\t\tisBuy ? TradingPositionSide.Buy : TradingPositionSide.Sell,\n\t\t\tpositionType,\n\t\t\tsimulationId\n\t\t);\n\n\t\tposition.oT = historyTick.closeTime;\n\t\tposition.marketItem = marketItem;\n\t\tposition.qCcy = marketItem.ccy;\n\t\tposition.prc = price;\n\t\tposition.dec = marketItem.decPrec;\n\t\tposition.qty = amount ?? GymPositionUtils.getDefaultAmount(account, marketItem);\n\t\tposition.posId = GymPositionUtils.generatePositionId();\n\t\tposition.lastDataCloseTime = historyTick.closeTime;\n\t\tposition.lastDataClosePrice = historyTick.close;\n\t\tposition.tp = takeProfit ?? 0;\n\t\tposition.sl = stopLoss ?? 0;\n\t\tposition.eT = 0;\n\n\t\treturn position;\n\t}\n\n\tstatic validateMargin(account: GymTradingAccount, position: GymTradingPosition): Boolean {\n\t\tconst posUsedMargin = position.calcUsedMargin(account);\n\t\treturn posUsedMargin < account.freeMargin;\n\t}\n}\n","import { octStoredValues } from '../../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nexport const storeInstrumentsOCTValue = (obj: octStoredValues | null) => {\n\tlocalStorage.setItem('instrumentsOCTValue', JSON.stringify(obj));\n};\n\nexport const getSavedInstrumentsOCTValue = () => JSON.parse(localStorage.getItem('instrumentsOCTValue') ?? '{}');\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleContainer\":\"WatchlistsList_titleContainer__2ONtg\",\"titleWatchlist\":\"WatchlistsList_titleWatchlist__2QE6E\",\"watchlistContainer\":\"WatchlistsList_watchlistContainer__1Euhn\",\"watchlistItem\":\"WatchlistsList_watchlistItem__1RnIr\",\"itemContainer\":\"WatchlistsList_itemContainer__2ICBN\",\"maxItemContainer\":\"WatchlistsList_maxItemContainer__2u-T6\",\"addInstrumentContainer\":\"WatchlistsList_addInstrumentContainer__3w2rI\",\"addToWatchlistIcon\":\"WatchlistsList_addToWatchlistIcon__1c3rx\",\"existsInWatchlistIcon\":\"WatchlistsList_existsInWatchlistIcon__16SGu\",\"watchlistIcon\":\"WatchlistsList_watchlistIcon__3oBCU\",\"maxErrorMessage\":\"WatchlistsList_maxErrorMessage__1HOo7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"notificationInfo\":\"ToastNotificationContent_notificationInfo__w5GH3\",\"notificationError\":\"ToastNotificationContent_notificationError__2yplX\",\"notificationFatal\":\"ToastNotificationContent_notificationFatal__1BLmj\",\"title\":\"ToastNotificationContent_title__1f2Wg\",\"body\":\"ToastNotificationContent_body__1SxYo\",\"icon\":\"ToastNotificationContent_icon__34E99\",\"fa\":\"ToastNotificationContent_fa__2buQX\",\"messageContainer\":\"ToastNotificationContent_messageContainer__10vEb\",\"message\":\"ToastNotificationContent_message__2G0DF\",\"toastTitle\":\"ToastNotificationContent_toastTitle__24r1X\",\"closeIcon\":\"ToastNotificationContent_closeIcon__2bCKu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NumberInput_container__1Y-dB\",\"disabled\":\"NumberInput_disabled__1Pygg\",\"hasError\":\"NumberInput_hasError__oi0IX\",\"button\":\"NumberInput_button__2gL80\",\"icon\":\"NumberInput_icon__19YJQ\",\"input\":\"NumberInput_input__8urD-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WeekInformation_container__2o_vk\",\"dayAndTimeWrapper\":\"WeekInformation_dayAndTimeWrapper__3wI0q\",\"label\":\"WeekInformation_label__3tkbu\",\"valuesWrapper\":\"WeekInformation_valuesWrapper__U4Oou\",\"value\":\"WeekInformation_value__xgSPc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AccountStats_container__1RwIk\",\"statsContainer\":\"AccountStats_statsContainer__1Ip7b\",\"statsLabel\":\"AccountStats_statsLabel__1uq6f\",\"value\":\"AccountStats_value__eS9-j\",\"divider\":\"AccountStats_divider__1aahZ\",\"default\":\"AccountStats_default__yC0m1\",\"green\":\"AccountStats_green__2HKTb\",\"orange\":\"AccountStats_orange__1nofm\",\"red\":\"AccountStats_red__2PBl9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"SubscriptionAlert_modalDialog__1X7hs\",\"modalHeader\":\"SubscriptionAlert_modalHeader__1Slzx\",\"modalFooter\":\"SubscriptionAlert_modalFooter__1cETJ\",\"modalBody\":\"SubscriptionAlert_modalBody__aUnsl\",\"columnButtons\":\"SubscriptionAlert_columnButtons__3oRcm\",\"subscriptionDetailsContent\":\"SubscriptionAlert_subscriptionDetailsContent__29iV_\",\"detailsText\":\"SubscriptionAlert_detailsText__1I1XU\"};","import { HistoryTick, TimeScale } from '../../gateways/RfpGateway/rfp.types';\nimport Lazy from '../../utils/functions/Lazy';\nimport { Optional } from '../../utils/functions/Nullable';\nimport i18n from '../../setup/i18n';\nimport { GymSimulation } from '../../pages/TradersGym/Simulations/GymSimulation';\n\nexport type TChartTick = {\n\tDT?: Date;\n\tDate?: string;\n\tOpen: number;\n\tHigh: number;\n\tLow: number;\n\tClose: number;\n\tVolume: number;\n};\n\nexport type TChartPeriod = {\n\ttimeScale: TimeScale;\n\tinterval: number;\n\tperiod: number;\n\ttimeUnit: 'millisecond' | 'second' | 'minute' | 'day' | 'week' | 'month' | 'tick';\n\tminHistoryTicks: number;\n\tgetSelectionLabel: (translationProvider?: Optional<(str: string) => string>) => string;\n\tgetChartLabel: (translationProvider?: Optional<(str: string) => string>) => string;\n\tcreateChartTicks: (historyTicks: HistoryTick[], historicalOnly: boolean) => TChartTick[];\n};\n\nenum RFP_TIMING_INTERVAL {\n\tTICK = 0,\n\tONE_MIN = 1,\n\tFIVE_MIN = 2,\n\tFIFTEEN_MIN = 3,\n\tTHIRTY_MIN = 4,\n\tSIXTY_MIN = 5,\n\tTWO_HOURS = 6,\n\tTHREE_HOURS = 7,\n\tFOUR_HOURS = 8,\n\tONE_DAY = 9,\n\tONE_WEEK = 10,\n\tONE_MONTH = 11,\n\tEIGHT_HOURS = 12,\n\tTWO_MIN = 14,\n\tTHREE_MIN = 15,\n\tTEN_MIN = 16,\n}\n\nclass ChartUtils {\n\tstatic buildSymbol(symbol: string, priceType: string) {\n\t\treturn `${symbol}_#_${priceType}`;\n\t}\n\tstatic getPriceTypeLocalStorageKey(chartId: number) {\n\t\treturn `chart${chartId}_priceType`;\n\t}\n\n\tstatic extractValues = (input: string) => {\n\t\tconst regex = /([A-Z\\d_.]+)_#_([A-z]+)/;\n\t\tconst match = input.match(regex);\n\t\tif (match) {\n\t\t\tlet symbol = match[1];\n\t\t\tif (symbol.includes(':')) {\n\t\t\t\tsymbol = symbol.slice(1);\n\t\t\t}\n\t\t\tconst priceType = match[2];\n\t\t\treturn { symbol, priceType };\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t};\n\n\t/**\n\t * Builds a gym symbol based on the given simulation.\n\t * The gym symbol is constructed by concatenating the simulation code and ID with \"_#_\" separator.\n\t * @param simulation The gym simulation object.\n\t * @returns The gym symbol.\n\t */\n\tstatic buildGymSymbol(simulation: GymSimulation) {\n\t\treturn `${simulation.code}_#_${simulation.id}`;\n\t}\n\n\t/**\n\t * Splits a string value into symbol and subscription ID components.\n\t * @param value - The string value to split.\n\t * @returns An object containing the symbol and subscription ID components, or undefined if the value cannot be split.\n\t */\n\tstatic getGymSymbolComponents(value: string) {\n\t\tconst arr = value.split('_#_');\n\t\tif (arr.length > 1) {\n\t\t\treturn { symbol: arr[0], subscriptionId: arr[1] };\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tstatic fillErrorCenter(\n\t\tctx: CanvasRenderingContext2D,\n\t\terror: string,\n\t\tcolor: string,\n\t\twidth: number,\n\t\theight: number,\n\t\ttextHight: number\n\t) {\n\t\tctx.textAlign = 'center';\n\t\tctx.globalAlpha = 1;\n\t\tctx.fillStyle = color;\n\n\t\tlet y = (height - textHight) / 2;\n\t\tlet xL = width / 2;\n\t\tlet yL = y + textHight / 3;\n\n\t\t// Info text\n\t\tChartUtils.fitTextOnCanvas(ctx, error, 50, 'Helvetica, Arial', width * 0.7);\n\t\tctx.textBaseline = 'middle';\n\t\tctx.fillText(error, xL, yL);\n\t}\n\n\tstatic fillTextCenter(\n\t\tctx: CanvasRenderingContext2D,\n\t\ttext1: string,\n\t\ttext2: string,\n\t\tcolor: string,\n\t\twidth: number,\n\t\theight: number,\n\t\ttextHight: number\n\t) {\n\t\tctx.textAlign = 'center';\n\t\tctx.globalAlpha = 0.3;\n\t\tctx.fillStyle = color;\n\n\t\tlet y = (height - textHight) / 2;\n\t\tlet xL = width / 2;\n\t\tlet yL = y + textHight / 3;\n\n\t\t// Info text\n\t\tChartUtils.fitTextOnCanvas(ctx, text1, 50, 'Helvetica, Arial', width * 0.7);\n\t\tctx.textBaseline = 'top';\n\t\tctx.fillText(text1, xL, yL);\n\n\t\t// Details text\n\t\tif (height >= 120) {\n\t\t\tyL = y + (textHight / 3) * 2;\n\t\t\tChartUtils.fitTextOnCanvas(ctx, text2, 20, 'Helvetica, Arial', width * 0.8);\n\t\t\tctx.textBaseline = 'bottom';\n\t\t\tctx.fillText(text2, xL, yL);\n\t\t}\n\t}\n\n\tstatic fitTextOnCanvas(\n\t\tctx: CanvasRenderingContext2D,\n\t\ttext: string,\n\t\tfontsize: number,\n\t\tfontface: string,\n\t\twidth: number\n\t) {\n\t\t// lower the font size until the text fits the canvas\n\t\tdo {\n\t\t\tfontsize--;\n\t\t\tctx.font = fontsize + 'px ' + fontface;\n\t\t} while (ctx.measureText(text).width > width);\n\t}\n\n\tpublic static fitText(element: any, selectors: string, minFontSizeRange?: { min: number; max: number }): void {\n\t\t// max font size in pixels\n\t\tconst maxFontSize = minFontSizeRange?.max ?? 50;\n\t\tconst minFontSize = minFontSizeRange?.min ?? 10;\n\t\t// get the DOM output element by its selector\n\t\tconst outputDiv = element.querySelector(selectors);\n\t\tif (outputDiv) {\n\t\t\t// get element's width and height\n\t\t\tlet width = outputDiv.clientWidth;\n\t\t\tlet height = outputDiv.clientHeight;\n\t\t\t// get content's width\n\t\t\tlet textWidth = outputDiv.scrollWidth;\n\t\t\tlet textHeight = outputDiv.scrollHeight;\n\t\t\t// get fontSize\n\t\t\tlet fontSize = parseInt(window.getComputedStyle(outputDiv, null).getPropertyValue('font-size'), 10);\n\t\t\tif (!isNaN(fontSize)) {\n\t\t\t\tif (textWidth === width && textHeight === height) {\n\t\t\t\t\t// Need to increment font size\n\t\t\t\t\t// content is smaller than than width or height... let's resize in 1 px until it fits\n\t\t\t\t\tlet didIncrementFont = false;\n\t\t\t\t\twhile (textWidth === width && textHeight === height) {\n\t\t\t\t\t\tif (fontSize > maxFontSize) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfontSize = Math.ceil(fontSize) + 1;\n\t\t\t\t\t\toutputDiv.style.fontSize = fontSize + 'px';\n\n\t\t\t\t\t\t// update width and height\n\t\t\t\t\t\ttextWidth = outputDiv.scrollWidth;\n\t\t\t\t\t\ttextHeight = outputDiv.scrollHeight;\n\n\t\t\t\t\t\tdidIncrementFont = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (didIncrementFont) {\n\t\t\t\t\t\tfontSize = Math.ceil(fontSize) - 1;\n\t\t\t\t\t\toutputDiv.style.fontSize = fontSize + 'px';\n\t\t\t\t\t}\n\t\t\t\t} else if (textWidth > width || textHeight > height) {\n\t\t\t\t\t// Need to decrement font size\n\t\t\t\t\t// content is bigger than width or height... let's resize in 1 px until it fits\n\t\t\t\t\twhile (textWidth > width || textHeight > height) {\n\t\t\t\t\t\tif (fontSize < minFontSize) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfontSize = Math.ceil(fontSize) - 1;\n\t\t\t\t\t\toutputDiv.style.fontSize = fontSize + 'px';\n\n\t\t\t\t\t\t// update width and height\n\t\t\t\t\t\ttextWidth = outputDiv.scrollWidth;\n\t\t\t\t\t\ttextHeight = outputDiv.scrollHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static readonly _chartPeriods = new Lazy(() => [\n\t\t{\n\t\t\ttimeScale: 'TS_1MIN',\n\t\t\tinterval: 1,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 500,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_ONE_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_ONE_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_5MIN',\n\t\t\tinterval: 5,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_FIVE_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_FIVE_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_10MIN',\n\t\t\tinterval: 10,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_TEN_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_TEN_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_15MIN',\n\t\t\tinterval: 15,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_FIFTEEN_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_FIFTEEN_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_30MIN',\n\t\t\tinterval: 30,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_THIRTY_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_THIRTY_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_1HOUR',\n\t\t\tinterval: 60,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_SIXTY_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_SIXTY_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_4HOUR',\n\t\t\tinterval: 240,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_FOUR_HOURS'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_FOUR_HOURS'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_1DAY',\n\t\t\tinterval: 1,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'day',\n\t\t\tminHistoryTicks: 500,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_ONE_DAY'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_ONE_DAY'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\tconst chartTicks: TChartTick[] = [];\n\t\t\t\thistoryTicks.forEach((historyTick) => {\n\t\t\t\t\tconst date = new Date(historyTick.closeTime);\n\t\t\t\t\t// There is no way to define the open time, so we are using close time minus 1 min\n\t\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - 1);\n\n\t\t\t\t\tconst dateString = `${date.getUTCFullYear()}-${(date.getUTCMonth() + 1).toString().padStart(2, '0')}-${date\n\t\t\t\t\t\t.getUTCDate()\n\t\t\t\t\t\t.toString()\n\t\t\t\t\t\t.padStart(2, '0')}`;\n\t\t\t\t\t//console.log(`One day: dateString=${dateString}, openTime=${openTime}, closeTime=${historyTick.t}`)\n\t\t\t\t\tif (!(historicalOnly && chartTicks.some((tick) => tick.Date === dateString))) {\n\t\t\t\t\t\tconst chartTick = {\n\t\t\t\t\t\t\tDate: dateString,\n\t\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tchartTicks.push(chartTick);\n\t\t\t\t\t\t//console.debug(`TS_1DAY: dateString: ${dateString}, date: ${date}, utcDate: ${date.toUTCString()}, ts: ${historyTick.t}, dateTS: ${date.getTime()}, tzOffset: ${date.getTimezoneOffset()}`)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn chartTicks;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_1WEEK',\n\t\t\tinterval: 1,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'week',\n\t\t\tminHistoryTicks: 500,\n\t\t\tgetSelectionLabel: () => i18n.t('wtr:1_WEEK_TP'),\n\t\t\tgetChartLabel: () => i18n.t('wtr:1_WEEK_TP'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\tconst chartTicks: TChartTick[] = [];\n\t\t\t\thistoryTicks.forEach((historyTick) => {\n\t\t\t\t\tconst date = new Date(historyTick.openTime);\n\n\t\t\t\t\tconst dateString = `${date.getUTCFullYear()}-${(date.getUTCMonth() + 1).toString().padStart(2, '0')}-${date\n\t\t\t\t\t\t.getUTCDate()\n\t\t\t\t\t\t.toString()\n\t\t\t\t\t\t.padStart(2, '0')}`;\n\t\t\t\t\tif (!(historicalOnly && chartTicks.some((tick) => tick.Date === dateString))) {\n\t\t\t\t\t\tconst chartTick = {\n\t\t\t\t\t\t\tDate: dateString,\n\t\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tchartTicks.push(chartTick);\n\t\t\t\t\t\t//console.debug(`TS_1WEEK: dateString: ${dateString}, date: ${date}, utcDate: ${date.toUTCString()}, ts: ${historyTick.t}, dateTS: ${date.getTime()}, tzOffset: ${date.getTimezoneOffset()}`)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn chartTicks;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_1MONTH',\n\t\t\tinterval: 1,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'month',\n\t\t\tminHistoryTicks: 500,\n\t\t\tgetSelectionLabel: () => i18n.t('wtr:1_MONTH_TP'),\n\t\t\tgetChartLabel: () => i18n.t('wtr:1_MONTH_TP'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\tconst chartTicks: TChartTick[] = [];\n\t\t\t\thistoryTicks.forEach((historyTick) => {\n\t\t\t\t\tconst date = new Date(historyTick.openTime);\n\t\t\t\t\tconst dateString = `${date.getUTCFullYear()}-${(date.getUTCMonth() + 1).toString().padStart(2, '0')}-${date\n\t\t\t\t\t\t.getUTCDate()\n\t\t\t\t\t\t.toString()\n\t\t\t\t\t\t.padStart(2, '0')}`;\n\t\t\t\t\tif (!(historicalOnly && chartTicks.some((tick) => tick.Date === dateString))) {\n\t\t\t\t\t\tconst chartTick = {\n\t\t\t\t\t\t\tDate: dateString,\n\t\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tchartTicks.push(chartTick);\n\t\t\t\t\t\t//console.debug(`TS_1MONTH: dateString: ${dateString}, date: ${date}, utcDate: ${date.toUTCString()}, ts: ${historyTick.t}, dateTS: ${date.getTime()}, tzOffset: ${date.getTimezoneOffset()}`)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn chartTicks;\n\t\t\t},\n\t\t},\n\t]);\n\n\tpublic static get chartPeriods(): ReadonlyArray> {\n\t\treturn this._chartPeriods.getValue();\n\t}\n\n\tstatic getSecondsFromTimeScale(timeScale: TimeScale) {\n\t\tconst rfpTimeInterval = ChartUtils.getRFPTimingInterval(timeScale);\n\t\treturn ChartUtils.getSecondsFromTimeInterval(rfpTimeInterval);\n\t}\n\n\tpublic static getChartPeriodAt(timeScale: TimeScale): Readonly | undefined {\n\t\tconst item = this.chartPeriods.find((value) => {\n\t\t\treturn value.timeScale === timeScale;\n\t\t});\n\t\treturn item;\n\t}\n\n\tprivate constructor() {}\n\n\tpublic static formatChartData(\n\t\tvalues: HistoryTick[],\n\t\tchartPeriod: TChartPeriod,\n\t\thistoricalOnly: boolean = false\n\t): TChartTick[] {\n\t\treturn values.length > 0 && chartPeriod !== null ? chartPeriod.createChartTicks(values, historicalOnly) : [];\n\t}\n\n\tpublic static getChartPeriod(predicate: (chartPeriod: TChartPeriod) => boolean): Optional {\n\t\tconst chartPeriods = this.chartPeriods.filter(predicate);\n\t\treturn chartPeriods.length > 0 ? chartPeriods[0] : null;\n\t}\n\n\tstatic keyShowPositions = 'chart_setting_show_positions';\n\tstatic keyShowOrders = 'chart_setting_show_orders';\n\n\tpublic static getOpenTime(historyTick: HistoryTick, interval: RFP_TIMING_INTERVAL) {\n\t\tif (interval === RFP_TIMING_INTERVAL.ONE_MONTH) {\n\t\t\tconst date = new Date(historyTick.closeTime);\n\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - 1);\n\t\t\tdate.setUTCDate(date.getUTCDate() - 7);\n\t\t\tdate.setHours(23, 59, 59, 999);\n\t\t\treturn date.getTime();\n\t\t}\n\n\t\tif (historyTick.openTime) {\n\t\t\treturn historyTick.openTime;\n\t\t}\n\t\tconst closeTime = historyTick.closeTime;\n\t\tconst openTime = closeTime - ChartUtils.getSecondsFromTimeInterval(interval) * 1000;\n\t\treturn openTime;\n\t}\n\n\tpublic static getIntervalAndPeriodicity(timeScale: TimeScale) {\n\t\tswitch (timeScale) {\n\t\t\tcase 'TS_1MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 1 };\n\t\t\tcase 'TS_2MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 2 };\n\t\t\tcase 'TS_3MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 3 };\n\t\t\tcase 'TS_5MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 5 };\n\t\t\tcase 'TS_10MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 10 };\n\t\t\tcase 'TS_15MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 15 };\n\t\t\tcase 'TS_30MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 30 };\n\t\t\tcase 'TS_1HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 60 };\n\t\t\tcase 'TS_2HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 120 };\n\t\t\tcase 'TS_3HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 180 };\n\t\t\tcase 'TS_4HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 240 };\n\t\t\tcase 'TS_6HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 360 };\n\t\t\tcase 'TS_8HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 480 };\n\t\t\tcase 'TS_12HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 720 };\n\t\t\tcase 'TS_1DAY':\n\t\t\t\treturn { interval: 'day', periodicity: 1 };\n\t\t\tcase 'TS_1WEEK':\n\t\t\t\treturn { interval: 'week', periodicity: 1 };\n\t\t\tcase 'TS_1MONTH':\n\t\t\t\treturn { interval: 'month', periodicity: 1 };\n\t\t}\n\t}\n\n\tpublic static getSecondsFromTimeInterval(interval: RFP_TIMING_INTERVAL) {\n\t\tswitch (interval) {\n\t\t\tcase RFP_TIMING_INTERVAL.ONE_MIN:\n\t\t\t\treturn 60;\n\t\t\tcase RFP_TIMING_INTERVAL.TWO_MIN:\n\t\t\t\treturn 120;\n\t\t\tcase RFP_TIMING_INTERVAL.THREE_MIN:\n\t\t\t\treturn 180;\n\t\t\tcase RFP_TIMING_INTERVAL.FIVE_MIN:\n\t\t\t\treturn 300;\n\t\t\tcase RFP_TIMING_INTERVAL.TEN_MIN:\n\t\t\t\treturn 600;\n\t\t\tcase RFP_TIMING_INTERVAL.FIFTEEN_MIN:\n\t\t\t\treturn 900;\n\t\t\tcase RFP_TIMING_INTERVAL.THIRTY_MIN:\n\t\t\t\treturn 1800;\n\t\t\tcase RFP_TIMING_INTERVAL.SIXTY_MIN:\n\t\t\t\treturn 3600;\n\t\t\tcase RFP_TIMING_INTERVAL.TWO_HOURS:\n\t\t\t\treturn 7200;\n\t\t\tcase RFP_TIMING_INTERVAL.THREE_HOURS:\n\t\t\t\treturn 10800;\n\t\t\tcase RFP_TIMING_INTERVAL.FOUR_HOURS:\n\t\t\t\treturn 14400;\n\t\t\tcase RFP_TIMING_INTERVAL.EIGHT_HOURS:\n\t\t\t\treturn 28800;\n\t\t\tcase RFP_TIMING_INTERVAL.ONE_DAY:\n\t\t\t\treturn 86400;\n\t\t\tcase RFP_TIMING_INTERVAL.ONE_WEEK:\n\t\t\t\treturn 604800;\n\t\t\tcase RFP_TIMING_INTERVAL.ONE_MONTH:\n\t\t\t\treturn 40320 * 60;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tpublic static getRFPTimingInterval(timeScale: TimeScale) {\n\t\tswitch (timeScale) {\n\t\t\tcase 'TS_1MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.ONE_MIN;\n\t\t\tcase 'TS_2MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.TWO_MIN;\n\t\t\tcase 'TS_3MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.THREE_MIN;\n\t\t\tcase 'TS_5MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.FIVE_MIN;\n\t\t\tcase 'TS_10MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.TEN_MIN;\n\t\t\tcase 'TS_15MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.FIFTEEN_MIN;\n\t\t\tcase 'TS_30MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.THIRTY_MIN;\n\t\t\tcase 'TS_1HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.SIXTY_MIN;\n\t\t\tcase 'TS_2HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.TWO_HOURS;\n\t\t\tcase 'TS_3HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.THREE_HOURS;\n\t\t\tcase 'TS_4HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.FOUR_HOURS;\n\t\t\tcase 'TS_8HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.EIGHT_HOURS;\n\t\t\tcase 'TS_1DAY':\n\t\t\t\treturn RFP_TIMING_INTERVAL.ONE_DAY;\n\t\t\tcase 'TS_1WEEK':\n\t\t\t\treturn RFP_TIMING_INTERVAL.ONE_WEEK;\n\t\t\tcase 'TS_1MONTH':\n\t\t\t\treturn RFP_TIMING_INTERVAL.ONE_MONTH;\n\t\t}\n\t\treturn 0;\n\t}\n}\n\nexport default ChartUtils;\n","import { PriceQuote, PriceType, TimeScale, TradingAccount, TradingPosition } from '../../gateways/RfpGateway/rfp.types';\nimport RfpGateway, { IPriceFeed } from '../../gateways/RfpGateway/RfpGateway';\n\nimport { findCommonMarketItem, getTradingInstrument } from './calculations';\nimport { Resolver } from './Ioc';\nimport Lazy from './Lazy';\nimport { Optional } from './Nullable';\n\nclass TTSubscriptionManager {\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new TTSubscriptionManager();\n\t});\n\n\tpublic static get instance(): TTSubscriptionManager {\n\t\treturn this._instance.getValue();\n\t}\n\n\t//private readonly currentPrices: Map = new Map()\n\n\t/**\n\t * The Singleton's constructor should always be private to prevent direct\n\t * construction calls with the `new` operator.\n\t */\n\tprivate constructor() {}\n\n\tprivate priceFeed: IPriceFeed | undefined;\n\n\t// set rfpGateway(value: RfpGateway) {\n\t// if (!this._rfpGateway) {\n\t// this._rfpGateway = value\n\n\t// this._rfpGateway.subscribe(RFP.queueQuotes).then((observable) => {\n\t// //observable.filter\n\t// const subscription = observable.subscribe((priceQuote) => {\n\t// //this._rfpGateway?.currentPrices\n\t// this.currentPrices.set(`${priceQuote.f}-${priceQuote.c}`, priceQuote)\n\t// console.log(priceQuote)\n\t// })\n\t// this.subscription = subscription\n\t// })\n\t// }\n\t// }\n\n\tpublic getHistoryRequestId(code: string, timescale: TimeScale, priceType: PriceType | undefined) {\n\t\treturn `reqHS_${code}_${timescale}_${priceType}`;\n\t}\n\n\tpublic watchPriceQuote(\n\t\tfeedId: string,\n\t\tcode: string,\n\t\t_rfpGateway: Optional = undefined\n\t): PriceQuote | undefined {\n\t\tconst rfpGateway = _rfpGateway ?? Resolver.resolve(RfpGateway);\n\t\tif (rfpGateway) {\n\t\t\t//console.log(\"watchSecurityInfo code=\" + code)\n\t\t\tconst priceQuote = rfpGateway.getQuotePrices(feedId, code);\n\t\t\tthis.subscribeForPriceQuotes(rfpGateway, feedId, code);\n\t\t\treturn priceQuote;\n\t\t}\n\t}\n\n\tpublic unwatchPriceQuote(feedId: string, code: string) {\n\t\t//console.log(\"unwatchSecurityInfo code=\" + code)\n\t\tif (this.priceFeed) {\n\t\t\tthis.priceFeed.unsubscribe({ feedId: feedId, code: code });\n\t\t}\n\t}\n\n\tprivate subscribeForPriceQuotes(rfpGateway: RfpGateway, feedId: string, code: string) {\n\t\tthis.priceFeed = rfpGateway.createPriceFeed(feedId);\n\t\tif (this.priceFeed) {\n\t\t\tthis.priceFeed.subscribe({ feedId: feedId, code: code });\n\t\t}\n\t}\n\n\t/**\n\t * This will subscribe or unsubscribe all instruments required for calculations of the provided position\n\t */\n\tpublic updatePositionSubscriptions(\n\t\ttradingAccount: TradingAccount,\n\t\tposition: TradingPosition,\n\t\tsubscribe: boolean,\n\t\t_rfpGateway: Optional\n\t) {\n\t\tconst rfpGateway =\n\t\t\t_rfpGateway ?? (Resolver.isSet && Resolver.isRegistered(RfpGateway)) ? Resolver.resolve(RfpGateway) : undefined;\n\t\tif (rfpGateway) {\n\t\t\tif (subscribe) {\n\t\t\t\tthis.watchPriceQuote(position.f, position.code, rfpGateway);\n\t\t\t} else {\n\t\t\t\tthis.unwatchPriceQuote(position.f, position.code);\n\t\t\t}\n\n\t\t\tconst baseCcyPos = position.marketItem?.qCcy;\n\t\t\tif (!baseCcyPos) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet baseCcyAcct = tradingAccount.baseCurrency;\n\t\t\tif (!baseCcyAcct) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mt = rfpGateway.getMarketItem(position.code, position.f);\n\t\t\tif (mt === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (baseCcyPos !== baseCcyAcct) {\n\t\t\t\tlet pair = baseCcyPos + baseCcyAcct;\n\n\t\t\t\tlet info = getTradingInstrument(tradingAccount, pair);\n\t\t\t\tif (!info) {\n\t\t\t\t\tpair = baseCcyAcct + baseCcyPos;\n\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t\t}\n\n\t\t\t\tif (!info) {\n\t\t\t\t\tpair = baseCcyAcct + mt.bCcy;\n\n\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t\t\tif (!info) {\n\t\t\t\t\t\tpair = mt.bCcy + baseCcyAcct;\n\t\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!info) {\n\t\t\t\t\t// Find cross symbol\n\t\t\t\t\tlet mtPair: any = findCommonMarketItem(baseCcyPos, baseCcyAcct, rfpGateway);\n\t\t\t\t\tif (mtPair) {\n\t\t\t\t\t\tpair = mtPair.first.code;\n\n\t\t\t\t\t\tif (pair) {\n\t\t\t\t\t\t\tif (subscribe) {\n\t\t\t\t\t\t\t\tposition.additionalSubscriptionPair.add(pair);\n\t\t\t\t\t\t\t\tthis.watchPriceQuote(position.f, pair, rfpGateway);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tposition.additionalSubscriptionPair.delete(pair);\n\t\t\t\t\t\t\t\tthis.unwatchPriceQuote(position.f, pair);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, mtPair.second.code);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (info) {\n\t\t\t\t\tpair = info.code;\n\n\t\t\t\t\tif (subscribe) {\n\t\t\t\t\t\tposition.additionalSubscriptionPair.add(pair);\n\t\t\t\t\t\tthis.watchPriceQuote(position.f, pair, rfpGateway);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.additionalSubscriptionPair.delete(pair);\n\t\t\t\t\t\tthis.unwatchPriceQuote(position.f, pair);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log('Missing context');\n\t\t}\n\t}\n}\n\nexport default TTSubscriptionManager;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { NumberSize, Resizable as ReResizable, ResizableProps } from 're-resizable';\nimport { Direction } from 're-resizable/lib/resizer';\n\nimport AppContext from '../../../contexts/AppContext';\n\nimport { getWtrResizableConfig, WtrResizableConfigItem } from './config';\n\nimport './WtrResizable.module.scss';\nimport positionsStore from '../../../store/PositionsStore/positionsStore';\n\nconst LOCAL_STORAGE_KEY = 'wtrResizableWidths';\n\nconst getStoredSizes = () => {\n\tconst storedString = localStorage.getItem(LOCAL_STORAGE_KEY);\n\n\tif (storedString) {\n\t\ttry {\n\t\t\treturn JSON.parse(storedString);\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\treturn {};\n};\n\nconst storeDimensions = (panelName: string, width: number | undefined, height: number | undefined) => {\n\tconst initialObject = getStoredSizes();\n\tconst newObject = {\n\t\t...initialObject,\n\t\t[panelName]: {\n\t\t\twidth: Number(width) || null,\n\t\t\theight: Number(height) || null,\n\t\t},\n\t};\n\n\tlet newStoredString = null;\n\ttry {\n\t\tnewStoredString = JSON.stringify(newObject, (_, v) => (v === undefined ? null : v));\n\t} catch (e) {\n\t\treturn;\n\t}\n\n\tlocalStorage.setItem(LOCAL_STORAGE_KEY, newStoredString);\n};\n\nconst getEnabledResizeDirection = (config: WtrResizableConfigItem) => {\n\tconst settings = config.enable;\n\tconst hasEnabledX = !settings || settings.right || settings.left;\n\tconst hasEnabledY = !settings || settings.top || settings.bottom;\n\treturn { x: hasEnabledX, y: hasEnabledY };\n};\n\ninterface WtrPanelSize {\n\twidth?: number;\n\theight?: number;\n}\n\ninterface WtrResizableProps extends ResizableProps {\n\tpanelName:\n\t\t| 'watchlist'\n\t\t| 'tradeBoard'\n\t\t| 'positionsGrid'\n\t\t| 'tradeTicket'\n\t\t| 'marketsGroups'\n\t\t| 'marketsNews'\n\t\t| 'simulationsList'\n\t\t| 'simulationsGrid'\n\t\t| 'signalsList'\n\t\t| 'signalsOverview';\n\t//Used by new design currently not implemented\n\t/* | 'marketsNewsRight'\n | 'marketSignals'\n | 'fallers'\n | 'risers'; */\n\tenableResizing?: boolean;\n\tsetSidePanelWidth?: React.Dispatch>;\n\tsetNewsPanelHeight?: React.Dispatch>;\n}\n\n/**\n * This is a wrapper component to the Re-resizable component, used for storing the container sizing data.\n */\nconst WtrResizable = ({\n\tpanelName,\n\tenableResizing,\n\tsize,\n\tchildren,\n\tsetSidePanelWidth,\n\tsetNewsPanelHeight,\n\t...rest\n}: WtrResizableProps) => {\n\tconst isInitialMount = useRef(true);\n\tconst appContext = useContext(AppContext);\n\tconst config = getWtrResizableConfig(panelName, appContext.isArabic);\n\n\tconst enabledDirections = config ? getEnabledResizeDirection(config) : { x: true, y: true };\n\n\tconst setWatchListPanelSize = positionsStore.use.setWatchListPanelSize();\n\tconst setGridHeight = positionsStore.use.setGridHeight();\n\n\tconst defaultSize: WtrPanelSize = {};\n\tif (enabledDirections.x) {\n\t\tdefaultSize.width = config?.minWidth || 0;\n\t}\n\n\tif (enabledDirections.y) {\n\t\tdefaultSize.height = config?.minHeight || 0;\n\t}\n\n\tconst [panelSize, setPanelSize] = useState(defaultSize);\n\n\tconst handleResizeStop = (_e: MouseEvent | TouchEvent, _direction: Direction, _ref: HTMLElement, d: NumberSize) => {\n\t\tsetPanelSize((prevSize) => {\n\t\t\tconst newSize = {\n\t\t\t\t...prevSize,\n\t\t\t};\n\t\t\tif (enabledDirections.x && prevSize.width) {\n\t\t\t\tnewSize.width = prevSize.width + d.width;\n\t\t\t}\n\t\t\tif (enabledDirections.y && prevSize.height) {\n\t\t\t\tnewSize.height = prevSize.height + d.height;\n\t\t\t}\n\t\t\treturn newSize;\n\t\t});\n\n\t\tif (panelName === 'positionsGrid') {\n\t\t\tif (panelSize.height) {\n\t\t\t\tsetGridHeight(panelSize.height + d.height);\n\t\t\t}\n\t\t}\n\n\t\tif (panelName === 'watchlist') {\n\t\t\tsetWatchListPanelSize(panelSize?.width || 0);\n\t\t}\n\n\t\tif (setSidePanelWidth) {\n\t\t\tsetSidePanelWidth((state) => state + 1);\n\t\t}\n\n\t\tif (setNewsPanelHeight && panelSize.height) {\n\t\t\tsetNewsPanelHeight(panelSize.height + d.height);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!panelName) return;\n\n\t\tconst size = getStoredSizes()?.[panelName];\n\t\tconst newSize: WtrPanelSize = {};\n\t\tlet newWidth = null;\n\n\t\tif (enabledDirections.x) {\n\t\t\tnewWidth = size?.width || rest.defaultSize?.width || defaultSize.width || null;\n\t\t}\n\n\t\tlet newHeight = null;\n\t\tif (enabledDirections.y) {\n\t\t\tnewHeight = size?.height || rest.defaultSize?.height || defaultSize.height || null;\n\t\t\tif (panelName === 'positionsGrid') {\n\t\t\t\tsetGridHeight(newHeight);\n\t\t\t}\n\t\t}\n\n\t\tif (newWidth) {\n\t\t\tnewSize.width = newWidth;\n\t\t}\n\t\tif (newHeight) {\n\t\t\tnewSize.height = newHeight;\n\t\t}\n\n\t\tsetPanelSize(newSize);\n\t\tif (setNewsPanelHeight) {\n\t\t\tsetNewsPanelHeight(newHeight);\n\t\t}\n\t}, [panelName, setNewsPanelHeight]);\n\n\tuseEffect(() => {\n\t\tif (!panelName) {\n\t\t\treturn;\n\t\t}\n\t\tif (isInitialMount.current) {\n\t\t\tisInitialMount.current = false;\n\t\t\treturn;\n\t\t}\n\t\tstoreDimensions(panelName, panelSize.width, panelSize.height);\n\t}, [panelName, panelSize.width, panelSize.height]);\n\n\tif (panelName === 'tradeTicket' && !enableResizing) return <>{children};\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default WtrResizable;\n","export interface WtrResizableConfigItem {\n\tminWidth?: number;\n\tminHeight?: number;\n\tmaxWidth?: string | number; // this value can handle percentages\n\tmaxHeight?: string | number;\n\twidth?: string;\n\theight?: string;\n\tenable?: any;\n\thandleClasses?: any;\n}\n\nexport interface WtrResizableConfig {\n\t[key: string]: WtrResizableConfigItem;\n}\n\nexport const getWtrResizableConfig = (panelName: string | undefined, isArabic: boolean) => {\n\tif (!panelName) {\n\t\treturn null;\n\t}\n\n\tconst config: WtrResizableConfig = {\n\t\twatchlist: {\n\t\t\tminWidth: 330,\n\t\t\tmaxWidth: '45%',\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: false,\n\t\t\t\tright: !isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tpositionsGrid: {\n\t\t\tminHeight: 200,\n\t\t\tmaxHeight: '60%',\n\t\t\twidth: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: false,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\ttop: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\ttradeTicket: {\n\t\t\tminWidth: 320,\n\t\t\tmaxWidth: 460,\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: !isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tmarketsGroups: {\n\t\t\tminWidth: 140,\n\t\t\tmaxWidth: isArabic ? 300 : 240,\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: false,\n\t\t\t\tright: !isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tmarketsNews: {\n\t\t\tminHeight: 340,\n\t\t\tmaxHeight: '80%',\n\t\t\twidth: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: false,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\ttop: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tsimulationsList: {\n\t\t\tminWidth: 290,\n\t\t\tmaxWidth: '45%',\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: false,\n\t\t\t\tright: !isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tsimulationsGrid: {\n\t\t\tminHeight: 200,\n\t\t\tmaxHeight: '60%',\n\t\t\twidth: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: false,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\ttop: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tsignalsList: {\n\t\t\tminWidth: 290,\n\t\t\tmaxWidth: '45%',\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: false,\n\t\t\t\tright: !isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tsignalsOverview: {\n\t\t\tminHeight: 328,\n\t\t\tmaxHeight: 400,\n\t\t\twidth: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: false,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\ttop: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\t//This is used by the new design which currently isn`t implemented\n\t\t/* marketsNewsRight: {\n\t\t\t\tminWidth: 275,\n\t\t\t\tmaxWidth: 370,\n\t\t\t\theight: '100%',\n\t\t\t\tenable: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: isArabic ? true : false,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: isArabic ? false : true,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t},\n\t\t\t\thandleClasses: {\n\t\t\t\t\t\tleft: 'resizableHandle',\n\t\t\t\t\t\tright: 'resizableHandle',\n\t\t\t\t},\n\t\t},\n\t\tmarketSignals: {\n\t\t\t\tminWidth: 500,\n\t\t\t\tmaxWidth: '40%',\n\t\t\t\theight: '100%',\n\t\t\t\tenable: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: isArabic ? false : true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: isArabic ? true : false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t},\n\t\t\t\thandleClasses: {\n\t\t\t\t\t\tleft: 'resizableHandle',\n\t\t\t\t\t\tright: 'resizableHandle',\n\t\t\t\t},\n\t\t},\n\t\trisers: {\n\t\t\t\tminWidth: 500,\n\t\t\t\tmaxWidth: '40%',\n\t\t\t\theight: '100%',\n\t\t\t\tenable: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: true,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t},\n\t\t\t\thandleClasses: {\n\t\t\t\t\t\tleft: 'resizableHandle',\n\t\t\t\t\t\tright: 'resizableHandle',\n\t\t\t\t},\n\t\t},\n\t\tfallers: {\n\t\t\t\tminWidth: 500,\n\t\t\t\tmaxWidth: '40%',\n\t\t\t\theight: '100%',\n\t\t\t\tenable: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: isArabic ? true : false,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: isArabic ? false : true,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t},\n\t\t\t\thandleClasses: {\n\t\t\t\t\t\tleft: 'resizableHandle',\n\t\t\t\t\t\tright: 'resizableHandle',\n\t\t\t\t},\n\t\t}, */\n\t};\n\n\tconst keyToFetch = Object.keys(config).find((panelKey) => panelKey.toLowerCase() === panelName.toLowerCase());\n\treturn keyToFetch ? config[keyToFetch] : null;\n};\n","import { ChartTimezone } from '../../utils/functions/enums';\n\nimport { TPreferenceResponse } from './UserPreferencesGateway.types';\n\nexport const defaultCFDPreference = (tradingMode: 'Live' | 'Demo'): TPreferenceResponse => {\n\tconst userPreferences: TPreferenceResponse = {\n\t\tuser_prefs: {\n\t\t\tmeta: {\n\t\t\t\tid: 'tt_web',\n\t\t\t\tapp_version: '1.0',\n\t\t\t\tlastModified: new Date().getMilliseconds().toString(),\n\t\t\t},\n\t\t\tplatform: {\n\t\t\t\taccountType: {\n\t\t\t\t\t_name: tradingMode,\n\t\t\t\t},\n\t\t\t\taccountTypes: {},\n\t\t\t\tlang: {\n\t\t\t\t\t_code: 'en',\n\t\t\t\t\t_name: 'English',\n\t\t\t\t},\n\t\t\t\ttheme: {\n\t\t\t\t\t_type: 'Light',\n\t\t\t\t},\n\t\t\t\ttimezone: {\n\t\t\t\t\t_name: ChartTimezone.Local,\n\t\t\t\t\t_gmtOffset: '',\n\t\t\t\t},\n\t\t\t\tlastLoggedAct: {\n\t\t\t\t\tlive: '',\n\t\t\t\t\tdemo: '',\n\t\t\t\t},\n\t\t\t\tinactivity: 21600,\n\t\t\t\tos: {\n\t\t\t\t\tname: 'Web',\n\t\t\t\t\tversion: '1.0',\n\t\t\t\t},\n\t\t\t},\n\t\t\ttrading: {\n\t\t\t\tsettings: {\n\t\t\t\t\tcfd: {\n\t\t\t\t\t\t_mode: 'Regular',\n\t\t\t\t\t\t_quantityType: 'Amount',\n\t\t\t\t\t\t_tradeFromChartEnabled: true,\n\t\t\t\t\t\t_notificationSoundMuted: false,\n\t\t\t\t\t\t_notificationSoundVolume: 50,\n\t\t\t\t\t},\n\t\t\t\t\tequity: {\n\t\t\t\t\t\t_mode: 'Regular',\n\t\t\t\t\t\t_quantityType: 'Amount',\n\t\t\t\t\t\t_tradeFromChartEnabled: true,\n\t\t\t\t\t\t_notificationSoundMuted: false,\n\t\t\t\t\t\t_notificationSoundVolume: 50,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tcalendar: {},\n\t\t\tcharts: { templates: [], studyTemplates: [], layout: {}, drawingTemplates: [], settingsTemplate: {} },\n\t\t\tsearch: {},\n\t\t\twatchlists: {\n\t\t\t\taccount: [\n\t\t\t\t\t{\n\t\t\t\t\t\twatchlist: [],\n\t\t\t\t\t\t_type: 'Demo',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\twatchlist: [],\n\t\t\t\t\t\t_type: 'Live',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\twatchlist: [],\n\t\t\t\t\t\t_type: 'Demo',\n\t\t\t\t\t\taccountType: 'SpreadBetting',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\twatchlist: [],\n\t\t\t\t\t\t_type: 'Live',\n\t\t\t\t\t\taccountType: 'SpreadBetting',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t};\n\n\treturn userPreferences;\n};\n","import { AppContextProvider } from '../../contexts/AppContext';\nimport { defaultCFDPreference } from '../../gateways/UserPreferencesGateway/defaultCFDPreference';\nimport { TPreferenceResponse } from '../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nexport const storeUserPreferences = (appContext: AppContextProvider) => {\n\tconst convertUserPref = JSON.stringify(appContext.userPreferences);\n\n\tif (convertUserPref !== null && convertUserPref !== 'null') {\n\t\tlocalStorage.setItem(`userPref-${appContext.email}`, convertUserPref);\n\t}\n};\n\nexport const getSavedPreferencesForUser = (appContext: AppContextProvider) => {\n\ttry {\n\t\treturn JSON.parse(localStorage.getItem(`userPref-${appContext.email}`) ?? '{}');\n\t} catch (error) {\n\t\tconsole.error('Error getting saved preferences for user', error);\n\t}\n\n\treturn undefined;\n};\n\nexport const fillUserPrefLocally = (appContext: AppContextProvider, isLiveMode: boolean) => {\n\ttry {\n\t\tconst localUserPref = localStorage.getItem(`userPref-${appContext.email}`);\n\t\tif (localUserPref !== null && localUserPref !== 'null') {\n\t\t\tconst parsedUserPref: TPreferenceResponse = JSON.parse(localUserPref);\n\t\t\tappContext.userPreferences = parsedUserPref;\n\t\t} else {\n\t\t\tappContext.userPreferences = defaultCFDPreference(isLiveMode ? 'Live' : 'Demo');\n\t\t\tappContext.userPreferenceError = true;\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('Error filling user preferences locally', error);\n\t}\n};\n\nexport const loadUserPrefLocally = (appContext: AppContextProvider) => {\n\ttry {\n\t\tif (localStorage.getItem(`userPref-${appContext.email}`)) {\n\t\t\tconst localUserPref = localStorage.getItem(`userPref-${appContext.email}`)!;\n\t\t\tconst parsedUserPref: TPreferenceResponse = JSON.parse(localUserPref);\n\t\t\tif (parsedUserPref) {\n\t\t\t\tappContext.userPreferences = parsedUserPref;\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('Error loading user preferences locally', error);\n\t}\n};\n","import React from 'react';\nimport { Modal as SemanticUiModal } from 'semantic-ui-react';\n\nimport cn from 'classnames';\n\nimport styles from './WtrModal.module.scss';\n\nconst WtrModal = ({ children, ...rest }: any) => {\n\trest.className = cn(rest.className, styles.wtrModal);\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nWtrModal.Header = SemanticUiModal.Header;\nWtrModal.Content = SemanticUiModal.Content;\nWtrModal.Description = SemanticUiModal.Description;\nWtrModal.Actions = SemanticUiModal.Actions;\n\nexport default WtrModal;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"newsfeedContainer\":\"Newsfeed_newsfeedContainer__uFyzH\",\"closeButtonLocation\":\"Newsfeed_closeButtonLocation__HQhXR\",\"empty\":\"Newsfeed_empty__3xH27\",\"emptyIcon\":\"Newsfeed_emptyIcon__3lRpJ\",\"message\":\"Newsfeed_message__3bDJI\",\"contentsAndDisclaimer\":\"Newsfeed_contentsAndDisclaimer__3SUEo\"};","import { HistoryTick, Instrument, PriceQuote } from '../../../gateways/RfpGateway/rfp.types';\nimport { findCommonMarketItem, getMarketItem } from '../../../utils/functions/calculations';\n\nimport { GymTradingAccount } from '../Accounts/GymTradingAccount';\n\nimport { GymHistoryManager } from './GymHistoryManager';\n\n/**\n * The TPRefQuotesStore class defines the `sharedInstance` method that lets clients access\n * the unique singleton instance.\n */\nclass GymRefQuotesStore {\n\tprivate static instance: GymRefQuotesStore;\n\tprivate refQuotes = new Map();\n\n\t/**\n\t * The TPRefQuotesStore's constructor should always be private to prevent direct\n\t * construction calls with the `new` operator.\n\t */\n\tprivate constructor() {}\n\n\t/**\n\t * The static method that controls the access to the singleton instance.\n\t */\n\tpublic static sharedInstance(): GymRefQuotesStore {\n\t\tif (!GymRefQuotesStore.instance) {\n\t\t\tGymRefQuotesStore.instance = new GymRefQuotesStore();\n\t\t}\n\t\treturn GymRefQuotesStore.instance;\n\t}\n\n\tpublic addTicks(historyTicks: HistoryTick[], reqId: string) {\n\t\tthis.refQuotes.set(reqId, historyTicks);\n\t}\n\n\tpublic getPrice(baseCurrency: string, accountCurrency: string, closeTime: number, reqId: string) {\n\t\tif (baseCurrency === accountCurrency) {\n\t\t\treturn 1.0;\n\t\t}\n\n\t\tconst key = `${GymHistoryManager.buildRefQuoteKey(reqId)}_${accountCurrency}`;\n\t\tconst dataItems = this.refQuotes.get(key);\n\t\tif (dataItems) {\n\t\t\tconst dataItem = this.searchDataItem(dataItems, closeTime);\n\t\t\tif (dataItem) {\n\t\t\t\tif (baseCurrency === 'JPY') {\n\t\t\t\t\treturn 1 / dataItem.close;\n\t\t\t\t}\n\t\t\t\treturn dataItem.close;\n\t\t\t}\n\t\t}\n\n\t\treturn NaN;\n\t}\n\n\tpublic getTradingInstrument(account: GymTradingAccount, code: string): Instrument | undefined {\n\t\treturn account.tradingInstruments?.instruments[code];\n\t}\n\n\tprivate convertHistoryTickToPriceQuote = (historyTick: HistoryTick) => {\n\t\treturn {\n\t\t\ta: historyTick.close,\n\t\t\tb: historyTick.close,\n\t\t\tc: historyTick.code,\n\t\t\tf: historyTick.feedId,\n\t\t\th: historyTick.high,\n\t\t\tl: historyTick.low,\n\t\t\tt: historyTick.openTime,\n\t\t} as PriceQuote;\n\t};\n\n\tpublic getQuotePrices(code: string, reqId: string, closeTime: number): PriceQuote | undefined {\n\t\tconst key = `${GymHistoryManager.buildRefQuoteKey(reqId)}_${code}`;\n\t\tconst historyTicks = this.refQuotes.get(key);\n\t\tif (historyTicks) {\n\t\t\tconst historyTick = this.searchDataItem(historyTicks, closeTime);\n\t\t\tif (historyTick) {\n\t\t\t\treturn this.convertHistoryTickToPriceQuote(historyTick);\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tpublic convertToBaseCurrency = (\n\t\taccount: GymTradingAccount,\n\t\tquoteCurrency: string,\n\t\tfeedId: string,\n\t\tsymbol: string,\n\t\tisBuy: boolean,\n\t\tpl: number,\n\t\tclosePrice: number,\n\t\tcloseTime: number,\n\t\treqId: string\n\t) => {\n\t\tconst baseAccountCurrency = account.baseCurrency;\n\t\tif (quoteCurrency === baseAccountCurrency) {\n\t\t\treturn pl;\n\t\t}\n\n\t\tlet pair = quoteCurrency + baseAccountCurrency;\n\t\tlet inverse = false;\n\t\tlet homeCurrencyConversionRate;\n\n\t\tlet info = this.getTradingInstrument(account, pair);\n\n\t\tif (!info) {\n\t\t\tpair = baseAccountCurrency + quoteCurrency;\n\t\t\tinfo = this.getTradingInstrument(account, pair);\n\t\t\tinverse = true;\n\t\t}\n\n\t\tlet lastQuoteBaseCcy;\n\t\tif (info) {\n\t\t\tlastQuoteBaseCcy = this.getQuotePrices(info.code, reqId, closeTime);\n\t\t}\n\n\t\t//no luck...keep digging for a path\n\t\tif (!lastQuoteBaseCcy) {\n\t\t\tinverse = false;\n\t\t\tpl = pl / closePrice;\n\n\t\t\tlet mt = getMarketItem(feedId, symbol);\n\t\t\tif (mt) {\n\t\t\t\tpair = mt.bCcy + baseAccountCurrency;\n\t\t\t\tinfo = this.getTradingInstrument(account, pair);\n\n\t\t\t\tif (!info) {\n\t\t\t\t\tpair = baseAccountCurrency + mt.bCcy;\n\t\t\t\t\tinfo = this.getTradingInstrument(account, pair);\n\t\t\t\t\tinverse = true;\n\t\t\t\t}\n\n\t\t\t\tif (!info) {\n\t\t\t\t\tlet mtPair: any = findCommonMarketItem(quoteCurrency, baseAccountCurrency, null);\n\t\t\t\t\tif (mtPair) {\n\t\t\t\t\t\tpl = pl * closePrice;\n\t\t\t\t\t\tlastQuoteBaseCcy = this.getQuotePrices(mtPair.first.code, reqId, closeTime);\n\n\t\t\t\t\t\tif (lastQuoteBaseCcy) {\n\t\t\t\t\t\t\tinverse = !(mtPair.first.bCcy === quoteCurrency);\n\t\t\t\t\t\t\tif (inverse) {\n\t\t\t\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\t\t\t\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\t\t\t\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinfo = this.getTradingInstrument(account, mtPair.second.code);\n\t\t\t\t\t\t\tinverse = mtPair.second.bCcy === baseAccountCurrency;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn NaN;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn NaN;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!info) {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t\tlastQuoteBaseCcy = this.getQuotePrices(info.code, reqId, closeTime);\n\n\t\t\tif (lastQuoteBaseCcy) {\n\t\t\t\tif (inverse) {\n\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t\t\t} else {\n\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t\treturn pl;\n\t\t}\n\n\t\tif (inverse) {\n\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t} else {\n\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t}\n\n\t\treturn pl;\n\t};\n\n\tpublic searchDataItem(a: HistoryTick[], closeTime: number): HistoryTick | undefined {\n\t\tlet low = 0;\n\t\tlet high = a.length - 1;\n\t\tlet mid = 0;\n\n\t\twhile (low <= high) {\n\t\t\tmid = parseInt(`${(low + high) / 2}`);\n\t\t\t//mid = (low + high) / 2;\n\t\t\tconst midVal = a[mid].closeTime;\n\t\t\tif (midVal < closeTime) low = mid + 1;\n\t\t\telse if (midVal > closeTime) high = mid - 1;\n\t\t\telse return a[mid];\n\t\t}\n\n\t\tconst index = Math.min(low, high);\n\t\tif (index < 0 && a.length > 0) {\n\t\t\treturn a[0];\n\t\t}\n\t\tif (index >= a.length && a.length > 0) {\n\t\t\treturn a[a.length - 1];\n\t\t}\n\t\treturn a[Math.min(low, high)];\n\t}\n}\n\nexport { GymRefQuotesStore };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tier\":\"GroupBadge_tier__23Mqs\",\"groupIcon\":\"GroupBadge_groupIcon__30m4r\",\"commodities\":\"GroupBadge_commodities__2NlTk\",\"crypto\":\"GroupBadge_crypto__2EwNh\",\"cfd\":\"GroupBadge_cfd__1QFAp\",\"etf\":\"GroupBadge_etf__LONgs\",\"energy\":\"GroupBadge_energy__1kr5K\",\"forex\":\"GroupBadge_forex__jFTCx\",\"indices\":\"GroupBadge_indices__30_Wj\",\"metals\":\"GroupBadge_metals__3b691\",\"stocks\":\"GroupBadge_stocks__bPd48\",\"equities\":\"GroupBadge_equities__3P9YP\",\"tier1\":\"GroupBadge_tier1__1nsgY\",\"tier2\":\"GroupBadge_tier2__21mpz\",\"tier3\":\"GroupBadge_tier3__2BgU7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dailyPercentage\":\"DailyPercent_dailyPercentage__34t5S\",\"positive\":\"DailyPercent_positive__3y3Gi\",\"negative\":\"DailyPercent_negative__1dKvn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"item\":\"NotificationsItem_item__3WR2W\",\"alert\":\"NotificationsItem_alert__1iED1\",\"icon\":\"NotificationsItem_icon__3VVg7\",\"iconContainer\":\"NotificationsItem_iconContainer__1AjZu\",\"content\":\"NotificationsItem_content__2hrop\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AccountPanel_container__3NU2y\",\"accountPanelButton\":\"AccountPanel_accountPanelButton__2xQN6\",\"accountStatsWrapper\":\"AccountPanel_accountStatsWrapper__2oJ7T\",\"iconPlusEqual\":\"AccountPanel_iconPlusEqual__M6lZ5\",\"buttonToggleIcon\":\"AccountPanel_buttonToggleIcon__MTu2_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"infoModalWrapper\":\"InfoModal_infoModalWrapper__3_qZf\",\"contentWrapper\":\"InfoModal_contentWrapper__GAALs\",\"left\":\"InfoModal_left__1W_cg\",\"right\":\"InfoModal_right__1oixJ\",\"top\":\"InfoModal_top__2NsGG\",\"bottom\":\"InfoModal_bottom__2ZqGR\",\"header\":\"InfoModal_header__3Ybi3\",\"content\":\"InfoModal_content__25aO-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popupContainer\":\"SignalsPopup_popupContainer__1LXzp\",\"title\":\"SignalsPopup_title__2xQYt\",\"content\":\"SignalsPopup_content__2Yb1l\",\"buttonsContainer\":\"SignalsPopup_buttonsContainer__39DhS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AuthLayout_container__2Fzzv\",\"detachContainer\":\"AuthLayout_detachContainer__2Zndd\",\"detachContainerScroll\":\"AuthLayout_detachContainerScroll__1ljq8\",\"header\":\"AuthLayout_header__1O2GZ\",\"navigation\":\"AuthLayout_navigation__2_Wyj\",\"content\":\"AuthLayout_content__3wD8n\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"calendar\":\"Calendar_calendar__3CLj-\",\"displayNone\":\"Calendar_displayNone__3_EIv\",\"loader\":\"Calendar_loader__2mXLP\",\"fallBackCalendar\":\"Calendar_fallBackCalendar__1GgMf\",\"calendarContainer\":\"Calendar_calendarContainer__30Qrk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fullWidthHeight\":\"DashboardContainerComponent_fullWidthHeight__2i397\"};","import React, { Dispatch, SetStateAction, useContext, useMemo, useRef } from 'react';\nimport cn from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from '../../../../Markets/MarketsGridNew/components/TableSettingsModal.module.scss';\nimport { useClickOutside } from '../../../../Markets/MarketsGridNew/hooks/useClickOutside';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport tradingAccountStore from '../../../../../../store/tradingAccountStore';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport { TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\n\ninterface SettingGridProps {\n\ttable: any;\n\tsetShowSettingsModal: Dispatch>;\n\ttype?: TradingPositionState;\n\tname: string;\n}\n\nconst SettingGrid = ({ table, setShowSettingsModal, type = TradingPositionState.open, name }: SettingGridProps) => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst columns = table.getAllLeafColumns();\n\n\tconst isChildWindow = appContext.isChildWindow ?? false;\n\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\n\tconst { t } = useTranslation();\n\n\tconst settingsRef = useRef(null);\n\tconst quantityType = dashboardContext.quantityType;\n\n\t// Click outside or escape key press hook\n\tuseClickOutside(settingsRef, () => setShowSettingsModal(false));\n\n\tconst changeCaption = useMemo(() => {\n\t\tconst caption = t('wtr:CHANGE');\n\t\treturn caption[caption.length - 1] === ':' ? caption.slice(0, -1) : caption;\n\t}, []);\n\n\tconst translations: { [key: string]: string } = useMemo(() => {\n\t\treturn {\n\t\t\tinstrument: t('en:INSTRUMENT'),\n\t\t\tsimulationId: t('wtr:SIMULATION'),\n\t\t\tside: t('en:SIDE'),\n\t\t\ttype: t('en:Type'),\n\t\t\tquantityType: quantityType === 'Lots' ? t(`en:QT_LOTS`) : t(`en:QT_AMOUNT`),\n\t\t\tamount: t(`en:QT_AMOUNT`),\n\t\t\tlots: t(`en:QT_LOTS`),\n\t\t\tonDate: t('wtr:ON_DATE'),\n\t\t\topenDate: t('en:OPEN_DATE'),\n\t\t\tcloseOn: t('wtr:WTR_CLOSED_ON'),\n\t\t\topen: t('en:OPEN_AT'),\n\t\t\tclosed: t('en:CLOSE_AT'),\n\t\t\tchange: changeCaption,\n\t\t\tcurrent: t('en:CURRENT'),\n\t\t\tTakeProfit: t('en:TAKE_PROFIT'),\n\t\t\tStopLoss: t('en:STOP_LOSS'),\n\t\t\tnetPL: t('en:NET_PL'),\n\t\t\tcreatedOn: t('wtr:CREATED_ON'),\n\t\t\tdistanceToMarket: t('wtr:DISTANCE_TO_MARKET'),\n\t\t\tgrossPL: t('en:GROSS_PL'),\n\t\t\ttime: t('en:OPEN_TIME'),\n\t\t\texpiryOn: t('en:EXPIRY_ON'),\n\t\t\tswap: t('en:SWAP'),\n\t\t\tclose: t('en:CLOSE'),\n\t\t\tclosedTime: t('en:Close Time'),\n\t\t\tpipsChange: t(`wtr:WTR_PL_IN_${isSpreadBettingAccount ? 'POINTS' : 'PIPS'}`),\n\t\t\tcomm: t('en:COMMISSION'),\n\t\t\tposId: type === TradingPositionState.pending ? t('en:ORDER_ID') : t('en:POSITION_ID'),\n\t\t\tcomment: t('en:POSITION_COMMENT'),\n\t\t\tdividend: t('en:DIVIDEND'),\n\t\t\tsettings: t('en:SETTINGS'),\n\t\t};\n\t}, []);\n\n\tconst onToggleChange = (column: any) => {\n\t\tlocalStorage.setItem(name, JSON.stringify(table.getState().columnVisibility));\n\t\treturn column.getToggleVisibilityHandler();\n\t};\n\n\treturn (\n\t\t\n\t\t\t
{t('wtr:COLUMN_CHOOSER')}
\n\n\t\t\t
\n\t\t\t\t{columns.map((column: any) => {\n\t\t\t\t\tconst isDisabledJapan = appContext.isJapanAccount && (column.id === 'dividend' || column.id === 'comm');\n\t\t\t\t\tconst isDisabled =\n\t\t\t\t\t\tcolumn.id === 'instrument' ||\n\t\t\t\t\t\tcolumn.id === 'close' ||\n\t\t\t\t\t\tcolumn.id === 'settings' ||\n\t\t\t\t\t\tcolumn.id === 'simulationId';\n\n\t\t\t\t\tif (isDisabled || isDisabledJapan) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SettingGrid;\n","import React, { useContext, useState, useEffect } from 'react';\nimport styles from '../../PositionGrid/PositionGrid.module.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ColumnFiltersState, OnChangeFn } from '@tanstack/react-table';\nimport { useTranslation } from 'react-i18next';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport { TicketLayout } from '../../../../../../utils/functions/enums';\nimport getTimeFrameTranslation from '../../../../../../utils/functions/getTimeFrameTranslation';\nimport InstrumentContext from '../../../../../../contexts/InstrumentContext';\nimport useOrderTicketAccess from '../../../../../../utils/hooks/useOrderTicketAccess';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport Button from '../../../../../../shared/Button';\nimport { TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport { IconName } from '@fortawesome/free-brands-svg-icons';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../pages/TradersGym/TradersGymContext';\n\nconst RenderClearFilters = ({\n\tcolumnFilters,\n\tsetColumnFilters,\n\ttype,\n\tperiodDropdownRef,\n}: {\n\tcolumnFilters: ColumnFiltersState;\n\tsetColumnFilters: OnChangeFn;\n\ttype: TradingPositionState;\n\tperiodDropdownRef?: any;\n}) => {\n\tconst { t } = useTranslation();\n\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst instrumentContext = useContext(InstrumentContext);\n\n\tconst orderTicketAccess = useOrderTicketAccess();\n\tconst setTicketLayout = tradingViewStore.use.setTicketLayout();\n\tconst [iconValue, setIconValue] = React.useState();\n\tconst positionTab = positionsStore.use.positionTab();\n\n\tlet emptyFilteredStateMessage = t('wtr:NO_OPEN_POSITIONS_FOUND');\n\tlet emptyStateMessage = appContext.isJapanAccount ? t('wtr:JP_NO_OPEN_POSITIONS') : t('en:NO_OPEN_POSITIONS');\n\t\n\tconst closeTrade = dashboardContext.closeTrade;\n\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext } = gymContext;\n\n\tif (type === TradingPositionState.pending) {\n\t\temptyFilteredStateMessage = t('wtr:NO_NAMED_PENDING_ORDERS');\n\t\temptyStateMessage = t('wtr:NO_PENDING_ORDERS');\n\t} else if (type === TradingPositionState.closed) {\n\t\temptyFilteredStateMessage = t('wtr:NO_POSITIONS_FOUND');\n\t\temptyStateMessage = t('wtr:WTR_NO_CLOSED_POSITIONS');\n\t}\n\n\tconst handleStartTrading = (event: any) => {\n\t\tevent.stopPropagation();\n\t\tif (orderTicketAccess()) {\n\t\t\tsetTicketLayout(TicketLayout.Dock);\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.showOrderTicket = true;\n\t\t\tinstrumentContext.focusInstrumentSearchInput();\n\t\t\tdashboardContext.startTradingNow = true;\n\t\t}\n\t\treturn false;\n\t};\n\t\n\tconst openPeriodDropdown = (event: React.MouseEvent) => {\n\t\tconst opener: any = event.target;\n\t\tconst periodDropDownComponent = periodDropdownRef.current;\n\n\t\tif (!periodDropDownComponent) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasOpenedDropDown = opener.dataset.hasOpenedDropDown === 'true';\n\t\tif (!hasOpenedDropDown) {\n\t\t\tperiodDropDownComponent.open();\n\t\t\topener.dataset.hasOpenedDropDown = 'true';\n\t\t} else {\n\t\t\tperiodDropDownComponent.close();\n\t\t\topener.dataset.hasOpenedDropDown = 'false';\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (positionTab === 0) {\n\t\t\tsetIconValue(['fal', 'chart-pie']);\n\t\t}\n\n\t\tif (positionTab === 1) {\n\t\t\tsetIconValue(['fal', 'tasks']);\n\t\t}\n\n\t\tif (positionTab === 2) {\n\t\t\tsetIconValue(['fal', 'clock-rotate-left']);\n\t\t}\n\t}, [positionTab, columnFilters.length]);\n\n\treturn columnFilters.length > 0 ? (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t{emptyStateMessage}\n\t\t\t\t{positionTab === 2 && !tradersGymContext.isActive ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{getTimeFrameTranslation(closeTrade, t)}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t)}\n\t\t\t
\n\t\t\t{positionTab !== 2 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t) : (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t{emptyStateMessage}\n\t\t\t\t{positionTab === 2 && !tradersGymContext.isActive ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{getTimeFrameTranslation(closeTrade, t)}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t)}\n\t\t\t
\n\t\t\t{positionTab !== 2 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default RenderClearFilters;\n","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport { formatNumberWithCommas } from '../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\nimport { defineBaseCurrencySymbol } from '../functions/calculations';\n\n/**\n * formats the incoming data to a string containing the currency symbol and the value\n * @param accountId The selected trading account\n * @returns the formatted values ready for displaying with the corresponding symbols\n */\nconst useMoneyFormatter = (accountId: any) => {\n\tconst appContext = useContext(AppContext);\n\tconst symbol = defineBaseCurrencySymbol(accountId);\n\n\treturn (value: number) : string => {\n\t\tconst formattedValue = formatNumberWithCommas(Math.floor(value), 0, appContext.languageSettings);\n\t\tif (accountId?.isJapanAccount) return `${symbol} ${formattedValue}`;\n\n\t\treturn `${symbol} ${formatNumberWithCommas(value, 2, appContext.languageSettings)}`;\n\t};\n};\n\nexport default useMoneyFormatter;\n","module.exports = __webpack_public_path__ + \"static/media/metals.fcf62e92.svg\";","module.exports = __webpack_public_path__ + \"static/media/forex.94ae5d13.svg\";","module.exports = __webpack_public_path__ + \"static/media/crypto.a05a0401.svg\";","module.exports = __webpack_public_path__ + \"static/media/energy.ba3dc84e.svg\";","module.exports = __webpack_public_path__ + \"static/media/indices.4b656e22.svg\";","import React, { useContext } from 'react';\nimport { OverlayTrigger } from 'react-bootstrap';\nimport Tooltip from '../../../../../components/Tooltip/Tooltip';\nimport styles from '../../PositionGrid/PositionGrid.module.scss';\nimport { Button } from 'semantic-ui-react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { formatNumberWithCommas } from '../../../Watchlist/Instrument/formattedQuoteNumber';\nimport { useTranslation } from 'react-i18next';\nimport {\n\tGridType,\n\tstopLossTypes,\n\tTicketLayout,\n\tTradingPositionLimitType,\n} from '../../../../../../utils/functions/enums';\nimport { TradingPosition, TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport InstrumentContext from '../../../../../../contexts/InstrumentContext';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport pipStore from '../../../../../../store/PipsStore/pipStore';\nimport orderStore from '../../../../../../store/OrderStore/orderStore';\nimport useSelectedTradingAccount from '../../../../../../utils/hooks/useSelectedTradingAccount';\nimport { hidePopup } from '../helpers';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\n\ninterface LimitProfitLossButtonProps {\n\tinfo: any;\n\ttype: string;\n\tgridType: GridType;\n}\n\nconst LimitProfitLossButton = ({ info, type, gridType }: LimitProfitLossButtonProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst languageSettings = appContext.languageSettings;\n\tconst isArabic = appContext.isArabic;\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\n\tconst setTradeProps = orderStore.use.setTradeProps();\n\tconst stopLossPips = pipStore.use.stopLoss();\n\tconst takeProfitPips = pipStore.use.takeProfit();\n\tconst fillStoreFromPosition = orderStore.use.fillStoreFromPosition();\n\tconst tradingPositions = dashboardContext.getTradingPositions();\n\tconst activeTradingAccount = useSelectedTradingAccount();\n\n\tconst openTicket = (e: any) => {\n\t\thidePopup(isArabic);\n\t\tdashboardContext.closeAllOtherTabs();\n\n\t\tconst name = e.column.id;\n\t\tconst record = e.row.original;\n\n\t\tlet tradingPositionState = TradingPositionState.open;\n\n\t\tif (gridType === GridType.Order) {\n\t\t\ttradingPositionState = TradingPositionState.pending;\n\t\t}\n\n\t\tlet limitsType: TradingPositionLimitType[] = [];\n\t\tif (name === TradingPositionLimitType.StopLoss) {\n\t\t\tlimitsType.push(TradingPositionLimitType.StopLoss);\n\t\t} else if (name === TradingPositionLimitType.TakeProfit) {\n\t\t\tlimitsType.push(TradingPositionLimitType.TakeProfit);\n\t\t} else if (name !== 'NaN' && record.TakeProfit !== 'NaN') {\n\t\t\tlimitsType.push(TradingPositionLimitType.TakeProfit, TradingPositionLimitType.StopLoss);\n\t\t}\n\n\t\tif (gridType === GridType.Position) {\n\t\t\tfillStoreFromPosition(record.position, limitsType, true, { takeProfitPips, stopLossPips });\n\t\t\tsetTradeProps({\n\t\t\t\tisPreservedValue: true,\n\t\t\t});\n\t\t} else if (gridType === GridType.Order) {\n\t\t\tfillStoreFromPosition(record.position, limitsType, true);\n\t\t}\n\n\t\tsetTradeProps({\n\t\t\tstopLossType:\n\t\t\t\t!!record?.position?.trailingStop && record?.position?.trailingStop > 0\n\t\t\t\t\t? stopLossTypes.Trailing\n\t\t\t\t\t: stopLossTypes.Normal,\n\t\t});\n\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tdashboardContext.showOrderTicket = true;\n\n\t\t\tif (name === TradingPositionLimitType.StopLoss || name === TradingPositionLimitType.TakeProfit) {\n\t\t\t\tdashboardContext.gridButton =\n\t\t\t\t\tname === TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t? TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t: TradingPositionLimitType.TakeProfit;\n\t\t\t} else if (name) {\n\t\t\t\tdashboardContext.gridButton = name;\n\t\t\t} else {\n\t\t\t\tdashboardContext.gridButton = 'Menu Item';\n\t\t\t}\n\n\t\t\tif (record) {\n\t\t\t\tconst positions: any = tradingPositions.filter(\n\t\t\t\t\t(t) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === tradingPositionState &&\n\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t\tdashboardContext.selectedInstrument = record.position.marketItem;\n\t\t\t}\n\t\t} else {\n\t\t\tdashboardContext.newOrderModalToggle = {\n\t\t\t\torderTicket: true,\n\t\t\t\tconfirmOrder: false,\n\t\t\t};\n\n\t\t\tif (record) {\n\t\t\t\tconst positions = tradingPositions.filter(\n\t\t\t\t\t(t: TradingPosition) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === tradingPositionState &&\n\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t\tdashboardContext.selectedInstrument = record.position.marketItem;\n\t\t\t}\n\n\t\t\tif (name === TradingPositionLimitType.StopLoss || name === TradingPositionLimitType.TakeProfit) {\n\t\t\t\tdashboardContext.gridButton =\n\t\t\t\t\tname === TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t? TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t: TradingPositionLimitType.TakeProfit;\n\t\t\t} else if (name) {\n\t\t\t\tdashboardContext.gridButton = name;\n\t\t\t} else {\n\t\t\t\tdashboardContext.gridButton = 'Menu Item';\n\t\t\t}\n\t\t}\n\t};\n\n\tconst record = info.row.original;\n\n\tconst value = type === 'stopLoss' ? record.StopLoss : record.TakeProfit;\n\n\tconst isEmptyTrailingLoss = !!record?.position?.trailingStop && record?.position?.trailingStop > 0;\n\n\tif ((record && record.StopLoss !== 'Head') || record.TakeProfit !== 'Head') {\n\t\treturn (\n\t\t\t\n\t\t\t\t\t\t{type === 'stopLoss'\n\t\t\t\t\t\t\t? isEmptyTrailingLoss\n\t\t\t\t\t\t\t\t? t('en:WTR_SET_TRAILING_STOP_LOSS')\n\t\t\t\t\t\t\t\t: record?.StopLoss > 0\n\t\t\t\t\t\t\t\t? t('wtr:SET_STOP_LOSS_TOOLTIP')\n\t\t\t\t\t\t\t\t: t('wtr:WTR_SET_STOP_LOSS')\n\t\t\t\t\t\t\t: record?.TakeProfit > 0\n\t\t\t\t\t\t\t? t('wtr:SET_TAKE_PROFIT_TOOLTIP')\n\t\t\t\t\t\t\t: t('wtr:WTR_SET_TAKE_PROFIT')}{' '}\n\t\t\t\t\t\t{type === 'stopLoss'\n\t\t\t\t\t\t\t? !isNaN(record?.StopLoss) && record?.StopLoss > 0 && record?.StopLoss\n\t\t\t\t\t\t\t: !isNaN(record?.TakeProfit) && record?.TakeProfit > 0 && record?.TakeProfit}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t} else return <>;\n};\n\nexport default LimitProfitLossButton;\n","import React, { useContext } from 'react';\nimport { OverlayTrigger } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Tooltip from '../../../../../components/Tooltip/Tooltip';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport { GridType, TicketLayout } from '../../../../../../utils/functions/enums';\nimport { TradingPosition, TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport useSelectedTradingAccount from '../../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport styles from '../../../../Markets/MarketsGridNew/MarketsTable.module.scss';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../pages/TradersGym/TradersGymContext';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\n\ninterface CloseIconProps {\n\tinfo: any;\n\theader?: boolean;\n\tgridType: GridType;\n\tgym?: boolean;\n}\nconst CloseIcon = ({ info, header = false, gridType, gym = false }: CloseIconProps) => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst tradingPositions = dashboardContext.getTradingPositions();\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { getPositions } = gymContext;\n\tconst isArabic = appContext.isArabic;\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\n\tconst activeTradingAccount = useSelectedTradingAccount();\n\n\tconst { t } = useTranslation();\n\n\tlet tooltip = header ? t('en:TRADES_CLOSE_ALL_POSITIONS') : t('en:TRADES_CLOSE_POSITION');\n\n\tif (gridType === GridType.Order) {\n\t\ttooltip = header ? t('en:TRADES_CANCEL_ALL_ORDERS') : t('en:TRADES_CANCEL_ORDER');\n\t}\n\n\tconst orderIconsSize = '20px';\n\tconst record = info?.row?.original;\n\n\tconst iconStyle = isArabic\n\t\t? {\n\t\t\t\tfontSize: orderIconsSize,\n\t\t\t\tmarginRight: '0',\n\t\t }\n\t\t: {\n\t\t\t\tfontSize: orderIconsSize,\n\t\t\t\tmarginLeft: '0',\n\t\t };\n\n\tconst showClose = () => {\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tif (header || (record && record.current > 0)) {\n\t\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\t\tif (gridType === GridType.Position) {\n\t\t\t\t\tdashboardContext.showCloseTicket = true;\n\t\t\t\t} else if (gridType === GridType.Order) {\n\t\t\t\t\tdashboardContext.showCancelTicket = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (gridType === GridType.Position) {\n\t\t\t\tdashboardContext.modalToggle = { closePosition: true, closeOrder: false };\n\t\t\t} else if (gridType === GridType.Order) {\n\t\t\t\tdashboardContext.modalToggle = { closePosition: false, closeOrder: true };\n\t\t\t}\n\t\t}\n\n\t\tlet tradingPositionState = TradingPositionState.open;\n\n\t\tif (gridType === GridType.Order) {\n\t\t\ttradingPositionState = TradingPositionState.pending;\n\t\t}\n\n\t\tif (header) {\n\t\t\tif (gym) {\n\t\t\t\tconst tradingPositions = getPositions(tradingPositionState);\n\t\t\t\tdashboardContext.selectedPosition = tradingPositions;\n\t\t\t} else {\n\t\t\t\tconst allPositions = tradingPositions.filter(\n\t\t\t\t\t(open: TradingPosition) => open.state === tradingPositionState && open.aId === activeTradingAccount?.id\n\t\t\t\t);\n\t\t\t\tdashboardContext.selectedPosition = allPositions;\n\t\t\t}\n\n\t\t\tdashboardContext.headerSelected = true;\n\t\t} else {\n\t\t\tdashboardContext.headerSelected = false;\n\t\t\tif (!gym) {\n\t\t\t\tconst positions: any = tradingPositions.filter(\n\t\t\t\t\t(t) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === tradingPositionState &&\n\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t} else {\n\t\t\t\tconst tradingPositions = getPositions(tradingPositionState);\n\t\t\t\tconst positions: any = tradingPositions.filter(\n\t\t\t\t\t(t) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === tradingPositionState &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\t\t{tooltip}\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t
showClose()}>\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default CloseIcon;\n","import React, {useContext} from 'react';\n\nimport cn from 'classnames';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {IconProp} from '@fortawesome/fontawesome-svg-core';\nimport {useTranslation} from 'react-i18next';\n\nimport statusStore, {StatusStore} from '../../store/accountStatusStore';\n\nimport {TradersGymContext, TradersGymContextType} from '../../pages/TradersGym/TradersGymContext';\n\nimport styles from './AccountStatusCTA.module.scss';\n\ninterface AccountStatusCTAProps {\n className?: string;\n labelClass?: string;\n disabled?: boolean;\n onClick?: (event: React.MouseEvent) => void;\n icon?: IconProp;\n size?: 'sm' | 'md' | 'lg' | 'fluid';\n type?: 'submit';\n variant?: 'primary' | 'secondary' | 'danger' | 'outline';\n smallFont?: boolean;\n isFullWidth?: boolean;\n isFullHeight?: boolean;\n label?: string;\n}\n\nconst AccountStatusCTA: React.FC = (\n {\n className,\n labelClass,\n disabled = false,\n onClick,\n icon,\n size = 'md',\n type,\n variant = 'primary',\n smallFont = false,\n isFullWidth = false,\n isFullHeight = false,\n label,\n }\n) => {\n const _className = cn(\n smallFont ? styles.smallFont : '',\n className,\n styles.button,\n styles[size],\n styles[variant],\n {\n [styles.disabled]: disabled,\n [styles.outlineDisabled]: disabled && variant === 'outline',\n },\n isFullWidth ? styles.fullWidth : '',\n isFullHeight ? styles.fullHeight : ''\n );\n\n const {t} = useTranslation();\n const permissions = statusStore((state: StatusStore) => state.permissions);\n const accountMenuAction = permissions?.accountMenuAction;\n\n const gymContext = useContext(TradersGymContext);\n const {tradersGymContext} = gymContext as TradersGymContextType;\n\n const handleButtonClick = (event: React.MouseEvent) => {\n if (tradersGymContext.isActive) {\n tradersGymContext.isActive = false;\n }\n\n if (!disabled && typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n if (!accountMenuAction || !label) return null;\n\n return (\n \n );\n};\n\nexport default AccountStatusCTA;\n","import { TradingMode } from '../gateways/RfpGateway/rfp.types';\n\nconst OBFUSCATION_ITERATIONS = 3;\nconst TOKEN_KEY = 'uToken';\n\ntype TCredentials = {\n\tusername?: string | null | undefined;\n\tpassword?: string | null | undefined;\n\ttfboSessionId?: string | null | undefined;\n\ttfboToken?: string | null | undefined;\n\ttradingMode?: TradingMode | null | undefined;\n\tenableSSO?: boolean;\n\tsso_token?: string;\n\tcreatedAt?: number;\n};\n\nconst prepareAndEncodeData = (value: TCredentials): string => {\n\tconst creds = { ...value };\n\tdelete creds.password;\n\tcreds.createdAt = Date.now();\n\n\tlet result = JSON.stringify(creds);\n\t// for maximum security (he he) Base64 the data 3 times; no way to break this\n\t// tried to implement a Caesar shift but was not working and thought this is secure enough\n\tfor (let i = 0; i <= OBFUSCATION_ITERATIONS; i++) {\n\t\tresult = Buffer.from(result).toString('base64');\n\t}\n\n\treturn result;\n};\n\nconst decodeData = (value: string | null): object => {\n\tif (!value) return {};\n\t// if for some reason decoding fails we fallback to an empty object\n\ttry {\n\t\tlet result = value;\n\t\tfor (let i = 0; i <= OBFUSCATION_ITERATIONS; i++) {\n\t\t\tresult = Buffer.from(result, 'base64').toString('utf8');\n\t\t}\n\t\treturn JSON.parse(result.toString());\n\t} catch {\n\t\treturn {};\n\t}\n};\n\nclass CredentialsManager {\n\tprivate static _credentials: TCredentials = {};\n\n\tprivate constructor() {}\n\n\tpublic static getCredentials(): Readonly {\n\t\tconst creds = decodeData(localStorage.getItem(TOKEN_KEY));\n\n\t\treturn { ...creds, ...this._credentials };\n\t}\n\n\tpublic static setCredentials(value: TCredentials): void {\n\t\tthis._credentials = { ...this._credentials, ...value };\n\t\tlocalStorage.setItem(TOKEN_KEY, prepareAndEncodeData(this._credentials));\n\t}\n\n\tpublic static clearCredentials(): void {\n\t\tlocalStorage.removeItem(TOKEN_KEY);\n\t}\n}\n\nexport default {\n\tgetCredentials: CredentialsManager.getCredentials.bind(CredentialsManager),\n\tsetCredentials: CredentialsManager.setCredentials.bind(CredentialsManager),\n\tclearCredentials: CredentialsManager.clearCredentials.bind(CredentialsManager),\n};\n","import { useContext } from 'react';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport {\n\tconvertTWatchlistsToWatchListData,\n\tDEFAULT_FEED_ID,\n\tdynamicWatchlistPreference,\n} from '../functions/WatchlistUtils';\nimport { TWatchlists } from '../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport AppContext from '../../contexts/AppContext';\nimport { TradingAccountType } from '../functions/enums';\nimport watchListStore from '../../store/WatchListStore/watchListStore';\n\nexport const useDynamicWatchLists = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst appContext = useContext(AppContext);\n\n\tconst setCurrentWatchList = watchListStore.use.setCurrentWatchList();\n\tconst isChildWindow = appContext.isChildWindow || false;\n\tconst getCurrentWatchList = watchListStore.use.getCurrentWatchList();\n\tconst currentWatchList = getCurrentWatchList(isChildWindow);\n\tconst setWatchlistsForAllTradingModes = watchListStore.use.setWatchlistsForAllTradingModes();\n\n\treturn (cfdWatchlists: TWatchlists[], isSpreadBettingAcc: boolean, comingFromPreferences?: boolean) => {\n\t\tif (cfdWatchlists.length > 0 || dashboardContext.defaultWatchLists.length > 0) {\n\t\t\tlet dynamicWatchlists: any = [];\n\t\t\tif (dashboardContext.defaultWatchLists.length > 0) {\n\t\t\t\tfor (let watchList of dashboardContext.defaultWatchLists) {\n\t\t\t\t\tconst currentDynamicWatchlists = watchList?.items.map((item) => {\n\t\t\t\t\t\treturn dynamicWatchlistPreference(DEFAULT_FEED_ID, item.title, item.codes_csv, item.order);\n\t\t\t\t\t});\n\t\t\t\t\tdynamicWatchlists = [...dynamicWatchlists, ...currentDynamicWatchlists];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (dynamicWatchlists.length > 0 && !isSpreadBettingAcc) {\n\t\t\t\tdashboardContext.watchlist = [...dynamicWatchlists, ...cfdWatchlists];\n\t\t\t} else {\n\t\t\t\tdashboardContext.watchlist = [...cfdWatchlists];\n\t\t\t}\n\n\t\t\tlet watchListName: string | undefined = currentWatchList;\n\t\t\tif (appContext.isJapanAccount && !isChildWindow) {\n\t\t\t\tconst liveCFDWatchlist = appContext.userPreferences?.user_prefs?.watchlists?.account.find((account) => {\n\t\t\t\t\treturn account && account._type.toUpperCase() === TradingAccountType.LIVE && !account.accountType;\n\t\t\t\t});\n\n\t\t\t\tconst watchlistNames = [\n\t\t\t\t\tcurrentWatchList,\n\t\t\t\t\tliveCFDWatchlist?._lastUsedWatchlist || '',\n\t\t\t\t\tdashboardContext.watchlist[0]?._name,\n\t\t\t\t];\n\t\t\t\twatchListName = watchlistNames.find((name) =>\n\t\t\t\t\tdashboardContext.watchlist.find((watchList) => watchList._name === name)\n\t\t\t\t);\n\n\t\t\t\tsetCurrentWatchList(watchListName, isChildWindow);\n\t\t\t} else if (dashboardContext.watchlist.length > 0 && dashboardContext.watchlist[0].instrument.length > 0) {\n\t\t\t\twatchListName = [currentWatchList, dashboardContext.watchlist[0]._name].find((name) =>\n\t\t\t\t\tdashboardContext.watchlist.some((watchList) => watchList._name === name)\n\t\t\t\t);\n\t\t\t}\n\t\t\tsetWatchlistsForAllTradingModes(convertTWatchlistsToWatchListData(dashboardContext.watchlist));\n\t\t\tif (!comingFromPreferences || watchListName !== currentWatchList) {\n\t\t\t\tsetCurrentWatchList(watchListName, isChildWindow);\n\t\t\t}\n\t\t}\n\t};\n};\n","import React, { FC } from 'react';\nimport cn from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { MarketItem } from '../../../gateways/RfpGateway/rfp.types';\nimport authStore from '../../../store/authStore';\nimport useTimeSessions from '../../../utils/hooks/useTimeSessions';\n\nimport styles from './TradingSessionTooltip.module.scss';\n\ninterface TradingSessionTooltipProps {\n\tmarketItem: MarketItem;\n}\n\nconst TradingSessionTooltip: FC = ({ marketItem }): JSX.Element | null => {\n\tconst { t } = useTranslation();\n\tconst { getNextOpenDate, isWorkingTime, getClosesTime } = useTimeSessions();\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst minutesFromCurrentTime = new Date().getMinutes();\n\n\tconst workingTime = React.useMemo(() => {\n\t\treturn isJapanAccount ? undefined : isWorkingTime(marketItem, new Date());\n\t}, [isJapanAccount, marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\tconst workingTimeText = React.useMemo(() => {\n\t\treturn workingTime ? t('en:MARKET_IS_OPEN') : `${t('en:202')}`;\n\t}, [marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\tconst nextOpenDateText = React.useMemo(() => {\n\t\treturn workingTime ? '' : getNextOpenDate(marketItem, new Date());\n\t}, [marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\tconst nextClosesDateText = React.useMemo(() => {\n\t\treturn workingTime ? getClosesTime(marketItem, new Date()) : '';\n\t}, [marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\tconst nextDateText = React.useMemo(() => {\n\t\treturn workingTime !== undefined ? (workingTime ? nextClosesDateText : nextOpenDateText) : '';\n\t}, [marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\treturn (\n\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{workingTimeText}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{nextDateText && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{nextDateText}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t
\n\t\t\t\t{workingTime !== undefined && workingTime && (\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{workingTime !== undefined && !workingTime && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default TradingSessionTooltip;\n","import { WindowContextProvider } from '../../contexts/WindowContext';\n\nexport const closeChildWindows = (context: WindowContextProvider) => {\n\tconst childWindows = context.childWindows;\n\tif (childWindows.size > 0) {\n\t\tchildWindows.forEach((childWindow: Window | null) => {\n\t\t\tif (childWindow !== null) {\n\t\t\t\tchildWindow.close();\n\t\t\t}\n\t\t});\n\t}\n};\n","import { IMarketItemRecord } from '../../views/features/Dashboard/InstrumentSearch/InstrumentSearch';\nimport { MarketItem } from '../../gateways/RfpGateway/rfp.types';\n\nexport function sortSearchResults(instruments: IMarketItemRecord[] | MarketItem[], searchString: string) {\n\treturn instruments.sort((instrumentA, instrumentB) => {\n\t\tfunction instrumentScore(instrument: IMarketItemRecord | MarketItem) {\n\t\t\tconst exchangeTickerOrCode =\n\t\t\t\tinstrument.exchangeTicker && instrument.exchangeTicker !== '' ? instrument.exchangeTicker : instrument.code;\n\t\t\tif (exchangeTickerOrCode.substring(0, searchString?.length).toUpperCase() === searchString?.toUpperCase())\n\t\t\t\treturn 2;\n\t\t\tif (instrument.fullName.substring(0, searchString?.length).toUpperCase() === searchString?.toUpperCase())\n\t\t\t\treturn 1;\n\t\t\treturn 0;\n\t\t}\n\t\tif (instrumentScore(instrumentA) === 2 && instrumentScore(instrumentB) === 2) {\n\t\t\tconst codeA =\n\t\t\t\tinstrumentA.exchangeTicker && instrumentA.exchangeTicker !== '' ? instrumentA.exchangeTicker : instrumentA.code;\n\t\t\tconst codeB =\n\t\t\t\tinstrumentB.exchangeTicker && instrumentB.exchangeTicker !== '' ? instrumentB.exchangeTicker : instrumentB.code;\n\t\t\treturn codeA.localeCompare(codeB);\n\t\t} else if (instrumentScore(instrumentA) === 1 && instrumentScore(instrumentB) === 1) {\n\t\t\treturn instrumentA.fullName.localeCompare(instrumentB.fullName);\n\t\t}\n\t\treturn instrumentScore(instrumentA) > instrumentScore(instrumentB) ? -1 : 1;\n\t});\n}\n","import React, { useContext, useMemo } from 'react';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\n\nimport WindowContext, { WTChildWindowType } from '../../../contexts/WindowContext';\nimport AppContext from '../../../contexts/AppContext';\n\nimport accountStatusStore from '../../../store/accountStatusStore';\n\nimport styles from './DetachIcon.module.scss';\nimport { ApplicationStatus } from '../../../utils/functions/enums';\nimport authStore, { AuthStore } from '../../../store/authStore';\n\nconst DetachIcon = ({ url, windowType }: { url: string; windowType: WTChildWindowType }) => {\n\tconst windowContext = useContext(WindowContext);\n\tconst appContext = useContext(AppContext);\n\n\tconst isChildWindow = appContext.isChildWindow;\n\tconst isArabic = appContext.isArabic;\n\n\tconst setShowModal = accountStatusStore.use.setShowModal();\n\tconst status = accountStatusStore.use.status();\n\tconst isDemoMode = authStore((store: AuthStore) => store.isDemoMode);\n\n\tconst { t } = useTranslation();\n\n\tconst detachWatchlistHandler = useMemo(() => {\n\t\treturn () => {\n\t\t\tif (isChildWindow) {\n\t\t\t\twindowContext.window.close();\n\t\t\t} else if (\n\t\t\t\tstatus === ApplicationStatus.APPROVED ||\n\t\t\t\tstatus === ApplicationStatus.LEVEL1_APPROVED ||\n\t\t\t\tstatus === ApplicationStatus.FUNDED_TRADER ||\n\t\t\t\tisDemoMode\n\t\t\t) {\n\t\t\t\tconst window = windowContext.window;\n\t\t\t\twindowContext.openChildWindow(windowType, {\n\t\t\t\t\turl,\n\t\t\t\t\twindowName: windowType,\n\t\t\t\t\twindowFeatures: `height=${window.innerHeight},width=${window.innerWidth}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsetShowModal(true);\n\t\t\t}\n\t\t};\n\t}, [isDemoMode, status]);\n\n\t// Hide temporarily the ATTACH icon from Child Windows until the state of the window is saved\n\treturn isChildWindow ? (\n\t\t<>\n\t) : (\n\t\t
\n\t\t\t\n\t\t\t\t\t\t{isChildWindow ? t('en:ATTACH') : t('en:DETACH')}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default DetachIcon;\n","import { AppContextProvider } from '../../contexts/AppContext';\nimport { DashboardContextProvider } from '../../contexts/DashboardContext';\nimport { TAccountStats } from '../../gateways/TfboGateway/TfboGateway.types';\n\nimport { ApplicationStatus } from './enums';\n\nexport const hasThinkTraderLiveAccount = (appContext: AppContextProvider) => {\n\tif (appContext.accountStats) {\n\t\tconst accountPlatform = appContext.accountStats.find(\n\t\t\t(data: TAccountStats) => data.account.type === 'LIVE' && data.account.platform.name === 'ThinkTrader'\n\t\t);\n\t\tif (accountPlatform) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexport const fetchedAccountStats = (appContext: AppContextProvider) => {\n\treturn appContext.accountStats && appContext.accountStats.length > 0;\n};\n\nexport const fetchedApplicationStatus = (dashboardContext: DashboardContextProvider) => {\n\treturn dashboardContext.applicationStatus;\n};\n\nexport const hasApprovedLiveAccount = (appContext: AppContextProvider, dashboardContext: DashboardContextProvider) => {\n\tif (appContext.accountStats) {\n\t\tconst hasLiveAccount = appContext.accountStats.find((data: TAccountStats) => data.account.type === 'LIVE');\n\t\tconst isApproved = dashboardContext.applicationStatus === ApplicationStatus.APPROVED;\n\t\tif (hasLiveAccount && isApproved && hasThinkTraderLiveAccount(appContext)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexport const unapprovedLiveApplication = (dashboardContext: DashboardContextProvider) => {\n\t// Live application status is undefined\n\treturn !dashboardContext.applicationStatus;\n};\n\nexport const incompleteLiveApplication = (\n\tappContext: AppContextProvider,\n\tdashboardContext: DashboardContextProvider\n) => {\n\treturn (\n\t\tdashboardContext.applicationStatus &&\n\t\tdashboardContext.applicationStatus.includes(ApplicationStatus.INCOMPLETE) &&\n\t\thasThinkTraderLiveAccount(appContext)\n\t);\n};\n\nexport const underReviewLiveApplication = (\n\tappContext: AppContextProvider,\n\tdashboardContext: DashboardContextProvider\n) => {\n\treturn (\n\t\tdashboardContext.applicationStatus &&\n\t\t// dashboardContext.applicationStatus.includes(ApplicationStatus.PENDING) &&\n\t\thasThinkTraderLiveAccount(appContext)\n\t);\n};\n\nexport const underReviewWithoutTTLiveAccount = (dashboardContext: DashboardContextProvider) => {\n\treturn true;\n\t// return dashboardContext.applicationStatus && dashboardContext.applicationStatus.includes(ApplicationStatus.PENDING);\n};\n\nexport const approvedLiveApplication = (appContext: AppContextProvider, dashboardContext: DashboardContextProvider) => {\n\treturn (\n\t\tdashboardContext.applicationStatus &&\n\t\tdashboardContext.applicationStatus.includes(ApplicationStatus.APPROVED) &&\n\t\tdashboardContext.applicationStatus !== ApplicationStatus.LEVEL1_APPROVED &&\n\t\thasThinkTraderLiveAccount(appContext)\n\t);\n};\n\nexport const printAccountName = ({\n\tt,\n\tisLiveAccount,\n\tisSpreadBettingAccount,\n\tisJapanSpreadAccount,\n\tisJapanSubscriptionAccount,\n\tdefaultName,\n}: {\n\tt: any;\n\tisLiveAccount: boolean;\n\tisSpreadBettingAccount: boolean;\n\tisJapanSpreadAccount: boolean;\n\tisJapanSubscriptionAccount: boolean;\n\tdefaultName: string;\n}) => {\n\tif (!isLiveAccount && !isSpreadBettingAccount) {\n\t\treturn defaultName;\n\t}\n\n\tif (isSpreadBettingAccount) {\n\t\treturn t('en:SPREAD_BETTING_PRODUCT');\n\t} else if (isJapanSpreadAccount) {\n\t\treturn t('wtr:JP_FX_SPREAD');\n\t} else if (isJapanSubscriptionAccount) {\n\t\treturn t('wtr:JP_FX_SUBSCRIPTION');\n\t} else {\n\t\treturn defaultName;\n\t}\n};\n","import { useContext } from 'react';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport { MarketItem } from '../../gateways/RfpGateway/rfp.types';\nimport { Optional } from '../functions/Nullable';\nimport { getSubscriptionConstraints, UserOperationType } from '../functions/subscriptionUtils';\n\nimport authStore, { AuthStore } from '../../store/authStore';\n\nimport useSubscriptionInfo from './useSubscriptionInfo';\n\nconst useSubscriptionConstraints = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst isDemoMode = authStore((store: AuthStore) => store.isDemoMode);\n\n\tconst getConstraints = (marketItem?: Optional, operation?: UserOperationType) => {\n\t\tif (isDemoMode) return null;\n\t\treturn getSubscriptionConstraints(\n\t\t\tsubscriptionInfo || null,\n\t\t\tmarketItem?.code || null,\n\t\t\tdashboardContext.marketItems,\n\t\t\toperation\n\t\t);\n\t};\n\n\treturn getConstraints;\n};\n\nexport default useSubscriptionConstraints;\n","import { MarketItem } from '../../gateways/RfpGateway/rfp.types';\nimport { Optional } from '../functions/Nullable';\nimport { UserOperationType } from '../functions/subscriptionUtils';\n\nimport useSubscriptionConstraints from './useSubscriptionConstraints';\nimport useSubscriptionModal from './useSubscriptionModal';\n\nconst useHandleSubscriptionConstraints = () => {\n\tconst getSubscriptionConstraints = useSubscriptionConstraints();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\n\tconst handleSubscriptionsConstraints = (marketItem?: Optional, operation?: UserOperationType) => {\n\t\tconst constraint = getSubscriptionConstraints(marketItem, operation);\n\t\tif (!constraint) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetModalStateProps({\n\t\t\treason: constraint,\n\t\t\tisOpen: true,\n\t\t\tinstrument: marketItem,\n\t\t});\n\n\t\treturn constraint;\n\t};\n\n\treturn handleSubscriptionsConstraints;\n};\n\nexport default useHandleSubscriptionConstraints;\n","export class OrderedSet extends Array {\n\tprivate equalsFn: (a: T, b: T) => boolean;\n\n\t/**\n\t * @param values: values to insert after set creation\n\t */\n\tconstructor(values?: Array) {\n\t\tsuper();\n\n\t\tthis.equalsFn = (a: T, b: T) => a === b;\n\n\t\tif (values) {\n\t\t\tthis.addAll(values);\n\t\t}\n\t}\n\n\tadd(value: T): OrderedSet {\n\t\tif (!value) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.push(value);\n\t\treturn this;\n\t}\n\n\tpush(value: T): number {\n\t\tif (!value) {\n\t\t\treturn this.size();\n\t\t}\n\n\t\tif (this.has(value) === false) {\n\t\t\treturn super.push(value);\n\t\t} else {\n\t\t\treturn this.size();\n\t\t}\n\t}\n\n\thas(value: T): boolean {\n\t\tif (!value) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet found = false;\n\n\t\tsuper.forEach((item) => {\n\t\t\tif (this.equalsFn(value, item) === true) {\n\t\t\t\tfound = true;\n\t\t\t}\n\t\t});\n\n\t\treturn found;\n\t}\n\n\thasAll(values: Array): boolean {\n\t\tif (!values || values.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn values.every((item) => this.has(item));\n\t}\n\n\taddAll(values: Array): void {\n\t\tif (!values || values.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalues.forEach((item) => this.push(item));\n\t}\n\n\tsize(): number {\n\t\treturn this.length;\n\t}\n\n\tremove(value: T): boolean {\n\t\tif (!value) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Find item in the list\n\t\tlet foundIdx = -1;\n\t\tsuper.forEach((item, index) => {\n\t\t\tif (this.equalsFn(value, item) === true) {\n\t\t\t\tfoundIdx = index;\n\t\t\t}\n\t\t});\n\n\t\t// If item has been found => remove it from the list\n\t\tif (foundIdx !== -1) {\n\t\t\tsuper.splice(foundIdx, 1);\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tremoveAll(values: Array): boolean {\n\t\tif (!values || values.length === 0) {\n\t\t\treturn false;\n\t\t}\n\t\treturn values.every((item) => this.remove(item));\n\t}\n\n\tclear(): void {\n\t\tsuper.splice(0, this.size());\n\t}\n\n\ttoArray(): Array {\n\t\tlet result: Array = [];\n\t\tsuper.forEach((item) => result.push(item));\n\t\treturn result;\n\t}\n\n\tequals(other: OrderedSet): boolean {\n\t\tif (!other) {\n\t\t\treturn false;\n\t\t}\n\t\treturn other.size() === this.size() && this.every((item) => other.has(item));\n\t}\n}\n","import { HistoryTick } from '../../../gateways/RfpGateway/rfp.types';\n\nimport { GymHistoryRequest } from './GymHistoryRequest';\n\nexport class GymHistoryDataStore {\n\trequest: GymHistoryRequest;\n\tdataItems: HistoryTick[] = [];\n\n\tconstructor(request: GymHistoryRequest) {\n\t\tthis.request = request;\n\t}\n\n\taddDataItems(items: HistoryTick[]) {\n\t\tthis.dataItems.push(...items);\n\n\t\t//BOOL shouldLogRemove = true;\n\t\t// Filter for bad data\n\t\twhile (this.dataItems.length > 0) {\n\t\t\tconst item = this.dataItems[this.dataItems.length - 1];\n\t\t\tif (item.closeTime > this.request.endTime) {\n\t\t\t\t// if(shouldLogRemove) {\n\t\t\t\t// shouldLogRemove = false;\n\t\t\t\t// _logINFO(@\"Remove dataItem: %@\", item);\n\t\t\t\t// }\n\t\t\t\tthis.dataItems.pop();\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","import {\n\tHistoryRequest,\n\tHistorySize,\n\tHistorySubscription,\n\tHistoryTick,\n\tHistoryTickItems,\n\tMarketItem,\n\tRFPDataObjectType,\n\tSubscriptionAction,\n\tTradingAccount,\n} from '../../../gateways/RfpGateway/rfp.types';\nimport { RFP } from '../../../gateways/RfpGateway/rfpConstants';\nimport RfpGateway from '../../../gateways/RfpGateway/RfpGateway';\nimport { getAdditionalSubscriptionPairs, getMarketItem } from '../../../utils/functions/calculations';\nimport { Resolver } from '../../../utils/functions/Ioc';\nimport { OrderedSet } from '../../../utils/functions/OrderedSet';\n\nimport { GymHistoryDataStore } from './GymHistoryDataStore';\nimport { GymHistoryRequest } from './GymHistoryRequest';\nimport { GymRefQuotesStore } from './GymRefQuotesStore';\nimport { GymSimulation } from '../Simulations/GymSimulation';\n\ninterface GymHistoryManagerDelegate {\n\t// All functions are optional\n\thistoryDataUpdated?(dataItems: HistoryTick[], reqId: string): void;\n\thistoryDataRejected?(reqId: string): void;\n\trefQuotesUpdated?(): void;\n}\n\n/**\n * The GymHistoryManager class defines the `sharedInstance` method that lets clients access\n * the unique singleton instance.\n */\nclass GymHistoryManager {\n\tprivate static instance: GymHistoryManager;\n\tprivate delegates = new OrderedSet();\n\tprivate subDataId: string | undefined = undefined;\n\tprivate subSizeId: string | undefined = undefined;\n\tprivate data = new Map();\n\n\tstatic kTPRefQuotes = 'kRQ';\n\n\t/**\n\t * The GymHistoryManager's constructor should always be private to prevent direct\n\t * construction calls with the `new` operator.\n\t */\n\tprivate constructor() {\n\t\tconst rfpGateway = Resolver.resolve(RfpGateway);\n\t\tif (rfpGateway) {\n\t\t\tthis.subDataId = rfpGateway.subscribeFor(RFPDataObjectType.HistoryTickItems, (message) => {\n\t\t\t\tthis.historyTicksReceived(message);\n\t\t\t});\n\t\t\tthis.subSizeId = rfpGateway.subscribeFor(RFPDataObjectType.HistorySize, (message) => {\n\t\t\t\tthis.historySizeReceived(message);\n\t\t\t});\n\t\t}\n\t}\n\n\taddDelegate(delegate: GymHistoryManagerDelegate) {\n\t\tthis.delegates.add(delegate);\n\t}\n\n\tremoveDelegate(delegate: GymHistoryManagerDelegate) {\n\t\tthis.delegates.remove(delegate);\n\t}\n\n\tprivate sendHistoryRequest(historyRequest: GymHistoryRequest) {\n\t\tconst rfpGateway = Resolver.resolve(RfpGateway);\n\t\tif (rfpGateway) {\n\t\t\tconst historySubscription: HistorySubscription = { ...historyRequest, action: SubscriptionAction.Snapshot };\n\t\t\trfpGateway.send(RFP.manageHistory, historySubscription);\n\t\t}\n\t}\n\n\trequestHistoryData(request: GymHistoryRequest) {\n\t\tif (!this.data.has(request.reqId)) {\n\t\t\tconst dataStore = new GymHistoryDataStore(request);\n\t\t\tthis.data.set(request.reqId, dataStore);\n\t\t}\n\n\t\tthis.sendHistoryRequest(request);\n\t}\n\n\tgetHistoryRequest(reqId: string) {\n\t\treturn this.data.get(reqId)?.request;\n\t}\n\n\tprivate historySizeReceived(historySize: HistorySize) {\n\t\tif (!historySize.reqId.startsWith(GymHistoryManager.kTPRefQuotes)) {\n\t\t\tif (historySize.size === 0) {\n\t\t\t\tconsole.debug(`ERROR: historySize size=0, ${historySize.code}`);\n\t\t\t\tthis.delegates.forEach((element) => {\n\t\t\t\t\tif (element.historyDataRejected) {\n\t\t\t\t\t\telement.historyDataRejected(historySize.reqId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate historyTicksReceived(historyTickItems: HistoryTickItems) {\n\t\tif (historyTickItems.reqId.startsWith(GymHistoryManager.kTPRefQuotes)) {\n\t\t\tGymRefQuotesStore.sharedInstance().addTicks(historyTickItems.historyTicks, historyTickItems.reqId);\n\t\t} else {\n\t\t\tconst dataStore = this.data.get(historyTickItems.reqId);\n\t\t\tif (dataStore) {\n\t\t\t\tdataStore.addDataItems(historyTickItems.historyTicks);\n\n\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\tif (historyTickItems.reqId.startsWith(GymHistoryManager.kTPRefQuotes)) {\n\t\t\t\t\t\tGymRefQuotesStore.sharedInstance().addTicks(historyTickItems.historyTicks, historyTickItems.reqId);\n\t\t\t\t\t\tif (delegate.refQuotesUpdated) {\n\t\t\t\t\t\t\tdelegate.refQuotesUpdated();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (delegate.historyDataUpdated) {\n\t\t\t\t\t\t\tdelegate.historyDataUpdated(historyTickItems.historyTicks, historyTickItems.reqId);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\trequestRefQuotes(account: TradingAccount, marketItem: MarketItem, simulation: GymSimulation) {\n\t\tconst feedId = simulation.feedId;\n\t\tconst baseCcyPos = marketItem.qCcy;\n\n\t\tif (!baseCcyPos) return;\n\n\t\tconst pairs = getAdditionalSubscriptionPairs(account, marketItem, null);\n\t\tif (pairs) {\n\t\t\tpairs.forEach((pair) => {\n\t\t\t\tconst info = getMarketItem(feedId, pair);\n\t\t\t\tif (info) {\n\t\t\t\t\tthis.makeRefQuoteRequest(simulation, info);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate makeRefQuoteRequest(simulation: GymSimulation, marketItem: MarketItem) {\n\t\tconst historyRequest = {\n\t\t\treqId: `${simulation.id}_${marketItem.code}`,\n\t\t\tfeedId: simulation.feedId,\n\t\t\tcode: simulation.code,\n\t\t\tpriceType: simulation.priceType,\n\t\t\ttimescale: simulation.timescale,\n\t\t\tstartTime: simulation.startTime,\n\t\t\tendTime: simulation.tradeTime,\n\t\t} as HistoryRequest;\n\t\tconst request = new GymHistoryRequest(historyRequest);\n\t\trequest.reqId = GymHistoryManager.buildRefQuoteKey(historyRequest.reqId);\n\t\trequest.code = marketItem.code;\n\t\trequest.feedId = marketItem.feedId;\n\t\tif (request.timescale !== 'TS_1WEEK' && request.timescale !== 'TS_1MONTH') {\n\t\t\trequest.timescale = 'TS_1DAY';\n\t\t}\n\n\t\tif (!this.data.has(request.reqId)) {\n\t\t\tconsole.debug(`Request Ref Quotes - ${request.reqId}`);\n\t\t\tthis.requestHistoryData(request);\n\t\t}\n\t}\n\n\t/**\n\t * The static method that controls the access to the singleton instance.\n\t */\n\tpublic static sharedInstance(): GymHistoryManager {\n\t\tif (!GymHistoryManager.instance) {\n\t\t\tGymHistoryManager.instance = new GymHistoryManager();\n\t\t}\n\t\treturn GymHistoryManager.instance;\n\t}\n\n\tpublic static buildRefQuoteKey(reqId: string) {\n\t\treturn `${GymHistoryManager.kTPRefQuotes}_${reqId}`;\n\t}\n\n\tdestructor() {\n\t\tconst rfpGateway = Resolver.resolve(RfpGateway);\n\t\tif (rfpGateway) {\n\t\t\tif (this.subDataId) {\n\t\t\t\trfpGateway.unsubscribeFor(this.subDataId);\n\t\t\t}\n\t\t\tif (this.subSizeId) {\n\t\t\t\trfpGateway.unsubscribeFor(this.subSizeId);\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport { GymHistoryManager };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"emptyStateContainer\":\"EmptySearch_emptyStateContainer__18NbW\",\"emptyIcon\":\"EmptySearch_emptyIcon__1Svf5\",\"noMatch\":\"EmptySearch_noMatch__1hP-R\",\"tickerMessage\":\"EmptySearch_tickerMessage__3Rcei\",\"searchTerm\":\"EmptySearch_searchTerm__2KnGk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"MarketSignalsGate_content__8e8rd\",\"container\":\"MarketSignalsGate_container__22lDh\",\"title\":\"MarketSignalsGate_title__2YikP\",\"unlockIcon\":\"MarketSignalsGate_unlockIcon__3uZTi\",\"ctaButton\":\"MarketSignalsGate_ctaButton__1UyHN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MarketSignals_container__3uT17\",\"header\":\"MarketSignals_header__1Lu9o\",\"gateContainer\":\"MarketSignals_gateContainer__2RzFG\",\"fakeList\":\"MarketSignals_fakeList__2G9q8\",\"gate\":\"MarketSignals_gate__2Lfwy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"imageWrapper\":\"AccountIconAndTier_imageWrapper__3k-ia\",\"imageNoOutline\":\"AccountIconAndTier_imageNoOutline__135NZ\",\"imageOutline\":\"AccountIconAndTier_imageOutline__1CfDL\",\"small\":\"AccountIconAndTier_small__2UZ28\",\"large\":\"AccountIconAndTier_large__A30dC\",\"loader\":\"AccountIconAndTier_loader__1kcZJ\"};","module.exports = __webpack_public_path__ + \"static/media/commodities.bd26afab.svg\";","module.exports = __webpack_public_path__ + \"static/media/et-fs.5442d1f6.svg\";","module.exports = __webpack_public_path__ + \"static/media/stocks.a63cd2c7.svg\";","import { RFPNews } from '../../gateways/RfpGateway/rfp.types';\n\nexport const uniqueRecord = (recordsArray: RFPNews[] | any) => {\n\tconst uniqueArticles: any[] = [...new Map(recordsArray.map((item: any) => [JSON.stringify(item), item])).values()];\n\treturn uniqueArticles;\n};\n","interface NewsKeywords {\n\t[key: string]: string[];\n}\n\nexport const newsKeywords: NewsKeywords = {\n\tLCO: ['BRENT'],\n\tNGAS: ['NATURAL GAS'],\n\tWTC: ['WEST TEXAS'],\n\tWTI: ['WEST TEXAS'],\n\tAUS200: ['ASX 200'],\n\tES: ['S&P 500'],\n\tSPX500: ['S&P 500'],\n\tUS30: ['DOW JONES'],\n\tYM: ['DOW JONES'],\n\tNAS100: ['NASDAQ'],\n\tNQ: ['NASDAQ'],\n\tESTX50: ['EURO STOXX 50'],\n\tFD: ['DAX'],\n\tGER30: ['DAX'],\n\tUK100: ['FTSE 100'],\n\tFRA40: ['CAC'],\n\tUS2000: ['RUSSELL MID CAP'],\n\tZAR40: ['SOUTH AFRICA 40'],\n\tJPN225: ['NIKKEI'],\n\tHK50: ['HONG KONG 50'],\n\tCHINA50: ['CHINA 50'],\n\tXAUUSD: ['GOLD'],\n\tXAGUSD: ['SILVER'],\n\tXPTUSD: ['PLATINUM'],\n\tBTCUSD: ['BITCOIN'],\n\tETHUSD: ['ETHEREUM'],\n};\n\nexport function getKeywords(code: string) {\n\treturn [\n\t\t...(newsKeywords[code] ?? []),\n\t\t...(newsKeywords[code.slice(0, 2)] ?? []),\n\t\t...(newsKeywords[code.slice(0, 3)] ?? []),\n\t];\n}\n","module.exports = __webpack_public_path__ + \"static/media/loader_dark.7bb0cf17.svg\";","module.exports = __webpack_public_path__ + \"static/media/loader_light.9ec4b892.svg\";","\nconst getTimeFrameTranslation = (closeTrade: any, t: any) => {\n\n switch (closeTrade) {\n case '1 Month':\n return t('wtr:1_MONTH');\n case '3 Months':\n return t('wtr:3_MONTHS');\n case 'YTD':\n return t('wtr:WTR_YTD');\n case '1 Year':\n return t('wtr:1_YEAR');\n case '1 Week':\n return t('wtr:1_WEEK');\n case 'Today':\n return t('wtr:WTR_TODAY');\n case 'All':\n return t('All');\n }\n};\n\nexport default getTimeFrameTranslation;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MarginRequirements_wrapper__3r1kX\",\"title\":\"MarginRequirements_title__kRGZV\",\"infoTooltip\":\"MarginRequirements_infoTooltip__3GVM-\",\"header\":\"MarginRequirements_header__1VJH4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"iconContainer\":\"Item_iconContainer__10Rq0\",\"selected\":\"Item_selected__3aDll\",\"icon\":\"Item_icon__2QeRI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SignalsEmptyState_container__1u1gb\",\"hasBorder\":\"SignalsEmptyState_hasBorder__2FRCT\",\"fullHeight\":\"SignalsEmptyState_fullHeight__WqyvF\",\"noSignalIcon\":\"SignalsEmptyState_noSignalIcon__1BMUx\",\"clearFilterText\":\"SignalsEmptyState_clearFilterText__2VGaw\",\"message\":\"SignalsEmptyState_message__38THT\",\"emptyGridContainer\":\"SignalsEmptyState_emptyGridContainer__2nBhm\",\"emptyIcon\":\"SignalsEmptyState_emptyIcon__jfNHm\",\"emptyStateMessage\":\"SignalsEmptyState_emptyStateMessage__3k5Ht\",\"startTrading_Inactive\":\"SignalsEmptyState_startTrading_Inactive__2lOlO\",\"startTrading_Active\":\"SignalsEmptyState_startTrading_Active__26Ia9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MarketsEmptyState_container__2XB6k\",\"fullHeight\":\"MarketsEmptyState_fullHeight__3lHmi\",\"noResultsIcon\":\"MarketsEmptyState_noResultsIcon__1ua41\",\"message\":\"MarketsEmptyState_message__RAOpk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchInputContainer\":\"SearchableList_searchInputContainer__1mevM\",\"searchInput\":\"SearchableList_searchInput__2Jnwc\",\"searchIcon\":\"SearchableList_searchIcon__2Qm0f\",\"closeIcon\":\"SearchableList_closeIcon__2p5rq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"iconContainerClicked\":\"NotificationsIcon_iconContainerClicked__3-bVR\",\"iconContainer\":\"NotificationsIcon_iconContainer__38N0x\",\"notificationIcon\":\"NotificationsIcon_notificationIcon__3pDEH\",\"newMessageBadge\":\"NotificationsIcon_newMessageBadge__1uSDi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"containter\":\"Notifications_containter__28rE0\",\"notificationHeader\":\"Notifications_notificationHeader__3fIUb\",\"completeAppBtn\":\"Notifications_completeAppBtn__3l4kR\",\"marginRight\":\"Notifications_marginRight__3Q5Xc\",\"marginRightSafari\":\"Notifications_marginRightSafari__1sEWj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"itemWrapper\":\"LangSelect_itemWrapper__232Tw\",\"dropdownIcon\":\"LangSelect_dropdownIcon__W3avl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navContainer\":\"Navigation_navContainer__1RIDJ\",\"navMenuItemsContainer\":\"Navigation_navMenuItemsContainer__2Mwbp\",\"mainMenu\":\"Navigation_mainMenu__Y3Bpd\",\"toggles\":\"Navigation_toggles__2Es-C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalActivate\":\"OneClickTradingToggle_modalActivate__1DBXL\",\"modalMessage\":\"OneClickTradingToggle_modalMessage__3SmhX\",\"modalFooter\":\"OneClickTradingToggle_modalFooter__Tq21w\",\"modalActionButtons\":\"OneClickTradingToggle_modalActionButtons__3GSqt\",\"modalButton\":\"OneClickTradingToggle_modalButton__PKfrO\",\"buttonsContainer\":\"OneClickTradingToggle_buttonsContainer__34jZ-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"divider\":\"OrHzDivider_divider__3kwGc\",\"text\":\"OrHzDivider_text__2cWCd\",\"line\":\"OrHzDivider_line__2JTac\"};","import React, { useContext, useEffect, useState } from 'react';\nimport cn from 'classnames';\nimport styles from '../../../../Markets/MarketsGridNew/MarketsTable.module.scss';\nimport { useTranslation } from 'react-i18next';\nimport { addCommas } from '../helpers';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport { getCurrentPrice } from '../../../../../../utils/functions/calculations';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport quoteStore from '../../../../../../store/QuoteStore/quoteStore';\nimport RfpGatewayContext from '../../../../../../contexts/RfpGatewayContext';\n\ninterface CurrentPriceProps {\n\tdata: any;\n\tgym?: boolean;\n}\nconst CurrentPrice = ({ data, gym = false }: CurrentPriceProps) => {\n\tconst appContext = useContext(AppContext);\n\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\tconst languageSettings = appContext.languageSettings;\n\n\tconst { t } = useTranslation();\n\n\tconst quotes = quoteStore.use.quotes();\n\n\tconst [prevState, setPrevState] = useState(0);\n\n\tconst record = data.row.original;\n\n\tif (!record.position) {\n\t\trecord.position = record.subRows?.[0].position;\n\t}\n\n\tlet current = record.current;\n\n\tif (!gym) {\n\t\tconst currentPrice = getCurrentPrice(record.position?.f, record.position?.code, rfpGatewayContext);\n\t\tcurrent =\n\t\t\t(record.side === 'SELL' ? currentPrice?.a.toFixed(record.decPrec) : currentPrice?.b.toFixed(record.decPrec)) ||\n\t\t\trecord.current;\n\n\t\trecord.current = current;\n\t}\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (current !== prevState) {\n\t\t\t\tsetPrevState(current);\n\t\t\t}\n\t\t};\n\t}, [current]);\n\n\tconst colorValue = current && prevState && current >= prevState ? 'green' : 'red';\n\treturn (\n\t\t
\n\t\t\t{isNaN(current) ? t('wtr:NA') : addCommas(current, languageSettings, record?.decPrec)}\n\t\t
\n\t);\n};\n\nexport default CurrentPrice;\n","import React from 'react';\nimport cn from 'classnames';\nimport styles from '../../../../Markets/MarketsGridNew/MarketsTable.module.scss';\nimport MoneyFormatter from '../../../../../components/MoneyFormatter';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport quoteStore from '../../../../../../store/QuoteStore/quoteStore';\n\ninterface CalcGrossPlProps {\n\tdata: any;\n\tclosed?: boolean;\n}\n\nconst CalcGrossPl = ({ data, closed = false }: CalcGrossPlProps) => {\n\tconst quotes = quoteStore.use.quotes();\n\n\tconst record = data.row.original;\n\n\tif (closed) {\n\t\treturn (\n\t\t\t
0 ? styles.greenCurrent : styles.redCurrent)}>\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n\n\tif (record.isGroupRow) {\n\t\trecord.grossPL = record.subRows.reduce((totalPl: number, gridRecord: any) => {\n\t\t\treturn (\n\t\t\t\t+totalPl +\n\t\t\t\t(isNaN((gridRecord.position?.grossProfit || Number.NaN) as number) ? 0 : +gridRecord?.position?.grossProfit!)\n\t\t\t);\n\t\t}, 0);\n\t} else {\n\t\trecord.grossPL = (record.position?.grossProfit || Number.NaN).toFixed(2);\n\t}\n\n\tconst grossPLValue = isNaN((record.grossPL || Number.NaN) as number) ? 0 : (record.grossPL as number);\n\n\treturn (\n\t\t 0 ? styles.greenCurrent : styles.redCurrent)}\n\t\t>\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CalcGrossPl;\n","import React from 'react';\nimport cn from 'classnames';\nimport styles from '../../../../Markets/MarketsGridNew/MarketsTable.module.scss';\nimport MoneyFormatter from '../../../../../components/MoneyFormatter';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport quoteStore from '../../../../../../store/QuoteStore/quoteStore';\n\ninterface CalcNetPlProps {\n\tdata: any;\n\tclosed?: boolean;\n}\n\nconst CalcNetPl = ({ data, closed = false }: CalcNetPlProps) => {\n\tconst quotes = quoteStore.use.quotes();\n\n\tconst record = data.row.original;\n\n\tif (closed) {\n\t\treturn (\n\t\t\t
0 ? styles.greenCurrent : styles.redCurrent)}>\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n\n\tif (record.isGroupRow) {\n\t\trecord.netPL = record.subRows.reduce((totalPl: number, gridRecord: any) => {\n\t\t\treturn (\n\t\t\t\t+totalPl +\n\t\t\t\t(isNaN((gridRecord.position?.netProfit || Number.NaN) as number) ? 0 : +gridRecord?.position?.netProfit!)\n\t\t\t);\n\t\t}, 0);\n\t} else {\n\t\trecord.netPL = (record.position?.netProfit || Number.NaN).toFixed(2);\n\t}\n\n\tconst netPLValue = isNaN((record.netPL || Number.NaN) as number) ? 0 : (record.netPL as number);\n\n\treturn (\n\t\t
0 ? styles.greenCurrent : styles.redCurrent)}>\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default CalcNetPl;\n","import React, { useContext } from 'react';\nimport styles from '../../PositionGrid/PositionGrid.module.scss';\nimport { addCommas } from '../helpers';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport quoteStore from '../../../../../../store/QuoteStore/quoteStore';\n\ninterface CalcPLPipsProps {\n\tdata: any;\n\tclosed?: boolean;\n}\n\nconst CalcPLPips = ({ data, closed = false }: CalcPLPipsProps) => {\n\tconst appContext = useContext(AppContext);\n\tconst languageSettings = appContext.languageSettings;\n\n\tconst quotes = quoteStore.use.quotes();\n\n\tconst record = data.row.original;\n\n\tif (closed) {\n\t\tconst profitLossPipsValue = isNaN((record.pipsChange || Number.NaN) as number) ? 0 : (record.pipsChange as number);\n\t\treturn (\n\t\t\t
0 ? styles.greenCurrent : styles.redCurrent}>\n\t\t\t\t{addCommas(profitLossPipsValue?.toFixed(2), languageSettings)}\n\t\t\t
\n\t\t);\n\t}\n\n\tif (record.isGroupRow) {\n\t\trecord.pipsChange = record.subRows.reduce((totalPl: number, gridRecord: any) => {\n\t\t\treturn +totalPl + (isNaN((gridRecord.position?.pips || Number.NaN) as number) ? 0 : +gridRecord?.position?.pips!);\n\t\t}, 0);\n\t} else {\n\t\trecord.pipsChange = isNaN((record.position?.pips || Number.NaN) as number) ? 0 : (record.position?.pips as number);\n\t}\n\n\treturn (\n\t\t
0 ? styles.greenCurrent : styles.redCurrent}>\n\t\t\t{addCommas(record.pipsChange, languageSettings, record.decPrec || 2, true)}\n\t\t
\n\t);\n};\n\nexport default CalcPLPips;\n","import React from 'react';\nimport StringUtils from '../../../../../../utils/functions/StringUtils';\nimport { useTranslation } from 'react-i18next';\n\ninterface CalcCommentProps {\n\tdata: any;\n}\nconst CalcComment = ({ data }: CalcCommentProps) => {\n\tconst { t } = useTranslation();\n\n\tconst record = data.row.original;\n\tconst comment = StringUtils.isNullOrEmpty(record.comment?.toString()) ? t('wtr:NA') : record.comment;\n\treturn
{!record.isGroupRow && comment}
;\n};\n\nexport default CalcComment;\n","import React, { useContext, useState } from 'react';\nimport { OverlayTrigger } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Tooltip from '../../../../../components/Tooltip/Tooltip';\nimport WtrPopup from '../../../../../components/WtrPopup/WtrPopup';\nimport styles from '../../PositionGrid/PositionGrid.module.scss';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport { getInstrumentDetails } from '../../../../../../utils/functions/calculations';\nimport useSelectedTradingAccount from '../../../../../../utils/hooks/useSelectedTradingAccount';\nimport RfpGatewayContext from '../../../../../../contexts/RfpGatewayContext';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../pages/TradersGym/TradersGymContext';\nimport { hidePopup } from '../helpers';\nimport { TicketLayout, TradingPositionLimitType } from '../../../../../../utils/functions/enums';\nimport { TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport pipStore from '../../../../../../store/PipsStore/pipStore';\nimport orderStore from '../../../../../../store/OrderStore/orderStore';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\n\nimport GymRemoveModal from './GymRemoveModal';\n\ninterface EditIcon {\n\tinfo: any;\n\tgym?: boolean;\n\ttype: TradingPositionState;\n}\n\nconst EditIcon = ({ info, gym = false, type }: EditIcon) => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst isArabic = appContext.isArabic;\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\tconst detailedInformation = dashboardContext.detailedInformation;\n\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\n\tconst stopLossPips = pipStore.use.stopLoss();\n\tconst takeProfitPips = pipStore.use.takeProfit();\n\tconst fillStoreFromPosition = orderStore.use.fillStoreFromPosition();\n\tconst setTradeProps = orderStore.use.setTradeProps();\n\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst tradingPositions = dashboardContext.getTradingPositions();\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext, getPositions } = gymContext;\n\tconst gymTradingPositions = getPositions(type);\n\tconst currentTradingPositions = gym ? gymTradingPositions : tradingPositions;\n\tconst activeTradingAccount = tradersGymContext.isActive\n\t\t? tradersGymContext.gymTradingAccount\n\t\t: selectedTradingAccount;\n\n\tconst { t } = useTranslation();\n\n\tconst [openRemoveModal, setOpenRemoveModal] = useState(false);\n\n\tconst record = info.row.original;\n\tconst iconStyle = {\n\t\tfontSize: '20px',\n\t\tmargin: 0,\n\t};\n\n\tconst openPositionInformation = (code: string) => {\n\t\thidePopup(isArabic);\n\t\tif (detailedInformation) {\n\t\t\tlet marketItem = rfpGatewayContext?.getMarketItem(code);\n\t\t\tif (marketItem) {\n\t\t\t\tconst positions: any = currentTradingPositions.filter(\n\t\t\t\t\t(t) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === TradingPositionState.open &&\n\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\t}\n\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.toggleAccordionMenu = '1';\n\t\t\tdashboardContext.showOrderInformation = true;\n\t\t}\n\t};\n\n\tconst openOrderDetails = (code: string) => {\n\t\thidePopup(isArabic);\n\t\tif (detailedInformation) {\n\t\t\tlet marketItem = rfpGatewayContext?.getMarketItem(code);\n\t\t\tif (marketItem) {\n\t\t\t\tconst positions: any = currentTradingPositions.filter(\n\t\t\t\t\t(t) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === TradingPositionState.pending &&\n\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\t}\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.toggleAccordionMenu = '2';\n\t\t\tdashboardContext.showOrderInformation = true;\n\t\t}\n\t};\n\n\tconst openMarketInformation = (code: string) => {\n\t\thidePopup(isArabic);\n\t\tif (detailedInformation) {\n\t\t\tlet marketItem = rfpGatewayContext?.getMarketItem(code);\n\t\t\tif (marketItem) {\n\t\t\t\tif (type === TradingPositionState.open) {\n\t\t\t\t\tconst positions: any = currentTradingPositions.filter(\n\t\t\t\t\t\t(t) =>\n\t\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\t\tt.state === TradingPositionState.open &&\n\t\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t\t);\n\n\t\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t\t}\n\n\t\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\t}\n\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.toggleAccordionMenu = '0';\n\t\t\tdashboardContext.showOrderInformation = true;\n\t\t}\n\t};\n\n\tconst openModifyTicket = (e: any) => {\n\t\thidePopup(isArabic);\n\t\tdashboardContext.closeAllOtherTabs();\n\t\tdashboardContext.tradeInformation = undefined;\n\n\t\tconst record = e.row.original;\n\n\t\tif (record.position && record.position.marketItem) {\n\t\t\tdashboardContext.selectedInstrument = record.position.marketItem;\n\n\t\t\tif (gym && record.position.simulationId) {\n\t\t\t\tconst currentSimulationId = tradersGymContext.simulation?.id;\n\t\t\t\tconst simulation = tradersGymContext.simulationsManager?.getSimulationWithId(record.position.simulationId);\n\t\t\t\tif (simulation && currentSimulationId !== simulation.id) {\n\t\t\t\t\tgymContext.setGymProps({ simulation: simulation });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// change the Trade context state to 'pending' and fill the trade context with the selected position (needed for the TradeTicket.tsx)\n\t\tfillStoreFromPosition(record.position);\n\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tdashboardContext.showOrderTicket = true;\n\t\t} else {\n\t\t\tdashboardContext.newOrderModalToggle = {\n\t\t\t\torderTicket: true,\n\t\t\t\tconfirmOrder: false,\n\t\t\t};\n\t\t\tdashboardContext.showOrderTicket = false;\n\t\t}\n\t};\n\n\tconst openTicket = (e: any) => {\n\t\thidePopup(isArabic);\n\t\tdashboardContext.closeAllOtherTabs();\n\n\t\tconst name = e.column.id;\n\t\tconst record = e.row.original;\n\n\t\tif (record) {\n\t\t\tconst positions: any = currentTradingPositions.filter(\n\t\t\t\t(t) =>\n\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\tt.state === TradingPositionState.open &&\n\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t);\n\n\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\tdashboardContext.selectedInstrument = record.position.marketItem;\n\t\t}\n\n\t\tlet limitsType: TradingPositionLimitType[] = [];\n\t\tif (name === TradingPositionLimitType.StopLoss) {\n\t\t\tlimitsType.push(TradingPositionLimitType.StopLoss);\n\t\t} else if (name === TradingPositionLimitType.TakeProfit) {\n\t\t\tlimitsType.push(TradingPositionLimitType.TakeProfit);\n\t\t} else if (name !== 'NaN' && record.TakeProfit !== 'NaN') {\n\t\t\tlimitsType.push(TradingPositionLimitType.TakeProfit, TradingPositionLimitType.StopLoss);\n\t\t}\n\n\t\tfillStoreFromPosition(record.position, limitsType, true, { takeProfitPips, stopLossPips });\n\n\t\tsetTradeProps({\n\t\t\tisPreservedValue: true,\n\t\t});\n\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tdashboardContext.showOrderTicket = true;\n\n\t\t\tif (name === TradingPositionLimitType.StopLoss || name === TradingPositionLimitType.TakeProfit) {\n\t\t\t\tdashboardContext.gridButton =\n\t\t\t\t\tname === TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t? TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t: TradingPositionLimitType.TakeProfit;\n\t\t\t} else if (name) {\n\t\t\t\tdashboardContext.gridButton = name;\n\t\t\t} else {\n\t\t\t\tdashboardContext.gridButton = 'Menu Item';\n\t\t\t}\n\t\t} else {\n\t\t\tdashboardContext.newOrderModalToggle = {\n\t\t\t\torderTicket: true,\n\t\t\t\tconfirmOrder: false,\n\t\t\t};\n\n\t\t\tif (name === TradingPositionLimitType.StopLoss || name === TradingPositionLimitType.TakeProfit) {\n\t\t\t\tdashboardContext.gridButton =\n\t\t\t\t\tname === TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t? TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t: TradingPositionLimitType.TakeProfit;\n\t\t\t} else if (name) {\n\t\t\t\tdashboardContext.gridButton = name;\n\t\t\t} else {\n\t\t\t\tdashboardContext.gridButton = 'Menu Item';\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleRemoveButtonClick = () => {\n\t\tsetOpenRemoveModal(true);\n\t\thidePopup(isArabic);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t{t('en:NAVIGATION_MORE')}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\ttype === TradingPositionState.open\n\t\t\t\t\t\t\t\t\t\t\t? openPositionInformation(record.code)\n\t\t\t\t\t\t\t\t\t\t\t: openOrderDetails(record.code)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{type === TradingPositionState.open\n\t\t\t\t\t\t\t\t\t\t\t? t('en:TRADES_POSITION_DETAILS')\n\t\t\t\t\t\t\t\t\t\t\t: t('en:TRADES_ORDER_DETAILS')}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\topenMarketInformation(record.code);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t('wtr:MARKET_INFO')}
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!record.isGroupRow && type === TradingPositionState.open && (\n\t\t\t\t\t\t\t\t\t
openTicket(info)}>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!record.isGroupRow && type === TradingPositionState.pending && (\n\t\t\t\t\t\t\t\t\t
openModifyTicket(info)}>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
{t('en:TRADES_MODIFY_ORDER')}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{gym && type !== TradingPositionState.pending && (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\thandleRemoveButtonClick();\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t
{t('en:REMOVE')}
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\ton={['click']}\n\t\t\t\t\t\tpinned\n\t\t\t\t\t\tposition={isArabic ? 'right center' : 'left center'}\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default EditIcon;\n","import React, { useState, useEffect, useContext } from 'react';\n\nimport Modal from '../../../../shared/Modal/Modal';\n\nimport { RFPNews } from '../../../../gateways/RfpGateway/rfp.types';\n\nimport { default as useForceRerender } from '../../../../utils/hooks/useForceRerender';\nimport { default as usePromiseFactory } from '../../../../utils/hooks/usePromiseFactory';\nimport { default as useObservable } from '../../../../utils/hooks/useObservable';\nimport { default as DashboardContext } from '../../../../contexts/DashboardContext';\n\nimport styles from './NewsWidgetStyles.module.scss';\n\nconst NewsPopup = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\n\tconst [open, setOpen] = useState(true);\n\tconst [article, setArticle] = useState([]);\n\n\tconst id = dashboardContext.selectedNewsContent;\n\tconst tradeNews = dashboardContext.tradeNews;\n\n\tuseObservable(dashboardContext.getPropertyChangeStream('selectedNewsContent', 'tradeNews'), () => {\n\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t\t\tforceRerender();\n\t\t});\n\t});\n\n\tconst handleClose = (): void => {\n\t\tsetOpen(!open);\n\t\tdashboardContext.selectedNewsContent = -1;\n\t};\n\n\tuseEffect(() => {\n\t\tconst news = tradeNews.filter((article: RFPNews) => article.id === id);\n\t\tsetArticle(news[0]);\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
{article.headline}
\n\t\t\t\t
\n\t\t\t\t{article && (\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default NewsPopup;\n","import React from 'react';\n\nimport cn from 'classnames';\n\nimport Slider from 'rc-slider';\n\nimport styles from './WtrSlider.module.scss';\n\n/**\n * Wrapper component that allows you to stylize the rc-slider library\n */\nconst WtrSlider = ({ ...rest }: any) => {\n\trest.className = cn(rest.className, styles.wtrSlider);\n\n\treturn ;\n};\n\nexport default WtrSlider;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\nexport interface ITokenPair {\n\taccessToken: string;\n\trefreshToken: string;\n}\n\nconst useRefreshJWTToken = () => {\n\tconst mutationFn = async (tokenPair: ITokenPair) => {\n\t\tconst response = await axios({\n\t\t\turl: `/auth/refresh`,\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t},\n\t\t\tdata: tokenPair,\n\t\t});\n\n\t\tlocalStorage.setItem('accessToken', response.data.accessToken);\n\t\tlocalStorage.setItem('refreshToken', response.data.refreshToken);\n\n\t\treturn response.data;\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useRefreshJWTToken'],\n\t\tmutationFn,\n\t\tuseErrorBoundary: (error: any) => error.response?.status >= 500,\n\t});\n};\n\nexport default useRefreshJWTToken;\n","import { Mutate, StoreApi } from 'zustand';\n\nexport type StoreWithPersist = Mutate, [['zustand/persist', unknown]]>;\n\nconst SESSION_KEY = 'unique_session_id';\n\nexport const useStorageDOMEvents = (store: StoreWithPersist) => {\n\tconst storageEventCallback = (e: StorageEvent) => {\n\t\tconst storeName = store.persist.getOptions().name;\n\n\t\tif (e.key === storeName && e.newValue) {\n\t\t\ttry {\n\t\t\t\tconst newValue = JSON.parse(e.newValue);\n\n\t\t\t\tlet sessionId = sessionStorage.getItem(SESSION_KEY);\n\t\t\t\t// Stores must be rehydrated only if the sessionId is the same as the one in the storage event\n\t\t\t\t// or if the sessionId is undefined (meaning that the store is not persisted) in the same tab.\n\t\t\t\tif (newValue.state.sessionId === undefined || newValue.state.sessionId === sessionId) {\n\t\t\t\t\tstore.persist.rehydrate();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to parse storage event:', error);\n\t\t\t}\n\t\t}\n\t};\n\n\twindow.addEventListener('storage', storageEventCallback);\n\n\treturn () => {\n\t\twindow.removeEventListener('storage', storageEventCallback);\n\t};\n};\n","import { limitProfitLossValues } from '../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nexport const storeInstrumentsPipsValue = (obj: limitProfitLossValues | null) => {\n\tlocalStorage.setItem('instrumentsPipsValue', JSON.stringify(obj));\n};\n\nexport const getSavedInstrumentsPipsValue = () => JSON.parse(localStorage.getItem('instrumentsPipsValue') ?? '{}');\n","import React, { useEffect, useState, useContext, useRef } from 'react';\n\nimport cn from 'classnames';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport isWindowStyles from '../../../../../utils/functions/isWindowStyles';\nimport { MarketItem, PriceQuote, RFPDataObjectType } from '../../../../../gateways/RfpGateway/rfp.types';\nimport BidAskSpread from '../../../../components/BidAskSpread/BidAskSpread';\nimport { Optional } from '../../../../../utils/functions/Nullable';\n\nimport { default as usePromiseFactory } from '../../../../../utils/hooks/usePromiseFactory';\nimport { default as useObservable } from '../../../../../utils/hooks/useObservable';\nimport { default as useForceRerender } from '../../../../../utils/hooks/useForceRerender';\n\nimport { default as AppContext } from '../../../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../../../contexts/DashboardContext';\n\nimport RfpGatewayContext from '../../../../../contexts/RfpGatewayContext';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../pages/TradersGym/TradersGymContext';\n\nimport useIsInViewport from '../../../../../utils/hooks/useIsInViewport';\nimport { instrumentGroupProps } from '../../../../../utils/functions/constants';\nimport InstrumentIcon from '../../../../components/GroupBadge/InstrumentIcon';\nimport TradingSessionTooltip from '../../../../components/Shared/TradingSessionTooltip';\nimport tradingViewStore from '../../../../../store/tradingViewStore';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport styles from './Instrument.module.scss';\n\ninterface InstrumentProps {\n\tindex: number;\n\twindows?: boolean;\n\tmarketItem: MarketItem;\n\tonRemovalFromWatchlist?: () => void;\n\tdynamicallyRemoveItemFromWatchlist?: () => void;\n\tonChartClick: () => void;\n\tshowPriceStats?: boolean; //Optional prop to display Low/High values underneath buy/sell buttons\n\tspreadPosition?: boolean; //Optional prop to toggle shifting class of spread display\n\tresizeButton?: boolean; //Optional prop to toggle resized buttons class\n\tshowButtonText?: boolean; //Optional prop to display \"Buy\" \"Sell\" words within buttons\n\tshowInstrumentName?: boolean; //Optional prop to toggle display full instrument name next to button\n\tparent?: string; //Parent element\n\tbuttonsClass?: string;\n\tshowRemoveOption?: boolean;\n}\n\nconst Instrument = React.memo(\n\t({\n\t\tindex,\n\t\tmarketItem,\n\t\twindows,\n\t\tonChartClick,\n\t\tshowInstrumentName,\n\t\tshowPriceStats,\n\t\tspreadPosition,\n\t\tresizeButton,\n\t\tshowButtonText,\n\t\tparent,\n\t\tbuttonsClass,\n\t\tonRemovalFromWatchlist,\n\t\tdynamicallyRemoveItemFromWatchlist,\n\t\tshowRemoveOption\n\t}) => {\n\t\tconst appContext = useContext(AppContext);\n\t\tconst dashboardContext = useContext(DashboardContext);\n\t\tconst promiseFactory = usePromiseFactory();\n\n\t\tconst forceRerender = useForceRerender();\n\t\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\n\t\tconst subIdRef = useRef(undefined);\n\t\tconst [currentPriceQuote, setCurrentPriceQuote] = useState>();\n\n\t\tconst accountType = dashboardContext.accountType;\n\t\tconst selectedInstrument = dashboardContext.selectedInstrument;\n\t\tconst selectedPosition = dashboardContext.selectedPosition;\n\t\tconst selectedType = dashboardContext.selectedType;\n\t\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\t\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\t\tconst { tradersGymContext } = gymContext;\n\n\t\tconst { t } = useTranslation();\n\n\t\tconst item = useRef(null);\n\t\tconst isInViewport = useIsInViewport(item);\n\t\tconst isArabic = appContext.isArabic;\n\n\t\tuseObservable(appContext.getPropertyChangeStream('appTheme', 'email'), () => {\n\t\t\tpromiseFactory.throttle('appContext.propertyChanged', 100).then(() => {\n\t\t\t\tforceRerender();\n\t\t\t});\n\t\t});\n\n\t\tuseObservable(\n\t\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t\t'accountType',\n\t\t\t\t'detailedInformation',\n\t\t\t\t'selectedInstrument',\n\t\t\t\t'selectedPosition',\n\t\t\t\t'selectedType',\n\t\t\t\t'tradingAccount'\n\t\t\t),\n\t\t\t() => {\n\t\t\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t\t\t\t\tforceRerender();\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\n\t\tconst handleChartClick = () => {\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.selectedType = 'Instrument';\n\t\t\tdashboardContext.isEdit = false;\n\t\t\tonChartClick && onChartClick();\n\t\t};\n\n\t\tconst isSelected = selectedPosition && selectedPosition[0] ? selectedPosition[0] : '';\n\t\tconst isInstrument = selectedInstrument ? selectedInstrument?.code === marketItem?.code : false;\n\t\tconst isGrid = isSelected?.code === marketItem?.code;\n\n\t\t//Function to dynamically select which container to size the trading buttons with (watchlist vs right hand panels)\n\t\tconst containerSelector = () => {\n\t\t\tif (resizeButton) {\n\t\t\t\treturn cn(\n\t\t\t\t\tisWindowStyles(styles.rightHandContainer, styles.windowContainer, windows),\n\t\t\t\t\tselectStyle,\n\t\t\t\t\tindex === -1 ? styles.showActions : null\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn cn(\n\t\t\t\t\tisWindowStyles(styles.container, styles.windowContainer, windows),\n\t\t\t\t\tselectStyle,\n\t\t\t\t\tindex === -1 ? styles.showActions : null,\n\t\t\t\t\tparent && styles[parent]\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\t//Function to display the highlight on a selected instrument. When \"resizeButton\", no highlight shown (right hand panel)\n\t\tconst displayHighlight = () => {\n\t\t\tif (resizeButton) {\n\t\t\t\treturn isInstrument && selectedType === 'Instrument'\n\t\t\t\t\t? ''\n\t\t\t\t\t: isGrid && selectedType === 'Grid'\n\t\t\t\t\t? ''\n\t\t\t\t\t: styles.nonHighlightSelected;\n\t\t\t} else {\n\t\t\t\treturn isInstrument\n\t\t\t\t\t? styles.highlightSelected\n\t\t\t\t\t: isGrid && selectedType === 'Grid'\n\t\t\t\t\t? styles.highlightSelected\n\t\t\t\t\t: styles.nonHighlightSelected;\n\t\t\t}\n\t\t};\n\n\t\tconst selectStyle = displayHighlight();\n\n\t\tconst renderTooltip = (props: any) => (\n\t\t\t\n\t\t\t\t{marketItem!.fullName}\n\t\t\t\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\tif (tradersGymContext.priceQuote) {\n\t\t\t\tsetCurrentPriceQuote(tradersGymContext.priceQuote);\n\t\t\t}\n\t\t}, [tradersGymContext.priceQuote]);\n\n\t\tuseEffect(() => {\n\t\t\t// Walk around to the race condition for Quote subscription while InstrumentHeader rendering,\n\t\t\t// and the check isInViewport is getting false from time to time.\n\t\t\tconst shouldSubscribe = isInViewport || parent === 'instrumentHeader';\n\n\t\t\tif (rfpGatewayContext && marketItem && shouldSubscribe && !tradersGymContext.isActive) {\n\t\t\t\t// Unsubscribe existing subscription\n\t\t\t\tif (subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribeFor(subIdRef.current);\n\t\t\t\t\tsubIdRef.current = undefined;\n\t\t\t\t}\n\n\t\t\t\tsubIdRef.current = rfpGatewayContext.subscribeFor(RFPDataObjectType.PriceQuote, (priceQuote) => {\n\t\t\t\t\tif (priceQuote.c === marketItem.code) {\n\t\t\t\t\t\tsetCurrentPriceQuote(priceQuote);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t//console.log(`✅︎ Subscribe instruments subId=${subIdRef.current} symbol=${marketItem.code}`);\n\n\t\t\t\t// Get latest price snapshot\n\t\t\t\tconst priceQuote = rfpGatewayContext.getQuotePrices(marketItem.feedId, marketItem.code);\n\t\t\t\tif (priceQuote) {\n\t\t\t\t\tsetCurrentPriceQuote(priceQuote);\n\t\t\t\t}\n\n\t\t\t\t// unsubscribe price quote on unmount\n\t\t\t\treturn () => {\n\t\t\t\t\tif (rfpGatewayContext && subIdRef.current) {\n\t\t\t\t\t\trfpGatewayContext.unsubscribeFor(subIdRef.current);\n\t\t\t\t\t\t//console.log(`❌ Unsubscribe instruments subId=${subIdRef.current}`);\n\t\t\t\t\t\tsubIdRef.current = undefined;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t}, [marketItem, rfpGatewayContext, isInViewport]);\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{showRemoveOption && \n\t\t\t\t\n\t\t\t\t\t\t{t(\"en:REMOVE\")}\n\t\t\t\t\t}>\n\t\t\t\t\t
{\n\t\t\t\t\t\tdynamicallyRemoveItemFromWatchlist && dynamicallyRemoveItemFromWatchlist();\n\t\t\t\t\t\t}}>
\n\t\t\t\t
}\n\t\t\t\t
\n\t\t\t\t\t{parent !== 'instrumentHeader' && (\n\t\t\t\t\t\t
handleChartClick()}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{marketItem.grp && t(instrumentGroupProps[marketItem.grp]?.name)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{parent !== 'instrumentHeader' && (\n\t\t\t\t\t\t handleChartClick()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{showInstrumentName && marketItem && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
{marketItem.displayName}
\n\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{accountType !== 'equity' && showInstrumentName && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{marketItem?.fullName}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t\t onChartClick()}\n\t\t\t\t\t\t\tid={index}\n\t\t\t\t\t\t\tticketLayout={ticketLayout}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn (\n\t\t\tprevProps === nextProps ||\n\t\t\t(prevProps &&\n\t\t\t\tnextProps &&\n\t\t\t\t(\n\t\t\t\t\t['index', 'ticker', 'marketItem', 'windows', 'onRemovalFromWatchlist', 'onChartClick'] as Array<\n\t\t\t\t\t\tkeyof typeof prevProps\n\t\t\t\t\t>\n\t\t\t\t).every((key) => prevProps[key] === nextProps[key]))\n\t\t);\n\t}\n);\n\nexport default Instrument;\n","import React, { useContext, useMemo, useState } from 'react';\n\nimport cn from 'classnames';\n\nimport { OverlayTrigger } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport {\n\tformatNumberWithCommas,\n\tformattedNumber,\n} from '../../features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\nimport {\n\tcalculateInitialStopLossValue,\n\tcalculateInitialTakeProfitValue,\n\tgetFormattedSpreadValue,\n} from '../../../utils/functions/calculations';\nimport { InitialStopLossTakeProfitValues } from '../../features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderTicketModal';\nimport { MarketItem, PriceQuote } from '../../../gateways/RfpGateway/rfp.types';\n\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../contexts/DashboardContext';\n\nimport orderStore from '../../../store/OrderStore/orderStore';\nimport { default as usePromiseFactory } from '../../../utils/hooks/usePromiseFactory';\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\nimport { default as Nullable } from '../../../utils/functions/Nullable';\nimport { TicketLayout, TradingPositionSide } from '../../../utils/functions/enums';\nimport uniqueId from '../../../utils/functions/uniqueId';\nimport useShortTranslation from '../../../utils/hooks/useShortTranslation';\nimport useHandleOrderConstraint from '../../../utils/hooks/useHandleOrderConstraint';\nimport useHandleSubscriptionConstraints from '../../../utils/hooks/useHandleSubscriptionConstraints';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { getGeneralFormatDate } from '../../../utils/functions/subscriptionUtils';\n\nimport authStore from '../../../store/authStore';\n\nimport tradingAccountStore from '../../../store/tradingAccountStore';\n\nimport accountStatusStore, { StatusStore } from '../../../store/accountStatusStore';\nimport tradingViewStore from '../../../store/tradingViewStore';\nimport useTimeSessions from '../../../utils/hooks/useTimeSessions';\n\nimport Tooltip from './../Tooltip/Tooltip';\n\nimport styles from './BidAskSpread.module.scss';\n\ninterface BidAskSpreadProps {\n\tmarketItem: MarketItem;\n\torder?: boolean;\n\ttypeOfOrder?: string | undefined;\n\tstopLoss?: boolean;\n\ttakeProfit?: boolean;\n\ttradeMeasure?: string;\n\tprofitTradeMeasure?: string;\n\tdispatcher?: any;\n\tlimitPrice?: string;\n\tisBidAskDisabled?: boolean;\n\tgridChartMenu?: boolean;\n\tinstrument?: PriceQuote | null;\n\tid?: any;\n\tonChartClick?: () => void;\n\tshowPriceStats?: boolean;\n\tspreadPosition?: boolean;\n\tresizeButton?: boolean;\n\tshowButtonText?: boolean;\n\theaderSpreadPosition?: boolean;\n\tticketLayout: string | null;\n}\n\nconst BidAskSpread = React.memo(\n\t({\n\t\tmarketItem,\n\t\torder,\n\t\ttypeOfOrder,\n\t\tstopLoss,\n\t\ttakeProfit,\n\t\ttradeMeasure,\n\t\tprofitTradeMeasure,\n\t\tdispatcher,\n\t\tlimitPrice,\n\t\tisBidAskDisabled,\n\t\tgridChartMenu,\n\t\tinstrument,\n\t\tonChartClick,\n\t\tshowPriceStats,\n\t\tspreadPosition,\n\t\tresizeButton,\n\t\tshowButtonText,\n\t\theaderSpreadPosition,\n\t\tticketLayout,\n\t}) => {\n\t\tconst appContext = useContext(AppContext);\n\t\tconst dashboardContext = useContext(DashboardContext);\n\n\t\t//is we use `use.current().side` every change in the order will trigger a re-render; this is more optimal\n\t\tconst tradingPositionSide = orderStore((state) => state.current.side);\n\t\t//using OrderStore callback because use break typescript\n\t\tconst storeMarketItem = orderStore((state) => state.marketItem);\n\t\tconst setTradeProps = orderStore.use.setTradeProps();\n\t\tconst resetOrderStore = orderStore.use.reset();\n\t\tconst setTradingPosition = orderStore.use.setTradingPosition();\n\t\tconst setMarketItem = orderStore.use.setMarketItem();\n\t\tconst isLiveMode = authStore.use.isLiveMode();\n\n\t\tconst forceRerender = useForceRerender();\n\t\tconst promiseFactory = usePromiseFactory();\n\t\tconst { t } = useTranslation();\n\t\tconst tt = useShortTranslation('en:');\n\n\t\tconst languageSettings = appContext.languageSettings;\n\t\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\t\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\t\tconst selectedInstrument = dashboardContext.selectedInstrument;\n\t\tconst setTicketLayout = tradingViewStore.use.setTicketLayout();\n\t\tconst modifyTicket = dashboardContext.modifyTicket;\n\t\tconst tradingAccount = dashboardContext.tradingAccount;\n\t\tconst selectedPosition = dashboardContext.selectedPosition;\n\t\tconst selectedType = dashboardContext.selectedType;\n\t\tconst handleSubscriptionsConstraints = useHandleSubscriptionConstraints();\n\t\tconst handleOrderConstraint = useHandleOrderConstraint();\n\n\t\tconst [prevBid, setPrevBid] = useState(0);\n\t\tconst [previousBid, setPreviousBid] = useState(0);\n\t\tconst [prevAsk, setPrevAsk] = useState(0);\n\t\tconst [previousAsk, setPreviousAsk] = useState(0);\n\t\tconst [selectedQuantity] = useState(undefined);\n\n\t\tconst isSelected = selectedPosition && selectedPosition[0] ? selectedPosition[0] : '';\n\t\tconst isInstrument = selectedInstrument && marketItem ? selectedInstrument?.code === marketItem?.code : false;\n\t\tconst isGrid = isSelected.code === marketItem?.code;\n\n\t\t// Maximum length for short high/low strings used to apply different styling for longer strings\n\t\tconst maxHighLowStringsLength = 12;\n\t\tconst displayPriceA = instrument ? instrument.a : 0;\n\t\tconst displayPriceB = instrument ? instrument.b : 0;\n\t\tconst instrumentZero: string = Number(0).toFixed(marketItem?.decPrec);\n\t\tconst INITIAL_VALUE: number = 0.25;\n\t\tconst INITIAL_TAKEPROFIT_VALUE = 30;\n\t\tconst getPathname = window.location.pathname === '/web-trader/watchlist/ticker';\n\t\tconst tradeButtons = accountStatusStore((state: StatusStore) => (state.permissions || {}).tradeButtons);\n\t\tconst setShowModal = accountStatusStore((state: StatusStore) => state.setShowModal);\n\n\t\tconst { isWorkingTime } = useTimeSessions();\n\n\t\tconst bidNumber = useMemo(\n\t\t\t() =>\n\t\t\t\tformattedNumber(\n\t\t\t\t\tinstrument ? instrument.b : instrumentZero,\n\t\t\t\t\tmarketItem,\n\t\t\t\t\tisSpreadBettingAccount,\n\t\t\t\t\torder,\n\t\t\t\t\tgridChartMenu,\n\t\t\t\t\tlanguageSettings,\n\t\t\t\t\tundefined\n\t\t\t\t),\n\t\t\t[instrument, marketItem, order, instrumentZero, gridChartMenu]\n\t\t);\n\t\tconst askNumber = useMemo(\n\t\t\t() =>\n\t\t\t\tformattedNumber(\n\t\t\t\t\tinstrument ? instrument.a : instrumentZero,\n\t\t\t\t\tmarketItem,\n\t\t\t\t\tisSpreadBettingAccount,\n\t\t\t\t\torder,\n\t\t\t\t\tgridChartMenu,\n\t\t\t\t\tlanguageSettings,\n\t\t\t\t\tundefined\n\t\t\t\t),\n\t\t\t[instrument, marketItem, order, instrumentZero, gridChartMenu]\n\t\t);\n\n\t\tconst highNumber = useMemo(\n\t\t\t() => formatNumberWithCommas(instrument ? instrument.h : +instrumentZero, marketItem?.decPrec, languageSettings),\n\t\t\t[marketItem, instrument, instrumentZero]\n\t\t);\n\t\tconst lowNumber = useMemo(\n\t\t\t() => formatNumberWithCommas(instrument ? instrument.l : +instrumentZero, marketItem?.decPrec, languageSettings),\n\t\t\t[marketItem, instrument, instrumentZero]\n\t\t);\n\n\t\tconst timeUpdate = useMemo(\n\t\t\t() => instrument && getGeneralFormatDate(moment(instrument.t).toDate(), true, appContext.isJapanAccount),\n\t\t\t[instrument, marketItem]\n\t\t);\n\n\t\tconst instrumentColor = (left: number, right: number) => {\n\t\t\treturn {\n\t\t\t\t[styles.instrumentGrey]: left === 0 && right === 0,\n\t\t\t\t[isInstrument ? styles.instrumentRedHighlighted : styles.instrumentRed]: left <= right,\n\t\t\t\t[isInstrument ? styles.instrumentGreenHighlighted : styles.instrumentGreen]: left >= right,\n\t\t\t};\n\t\t};\n\n\t\tuseObservable(appContext.getPropertyChangeStream('isChildWindow'), async () => {\n\t\t\tawait promiseFactory.throttle('appContext.propertyChanged', 100);\n\t\t\tforceRerender();\n\t\t});\n\n\t\tuseObservable(\n\t\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t\t'detailedInformation',\n\t\t\t\t'selectedInstrument',\n\t\t\t\t'quantityType',\n\t\t\t\t'orderModalOpenedFrom',\n\n\t\t\t\t'modifyTicket',\n\t\t\t\t'tradingAccount',\n\t\t\t\t'selectedPosition',\n\t\t\t\t'selectedType',\n\t\t\t\t'applicationStatus',\n\t\t\t\t'accountValues'\n\t\t\t),\n\t\t\tasync () => {\n\t\t\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\t\t\tforceRerender();\n\t\t\t}\n\t\t);\n\n\t\tNullable.of(instrument).run((instrument) => {\n\t\t\tif (previousBid !== instrument.b) {\n\t\t\t\tsetPreviousBid(instrument.b);\n\t\t\t}\n\t\t\tif (previousAsk !== instrument.a) {\n\t\t\t\tsetPreviousAsk(instrument.a);\n\t\t\t}\n\t\t\tif (previousBid !== instrument.b) {\n\t\t\t\tsetPrevBid(previousBid);\n\t\t\t}\n\t\t\tif (previousAsk !== instrument.a) {\n\t\t\t\tsetPrevAsk(previousAsk);\n\t\t\t}\n\t\t});\n\n\t\tconst buttonStyles = (left: number, right: number) => {\n\t\t\tif (resizeButton && !gridChartMenu) {\n\t\t\t\treturn cn(styles.resizedButton, order ? styles.orderButton : '', instrumentColor(left, right));\n\t\t\t}\n\t\t\t//\n\t\t\treturn cn(\n\t\t\t\t!order\n\t\t\t\t\t? !getPathname\n\t\t\t\t\t\t? gridChartMenu\n\t\t\t\t\t\t\t? styles.gridChartInstrumentButton\n\t\t\t\t\t\t\t: styles.instrumentButton\n\t\t\t\t\t\t: styles.windowInstrumentButton\n\t\t\t\t\t: styles.orderButton,\n\t\t\t\tinstrumentColor(left, right),\n\t\t\t\t'bidAskSpreadButton' // be able to address the buttons in the current instrument\n\t\t\t);\n\t\t};\n\n\t\tconst orderButtonStyles = (left: number, right: number, button: any) => {\n\t\t\treturn !button\n\t\t\t\t? cn(ticketLayout === TicketLayout.Dock ? styles.orderButton : styles.orderButtonModal, styles.borderButton, {\n\t\t\t\t\t\t[styles.orderGrey]: left === 0 && right === 0,\n\t\t\t\t\t\t[styles.orderRed]: left <= right,\n\t\t\t\t\t\t[styles.orderGreen]: left >= right,\n\t\t\t\t })\n\t\t\t\t: cn(\n\t\t\t\t\t\tticketLayout === TicketLayout.Dock ? styles.orderButton : styles.orderButtonModal,\n\t\t\t\t\t\tinstrumentColor(left, right)\n\t\t\t\t );\n\t\t};\n\n\t\tconst spreadIndicatorPosition = () => {\n\t\t\tif (spreadPosition && !getPathname) {\n\t\t\t\treturn styles.rightHandSpread;\n\t\t\t} else if (headerSpreadPosition && !getPathname) {\n\t\t\t\treturn styles.headerTickerButtons;\n\t\t\t} else if (!getPathname) {\n\t\t\t\treturn styles.instrumentPosition;\n\t\t\t} else {\n\t\t\t\treturn styles.windowInstrumentPosition;\n\t\t\t}\n\t\t};\n\n\t\tconst spreadButtonStyles = () => {\n\t\t\treturn cn(\n\t\t\t\tticketLayout === TicketLayout.Dock ? styles.orderPosition : styles.orderPositionModal,\n\t\t\t\tstyles.spreadButton\n\t\t\t);\n\t\t};\n\n\t\tconst displayHighlight = () => {\n\t\t\treturn isInstrument ? styles.highlightSpread : styles.spread;\n\t\t};\n\n\t\tconst handleButtonClick = (side: TradingPositionSide) => {\n\t\t\tif (!instrument) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (tradeButtons === 'accountStatus') {\n\t\t\t\tsetShowModal(true);\n\t\t\t\tappContext.statusModal = true;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Want to one-click-trade? Not so fast!\n\t\t\t// Is this a Japan account with some sort of constraint?\n\t\t\tif (isJapanSubscriptionAccount && isLiveMode) {\n\t\t\t\tconst nonVolumeConstraint = handleSubscriptionsConstraints(marketItem);\n\t\t\t\tif (nonVolumeConstraint) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orderSizeConstraint = handleOrderConstraint(parseInt(selectedQuantity!));\n\t\t\t\tif (orderSizeConstraint) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tonChartClick && onChartClick();\n\t\t\tdashboardContext.modifyTicket = false;\n\t\t\tdashboardContext.showConfirmTicket = false;\n\n\t\t\t// Open up Order modal\n\t\t\tdashboardContext.orderModalOpenedFrom = 'watchlist';\n\t\t\t// dashboardContext.orderType = orderType;\n\n\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\tdashboardContext.isEdit = false;\n\n\t\t\tif (tradingAccount.length > 0) {\n\t\t\t\tif (storeMarketItem && storeMarketItem.code !== marketItem.code) {\n\t\t\t\t\tresetOrderStore();\n\t\t\t\t}\n\n\t\t\t\tsetTradingPosition(undefined);\n\t\t\t\tsetMarketItem(undefined);\n\t\t\t\tsetTradeProps({ side: side });\n\t\t\t\tif (ticketLayout === TicketLayout.Dock || !ticketLayout) {\n\t\t\t\t\tsetTicketLayout(TicketLayout.Dock);\n\t\t\t\t\tdashboardContext.showOrderTicket = true;\n\t\t\t\t\tdashboardContext.showNewsFeed = false;\n\t\t\t\t\tdashboardContext.showOrderInformation = false;\n\t\t\t\t\tdashboardContext.showCloseTicket = false;\n\t\t\t\t\tdashboardContext.showCancelTicket = false;\n\t\t\t\t} else {\n\t\t\t\t\tdashboardContext.newOrderModalToggle = {\n\t\t\t\t\t\torderTicket: true,\n\t\t\t\t\t\tconfirmOrder: false,\n\t\t\t\t\t};\n\t\t\t\t\tdashboardContext.showOrderTicket = false;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/* Clicking on Trade side Buy or Sell should set Initial values to Stoploss and take profit if the checkbox is enabled*/\n\t\tconst handleTradeSideClick = (value: TradingPositionSide) => {\n\t\t\tif (!isBidAskDisabled) {\n\t\t\t\t/* setTradingPositionSide(value); */\n\t\t\t\tsetTradeProps({ side: value });\n\n\t\t\t\tconst initialStopLossTakeProfitObj: InitialStopLossTakeProfitValues = {\n\t\t\t\t\tinstrument:\n\t\t\t\t\t\tvalue === TradingPositionSide.Buy ? (instrument ? instrument.a : 0) : instrument ? instrument.b : 0,\n\t\t\t\t\tinitialValue: INITIAL_VALUE,\n\t\t\t\t\tside: tradingPositionSide,\n\t\t\t\t\tdecimalPrecision: selectedInstrument?.decPrec ?? 0,\n\t\t\t\t\ttypeOfOrder: typeOfOrder!,\n\t\t\t\t\tlimitPrice: typeOfOrder === 'stop' || typeOfOrder === 'limit' ? limitPrice! : '0',\n\t\t\t\t};\n\n\t\t\t\tif (value === TradingPositionSide.Sell && stopLoss) {\n\t\t\t\t\tdispatcher({\n\t\t\t\t\t\ttype: 'setStopLossValues',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\ttradeMeasure === 'stopLoss_Price'\n\t\t\t\t\t\t\t\t? calculateInitialStopLossValue(initialStopLossTakeProfitObj)\n\t\t\t\t\t\t\t\t: INITIAL_TAKEPROFIT_VALUE,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (value === TradingPositionSide.Buy && stopLoss) {\n\t\t\t\t\tdispatcher({\n\t\t\t\t\t\ttype: 'setStopLossValues',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\ttradeMeasure === 'stopLoss_Price'\n\t\t\t\t\t\t\t\t? calculateInitialStopLossValue(initialStopLossTakeProfitObj)\n\t\t\t\t\t\t\t\t: INITIAL_TAKEPROFIT_VALUE,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (value === TradingPositionSide.Sell && takeProfit) {\n\t\t\t\t\tdispatcher({\n\t\t\t\t\t\ttype: 'setProfitValues',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\tprofitTradeMeasure === 'profit_Price'\n\t\t\t\t\t\t\t\t? calculateInitialTakeProfitValue(initialStopLossTakeProfitObj)\n\t\t\t\t\t\t\t\t: INITIAL_TAKEPROFIT_VALUE,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (value === TradingPositionSide.Buy && takeProfit) {\n\t\t\t\t\tdispatcher({\n\t\t\t\t\t\ttype: 'setProfitValues',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\tprofitTradeMeasure === 'profit_Price'\n\t\t\t\t\t\t\t\t? calculateInitialTakeProfitValue(initialStopLossTakeProfitObj)\n\t\t\t\t\t\t\t\t: INITIAL_TAKEPROFIT_VALUE,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst spreadButton = (side: TradingPositionSide) => {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{order && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
{side === TradingPositionSide.Buy ? askNumber : bidNumber}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t
{side === TradingPositionSide.Buy ? askNumber : bidNumber}
\n\t\t\t\t\n\t\t\t);\n\t\t};\n\n\t\tconst buttonToolTip = (side: TradingPositionSide) => {\n\t\t\tconst isOpenMarket = appContext.isJapanAccount ? undefined : isWorkingTime(marketItem, new Date());\n\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{tt(`${side}_ACTION`)}{' '}\n\t\t\t\t\t\t{marketItem?.exchangeTicker && marketItem?.exchangeTicker !== ''\n\t\t\t\t\t\t\t? marketItem?.exchangeTicker\n\t\t\t\t\t\t\t: marketItem?.displayName}\n\t\t\t\t\t\t{/* {isOpenMarket !== undefined && !isOpenMarket && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t•\n\t\t\t\t\t\t\t\t
{t('en:202')}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)} */}\n\t\t\t\t\t
\n\n\t\t\t\t\t{isOpenMarket &&
{timeUpdate}
}\n\t\t\t\t
\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t{buttonToolTip(TradingPositionSide.Sell)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t!order ? handleButtonClick(TradingPositionSide.Sell) : handleTradeSideClick(TradingPositionSide.Sell);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{showButtonText &&
{tt('SELL_ACTION')}
}\n\t\t\t\t\t\t\t\t{spreadButton(TradingPositionSide.Sell)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{/* {!order && !gridChartMenu && showPriceStats && (\n\t\t\t\t\t\t\t\t maxHighLowStringsLength\n\t\t\t\t\t\t\t\t\t\t\t? styles.tickerLowLong\n\t\t\t\t\t\t\t\t\t\t\t: styles.tickerLow\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{tt('LOW')}{' '}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{isNaN(+lowNumber?.replaceAll(',', '')) ? t('wtr:NA') : lowNumber}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)} */}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{getFormattedSpreadValue(marketItem, displayPriceA, displayPriceB, languageSettings)}\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t{buttonToolTip(TradingPositionSide.Buy)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t!order ? handleButtonClick(TradingPositionSide.Buy) : handleTradeSideClick(TradingPositionSide.Buy)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{showButtonText &&
{tt('BUY_ACTION')}
}\n\t\t\t\t\t\t\t\t{spreadButton(TradingPositionSide.Buy)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* {!order && !gridChartMenu && showPriceStats && (\n\t\t\t\t\t\t\t\t maxHighLowStringsLength\n\t\t\t\t\t\t\t\t\t\t\t? styles.tickerHighLong\n\t\t\t\t\t\t\t\t\t\t\t: styles.tickerHigh\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{tt('HIGH')}{' '}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{isNaN(+highNumber?.replaceAll(',', '')) ? t('wtr:NA') : highNumber}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)} */}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn (\n\t\t\tprevProps === nextProps ||\n\t\t\t(prevProps &&\n\t\t\t\tnextProps &&\n\t\t\t\t(\n\t\t\t\t\t[\n\t\t\t\t\t\t'marketItem',\n\t\t\t\t\t\t'order',\n\t\t\t\t\t\t'typeOfOrder',\n\t\t\t\t\t\t'stopLoss',\n\t\t\t\t\t\t'takeProfit',\n\t\t\t\t\t\t'tradeMeasure',\n\t\t\t\t\t\t'profitTradeMeasure',\n\t\t\t\t\t\t'dispatcher',\n\t\t\t\t\t\t'limitPrice',\n\t\t\t\t\t\t'isBidAskDisabled',\n\t\t\t\t\t\t'gridChartMenu',\n\t\t\t\t\t\t'instrument',\n\t\t\t\t\t\t'ticketLayout',\n\t\t\t\t\t] as Array\n\t\t\t\t).every((key) => prevProps[key] === nextProps[key]))\n\t\t);\n\t}\n);\n\nexport default BidAskSpread;\n","import {\n\tcheckIsGlobalOrderSizeExceeded,\n\tcheckIsTierOrderSizeExceeded,\n\tcheckIsVolumeExceeded,\n\tSubscriptionModalReason,\n} from '../functions/subscriptionUtils';\n\nimport useSubscriptionInfo from './useSubscriptionInfo';\n\nimport useSubscriptionModal from './useSubscriptionModal';\n\nconst useHandleOrderConstraint = () => {\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\n\tconst handleOrderLimit = (orderSize: number) => {\n\t\tif (\n\t\t\tsubscriptionInfo.maxVolume !== null &&\n\t\t\tsubscriptionInfo.remainingVolume !== null &&\n\t\t\tcheckIsVolumeExceeded(subscriptionInfo)\n\t\t) {\n\t\t\tsetModalStateProps({\n\t\t\t\treason: SubscriptionModalReason.Volume,\n\t\t\t\tisOpen: true,\n\t\t\t});\n\t\t\treturn SubscriptionModalReason.Volume;\n\t\t}\n\t\tif (checkIsGlobalOrderSizeExceeded(orderSize)) {\n\t\t\tsetModalStateProps({\n\t\t\t\treason: SubscriptionModalReason.OrderSizeGlobal,\n\t\t\t\tisOpen: true,\n\t\t\t});\n\t\t\treturn SubscriptionModalReason.OrderSizeGlobal;\n\t\t}\n\t\tif (checkIsTierOrderSizeExceeded(orderSize, subscriptionInfo)) {\n\t\t\tsetModalStateProps({\n\t\t\t\treason: SubscriptionModalReason.OrderSizeUpgradable,\n\t\t\t\tisOpen: true,\n\t\t\t});\n\t\t\treturn SubscriptionModalReason.OrderSizeUpgradable;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\treturn handleOrderLimit;\n};\n\nexport default useHandleOrderConstraint;\n","import { useEffect, useMemo, useState } from 'react';\n\nconst useIsInViewport = (ref: any) => {\n\tconst [isIntersecting, setIsIntersecting] = useState(false);\n\n\tconst observer = useMemo(() => new IntersectionObserver(([entry]) => setIsIntersecting(entry.isIntersecting)), []);\n\n\tuseEffect(() => {\n\t\tif (ref.current) {\n\t\t\tobserver.observe(ref.current);\n\t\t}\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ref, observer]);\n\n\treturn isIntersecting;\n};\n\nexport default useIsInViewport;\n","import React, { useContext } from 'react';\n\nimport cn from 'classnames';\n\nimport { tierIcons } from '../../../setup/subscriptionsConfig';\n\nimport { instrumentGroupProps } from '../../../utils/functions/constants';\n\nimport styles from './GroupBadge.module.scss';\nimport StringUtils from '../../../utils/functions/StringUtils';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\n\ninterface TierBadgeProps {\n\tgroupName: any;\n\thideIconForNonJapan?: boolean;\n}\n\nconst GroupBadge = ({ groupName, hideIconForNonJapan }: TierBadgeProps) => {\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tif (hideIconForNonJapan) return null;\n\tif (!groupName) return null;\n\tif (StringUtils.isString(groupName) && groupName?.endsWith('SB')) return null;\n\n\tif (isJapanSubscriptionAccount) {\n\t\tconst tier: string = `tier${groupName}`;\n\t\tif (groupName !== 0)\n\t\t\treturn  ;\n\n\t\treturn \"Tier\";\n\t}\n\n\treturn {groupName.toString()};\n};\n\nexport default GroupBadge;\n","import React, { useContext, CSSProperties } from 'react';\nimport cn from 'classnames';\n\nimport { Long } from 'long';\n\nimport { default as DashboardContext } from '../../../../contexts/DashboardContext';\nimport AppContext from '../../../../contexts/AppContext';\nimport { JAPAN_DATETIME_FORMAT } from '../../../../setup/config';\nimport { getFormattedDateHelper } from '../../../../utils/functions/subscriptionUtils';\n\nimport styles from './NewsWidgetStyles.module.scss';\n\nconst getFormattedNewsArticleTime = (datetime: number, isJapanAccount = false) => {\n\tconst formatString = isJapanAccount ? JAPAN_DATETIME_FORMAT : 'ddd, MMMM Do YYYY, H:mm';\n\treturn getFormattedDateHelper(datetime, formatString);\n};\n\ntype TNewsArticleProps = {\n\theadline?: string;\n\ttime: Long;\n\tid: number;\n\tcustomWidth?: CSSProperties;\n\tclassName?: string;\n\tonClick?: () => void;\n};\n\nconst NewsArticle = ({ headline, time, id, className, customWidth, onClick }: TNewsArticleProps) => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst appContext = useContext(AppContext);\n\n\tconst handleClickedArticle = (id: number) => {\n\t\tif (onClick) {\n\t\t\tonClick();\n\t\t\treturn;\n\t\t}\n\t\tdashboardContext.selectedNewsContent = id;\n\t};\n\n\t// One hour added as it was removed before in order to format it. Hour 24 was giving invalid date\n\treturn (\n\t\t handleClickedArticle(id)}\n\t\t>\n\t\t\t
\n\t\t\t\t
{headline}
\n\t\t\t\t
\n\t\t\t\t\t{getFormattedNewsArticleTime(time as unknown as number, appContext.isJapanAccount)}\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\nexport default NewsArticle;\n","import React, { useState, useContext } from 'react';\n\nimport WtrModal from '../../../shared/WtrModal/WtrModal';\n\nimport AppContext from '../../../contexts/AppContext';\n\nimport styles from './JapanNewsDisclaimer.module.scss';\n\nconst JapanNewsDisclaimer = () => {\n\tconst [openDisclaimerMessage, setOpenDisclaimerMessage] = useState(false);\n\tconst appContext = useContext(AppContext);\n\n\tif (!appContext.isJapanAccount) return null;\n\treturn (\n\t\t<>\n\t\t\t
setOpenDisclaimerMessage(true)} className={styles.disclaimerMessage}>\n\t\t\t\tニュース配信に関する免責事項は+こちら+をご確認ください。\n\t\t\t
\n\n\t\t\t setOpenDisclaimerMessage(false)}>\n\t\t\t\t{'MarketWinニュース'}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tTF Global Markets\n\t\t\t\t\t\t\tJapan株式会社は、株式会社ジャパンエコノミックパルスから配信されたMarketWin24(本サービス)についてThinkTrader取引システムを通じて提供しておりますが、当社はその情報の正確性、配信の確実性などを保証するものではなく、本サービスに基づいて被ったいかなる損失・損害についても、一切の責任を負いません。\n\t\t\t\t\t\t\t・また、本サービスは、情報提供を目的としたものであり、売買の勧誘を目的としたものではありません。投資に関する最終決定はお客さまご自身の判断でなさいますようお願い致します。・なお、本サービスに記載されている情報は、株式会社ジャパンエコノミックパルスが情報提供を目的として作成したものであり、売買の勧誘を目的としたものではなく、本サービスに基づいて被ったいかなる損失・損害についても、株式会社ジャパンエコノミックパルスは一切の責任を負いません。また、本サービスの著作権は全て株式会社ジャパンエコノミックパルスに帰属します。無断の複製、転載、転送、販売、出版、配布等は法的に罰せられますのでご注意ください。\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default JapanNewsDisclaimer;\n","import { useContext } from 'react';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport RfpGatewayContext from '../../contexts/RfpGatewayContext';\nimport { MarketItem } from '../../gateways/RfpGateway/rfp.types';\nimport tradingAccountStore from '../../store/tradingAccountStore';\nimport { TWatchlistInstrument } from '../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nimport useSaveWatchlistToPreferences from './watchlist/useSaveWatchlistToPreferences';\n\nexport const useUpdateSBWatchlistInstruments = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\tconst saveWatchlistToPreferences = useSaveWatchlistToPreferences();\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\n\treturn (marketItems: MarketItem[]) => {\n\t\tif (\n\t\t\tisSpreadBettingAccount &&\n\t\t\trfpGatewayContext &&\n\t\t\tmarketItems.length > 0 &&\n\t\t\tdashboardContext.watchlist.length > 0\n\t\t) {\n\t\t\tlet shouldUpdate = false;\n\t\t\tconst watchlists = dashboardContext.watchlist.map((watchlist) => {\n\t\t\t\tconst instruments = watchlist.instrument.map((instrument) => {\n\t\t\t\t\tif (instrument._code.endsWith('_SB')) {\n\t\t\t\t\t\treturn instrument;\n\t\t\t\t\t}\n\n\t\t\t\t\tshouldUpdate = true;\n\t\t\t\t\tconst code = `${instrument._code}_SB`;\n\t\t\t\t\tconst marketItem = rfpGatewayContext.getMarketItem(code);\n\t\t\t\t\treturn marketItem ? { ...instrument, _code: marketItem.code } : null;\n\t\t\t\t});\n\t\t\t\tconst wlInstruments = instruments.filter((instrument) => instrument !== null);\n\t\t\t\tif (wlInstruments) {\n\t\t\t\t\twatchlist.instrument = wlInstruments as TWatchlistInstrument[];\n\t\t\t\t}\n\t\t\t\treturn watchlist;\n\t\t\t});\n\n\t\t\tif (shouldUpdate) {\n\t\t\t\tconsole.log('Updating watchlist' + watchlists);\n\t\t\t\tdashboardContext.watchlist = watchlists;\n\t\t\t\tsaveWatchlistToPreferences(dashboardContext.watchlist, isSpreadBettingAccount);\n\t\t\t}\n\t\t}\n\t};\n};\n","import React, { useContext, useMemo } from 'react';\n\nimport styles from './SearchResult.module.scss';\nimport { MarketItem } from '../../../../../gateways/RfpGateway/rfp.types';\nimport { useTranslation } from 'react-i18next';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport AppContext from '../../../../../contexts/AppContext';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport useGetTranslatedWLName from '../../../../../utils/hooks/useGetTranslatedWLName';\nimport InstrumentIcons from '../../../../../shared/InstrumentIcons/InstrumentIcons';\nimport InstrumentIcon from '../../../../components/GroupBadge/InstrumentIcon';\n\ntype TSearchResultProps = {\n\tresult: MarketItem;\n\texistsInWatchlist: boolean;\n\tonUpdateWatchlist: any;\n\tsearchTerm: string;\n\twatchlists: string[];\n};\n\nconst SearchResult = React.memo(\n\t({ result, existsInWatchlist, onUpdateWatchlist, searchTerm, watchlists }: TSearchResultProps) => {\n\t\tconst { t } = useTranslation();\n\t\tconst getTranslatedWLName = useGetTranslatedWLName();\n\n\t\twatchlists.forEach((watchlistName, index, thisArray) => {\n\t\t\tthisArray[index] = getTranslatedWLName(watchlistName);\n\t\t});\n\n\t\t// //Translate Popular Markets\n\t\t// useEffect(() => {\n\t\t// \twatchlists.forEach((watchlistName, index, thisArray) => {\n\t\t// \t\tthisArray[index] = getTranslatedWLName(watchlistName);\n\t\t// \t});\n\t\t// }, [watchlists]);\n\n\t\tconst resultContainer = useMemo(() => {\n\t\t\tconst renderMatchingName = () => {\n\t\t\t\tconst upperName = result.fullName.toUpperCase();\n\t\t\t\tconst searchString = searchTerm.toUpperCase();\n\t\t\t\tlet match = {result.fullName};\n\n\t\t\t\tif (upperName.includes(searchString)) {\n\t\t\t\t\tconst startIndex = upperName.indexOf(searchString);\n\t\t\t\t\tconst endIndex = startIndex + searchString.length;\n\t\t\t\t\tconst highlighted = (\n\t\t\t\t\t\t{result.fullName.substring(startIndex, endIndex)}\n\t\t\t\t\t);\n\t\t\t\t\tmatch = (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{result.fullName.substring(0, startIndex)}\n\t\t\t\t\t\t\t{highlighted}\n\t\t\t\t\t\t\t{result.fullName.substring(endIndex, result.fullName.length)}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t};\n\n\t\t\tconst renderMatchingCode = () => {\n\t\t\t\tconst code = result.exchangeTicker ? result.exchangeTicker : result.code;\n\t\t\t\tconst searchString = searchTerm.toUpperCase();\n\t\t\t\tlet match = {code};\n\t\t\t\tif (code.includes(searchString)) {\n\t\t\t\t\tconst unhighlighted = code.split(searchString);\n\t\t\t\t\tconst highlighted = {searchString};\n\t\t\t\t\tmatch = (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{unhighlighted[0]}\n\t\t\t\t\t\t\t{highlighted}\n\t\t\t\t\t\t\t{unhighlighted[1]}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn match;\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{renderMatchingCode()}\n\t\t\t\t\t\t{renderMatchingName()}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}, []);\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{result.fullName.length >= 45 ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{result.fullName}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{resultContainer}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\tresultContainer\n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t{existsInWatchlist ? (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{t('wtr:EXISTS_IN')} {'\"' + watchlists.join(' \", \" ') + '\"'}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\tconst keys: Array = ['result', 'existsInWatchlist', 'searchTerm'];\n\t\treturn keys.every((key) => prevProps[key] == nextProps[key]);\n\t}\n);\n\nexport default SearchResult;\n","import React from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './EmptySearch.module.scss';\n\ntype TEmptySearchProps = {\n\tinvalidSearchTerm: string;\n};\n\nconst EmptySearch = React.memo(\n\t({ invalidSearchTerm }: TEmptySearchProps) => {\n\t\tconst { t } = useTranslation();\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{t('wtr:NO_MATCHES')} {`'${invalidSearchTerm}'`}\n\t\t\t\t
\n\t\t\t\t{t('wtr:MODIFY_SEARCH')}\n\t\t\t
\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\tconst keys: Array = ['invalidSearchTerm'];\n\t\treturn keys.every((key) => prevProps[key] == nextProps[key]);\n\t}\n);\n\nexport default EmptySearch;\n","import { MarketItem } from '../../gateways/RfpGateway/rfp.types';\n\nexport function getSearchResults(marketItems: MarketItem[], value: string) {\n\treturn marketItems.filter((marketItem: MarketItem) => {\n\t\tconst isTicker =\n\t\t\tmarketItem.exchangeTicker && marketItem.exchangeTicker.toLowerCase().indexOf(value.toLowerCase()) > -1;\n\t\tconst isCode = marketItem.code.toLowerCase().indexOf(value.toLowerCase()) > -1;\n\t\tconst isName = value.length > 1 && marketItem.fullName.toLowerCase().indexOf(value.toLowerCase()) > -1;\n\t\treturn isCode || isName || isTicker;\n\t});\n}\n","import React, { FC, useContext, useEffect, useMemo, useState } from 'react';\nimport cn from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\nimport {\n\tDndContext,\n\tclosestCenter,\n\tPointerSensor,\n\tuseSensor,\n\tuseSensors,\n } from '@dnd-kit/core';\nimport {\n\tSortableContext,\n\tuseSortable,\n\tverticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Modal, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\n\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\nimport CreateWatchlistButton from '../CreateWatchlistButton';\nimport Button from '../../../../../shared/Button/Button';\nimport useGetTranslatedWLName from '../../../../../utils/hooks/useGetTranslatedWLName';\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\nimport useShortTranslation from '../../../../../utils/hooks/useShortTranslation';\nimport { instrumentExistsInDynamicWatchlists } from '../../../../../utils/functions/WatchlistUtils';\nimport watchListStore, { WatchListData } from '../../../../../store/WatchListStore/watchListStore';\nimport AppContext from '../../../../../contexts/AppContext';\nimport authStore from '../../../../../store/authStore';\nimport StringUtils from '../../../../../utils/functions/StringUtils';\nimport { TicketLayout } from '../../../../../utils/functions/enums';\nimport tradingViewStore from '../../../../../store/tradingViewStore';\n\nimport styles from './WatchlistsDropDown.module.scss';\n\ninterface WatchlistsDropDownProps {\n\tisOpen: boolean;\n\tcreateWatchList: boolean;\n\tmaxWatchlistsError: boolean;\n\tnameError: string;\n\ttypedValue: string;\n\tchangeValue: (e: any) => void;\n\tsetIsOpen: (a: boolean) => void;\n\thandleModify: (item: string) => void;\n\tverifyWatchlist: () => void;\n\tsetCurrentItemWatchList: (item: any) => void;\n\thandleCreateWatchlist: () => void;\n\thandleCreateWatchListClose: () => void;\n\twatchlistName?: string;\n\tchangeWatchlistName?: ({ target: { value } }: React.ChangeEvent) => void;\n\trenameCurrentWatchlist?: () => void;\n\tremoveCurrentWatchlist?: () => void;\n\topenModify?: boolean;\n\tinvalidRemoveName?: string;\n\tallWatchlistsCount?: number;\n\tmatchingValue?: boolean;\n}\n\nconst WatchlistsDropDown: FC = ({\n\tisOpen,\n\tcreateWatchList,\n\tmaxWatchlistsError,\n\tnameError,\n\ttypedValue,\n\tchangeValue,\n\tsetIsOpen,\n\thandleModify,\n\tverifyWatchlist,\n\tsetCurrentItemWatchList,\n\thandleCreateWatchlist,\n\thandleCreateWatchListClose,\n\twatchlistName,\n\tchangeWatchlistName,\n\trenameCurrentWatchlist,\n\tremoveCurrentWatchlist,\n\topenModify,\n\tinvalidRemoveName,\n\tallWatchlistsCount,\n\tmatchingValue\n}) => {\n\tconst appContext = useContext(AppContext);\n\tconst isChildWindow = appContext.isChildWindow || false;\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst getTranslatedWLName = useGetTranslatedWLName();\n\tconst { t } = useTranslation();\n\tconst tt = useShortTranslation('en:');\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst getCurrentWatchList = watchListStore.use.getCurrentWatchList();\n\tconst currentWatchList = getCurrentWatchList(isChildWindow);\n\tconst getWatchlists = watchListStore.use.getWatchlists();\n\tconst setWatchlists = watchListStore.use.setWatchlists();\n\tconst getWatchlistsOrder = watchListStore.use.getWatchlistsOrder();\n\tconst setWatchlistsOrder = watchListStore.use.setWatchlistsOrder();\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst allWatchlists = getWatchlists(tradingMode);\n\tconst watchlistOrder = getWatchlistsOrder(tradingMode);\n\tconst theme = appContext.appTheme;\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\tconst sensors = useSensors(useSensor(PointerSensor));\n\tconst isArabic = appContext.isArabic;\n\tconst [showModal, setShowModal] = useState(false);\n\n\tconst updatedWatchlists = (watchlists: WatchListData[]) => {\n\t\tlet watchlistOrderNew = watchlistOrder;\n\t\tconst watchlistIds = new Set(watchlists.map(item => item.id));\n\t\tconst order = watchlistOrder ? watchlistOrder : [...watchlistIds];\n\t\tconst orderMap = new Map(order.map((id, index) => [id, index]));\n\t\tif(watchlistOrderNew?.length < watchlists?.length){\n\t\t\tconst newWatchlistItem = watchlists[watchlists.length-1].id;\n\t\t\twatchlistOrderNew = [newWatchlistItem,...watchlistOrderNew]\n\t\t\tsetWatchlistsOrder(tradingMode, watchlistOrderNew)\n\t\t}\n\t\tconst sortedItems = [...watchlists].sort((a, b) => (orderMap.get(a.id) ?? Infinity) - (orderMap.get(b.id) ?? Infinity));\n\t\treturn sortedItems;\n\t}\n\n\tconst rearrangedWatchlists = useMemo(() => updatedWatchlists(allWatchlists ? allWatchlists : []),[allWatchlists, watchlistOrder]);\n\n\tuseEffect(() => {\n\t\t// Set initial watchlist order\n\t\tif(allWatchlists && !watchlistOrder){\n\t\t\tconst watchlists = updatedWatchlists(allWatchlists);\n\t\t\tsetWatchlistsOrder(tradingMode, watchlists.map(el => el.id))\n\t\t}\n\t}, [allWatchlists]);\n\n\tconst inputStyleSelector = () => {\n\t\treturn !StringUtils.isNullOrEmpty(nameError)\n\t\t\t? styles.lightErrorInput\n\t\t\t: ticketLayout === TicketLayout.Dock\n\t\t\t? styles.costInput\n\t\t\t: styles.costInputModal;\n\t};\n\n\tconst closeWatchlistPopup = (e: any) => {\n\t\tif (\n\t\t\te.target.classList[0] !== undefined ||\n\t\t\te.target.classList.length === 0 ||\n\t\t\t(Array.isArray(e.target.classList) && !e.target.classList[0].includes('Watchlist'))\n\t\t) {\n\t\t\tsetIsOpen(false);\n\t\t}\n\t};\n\tconst handleEditLayer = (id: any) => {\n\t\tsetIsOpen(true)\n\t\thandleModify(id);\n\t}\n\tconst SortableItem = ({ id, index }: { id: any, index: number }) => {\n\t\tconst { attributes, listeners, setNodeRef, transform, transition } = useSortable({\n\t\t id,\n\t\t});\n\t\tconst style = {\n\t\t transform: CSS.Transform.toString(transform),\n\t\t transition,\n\t\t};\n\t\tconst tierName = getTranslatedWLName(id);\n\t\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
{\n\t\t\t\t\t\t\tsetCurrentItemWatchList(id);\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{tierName}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{!instrumentExistsInDynamicWatchlists(\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tdashboardContext.defaultWatchLists,\n\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t) && (\n\t\t\t\t\t\t handleEditLayer(id)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t\t)\n\t};\n\tconst handleDragEnd = (event: any) => {\n\t\tconst { active, over } = event;\n\t\tif (active.id !== over.id && allWatchlists) {\n\t\t\tconst wls = updatedWatchlists(allWatchlists);\n\t\t\tconst oldIndex = wls.findIndex((item) => item.id === active.id);\n\t\t\tconst newIndex = wls.findIndex((item) => item.id === over.id);\n\t\t\tconst updatedArray = wls ? [...wls] : [];\n\t\t\tconst [movedItem] = updatedArray.splice(oldIndex, 1);\n\t\t\tupdatedArray.splice(newIndex, 0, movedItem);\n\t\t\tconst newItems = updatedArray.map(item => ({...item, isCustom: !instrumentExistsInDynamicWatchlists(item.name,dashboardContext.defaultWatchLists,isSpreadBettingAccount)}));\n\t\t\tsetWatchlists(tradingMode, newItems);\n\t\t\tsetWatchlistsOrder(tradingMode, newItems.map(item => item.id))\n\t\t}\n\t}\n\n\tconst openModal = () => {\n\t\tsetShowModal(!showModal);\n\t}\n\n\tconst handleRemoveWatchlist = () => {\n\t\tsetShowModal(!showModal);\n\t\tremoveCurrentWatchlist && removeCurrentWatchlist();\n\t}\n\n\tconst editView = (\n\t\t
\n\t\t\t
\n\t\t\t\t {t('wtr:MODIFY_WATCHLIST')}\n\t\t\t
\n\t\t\t
\n\t\t\t\t
{t('wtr:WATCHLIST_NAME')}
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{(nameError.length !== 0 || invalidRemoveName?.length !== 0) && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{nameError.length > 0 ? nameError : invalidRemoveName}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{
{typedValue.trim().length}/20
}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('wtr:REMOVE_WATCHLIST')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t \t\t\t\n\t \t\t\t\n\t\t\t
\n\t\t
\n\t)\n\t\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{rearrangedWatchlists &&\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{rearrangedWatchlists.map((item, index: number) => )}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : (createWatchList && !openModify) ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {tt('CREATE_WATCHLIST')}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t('wtr:WATCHLIST_NAME')}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{nameError.length !== 0 &&
{nameError}
}\n\t\t\t\t\t\t\t\t\t\t{
{typedValue.trim().length}/20
}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t) : editView\n\t\t\t\t}\n\t\t\t\ton={['click']}\n\t\t\t\tpinned\n\t\t\t\tposition=\"bottom center\"\n\t\t\t\ttrigger={\n\t\t\t\t\tcurrentWatchList && (\n\t\t\t\t\t\t
setIsOpen(true)}>\n\t\t\t\t\t\t\t{getTranslatedWLName(currentWatchList)}  \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{tt('WATCHLIST_DEL_QUESTION').replace('%s', getTranslatedWLName(currentWatchList))}\n\t\t\t\t\t
\n\t\t\t\t\t\t setShowModal(false)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default WatchlistsDropDown;\n","import React, { useContext, useMemo } from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\n\nimport tradingAccountStore from '../../../store/tradingAccountStore';\n\nimport { tierIcons } from '../../../setup/subscriptionsConfig';\n\nimport { IGridRecord } from '../../features/Markets/MarketsGrid';\nimport { MarketItem } from '../../../gateways/RfpGateway/rfp.types';\n\ninterface InstrumentIcon {\n\tmarketItem: IGridRecord | MarketItem;\n}\n\nconst images: {\n\t[key: string]: {\n\t\tdefault: string;\n\t\t[key: string]: string;\n\t};\n} = {\n\tunknown: {\n\t\tdefault: '/images/unknown.svg',\n\t},\n\tetf: {\n\t\tdefault: '/images/etf.svg',\n\t},\n\tcommodities: {\n\t\tdefault: '/images/commodities.svg',\n\t\tCORN: '/images/commodities/CORN.svg',\n\t\tSOYBEAN: '/images/commodities/SOYBEAN.svg',\n\t\tWHEAT: '/images/commodities/WHEAT.svg',\n\t},\n\tcrypto: {\n\t\tdefault: '/images/crypto.svg',\n\t\tADAUSD: '/images/crypto/ADAUSD.svg',\n\t\tALGOUSD: '/images/crypto/ALGOUSD.svg',\n\t\tATOMUSD: '/images/crypto/ATOMUSD.svg',\n\t\tAVAXUSD: '/images/crypto/AVAXUSD.svg',\n\t\tBATUSD: '/images/crypto/BATUSD.svg',\n\t\tBCHUSD: '/images/crypto/BCHUSD.svg',\n\t\tBNBUSD: '/images/crypto/BNBUSD.svg',\n\t\tBTCUSD: '/images/crypto/BTCUSD.svg',\n\t\tDASHUSD: '/images/crypto/DASHUSD.svg',\n\t\tDOGEUSD: '/images/crypto/DOGEUSD.svg',\n\t\tDOTUSD: '/images/crypto/DOTUSD.svg',\n\t\tEOSUSD: '/images/crypto/EOSUSD.svg',\n\t\tETHUSD: '/images/crypto/ETHUSD.svg',\n\t\tLINKUSD: '/images/crypto/LINKUSD.svg',\n\t\tLTCUSD: '/images/crypto/LTCUSD.svg',\n\t\tMANAUSD: '/images/crypto/MANAUSD.svg',\n\t\tMATICUSD: '/images/crypto/MATICUSD.svg',\n\t\tOMGUSD: '/images/crypto/OMGUSD.svg',\n\t\tSANDUSD: '/images/crypto/SANDUSD.svg',\n\t\tSHIBUSD: '/images/crypto/SHIBUSD.svg',\n\t\tSOLUSD: '/images/crypto/SOLUSD.svg',\n\t\tUNIUSD: '/images/crypto/UNIUSD.svg',\n\t\tUSDC: '/images/crypto/USDC.svg',\n\t\tUSDT: '/images/crypto/USDT.svg',\n\t\tXLMUSD: '/images/crypto/XLMUSD.svg',\n\t\tXMRUSD: '/images/crypto/XMRUSD.svg',\n\t\tXRPUSD: '/images/crypto/XRPUSD.svg',\n\t\tXTZUSD: '/images/crypto/XTZUSD.svg',\n\t\tZECUSD: '/images/crypto/ZECUSD.svg',\n\t},\n\tenergy: {\n\t\tdefault: '/images/energy.svg',\n\t\tBRENT: '/images/energy/BRENT.svg',\n\t\tNGAS: '/images/energy/NGAS.svg',\n\t\tWTI: '/images/energy/WTI.svg',\n\t},\n\tequities: {\n\t\tdefault: '/images/equities.svg',\n\t\tAAPL: '/images/equities/AAPL.svg',\n\t\tABNB: '/images/equities/ABNB.svg',\n\t\tAMZN: '/images/equities/AMZN.svg',\n\t\tBABA: '/images/equities/BABA.svg',\n\t\tGOOG: '/images/equities/GOOG.svg',\n\t\tGS: '/images/equities/GS.svg',\n\t\tMETA: '/images/equities/META.svg',\n\t\tMSFT: '/images/equities/MSFT.svg',\n\t\tTSLA: '/images/equities/TSLA.svg',\n\t\tUBER: '/images/equities/UBER.svg',\n\t\tV: '/images/equities/V.svg',\n\t},\n\tforex: {\n\t\tdefault: '/images/forex.svg',\n\t\tAUDCAD: '/images/forex/AUDCAD.svg',\n\t\tAUDCHF: '/images/forex/AUDCHF.svg',\n\t\tAUDJPY: '/images/forex/AUDJPY.svg',\n\t\tAUDNZD: '/images/forex/AUDNZD.svg',\n\t\tAUDUSD: '/images/forex/AUDUSD.svg',\n\t\tCADCHF: '/images/forex/CADCHF.svg',\n\t\tCADJPY: '/images/forex/CADJPY.svg',\n\t\tCHFJPY: '/images/forex/CHFJPY.svg',\n\t\tEURAUD: '/images/forex/EURAUD.svg',\n\t\tEURCAD: '/images/forex/EURCAD.svg',\n\t\tEURCHF: '/images/forex/EURCHF.svg',\n\t\tEURCZK: '/images/forex/EURCZK.svg',\n\t\tEURGBP: '/images/forex/EURGBP.svg',\n\t\tEURHUF: '/images/forex/EURHUF.svg',\n\t\tEURJPY: '/images/forex/EURJPY.svg',\n\t\tEURNOK: '/images/forex/EURNOK.svg',\n\t\tEURNZD: '/images/forex/EURNZD.svg',\n\t\tEURPLN: '/images/forex/EURPLN.svg',\n\t\tEURSEK: '/images/forex/EURSEK.svg',\n\t\tEURSGD: '/images/forex/EURSGD.svg',\n\t\tEURTRY: '/images/forex/EURTRY.svg',\n\t\tEURUSD: '/images/forex/EURUSD.svg',\n\t\tEURZAR: '/images/forex/EURZAR.svg',\n\t\tGBPAUD: '/images/forex/GBPAUD.svg',\n\t\tGBPCAD: '/images/forex/GBPCAD.svg',\n\t\tGBPCHF: '/images/forex/GBPCHF.svg',\n\t\tGBPHUF: '/images/forex/GBPHUF.svg',\n\t\tGBPJPY: '/images/forex/GBPJPY.svg',\n\t\tGBPNZD: '/images/forex/GBPNZD.svg',\n\t\tGBPUSD: '/images/forex/GBPUSD.svg',\n\t\tGBPZAR: '/images/forex/GBPZAR.svg',\n\t\tNZDCAD: '/images/forex/NZDCAD.svg',\n\t\tNZDCHF: '/images/forex/NZDCHF.svg',\n\t\tNZDJPY: '/images/forex/NZDJPY.svg',\n\t\tNZDUSD: '/images/forex/NZDUSD.svg',\n\t\tUSDBRL: '/images/forex/USDBRL.svg',\n\t\tUSDCAD: '/images/forex/USDCAD.svg',\n\t\tUSDCHF: '/images/forex/USDCHF.svg',\n\t\tUSDCNH: '/images/forex/USDCNH.svg',\n\t\tUSDHKD: '/images/forex/USDHKD.svg',\n\t\tUSDHUF: '/images/forex/USDHUF.svg',\n\t\tUSDJPY: '/images/forex/USDJPY.svg',\n\t\tUSDMXN: '/images/forex/USDMXN.svg',\n\t\tUSDNOK: '/images/forex/USDNOK.svg',\n\t\tUSDSEK: '/images/forex/USDSEK.svg',\n\t\tUSDSGD: '/images/forex/USDSGD.svg',\n\t\tUSDTRY: '/images/forex/USDTRY.svg',\n\t\tUSDZAR: '/images/forex/USDZAR.svg',\n\t},\n\tindices: {\n\t\tdefault: '/images/indices.svg',\n\t\tAUS200: '/images/indices/AUS200.svg',\n\t\tCHINA50: '/images/indices/CHINA50.svg',\n\t\tESH24: '/images/indices/ESH24.svg',\n\t\tESTX50: '/images/indices/ESTX50.svg',\n\t\tFDXH4: '/images/indices/FDXH4.svg',\n\t\tFFIH4: '/images/indices/FFIH4.svg',\n\t\tFRA40: '/images/indices/FRA40.svg',\n\t\tGER40: '/images/indices/GER40.svg',\n\t\tHK50: '/images/indices/HK50.svg',\n\t\tJPN225: '/images/indices/JPN225.svg',\n\t\tNAS100: '/images/indices/NAS100.svg',\n\t\tNQH24: '/images/indices/NQH24.svg',\n\t\tSPAIN35: '/images/indices/SPAIN35.svg',\n\t\tSPX500: '/images/indices/SPX500.svg',\n\t\tTAIEX: '/images/indices/TAIEX.svg',\n\t\tUK100: '/images/indices/UK100.svg',\n\t\tUS30: '/images/indices/US30.svg',\n\t\tUS2000: '/images/indices/US2000.svg',\n\t\tUSDINDEX: '/images/indices/USDINDEX.svg',\n\t\tVIX: '/images/indices/VIX.svg',\n\t\tYMH24: '/images/indices/YMH24.svg',\n\t},\n\tmetals: {\n\t\tdefault: '/images/metals.svg',\n\t\tCOOPER: '/images/metals/COOPER.svg',\n\t\tXAGUSD: '/images/metals/XAGUSD.svg',\n\t\tXAUEUR: '/images/metals/XAUEUR.svg',\n\t\tXAUUSD: '/images/metals/XAUUSD.svg',\n\t\tXPTUSD: '/images/metals/XPTUSD.svg',\n\t},\n};\n\nconst MarketInstrumentIcon = ({ marketItem }: InstrumentIcon) => {\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tlet group = (isJapanSubscriptionAccount ? marketItem?.minTier : marketItem?.grp) || marketItem?.category;\n\tlet name = marketItem?.displayName || marketItem?.code;\n\tconst isSpreadBettingAcc = tradingAccountStore.use.isSpreadBetting();\n\n\tif (isSpreadBettingAcc) {\n\t\tif (name.endsWith('_SB')) {\n\t\t\tname = name.replace('_SB', '');\n\t\t}\n\t\tif (group && typeof group === 'string' && group.endsWith('SB')) {\n\t\t\tgroup = group.replace('SB', '');\n\t\t}\n\t}\n\n\treturn useMemo(() => {\n\t\tif (isJapanSubscriptionAccount) {\n\t\t\treturn \"badge\";\n\t\t}\n\n\t\tconst groupLowerCased = String(group).toLowerCase();\n\n\t\tif (images[groupLowerCased] && Object.keys(images[groupLowerCased]).includes(name)) {\n\t\t\treturn \"badge\";\n\t\t}\n\n\t\tif (!images[groupLowerCased]) {\n\t\t\treturn \"badge\";\n\t\t}\n\n\t\treturn \"badge\";\n\t}, [group, name, isJapanSubscriptionAccount]);\n};\n\nexport default MarketInstrumentIcon;\n","import React, { useContext } from 'react';\nimport cn from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\n\nimport Modal from '../../../../../../shared/Modal/Modal';\nimport Button from '../../../../../../shared/Button/Button';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport { TicketLayout } from '../../../../../../utils/functions/enums';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\n\nimport styles from './DetachedModal.module.scss';\nimport orderStore from '../../../../../../store/OrderStore/orderStore';\ninterface DetachedModalProps {\n\ttitle: string | JSX.Element;\n\tbody: string | JSX.Element | undefined;\n\thideAction: () => void;\n\tsuccessTitle: string;\n\tsuccessAction: any;\n\tshow: boolean;\n\tdockAction?: any;\n\twithPadding?: boolean;\n\tbuttonDisabledClass?: string;\n\tisError?: boolean;\n}\n\nconst DetachedModal = ({\n\ttitle,\n\tbody,\n\tsuccessTitle,\n\tsuccessAction,\n\thideAction,\n\tshow,\n\tdockAction,\n\twithPadding = true,\n\tbuttonDisabledClass,\n\tisError = false,\n}: DetachedModalProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\tconst setTicketLayout = tradingViewStore.use.setTicketLayout();\n\tconst current = orderStore((state) => state.current);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst isArabic = appContext.isArabic;\n\n\tconst undockTicketLayout = () => {\n\t\tsetTicketLayout(TicketLayout.Undock);\n\t\tdashboardContext.showCloseTicket = false;\n\t\tdashboardContext.modalToggle = { closePosition: true, closeOrder: false };\n\t};\n\n\tconst dockTicketLayout = () => {\n\t\tsetTicketLayout(TicketLayout.Dock);\n\t\tdashboardContext.showCloseTicket = true;\n\t\tdashboardContext.modalToggle = { closePosition: false, closeOrder: false };\n\t};\n\n\tconst undock = () => {\n\t\tif (ticketLayout === TicketLayout.Undock) {\n\t\t\tdockTicketLayout();\n\t\t} else {\n\t\t\tundockTicketLayout();\n\t\t}\n\t};\n\n\tconst hideClosePosition = () => {\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tdashboardContext.showCloseTicket = false;\n\t\t} else {\n\t\t\tdashboardContext.modalToggle = { closePosition: false, closeOrder: false };\n\t\t}\n\t};\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{title}\n\t\t\t\t\t\n\t\t\t\t\t{dockAction && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{ticketLayout === TicketLayout.Undock ? t('en:ATTACH') : t('en:DETACH')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t{ticketLayout === TicketLayout.Undock && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{body && {body}}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t setIsHover(true)}\n\t\t\t\tonMouseLeave={() => setIsHover(false)}\n\t\t\t\tclassName={styles.triggerIcon}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Horizontal;\n","import React, { useEffect, useRef } from 'react';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport styles from './LiveChat.module.scss';\nimport { useTranslation } from 'react-i18next';\nimport WtrTooltip from '../WtrTooltip/WtrTooltip';\n\nconst Vertical = ({\n\tisOpen,\n\tonZDClick,\n\tonToggle,\n\tchannels,\n}: {\n\tisOpen: boolean;\n\tonZDClick: () => void;\n\tonToggle: () => void;\n\tchannels: [any];\n}) => {\n\tconst liveChatRef = useRef(null);\n\tconst { t } = useTranslation();\n\tconst mouseDown = (event: MouseEvent): void => {\n\t\tif (isOpen && liveChatRef.current && !liveChatRef.current.contains(event.target as any)) {\n\t\t\tonToggle();\n\t\t}\n\t};\n\tuseEffect(() => {\n\t\tdocument.addEventListener('mousedown', mouseDown);\n\t\treturn () => document.removeEventListener('mousedown', mouseDown);\n\t}, []);\n\n\tinterface tooltipTranslationsProps {\n\t\tline: string;\n\t\ttelegram: string;\n\t\ttwitter: string;\n\t}\n\tconst tooltipTranslations = {\n\t\tline: t('wtr:CONTACT_US_ON_LINE'),\n\t\ttelegram: t('wtr:CONTACT_US_ON_TELEGRAM'),\n\t\ttwitter: t('wtr:CONTACT_US_ON_X'),\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{channels.map(({ icon, href }) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default Vertical;\n","import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AppContext from '../../contexts/AppContext';\n\nimport i18n from '../../setup/i18n';\n\nimport Horizontal from './Horizontal';\nimport Vertical from './Vertical';\n\nimport styles from './LiveChat.module.scss';\n\nimport { getConfig } from './';\n\ninterface w extends Window {\n\tzEACLoaded?: boolean;\n\tzEWebpackACJsonp?: [];\n\tzEmbed?: () => void;\n}\n\nconst LiveChat = ({\n\tonToggle,\n\tmenuStyle = 'horizontal',\n}: {\n\tonToggle?: (state: boolean) => void;\n\tmenuStyle?: 'horizontal' | 'vertical';\n}) => {\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst zdOpen = useRef(false);\n\tconst container = useRef(null);\n\tconst { languageSettings } = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tconst languageToUse = useMemo(() => languageSettings || i18n.language, [languageSettings, i18n.language]);\n\n\tconst handleZDCleanup = () => {\n\t\tif (window.zE) {\n\t\t\tdelete window.zE;\n\t\t}\n\t\tif ((window as unknown as w).zEACLoaded) {\n\t\t\tdelete (window as unknown as w).zEACLoaded;\n\t\t}\n\t\tif ((window as unknown as w).zEWebpackACJsonp) {\n\t\t\tdelete (window as unknown as w).zEWebpackACJsonp;\n\t\t}\n\t\tif ((window as unknown as w).zEmbed) {\n\t\t\tdelete (window as unknown as w).zEmbed;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (container.current && languageToUse) {\n\t\t\tconst config = getConfig(languageToUse);\n\t\t\twindow.zE && window.zE('messenger', 'close');\n\n\t\t\tconst oldScript = document.getElementById('ze-snippet');\n\t\t\toldScript && oldScript.remove();\n\n\t\t\thandleZDCleanup();\n\n\t\t\tconst script = document.createElement('script');\n\t\t\tscript.id = 'ze-snippet';\n\t\t\tscript.src = `https://static.zdassets.com/ekr/snippet.js?key=${config.key}`;\n\t\t\tscript.onload = () => {\n\t\t\t\twindow.zE('messenger', 'close');\n\t\t\t\twindow.zE('messenger:set', 'locale', config.locale);\n\n\t\t\t\t// Reload the widget\n\t\t\t\twindow.zE('messenger:on', 'open', () => {\n\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\tonToggle && onToggle(false);\n\t\t\t\t\tzdOpen.current = true;\n\t\t\t\t});\n\t\t\t\twindow.zE('messenger:on', 'close', () => {\n\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\tonToggle && onToggle(false);\n\t\t\t\t\tzdOpen.current = false;\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tcontainer.current.appendChild(script);\n\t\t}\n\t}, [languageToUse]);\n\n\tconst toggleState = () => {\n\t\tsetIsOpen(!isOpen);\n\t\tonToggle && onToggle(!isOpen);\n\t};\n\n\tconst handleZDClick = () => {\n\t\tsetIsOpen(false);\n\t\twindow.zE && window.zE('messenger', zdOpen.current ? 'close' : 'open');\n\t};\n\n\tconst horizontal = menuStyle === 'horizontal';\n\tconst channels = useMemo(() => getConfig(languageToUse).channels, [languageToUse]);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t{horizontal ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default LiveChat;\n","import React from 'react';\n\nimport cn from 'classnames';\n\nimport styles from './InputError.module.scss';\n\ninterface InputErrorProps {\n\tcontent?: string;\n\terror: boolean;\n\tclassName?: string;\n\tchildren?: React.ReactNode;\n}\n\nconst InputError: React.FC = ({ content, error, className, children }) => {\n\tconst errorMessage = content || children;\n\treturn
{error && <>{errorMessage}}
;\n};\n\nexport default InputError;\n","import { useState, useEffect, useCallback } from 'react';\n\ninterface ResizableContainersWidthProps {\n\tresizableContainersWidthRestriction: (panelName: 'watchlist' | 'tradeTicket' | 'tradeBoard') => number | string;\n}\nconst useResizableContainersWidth = (hasModal: boolean): ResizableContainersWidthProps => {\n\tconst [windowWidth, setWindowWidth] = useState(window.innerWidth);\n\n\tuseEffect(() => {\n\t\tconst handleWindowResize = () => setWindowWidth(window.innerWidth);\n\n\t\twindow.addEventListener('resize', handleWindowResize);\n\t\treturn () => window.removeEventListener('resize', handleWindowResize);\n\t}, []);\n\n\tconst resizableContainersWidthRestriction = useCallback(\n\t\t(panelName: 'watchlist' | 'tradeTicket' | 'tradeBoard') => {\n\t\t\tif (panelName === 'watchlist') {\n\t\t\t\tif (windowWidth < 1240) return 330;\n\t\t\t\tif (windowWidth >= 1240) return hasModal ? '33%' : '45%';\n\t\t\t} else if (panelName === 'tradeTicket') {\n\t\t\t\tif (windowWidth < 1240) return 320;\n\t\t\t\tif (windowWidth >= 1240) return '33%';\n\t\t\t} else if (panelName === 'tradeBoard') {\n\t\t\t\treturn '100%';\n\t\t\t}\n\t\t\treturn 0;\n\t\t},\n\t\t[windowWidth, hasModal]\n\t);\n\n\treturn { resizableContainersWidthRestriction };\n};\n\nexport default useResizableContainersWidth;\n","import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport moment from 'moment';\n\nimport { useTranslation } from 'react-i18next';\n\nimport useShortTranslation from '../../../../../../../utils/hooks/useShortTranslation';\nimport InstrumentHeader from '../../../../../../components/InstrumentSummary/InstrumentHeader';\nimport {\n\tMarketItem,\n\tPriceQuote,\n\tTradingPosition,\n\tTradingPositionState,\n} from '../../../../../../../gateways/RfpGateway/rfp.types';\n\nimport { default as AppContext } from '../../../../../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../../../../../contexts/DashboardContext';\nimport { default as RfpGatewayContext } from '../../../../../../../contexts/RfpGatewayContext';\nimport InstrumentContext from '../../../../../../../contexts/InstrumentContext';\nimport { default as usePromiseFactory } from '../../../../../../../utils/hooks/usePromiseFactory';\nimport { default as useForceRerender } from '../../../../../../../utils/hooks/useForceRerender';\nimport { default as useObservable } from '../../../../../../../utils/hooks/useObservable';\nimport { formatNumberWithCommas } from '../../../../Watchlist/Instrument/formattedQuoteNumber';\nimport { MarginAccountType, QUANTITY_TYPE, TradingPositionSide } from '../../../../../../../utils/functions/enums';\nimport CloseButton from '../../../../../../components/CloseButton/CloseButton';\nimport Button from '../../../../../../../shared/Button';\nimport StringUtils from '../../../../../../../utils/functions/StringUtils';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../../pages/TradersGym/TradersGymContext';\nimport {\n\tcalcPercentChange,\n\tconvertAmountToLot,\n\tconvertToBaseCurrency,\n\tformatNumberAsMoney,\n\tgetAdditionalSubscriptionPairs,\n\tgetEffectiveSize,\n\tgetMarginCalculationType,\n\tgetMarginImpact,\n} from '../../../../../../../utils/functions/calculations';\nimport { getGeneralFormatDate } from '../../../../../../../utils/functions/subscriptionUtils';\n\nimport accountStatusStore, { StatusStore } from '../../../../../../../store/accountStatusStore';\n\nimport useSelectedTradingAccount from '../../../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport tradingAccountStore from '../../../../../../../store/tradingAccountStore';\n\nimport ModalOrderInformation from './ModalOrderInformation';\nimport InfoElement from './InfoElement';\n\nimport MarginRequirementsContext from '../../../../../../../contexts/MarginRequirementsContext';\nimport orderStore from '../../../../../../../store/OrderStore/orderStore';\nimport styles from './OrderInformation.module.scss';\nimport tradingViewStore from '../../../../../../../store/tradingViewStore';\nimport useOrderTicketAccess from '../../../../../../../utils/hooks/useOrderTicketAccess';\n\ninterface OrderInformationProps {\n\tredirectFromDashboard: boolean;\n}\n\nconst OrderInformation = React.memo(\n\t({ redirectFromDashboard }: OrderInformationProps) => {\n\t\tconst dashboardContext = useContext(DashboardContext);\n\t\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\t\tconst appContext = useContext(AppContext);\n\t\tconst promiseFactory = usePromiseFactory();\n\t\tconst forceRerender = useForceRerender();\n\t\tconst languageSettings = appContext.languageSettings;\n\t\tconst setDockStylesTicket = tradingViewStore.use.setDockStylesTicket();\n\n\t\tconst subIdRef = useRef(undefined);\n\n\t\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\t\tconst isChildWindow = appContext.isChildWindow;\n\t\tconst { tradersGymContext } = gymContext;\n\n\t\tconst quantityType = dashboardContext.quantityType;\n\t\tconst selectedPosition = dashboardContext.selectedPosition;\n\t\tconst detailedInformation = dashboardContext.detailedInformation;\n\t\tconst selectedMarketItem = dashboardContext.selectedInstrument;\n\t\tconst showOrderInformation = dashboardContext.showOrderInformation;\n\t\tconst activeState = dashboardContext.toggleAccordionMenu;\n\t\tconst marginRequirementsContext = useContext(MarginRequirementsContext);\n\n\t\tconst tradingPositions = tradersGymContext.isActive\n\t\t\t? tradersGymContext.gymTradingAccount?.activePositions ?? []\n\t\t\t: dashboardContext.getTradingPositions();\n\n\t\tconst tradingAccount = useSelectedTradingAccount();\n\n\t\tconst selectedTradingAccount = tradersGymContext.isActive ? tradersGymContext.gymTradingAccount : tradingAccount;\n\t\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\t\tconst [additionalSubscriptionPairValue, setAdditionalSubscriptionPairValue] = useState(\n\t\t\tundefined\n\t\t);\n\n\t\t// const showTradeButton = tradingViewStore.use.showTradeButton();\n\t\t// const setShowTradeButton = tradingViewStore.use.setShowTradeButton();\n\n\t\tuseEffect(() => {\n\t\t\tsetDockStylesTicket(redirectFromDashboard);\n\t\t}, []);\n\n\t\tuseObservable(appContext.getPropertyChangeStream('appTheme'), async () => {\n\t\t\tawait promiseFactory.throttle('appContext.propertyChanged', 100);\n\t\t\tforceRerender();\n\t\t});\n\n\t\tuseObservable(\n\t\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t\t'quantityType',\n\t\t\t\t'selectedPosition',\n\t\t\t\t'selectedInstrument',\n\t\t\t\t'marketItems',\n\t\t\t\t'marketItemsInfo',\n\t\t\t\t'detailedInformation',\n\t\t\t\t'showOrderInformation',\n\t\t\t\t'toggleAccordionMenu',\n\t\t\t\t'tradingAccount',\n\t\t\t\t'tradingPositions',\n\t\t\t\t'accountValues'\n\t\t\t),\n\t\t\tasync () => {\n\t\t\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\t\t\tforceRerender();\n\t\t\t}\n\t\t);\n\n\t\tconst [currentPriceQuote, setCurrentPriceQuote] = useState(undefined);\n\n\t\tconst tt = useShortTranslation('en:');\n\t\tconst { t } = useTranslation();\n\n\t\tconst [pipPL, setPipPL] = useState(0);\n\t\tconst [percentageChange, setPercentageChange] = useState('0%');\n\t\tconst [red, setRed] = useState(false);\n\t\tconst [redPip, setRedPip] = useState(false);\n\t\tconst [pendingAmountLot, setPendingAmountLot] = useState(0);\n\t\tconst [matchedAmountLot, setMatchedAmountLot] = useState(0);\n\t\tconst [matchedPendingOrder, setMatchedPendingOrder] = useState([]);\n\t\tconst [matchedOpenPosition, setMatchedOpenPosition] = useState([]);\n\t\tconst [active, setActive] = useState(activeState);\n\n\t\tconst [usedMargin, setUsedMargin] = useState(0);\n\t\tconst [comment, setComment] = useState();\n\t\tconst current = orderStore.use.current();\n\n\t\tconst tradeButtons = accountStatusStore((store: StatusStore) => (store.permissions || {}).tradeButtons);\n\t\tconst setShowModal = accountStatusStore((store: StatusStore) => store.setShowModal);\n\t\tconst orderTicketAccess = useOrderTicketAccess();\n\t\tconst instrumentContext = useContext(InstrumentContext);\n\n\t\t//If Accordion is updated via charts or other external component, open the appropriate menu.\n\t\tuseEffect(() => {\n\t\t\tif (activeState === '0') {\n\t\t\t\tsetActive('0');\n\t\t\t} else if (activeState === '1') {\n\t\t\t\tsetActive('1');\n\t\t\t} else if (activeState === '2') {\n\t\t\t\tsetActive('2');\n\t\t\t}\n\t\t}, [activeState]);\n\n\t\t//State to manage which accordion is open\n\t\tconst openMarketInfo = () => {\n\t\t\tif (active === '0') {\n\t\t\t\tsetActive(undefined);\n\t\t\t} else {\n\t\t\t\tsetActive('0');\n\t\t\t}\n\t\t};\n\n\t\tconst openPositionInfo = () => {\n\t\t\tif (active === '1') {\n\t\t\t\tsetActive(undefined);\n\t\t\t} else {\n\t\t\t\tsetActive('1');\n\t\t\t}\n\t\t};\n\n\t\tconst openOrderInfo = () => {\n\t\t\tif (active === '2') {\n\t\t\t\tsetActive(undefined);\n\t\t\t} else {\n\t\t\t\tsetActive('2');\n\t\t\t}\n\t\t};\n\n\t\tconst calculateUsedMargin = () => {\n\t\t\tlet instrumentMarginReq = 0;\n\t\t\tif (selectedTradingAccount) {\n\t\t\t\tconst openPositions = [];\n\t\t\t\tfor (const positionId in selectedTradingAccount.activePositions) {\n\t\t\t\t\tconst position = selectedTradingAccount.activePositions[positionId];\n\t\t\t\t\tif (position.state === TradingPositionState.open) {\n\t\t\t\t\t\topenPositions.push(position);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (matchedOpenPosition.length > 0) {\n\t\t\t\t\tconst pos = matchedOpenPosition[0];\n\t\t\t\t\tconst marketItem: MarketItem | undefined = pos.marketItem;\n\t\t\t\t\tconst marginIdentifier = getMarginCalculationType(selectedTradingAccount);\n\t\t\t\t\tconst size = getEffectiveSize(marginIdentifier, pos.code, +selectedTradingAccount.id, matchedOpenPosition);\n\t\t\t\t\tconst instrument = selectedTradingAccount.tradingInstruments?.instruments[pos.code];\n\n\t\t\t\t\tif (instrument && instrument.marginReq) {\n\t\t\t\t\t\tinstrumentMarginReq = instrument.marginReq;\n\t\t\t\t\t}\n\t\t\t\t\tif (marketItem && currentPriceQuote) {\n\t\t\t\t\t\tconst impact = getMarginImpact(instrumentMarginReq, size.val, currentPriceQuote.a);\n\t\t\t\t\t\tconst convertedToBase = convertToBaseCurrency(\n\t\t\t\t\t\t\tselectedTradingAccount,\n\t\t\t\t\t\t\timpact,\n\t\t\t\t\t\t\tcurrentPriceQuote.a,\n\t\t\t\t\t\t\tmarketItem.qCcy,\n\t\t\t\t\t\t\tmarketItem.feedId,\n\t\t\t\t\t\t\tmarketItem.code,\n\t\t\t\t\t\t\tpos.side === 'BUY',\n\t\t\t\t\t\t\trfpGatewayContext\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst hedged = convertedToBase !== null ? convertedToBase : impact;\n\t\t\t\t\t\tsetUsedMargin(selectedTradingAccount.isJapanAccount ? Math.ceil(hedged) : hedged);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t//Update the state of menus to reflect changes in grid or watchlist\n\t\tuseEffect(() => {\n\t\t\torderMenuState();\n\t\t\tpositionMenuState();\n\t\t}, [\n\t\t\tdashboardContext.selectedInstrument,\n\t\t\tdashboardContext.selectedPosition,\n\t\t\ttradingPositions,\n\t\t\tmatchedAmountLot,\n\t\t\tpendingAmountLot,\n\t\t\tdetailedInformation,\n\t\t]);\n\n\t\tuseEffect(() => {\n\t\t\tcalculateUsedMargin();\n\t\t\tupdateCommentValue();\n\t\t}, [matchedOpenPosition]);\n\n\t\tuseEffect(() => {\n\t\t\tconst matchedPosition = [...matchedOpenPosition, ...matchedPendingOrder];\n\t\t\tif (matchedPosition.length > 0) {\n\t\t\t\tlet percentChange = calcPercentChange(matchedPosition[0]);\n\t\t\t\tif (isNaN(percentChange)) {\n\t\t\t\t\tsetRed(false);\n\t\t\t\t\tsetPercentageChange(`N/A`);\n\t\t\t\t} else {\n\t\t\t\t\tpercentChange < 0 ? setRed(true) : setRed(false);\n\t\t\t\t\tsetPercentageChange(`${formatNumberWithCommas(percentChange, 2, languageSettings)}%`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (matchedOpenPosition.length > 0) {\n\t\t\t\tif (matchedOpenPosition.length === 1 && selectedMarketItem) {\n\t\t\t\t\tconst position = matchedOpenPosition[0] as TradingPosition;\n\t\t\t\t\tif (position) {\n\t\t\t\t\t\tconst pipPlVal = position.pips ?? NaN;\n\t\t\t\t\t\tsetPipPL(formatNumberWithCommas(pipPlVal, 2, languageSettings));\n\t\t\t\t\t\tpipPlVal < 0 ? setRedPip(true) : setRedPip(false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, [currentPriceQuote, matchedOpenPosition, matchedPendingOrder, additionalSubscriptionPairValue]);\n\n\t\tconst addAdditionalSubPairsCodes = (subCodes: string[]): void => {\n\t\t\tif (selectedTradingAccount && selectedMarketItem) {\n\t\t\t\tlet pairs = getAdditionalSubscriptionPairs(selectedTradingAccount, selectedMarketItem, rfpGatewayContext);\n\t\t\t\tif (pairs) {\n\t\t\t\t\tpairs.forEach((pair) => {\n\t\t\t\t\t\tsubCodes.push(pair);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tuseEffect(() => {\n\t\t\tif (rfpGatewayContext && selectedMarketItem) {\n\t\t\t\t// unsubscribe previous quotes\n\t\t\t\tif (subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribePriceQuote(subIdRef.current);\n\t\t\t\t}\n\n\t\t\t\tconst feedId = selectedMarketItem.feedId;\n\t\t\t\tconst code = selectedMarketItem.code;\n\t\t\t\tlet subCodes: string[] = [code];\n\n\t\t\t\taddAdditionalSubPairsCodes(subCodes);\n\n\t\t\t\t// subscribe for price quote\n\t\t\t\tsubIdRef.current = rfpGatewayContext.subscribePriceQuote(feedId, subCodes, (priceQuote) => {\n\t\t\t\t\tif (!tradersGymContext.isActive) {\n\t\t\t\t\t\tif (priceQuote.c === selectedMarketItem.code) {\n\t\t\t\t\t\t\tsetCurrentPriceQuote(priceQuote);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetAdditionalSubscriptionPairValue(priceQuote);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// unsubscribe price quote on unmount\n\t\t\treturn () => {\n\t\t\t\tif (rfpGatewayContext && subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribePriceQuote(subIdRef.current);\n\t\t\t\t\tsubIdRef.current = undefined;\n\t\t\t\t}\n\t\t\t};\n\t\t}, [\n\t\t\ttradingPositions,\n\t\t\tselectedPosition,\n\t\t\tselectedMarketItem,\n\t\t\trfpGatewayContext,\n\t\t\tmatchedOpenPosition,\n\t\t\tmatchedPendingOrder,\n\t\t]);\n\n\t\tuseEffect(() => {\n\t\t\tif (tradersGymContext.priceQuote) {\n\t\t\t\tsetCurrentPriceQuote(tradersGymContext.priceQuote);\n\t\t\t}\n\t\t}, [tradersGymContext.priceQuote]);\n\n\t\tuseEffect(() => {\n\t\t\tif (matchedOpenPosition.length > 0) {\n\t\t\t\tconst pos = matchedOpenPosition[0];\n\t\t\t\tlet instrument = selectedTradingAccount?.tradingInstruments?.instruments[pos.code];\n\t\t\t\tconst instrumentRndLot = (instrument && instrument.rndLot) || 0;\n\t\t\t\tconst amountLot = quantityType === QUANTITY_TYPE.LOTS ? convertAmountToLot(pos.qty, instrumentRndLot) : pos.qty;\n\t\t\t\tsetMatchedAmountLot(amountLot);\n\t\t\t}\n\t\t\tif (matchedPendingOrder.length > 0) {\n\t\t\t\tconst pos = matchedPendingOrder[0];\n\t\t\t\tlet instrument = selectedTradingAccount?.tradingInstruments?.instruments[pos.code];\n\t\t\t\tconst instrumentRndLot = (instrument && instrument.rndLot) || 0;\n\t\t\t\tconst amountLot = quantityType === QUANTITY_TYPE.LOTS ? convertAmountToLot(pos.qty, instrumentRndLot) : pos.qty;\n\t\t\t\tsetPendingAmountLot(amountLot);\n\t\t\t}\n\t\t}, [quantityType, matchedPendingOrder, matchedOpenPosition]);\n\n\t\tuseEffect(() => {\n\t\t\t//Isolate the pending orders and open positions\n\t\t\tif (\n\t\t\t\t(selectedMarketItem && Object.keys(selectedMarketItem).length > 0) ||\n\t\t\t\t(Array.isArray(selectedPosition) && selectedPosition.length > 0)\n\t\t\t) {\n\t\t\t\tconst pendingOrders = tradingPositions.filter((position: TradingPosition) =>\n\t\t\t\t\ttradersGymContext.isActive\n\t\t\t\t\t\t? position.state === TradingPositionState.pending\n\t\t\t\t\t\t: position.state === TradingPositionState.pending && position.aId === selectedTradingAccount?.id\n\t\t\t\t);\n\t\t\t\tconst openPositions = tradingPositions.filter((position: TradingPosition) =>\n\t\t\t\t\ttradersGymContext.isActive\n\t\t\t\t\t\t? position.state === TradingPositionState.open\n\t\t\t\t\t\t: position.state === TradingPositionState.open && position.aId === selectedTradingAccount?.id\n\t\t\t\t);\n\t\t\t\tconst code = selectedMarketItem\n\t\t\t\t\t? selectedMarketItem.code ?? selectedPosition[0].code\n\t\t\t\t\t: selectedPosition[0].code;\n\n\t\t\t\tlet openedInstrument = openPositions?.filter((position: TradingPosition) => code === position.code);\n\t\t\t\tlet pendingInstrument = pendingOrders?.filter((position: TradingPosition) => code === position.code);\n\n\t\t\t\tif (\n\t\t\t\t\topenedInstrument?.length > 1 &&\n\t\t\t\t\tselectedPosition?.length === 1 &&\n\t\t\t\t\tselectedPosition[0].state === TradingPositionState.open &&\n\t\t\t\t\tselectedMarketItem &&\n\t\t\t\t\tselectedPosition[0].code === selectedMarketItem.code\n\t\t\t\t) {\n\t\t\t\t\topenedInstrument = openedInstrument.filter(\n\t\t\t\t\t\t(instrument: TradingPosition) => instrument.posId === selectedPosition[0].posId\n\t\t\t\t\t);\n\t\t\t\t} else if (\n\t\t\t\t\tpendingInstrument?.length > 1 &&\n\t\t\t\t\tselectedPosition?.length === 1 &&\n\t\t\t\t\tselectedPosition[0].state === TradingPositionState.pending &&\n\t\t\t\t\tselectedMarketItem &&\n\t\t\t\t\tselectedPosition[0].code === selectedMarketItem.code\n\t\t\t\t) {\n\t\t\t\t\tpendingInstrument = pendingInstrument.filter(\n\t\t\t\t\t\t(instrument: TradingPosition) => instrument.posId === selectedPosition[0].posId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (openedInstrument.length > 0) {\n\t\t\t\t\tsetMatchedOpenPosition(openedInstrument);\n\t\t\t\t} else {\n\t\t\t\t\tsetMatchedOpenPosition([]);\n\t\t\t\t}\n\t\t\t\tif (pendingInstrument.length > 0) {\n\t\t\t\t\tsetMatchedPendingOrder(pendingInstrument);\n\t\t\t\t} else {\n\t\t\t\t\tsetMatchedPendingOrder([]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetMatchedOpenPosition([]);\n\t\t\t\tsetMatchedPendingOrder([]);\n\t\t\t}\n\t\t}, [selectedPosition, selectedMarketItem, tradingPositions, selectedTradingAccount]);\n\n\t\tconst formatValueAsMoney = (value: number) => {\n\t\t\treturn selectedTradingAccount\n\t\t\t\t? formatNumberAsMoney(\n\t\t\t\t\t\tselectedTradingAccount.baseCurrency,\n\t\t\t\t\t\t!isNaN(value) ? value : 0,\n\t\t\t\t\t\tlanguageSettings,\n\t\t\t\t\t\tselectedTradingAccount.isJapanAccount\n\t\t\t\t )\n\t\t\t\t: 0;\n\t\t};\n\n\t\tconst commission = useMemo(\n\t\t\t() => formatValueAsMoney(matchedOpenPosition[0]?.comm ?? 0),\n\t\t\t[selectedTradingAccount, matchedOpenPosition, rfpGatewayContext]\n\t\t);\n\n\t\tconst swap = useMemo(\n\t\t\t() => formatValueAsMoney(matchedOpenPosition[0]?.swap ?? 0),\n\t\t\t[selectedTradingAccount, matchedOpenPosition, rfpGatewayContext]\n\t\t);\n\n\t\tconst dividend = useMemo(\n\t\t\t() => formatValueAsMoney(matchedOpenPosition[0]?.dividend ?? 0),\n\t\t\t[selectedTradingAccount, matchedOpenPosition, rfpGatewayContext]\n\t\t);\n\n\t\tconst updateCommentValue = () => {\n\t\t\tlet commandValue = matchedOpenPosition[0]?.comment;\n\t\t\tif (StringUtils.isNullOrEmpty(commandValue)) {\n\t\t\t\tcommandValue = t('wtr:NA');\n\t\t\t}\n\t\t\tsetComment(commandValue);\n\t\t};\n\t\tconst handleStartTrading = (event: any) => {\n\t\t\tevent.stopPropagation();\n\t\t\tif (isChildWindow) {\n\t\t\t\tdashboardContext.showOrderInformation = false;\n\t\t\t\tdashboardContext.showOrderTicket = true;\n\t\t\t} else {\n\t\t\t\tif (orderTicketAccess()) {\n\t\t\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\t\t\tinstrumentContext.focusInstrumentSearchInput();\n\t\t\t\t\tdashboardContext.startTradingNow = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t\t//Display state of position menu depending on if position(s) are selected\n\t\tconst positionMenuState = () => {\n\t\t\tif (matchedOpenPosition.length > 1) {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{matchedOpenPosition.length}{' '}\n\t\t\t\t\t\t\t{t('wtr:OPEN_CODE_ORDERS', { code: matchedOpenPosition[0].marketItem.displayName })}\n\t\t\t\t\t\t\t{!marginRequirementsContext?.doesRulesApply && !marginRequirementsContext?.marginRequirementsToApply ? (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{t('wtr:MARGIN_USED')}\n\t\t\t\t\t\t\t\t\t{`${formatValueAsMoney(usedMargin)}`}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} else if (matchedOpenPosition.length === 1) {\n\t\t\t\tconst pos: TradingPosition = matchedOpenPosition[0];\n\t\t\t\tconst decPrec = pos.marketItem?.decPrec ?? 2;\n\n\t\t\t\tconst onDate = appContext.isJapanAccount\n\t\t\t\t\t? getGeneralFormatDate(pos.oT, false, true)\n\t\t\t\t\t: moment(pos.oT).format('D/MMM/YYYY').toLocaleUpperCase();\n\n\t\t\t\tconst openPrice =\n\t\t\t\t\tappContext.isJapanAccount || !(pos.openAskPrice && pos.openBidPrice)\n\t\t\t\t\t\t? `${formatNumberWithCommas(pos.prc ?? 0, decPrec, languageSettings)}`\n\t\t\t\t\t\t: `${formatNumberWithCommas(pos.prc ?? 0, decPrec, languageSettings)} (${formatNumberWithCommas(\n\t\t\t\t\t\t\t\tpos.openBidPrice ?? 0,\n\t\t\t\t\t\t\t\tdecPrec,\n\t\t\t\t\t\t\t\tlanguageSettings\n\t\t\t\t\t\t )}/${formatNumberWithCommas(pos.openAskPrice ?? 0, decPrec, languageSettings)})`;\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{pos?.trailingStop ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t{!appContext.isJapanAccount && }\n\t\t\t\t\t\t\n\t\t\t\t\t\t{!appContext.isJapanAccount && }\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t} else if (matchedOpenPosition.length === 0) {\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{appContext.isJapanAccount ? t('wtr:JP_NO_OPEN_POSITIONS') : t('en:NO_OPEN_POSITIONS')}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\t//Display state of order menu depending on if position(s) are selected\n\t\tconst orderMenuState = () => {\n\t\t\tif (matchedPendingOrder.length === 0) {\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
{t('wtr:NO_PENDING_ORDERS')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\t\t\t//Check if there's any matched pending orders to be displayed\n\t\t\tif (matchedPendingOrder.length === 1) {\n\t\t\t\tconst pos = matchedPendingOrder[0];\n\t\t\t\tconst decPrec = pos.marketItem?.decPrec ?? 2;\n\t\t\t\tconst createdOnDate = appContext.isJapanAccount\n\t\t\t\t\t? getGeneralFormatDate(pos.oT, false, true)\n\t\t\t\t\t: moment(pos.oT).format('D/MMM/YYYY').toLocaleUpperCase();\n\t\t\t\tlet expiryDate;\n\t\t\t\tif (pos.eT === 0) {\n\t\t\t\t\texpiryDate = t('wtr:GTC');\n\t\t\t\t} else {\n\t\t\t\t\texpiryDate = appContext.isJapanAccount\n\t\t\t\t\t\t? getGeneralFormatDate(pos.eT, false, true)\n\t\t\t\t\t\t: moment(pos.eT).format('D/MMM/YYYY').toUpperCase();\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t} else if (matchedPendingOrder.length > 1) {\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t{matchedPendingOrder.length}{' '}\n\t\t\t\t\t\t{t('wtr:PENDING_CODE_ORDERS', { code: matchedPendingOrder[0].marketItem.displayName })}\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\t//Accordion Title formatting\n\t\tconst formatOrderDetailHeader = () => {\n\t\t\tif (matchedPendingOrder.length > 1) {\n\t\t\t\treturn `${t('en:TRADES_ORDER_DETAILS')} (${matchedPendingOrder.length})`;\n\t\t\t} else {\n\t\t\t\treturn `${t('en:TRADES_ORDER_DETAILS')}`;\n\t\t\t}\n\t\t};\n\n\t\tconst formatPositionDetailsHeader = () => {\n\t\t\tif (matchedOpenPosition.length > 1) {\n\t\t\t\treturn `${t('en:TRADES_POSITION_DETAILS')} (${matchedOpenPosition.length})`;\n\t\t\t} else {\n\t\t\t\treturn `${t('en:TRADES_POSITION_DETAILS')}`;\n\t\t\t}\n\t\t};\n\n\t\tif (!showOrderInformation) return null;\n\n\t\tif (tradeButtons === 'accountStatus') {\n\t\t\tdashboardContext.showOrderInformation = !dashboardContext.showOrderInformation;\n\t\t\tsetShowModal(true);\n\t\t\tappContext.statusModal = true;\n\n\t\t\treturn null;\n\t\t}\n\n\t\tconst handleClickTrade = () => {\n\t\t\tdashboardContext.showOrderInformation = false;\n\t\t\t// setShowTradeButton(!dashboardContext.showOrderInformation);\n\t\t};\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t('wtr:MARKET_INFO')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{formatPositionDetailsHeader()}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
{positionMenuState()}
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{formatOrderDetailHeader()}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
{orderMenuState()}
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t// \tdashboardContext.showOrderInformation = false;\n\t\t\t\t\t\t// }}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\thandleClickTrade();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn true;\n\t}\n);\n\nexport default OrderInformation;\n","import moment from 'moment';\nimport { useContext } from 'react';\nimport { useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport axios from 'axios';\n\nimport AppContext from '../../contexts/AppContext';\n\nimport { SignalsListType } from '../../pages/Signals/Signals';\nimport productMap from '../../pages/Signals/productsMap.json';\nimport { SignalsLangMap, signalsLangMap } from '../../views/features/Dashboard/Settings/settingsOptions';\nimport authStore, { AuthStore } from '../../store/authStore';\nimport tradingAccountStore from '../../store/tradingAccountStore';\nimport RfpGatewayContext from '../../contexts/RfpGatewayContext';\n\ninterface IMappedData {\n\tsymbol: string;\n\tdecPrec: number;\n\tdescription: string;\n\ticon: string;\n\tslug?: string;\n\tsbSymbol?: string;\n}\n\nconst useSignals = () => {\n\tconst queryKey = ['signalsList'];\n\tconst appContext = useContext(AppContext);\n\tconst rfpGateway = useContext(RfpGatewayContext);\n\tconst userProfile = authStore((store: AuthStore) => store.userProfile);\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst fetchSignalsList = async () => {\n\t\t// Code that help expand productsMap\n\t\t// //@ts-ignore\n\t\t// const filteredSignals = {}\n\t\t//\n\t\t// const convertData = [add your objects]\n\t\t//\n\t\t// //@ts-ignore\n\t\t// instrumentContext.instruments.forEach(instrument => {\n\t\t// \tconvertData.forEach(item => {\n\t\t// \t\tif (instrument.displayName === item['ThinkMarkets']) {\n\t\t// \t\t\t//@ts-ignore\n\t\t// \t\t\tfilteredSignals[item['Signal Centre Product Name']] = {\n\t\t// \t\t\t\t\"symbol\": instrument.code,\n\t\t// \t\t\t\t\"assetId\": item[\"Acuity Asset ID\"],\n\t\t// \t\t\t\t\"decPrec\": instrument.decPrec,\n\t\t// \t\t\t\t\"description\": instrument.fullName,\n\t\t// \t\t\t\t\"icon\": instrument.grp\n\t\t// \t\t\t}\n\t\t// \t\t}\n\t\t// \t})\n\t\t// })\n\t\t//\n\t\t// //@ts-ignore\n\t\t// console.log(filteredSignals)\n\n\t\tconst productsMap = Object.values(productMap);\n\n\t\tconst filteredProductMap = productsMap.reduce((acc: any[], product: any) => {\n\t\t\tif (isSpreadBettingAccount && product?.sbSymbol) {\n\t\t\t\tacc.push(product.assetId);\n\t\t\t} else if (!isSpreadBettingAccount) {\n\t\t\t\tacc.push(product.assetId);\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst { data: response } = await axios(\n\t\t\t`${process.env.REACT_APP_SIGNALS_URL}/signal-centre-reports/${userProfile.email}`,\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdata: {\n\t\t\t\t\tStartDate: moment().subtract(3, 'day').startOf('day').format(),\n\t\t\t\t\tEndDate: moment().endOf('day').format(),\n\t\t\t\t\tLanguageCode: signalsLangMap[appContext.languageSettings as SignalsLangMap],\n\t\t\t\t\tAssetIds: filteredProductMap,\n\t\t\t\t\tIncludeExpired: false,\n\t\t\t\t\tPeriod: 'intraday',\n\t\t\t\t\tCount: 1000,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\n\t\tconst data = response?.data\n\t\t\t?.map((signal: SignalsListType) => {\n\t\t\t\tconst mapped: IMappedData = productMap[signal.Product.name as keyof typeof productMap];\n\t\t\t\tif (mapped) {\n\t\t\t\t\tsignal.marketItem = rfpGateway?.getMarketItem(\n\t\t\t\t\t\tisSpreadBettingAccount ? (mapped.sbSymbol as string) : mapped.symbol\n\t\t\t\t\t);\n\t\t\t\t\tsignal.Product.name = isSpreadBettingAccount ? (mapped.sbSymbol as string) : mapped.symbol;\n\t\t\t\t\tsignal.Product.description = mapped.description;\n\t\t\t\t\tsignal.Product.decPrec = mapped.decPrec;\n\t\t\t\t\tsignal.Product.icon = mapped.icon;\n\t\t\t\t\tmapped.slug && (signal.Group.Category.slug = mapped.slug);\n\t\t\t\t}\n\n\t\t\t\treturn signal;\n\t\t\t})\n\t\t\t.filter((signal: SignalsListType) => signal.marketItem)\n\t\t\t.filter((signal: SignalsListType) =>\n\t\t\t\t['Buy Limit', 'Sell Limit', 'Live Trade', 'Buy Stop', 'Sell Stop'].includes(signal.Report.status_text)\n\t\t\t)\n\t\t\t.sort((a: any, b: any) => {\n\t\t\t\tif (a.Report.confidence === b.Report.confidence) return 0;\n\t\t\t\treturn a.Report.confidence > b.Report.confidence ? -1 : 1;\n\t\t\t});\n\n\t\treturn data;\n\t};\n\n\tconst getNextExpiry = (data: SignalsListType[]): moment.Moment | null => {\n\t\tlet closestExpiry: moment.Moment | null = null;\n\n\t\tdata.forEach((signal) => {\n\t\t\tconst expiry = moment(signal.Report.expiry);\n\t\t\tif (!closestExpiry || expiry.isBefore(closestExpiry)) {\n\t\t\t\tclosestExpiry = expiry;\n\t\t\t}\n\t\t});\n\n\t\treturn closestExpiry;\n\t};\n\n\tconst queryClient = useQueryClient();\n\n\tconst closestExpiry = getNextExpiry(queryClient.getQueryData(queryKey) || []);\n\tconst staleTime = closestExpiry ? closestExpiry.diff(moment()) : 0;\n\n\treturn useQuery(queryKey, fetchSignalsList, {\n\t\tcacheTime: 0,\n\t\tstaleTime,\n\t\tenabled: false,\n\t});\n};\n\nexport default useSignals;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\ninterface FeedbackParameters {\n\temail?: string;\n\tscore: number;\n\tcomments: string;\n}\n\nconst useSubmitFeedback = () => {\n\tconst mutationFn = async (parameters: FeedbackParameters) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'profile',\n\t\t\t\t\t\t\taction: 'feedback',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\tcontext: 'webtrader:app-feedback',\n\t\t\t\t\t\t\t\t...parameters,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result.data;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useSubmitFeedback'],\n\t\tmutationFn,\n\t});\n};\n\nexport default useSubmitFeedback;\n","import React, { useState, useContext } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconDefinition } from '@fortawesome/fontawesome-common-types';\nimport { faStar as emptyStar } from '@fortawesome/free-regular-svg-icons';\nimport { faStar as fullStar } from '@fortawesome/free-solid-svg-icons';\n\nimport { useTranslation } from 'react-i18next';\n\nimport commentIcon from '../../../images/comment.svg';\nimport Modal from '../../../shared/Modal/Modal';\nimport useShortTranslation from '../../../utils/hooks/useShortTranslation';\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\n\nimport Button from '../../../shared/Button/Button';\n\nimport oneStar from '../../../images/feedbackStars/oneStar.png';\nimport twoStars from '../../../images/feedbackStars/twoStars.png';\nimport threeStars from '../../../images/feedbackStars/threeStars.png';\nimport fourStars from '../../../images/feedbackStars/fourStars.png';\nimport fiveStars from '../../../images/feedbackStars/fiveStars.png';\n\nimport useSubmitFeedback from '../../../utils/mutations/useSubmitFeedback';\nimport authStore, { AuthStore } from '../../../store/authStore';\n\nimport styles from './FeedbackModal.module.scss';\n\nconst FeedbackModal = () => {\n\tconst appContext = useContext(AppContext);\n\n\tconst forceRerender = useForceRerender();\n\tconst { t } = useTranslation();\n\tconst tt = useShortTranslation('wtr:');\n\n\tconst showFeedbackModal = appContext.feedbackModal;\n\n\tconst [feedbackInput, setFeedbackInput] = useState('');\n\tconst [ratingStars, setRatingStars] = useState(Array(5).fill(emptyStar));\n\tconst [showFeedbackSubmitScreen, setShowFeedbackSubmitScreen] = useState(false);\n\tconst [starsImage, setStarsImage] = useState(null);\n\n\tconst { email } = authStore((store: AuthStore) => store.userProfile);\n\tconst { mutate: submitFeedback } = useSubmitFeedback();\n\n\tconst mapFeedbackScore = (score: number): number => {\n\t\t//TODO: OPTIMISE ME\n\t\tswitch (score) {\n\t\t\tcase 1:\n\t\t\t\treturn 0;\n\t\t\tcase 2:\n\t\t\t\treturn 0.25;\n\t\t\tcase 3:\n\t\t\t\treturn 0.5;\n\t\t\tcase 4:\n\t\t\t\treturn 0.75;\n\t\t\tcase 5:\n\t\t\t\treturn 1;\n\t\t\tdefault:\n\t\t\t\treturn 0;\n\t\t}\n\t};\n\n\tconst handleFeedbackInput = ({ target: { value } }: React.ChangeEvent) => {\n\t\tsetFeedbackInput(value);\n\t};\n\n\tconst handleCancelFeedback = () => {\n\t\tsetFeedbackInput('');\n\t\tsetShowFeedbackSubmitScreen(false);\n\t\tsetRatingStars(Array(5).fill(emptyStar));\n\t\tsetStarsImage(null);\n\t\tappContext.feedbackModal = false;\n\t};\n\n\tconst handleFeedbackSubmit = () => {\n\t\tsetShowFeedbackSubmitScreen(true);\n\t\tconst score = mapFeedbackScore(ratingStars.filter((star: IconDefinition) => star.prefix === 'fas').length);\n\t\tconst requestPayload = {\n\t\t\temail,\n\t\t\tscore: score,\n\t\t\tcomments: feedbackInput,\n\t\t};\n\t\tsubmitFeedback(requestPayload, {\n\t\t\tonSuccess: () => setFeedbackInput(''),\n\t\t\tonError: (err) => console.debug('Error retrieving profile feedback from TFBO gateway. Exception: ', err),\n\t\t});\n\t};\n\n\tconst handleRatingClick = (idx: number) => {\n\t\tswitch (idx) {\n\t\t\tcase 0:\n\t\t\t\tsetStarsImage(oneStar);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tsetStarsImage(twoStars);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tsetStarsImage(threeStars);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tsetStarsImage(fourStars);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tsetStarsImage(fiveStars);\n\t\t\t\tbreak;\n\t\t}\n\t\tratingStars.forEach((star: IconDefinition, index: number) => {\n\t\t\tif (index <= idx) {\n\t\t\t\tratingStars[index] = fullStar;\n\t\t\t} else {\n\t\t\t\tratingStars[index] = emptyStar;\n\t\t\t}\n\t\t});\n\t\tsetRatingStars([...ratingStars]);\n\t};\n\n\tuseObservable(appContext.getPropertyChangeStream('feedbackModal'), async (change) => {\n\t\tforceRerender();\n\t});\n\n\tconst handleClose = (): void => {\n\t\tif (showFeedbackModal) {\n\t\t\tappContext.feedbackModal = false;\n\t\t\thandleCancelFeedback();\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{t('wtr:WTR_NAVIGATION_FEEDBACK')}

\n\t\t\t\t\n\t\t\t
\n\n\t\t\t{showFeedbackSubmitScreen && (\n\t\t\t\t
\n\t\t\t\t\t
{tt('FEEDBACK_THANKS')}
\n\t\t\t\t\t\"commentIcon\"\n\t\t\t\t\t
{tt('APPRECIATE_MSG')}
\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{!showFeedbackSubmitScreen && (\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('en:FEEDBACK_STAR_TITLE')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{ratingStars.map((star: IconDefinition, idx: number) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t handleRatingClick(idx)} key={idx}>\n\t\t\t\t\t\t\t\t\t\t{starsImage && idx === 0 && \"star\"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('en:FEEDBACK_HINT')}
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{!showFeedbackSubmitScreen && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t star.prefix === 'fas').length === 0}\n\t\t\t\t\t\tonClick={handleFeedbackSubmit}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default FeedbackModal;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Subscription, Observable, Subject } from 'observable-fns';\nimport { FontAwesomeIcon, FontAwesomeIconProps } from '@fortawesome/react-fontawesome';\nimport { faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { default as Nullable, Optional } from '../../../utils/functions/Nullable';\nimport { default as PromiseFactory } from '../../../utils/functions/PromiseFactory';\nimport styles from './SearchableList.module.scss';\n\n//#region SearchableListInput\ninterface ISearchableListInputProps {\n\tinputContainerAttributes?: Optional & React.ClassAttributes>;\n\tinputAttributes?: Optional & React.ClassAttributes>;\n\tsearchIconAttributes?: Optional>;\n\tclearIconAttributes?: Optional>;\n\tinputThrottling?: Optional;\n\tonOpen: () => any;\n}\n\nconst SearchableListInput = React.memo(\n\t(props) => {\n\t\tconst promiseFactoryRef = React.useRef(new PromiseFactory());\n\t\tlet searchInputElementRef = useRef();\n\t\tconst [inputHasValue, setInputHasValue] = useState(false);\n\n\t\tasync function onInputElementChange(value: string, delay?: Optional): Promise {\n\t\t\tif (delay != null && delay > 0) {\n\t\t\t\treturn promiseFactoryRef.current.throttle('onInputElementChange', delay, async (resolve, reject) => {\n\t\t\t\t\tresolve(await onInputElementChange(value));\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (value.length > 0 != inputHasValue) {\n\t\t\t\tsetInputHasValue(value.length > 0);\n\t\t\t}\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tconst inputElementAttributes = Nullable.of(props.inputAttributes)\n\t\t\t.mapNullable((attributes) => {\n\t\t\t\tconst classNames = [styles.searchInput, attributes?.className].filter((item) => item != null).join(' ');\n\t\t\t\treturn { type: 'text', ...(attributes || {}), ...{ className: classNames } };\n\t\t\t})\n\t\t\t.map((attributes) => {\n\t\t\t\tconst onInputChange = attributes.onChange;\n\t\t\t\tattributes.onChange = (event) => {\n\t\t\t\t\tconst evnt = { ...event };\n\t\t\t\t\tonInputElementChange(evnt.target.value, props.inputThrottling).then(() => {\n\t\t\t\t\t\tif (onInputChange != null && evnt != null) {\n\t\t\t\t\t\t\tonInputChange(evnt);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tattributes.onBlur = () => {\n\t\t\t\t\tsetInputHasValue(false);\n\t\t\t\t};\n\t\t\t\treturn attributes;\n\t\t\t})\n\t\t\t.get();\n\n\t\tsearchInputElementRef = (inputElementAttributes.ref as typeof searchInputElementRef) || searchInputElementRef;\n\n\t\tconst inputContainerElementAttributes = Nullable.of(props.inputContainerAttributes)\n\t\t\t.mapNullable((attributes) => {\n\t\t\t\tconst classNames = [styles.searchInputContainer, attributes?.className]\n\t\t\t\t\t.filter((item) => item != null)\n\t\t\t\t\t.join(' ');\n\t\t\t\treturn { ...(attributes || {}), ...{ className: classNames } };\n\t\t\t})\n\t\t\t.map((attributes) => {\n\t\t\t\tattributes.onClick = () => {\n\t\t\t\t\tNullable.of(searchInputElementRef.current).run((element: HTMLInputElement) => {\n\t\t\t\t\t\telement.focus();\n\t\t\t\t\t\tprops.onOpen();\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\treturn attributes;\n\t\t\t})\n\t\t\t.get();\n\n\t\tconst searchIconAttributes = Nullable.of(props.searchIconAttributes)\n\t\t\t.mapNullable((attributes) => {\n\t\t\t\tconst classNames = [styles.searchIcon, attributes?.className].filter((item) => item != null).join(' ');\n\t\t\t\treturn { icon: faSearch, ...(attributes || {}), ...{ className: classNames } } as FontAwesomeIconProps;\n\t\t\t})\n\t\t\t.get();\n\n\t\tconst clearIconAttributes = Nullable.of(props.clearIconAttributes)\n\t\t\t.mapNullable((attributes) => {\n\t\t\t\tconst classNames = [styles.closeIcon, attributes?.className].filter((item) => item != null).join(' ');\n\t\t\t\tattributes = { icon: faTimes, ...(attributes || {}), ...{ className: classNames } };\n\t\t\t\tconst onMouseDown = attributes.onMouseDown;\n\t\t\t\tattributes.onMouseDown = (event) => {\n\t\t\t\t\tif (onMouseDown != null) {\n\t\t\t\t\t\tonMouseDown(event);\n\t\t\t\t\t}\n\t\t\t\t\tif (searchInputElementRef.current != null) {\n\t\t\t\t\t\tconst element = searchInputElementRef.current as unknown as HTMLInputElement;\n\t\t\t\t\t\telement.value = '';\n\t\t\t\t\t\tif (typeof inputElementAttributes.onChange == 'function') {\n\t\t\t\t\t\t\tinputElementAttributes.onChange({ target: element } as React.ChangeEvent);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\treturn attributes as FontAwesomeIconProps;\n\t\t\t})\n\t\t\t.get();\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
\n\t\t\t\t\t{}\n\t\t\t\t\t\n\t\t\t\t\t{inputHasValue && }\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn (\n\t\t\tprevProps == nextProps ||\n\t\t\t(prevProps != null &&\n\t\t\t\tnextProps != null &&\n\t\t\t\t(['inputAttributes', 'inputContainerAttributes'] as Array).every(\n\t\t\t\t\t(key) => prevProps[key] == nextProps[key]\n\t\t\t\t))\n\t\t);\n\t}\n);\n\n//#endregion\n\n//#region SearchableListResult\n\nconst SearchableListResult = React.memo<{ observable: Observable }>(({ observable }) => {\n\tconst subscriptionRef = useRef>>();\n\tconst [renderedResults, setRenderedResults] = useState();\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (subscriptionRef.current != null) {\n\t\t\t\tsubscriptionRef.current.unsubscribe();\n\t\t\t\tsubscriptionRef.current = null;\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (subscriptionRef.current != null) {\n\t\t\tsubscriptionRef.current.unsubscribe();\n\t\t\tsubscriptionRef.current = null;\n\t\t}\n\t\tsubscriptionRef.current = observable.subscribe((value) => setRenderedResults(value));\n\t}, [observable]);\n\n\treturn <>{renderedResults !== null && renderedResults};\n});\n\n//#endregion\n\n//#region SearchableList\n\ninterface ISearchableListProps {\n\tdata: T[] | (() => T[]);\n\tfilter: (item: T, searchString: string) => boolean;\n\trender: (matches: T[], searchString?: Optional) => JSX.Element;\n\tonClose: () => any;\n\tthrottle?: Optional;\n\tinputAttributes?: Optional | Optional<() => ISearchableListInputProps>;\n}\n\nexport default function SearchableList(props: React.PropsWithChildren>): JSX.Element {\n\tconst renderedResultsSubjectRef = React.useRef(new Subject());\n\tconst formElementRef = useRef(null);\n\n\tuseEffect(() => {\n\t\treturn Nullable.of(globalThis.window)\n\t\t\t.map((window) => window.document)\n\t\t\t.map((document) => {\n\t\t\t\tconst clickHandler = (event: MouseEvent): void => {\n\t\t\t\t\tconst element = formElementRef.current as unknown as HTMLElement;\n\t\t\t\t\tif (!(element === null || element.contains(event.target as any))) {\n\t\t\t\t\t\t(props.inputAttributes as any).inputAttributes.ref.current.value = '';\n\t\t\t\t\t\tprops.onClose();\n\t\t\t\t\t\trenderedResultsSubjectRef.current.next(<>);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdocument.addEventListener('mousedown', clickHandler);\n\t\t\t\treturn () => document.removeEventListener('mousedown', clickHandler);\n\t\t\t})\n\t\t\t.orElseGet(() => () => {});\n\t}, []);\n\n\tfunction filterData(searchString: string): T[] {\n\t\treturn Nullable.of(props.data)\n\t\t\t.map((data) => (typeof data === 'function' ? data() : data))\n\t\t\t.map((data) => data.filter((item) => props.filter(item, searchString)))\n\t\t\t.orElseGet(() => []);\n\t}\n\n\tconst searchableInputAttributes = Nullable.of(props.inputAttributes)\n\t\t.mapNullable((attributes) => (attributes != null && typeof attributes === 'function' ? attributes() : attributes))\n\t\t.mapNullable((attributes) => {\n\t\t\treturn { ...(attributes || {}), ...{ inputAttributes: attributes?.inputAttributes || {} } };\n\t\t})\n\t\t.map((attributes) => {\n\t\t\tconst onInputFocus = attributes.inputAttributes.onFocus;\n\t\t\tattributes.inputAttributes.onFocus = (event) => {\n\t\t\t\tconst searchString = event?.target?.value;\n\t\t\t\tconst filteredData = filterData(searchString);\n\t\t\t\trenderedResultsSubjectRef.current.next(props.render(filteredData, searchString));\n\t\t\t\tif (onInputFocus != null) {\n\t\t\t\t\tonInputFocus(event);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onInputChange = attributes.inputAttributes.onChange;\n\t\t\tattributes.inputAttributes.onChange = (event) => {\n\t\t\t\tconst searchString = event?.target?.value;\n\t\t\t\tconst filteredData = filterData(searchString);\n\t\t\t\trenderedResultsSubjectRef.current.next(props.render(filteredData, searchString));\n\t\t\t\tif (onInputChange != null) {\n\t\t\t\t\tonInputChange(event);\n\t\t\t\t}\n\t\t\t};\n\t\t\treturn attributes;\n\t\t})\n\t\t.get();\n\n\tfunction onFormSubmitted(event: React.FormEvent): void {\n\t\tif (event != null) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\n//#endregion\n","import React from 'react';\n\nconst Fragment: (props: { render: () => JSX.Element }) => JSX.Element = ({ render }) => {\n\treturn <>{render()};\n};\nexport default Fragment;\n","export const simulateMouseEvent = function (element: any, eventName: any, coordX: any, coordY: any) {\n\telement.dispatchEvent(\n\t\tnew MouseEvent(eventName, {\n\t\t\tview: window,\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t\tclientX: coordX,\n\t\t\tclientY: coordY,\n\t\t\tbutton: 0,\n\t\t})\n\t);\n};\n","import React, { useContext, useEffect, useRef, useMemo, useCallback, useState } from 'react';\n\nimport { default as cn } from 'classnames';\n\nimport { default as ReactMegaMenu } from 'react-mega-menu/lib';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { default as ArrayStore } from 'devextreme/data/array_store';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nimport 'devextreme/dist/css/dx.common.css';\nimport 'devextreme/dist/css/dx.light.css';\n\nimport { ColumnDef, createColumnHelper, flexRender, getCoreRowModel, Row, useReactTable } from '@tanstack/react-table';\nimport { useVirtualizer } from '@tanstack/react-virtual';\n\nimport { default as Nullable, Optional } from '../../../../utils/functions/Nullable';\nimport { ArrayElementType } from '../../../../utils/functions/TypeUtils';\nimport { ObservableObject } from '../../../../utils/functions/Observables';\nimport { MarketItem } from '../../../../gateways/RfpGateway/rfp.types';\nimport { default as InstrumentContext } from '../../../../contexts/InstrumentContext';\nimport { default as SearchableList } from '../../../components/SearchableList/SearchableList';\nimport { default as Fragment } from '../../../components/Fragment';\n\nimport useShortTranslation from '../../../../utils/hooks/useShortTranslation';\n\nimport { default as useForceRerender } from '../../../../utils/hooks/useForceRerender';\n\nimport { default as useObservable } from '../../../../utils/hooks/useObservable';\n\nimport { default as usePromiseFactory } from '../../../../utils/hooks/usePromiseFactory';\n\nimport { default as AppContext } from '../../../../contexts/AppContext';\n\nimport { default as DashboardContext } from '../../../../contexts/DashboardContext';\nimport {\n\tDEFAULT_FEED_ID,\n\tinstrumentExistsInDynamicWatchlists,\n\tMAX_WATCHLISTS_ALLOWED,\n\tMAX_INSTRUMENTS_ALLOWED_JP,\n\tMAX_INSTRUMENTS_ALLOWED,\n} from '../../../../utils/functions/WatchlistUtils';\nimport { TWatchlists } from '../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport usePreferredFeedId from '../../../../utils/hooks/usePreferredFeedId';\nimport { sortSearchResults } from '../../../../utils/functions/sortSearchResults';\nimport { TradersGymContext, TradersGymContextType } from '../../../../pages/TradersGym/TradersGymContext';\n\nimport GroupBadge from '../../../components/GroupBadge/GroupBadge';\nimport CreateWatchlistButton from '../Watchlist/CreateWatchlistButton';\n\nimport useGetTranslatedWLName from '../../../../utils/hooks/useGetTranslatedWLName';\nimport {\n\tgetMinReqTierDisplayText,\n\tgetTierDisplayName,\n\tgetTierNameByNumber,\n} from '../../../../utils/functions/subscriptionUtils';\n\nimport WtrPopup from '../../../components/WtrPopup/WtrPopup';\n\nimport useSaveWatchlistToPreferences from '../../../../utils/hooks/watchlist/useSaveWatchlistToPreferences';\nimport { AccountMarketType } from '../../../../gateways/RfpGateway/rfp.types';\nimport useSelectedTradingAccount from '../../../../utils/hooks/useSelectedTradingAccount';\nimport tradingAccountStore from '../../../../store/tradingAccountStore';\nimport watchListStore from '../../../../store/WatchListStore/watchListStore';\nimport tradingViewStore from '../../../../store/tradingViewStore';\nimport authStore from '../../../../store/authStore';\n\nimport InstrumentIcon from '../../../components/GroupBadge/InstrumentIcon';\nimport { simulateMouseEvent } from '../../../../utils/functions/simulateClick';\n\nimport styles from './InstrumentSearch.module.scss';\n\ninterface IMegaMenuController {\n\tgetSections(): ReadonlyArray>>;\n\tsetActiveSection(key: string | number): void;\n}\n\ntype TMegaMenuProps = ReactMegaMenu['props'] & {\n\tcontrollerRef?: React.MutableRefObject;\n};\n\nclass MegaMenu extends ReactMegaMenu {\n\tprivate m_activeRowKey: Optional = null;\n\n\tpublic constructor(props: TMegaMenuProps | Readonly) {\n\t\tsuper(props);\n\t\tthis.mouseLeave = () => {};\n\t\tthis.activate = (row: number) => {\n\t\t\tif (row < this.props.data.length) {\n\t\t\t\tthis.m_activeRowKey = Nullable.of(this.props.data[row])\n\t\t\t\t\t.map((section) => section.key)\n\t\t\t\t\t.get();\n\t\t\t\tsuper.activate.bind(this)(row);\n\t\t\t}\n\t\t};\n\t\tNullable.of(props.controllerRef).run((controllerRef) => {\n\t\t\tcontrollerRef.current = {\n\t\t\t\tgetSections: () => this.props.data,\n\t\t\t\tsetActiveSection: (key) => this.activateItemByKey(key),\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate activateItemByKey(key: string | number): void {\n\t\tNullable.of(this.props.data.findIndex((value) => value.key === key))\n\t\t\t.filter((index) => index >= 0)\n\t\t\t.run((index) => this.activate(index));\n\t}\n\n\tpublic render(): JSX.Element {\n\t\ttry {\n\t\t\tif (this.state.activeRow >= this.props.data.length && this.m_activeRowKey) {\n\t\t\t\tthis.state.activeRow = this.props.data.findIndex((value) => value.key === this.m_activeRowKey);\n\t\t\t}\n\t\t\treturn super.render();\n\t\t} catch (err) {\n\t\t\treturn <>;\n\t\t}\n\t}\n}\n\nexport interface IMarketItemRecord extends MarketItem {\n\texistsInWatchlist: boolean;\n\twatchlists: string[];\n\tsearchMatch: boolean;\n}\n\ninterface IInstrumentSearchProps {\n\tthrottle?: Optional;\n\tmaxWatchlistNameLength?: Optional;\n\tfilter?: Optional<(instrument: MarketItem, searchString: string) => boolean>;\n\tviewInstrument?: Optional<(instrument: MarketItem) => any>;\n\tonOpen: () => any;\n\tonClose: () => any;\n}\n\nconst InstrumentSearch = React.memo((props) => {\n\tconst saveWatchlistToPreferences = useSaveWatchlistToPreferences();\n\tconst instrumentContext = useContext(InstrumentContext);\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\n\tconst instruments = Array.from(instrumentContext.instruments).filter((value: MarketItem) =>\n\t\tisSpreadBettingAccount\n\t\t\t? value.accountMarketType === AccountMarketType.SpreadBetting\n\t\t\t: value.accountMarketType !== AccountMarketType.SpreadBetting\n\t);\n\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst { t } = useTranslation();\n\tconst tt = useShortTranslation('en:');\n\tconst searchInputElementRef = useRef();\n\tconst forceRerender = useForceRerender();\n\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst getWatchlists = watchListStore.use.getWatchlists();\n\tconst getSelectedWatchlist = watchListStore.use.getSelectedWatchlist();\n\tconst getWatchlistsContainsInstrument = watchListStore.use.getWatchlistsContainsInstrument();\n\tconst addInstruments = watchListStore.use.addInstruments();\n\tconst removeInstruments = watchListStore.use.removeInstruments();\n\tconst isWatchlistNameExists = watchListStore.use.isWatchlistNameExists();\n\tconst isInstrumentExistsInWatchlist = watchListStore.use.isInstrumentExistsInWatchlist();\n\tconst allWatchlists = getWatchlists(tradingMode);\n\tconst isChildWindow = appContext.isChildWindow || false;\n\tconst getCurrentWatchList = watchListStore.use.getCurrentWatchList();\n\tconst currentWatchList = getCurrentWatchList(isChildWindow);\n\tconst selectedWatchlist = getSelectedWatchlist(tradingMode, isChildWindow);\n\n\tconst activeTradingAccount = useSelectedTradingAccount();\n\n\tconst selectedTradingAccountWatchlists = dashboardContext.watchlist;\n\n\tconst instrumentGroups = Array.from(instrumentContext.groups);\n\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\tconst isArabic = appContext.isArabic;\n\tconst maxWatchlistLimit = useRef(false);\n\tconst displayStateRef = useRef<'select' | 'create' | ''>('');\n\tconst preferredFeedId = usePreferredFeedId(activeTradingAccount);\n\tconst getTranslatedWLName = useGetTranslatedWLName();\n\tconst isSearchbarOpen = tradingViewStore.use.isSearchOpen();\n\tconst isCompSymbolMode = tradingViewStore.use.isCompSymbolMode();\n\tconst firstPressedButton = tradingViewStore.use.firstPressedButton();\n\tconst setFirstPressedButton = tradingViewStore.use.setFirstPressedButton();\n\tconst setCompSymbol = tradingViewStore.use.setCompSymbol();\n\tconst setIsCompSymbolMode = tradingViewStore.use.setIsCompSymbolMode();\n\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst isGymActive = gymContext.tradersGymContext.isActive;\n\n\tuseObservable(appContext.getPropertyChangeStream('accountStats'), () => forceRerender());\n\tuseObservable(dashboardContext.getPropertyChangeStream('watchlist', 'tradingAccount'), async () => {\n\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\tforceRerender();\n\t});\n\t// useObservable(instrumentContext.getPropertyChangeStream('instruments'), (_) => forceRerender());\n\n\tuseEffect(() => {\n\t\tif (searchInputElementRef.current && firstPressedButton) {\n\t\t\tif (isSearchbarOpen) {\n\t\t\t\tsearchInputElementRef.current.focus();\n\t\t\t\tsearchInputElementRef.current.value = firstPressedButton?.toLowerCase();\n\t\t\t}\n\t\t}\n\t\treturn () => {\n\t\t\tsetFirstPressedButton('');\n\t\t};\n\t}, [firstPressedButton]);\n\n\tuseEffect(() => {\n\t\tif (searchInputElementRef.current && isSearchbarOpen) {\n\t\t\tsearchInputElementRef.current.focus();\n\t\t}\n\n\t\treturn () => {\n\t\t\tsetCompSymbol('');\n\t\t};\n\t}, [isSearchbarOpen]);\n\n\tconst focusSearch = useCallback((event) => {\n\t\tif (\n\t\t\tevent.target.tagName === 'INPUT' ||\n\t\t\tevent.code !== `Key${event.key.toUpperCase()}` ||\n\t\t\tappContext.contactModal ||\n\t\t\tappContext.feedbackModal ||\n\t\t\tappContext.openSettings ||\n\t\t\tappContext.reconnectModal ||\n\t\t\tappContext.subscriptionModal ||\n\t\t\tappContext.statusModal\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tprops.onOpen();\n\t\tsearchInputElementRef.current.focus();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tsearchInputElementRef.current &&\n\t\t\t!appContext.contactModal &&\n\t\t\t!appContext.feedbackModal &&\n\t\t\t!appContext.openSettings &&\n\t\t\t!appContext.reconnectModal &&\n\t\t\t!appContext.subscriptionModal &&\n\t\t\t!appContext.statusModal\n\t\t) {\n\t\t\twindow.addEventListener('keypress', focusSearch, true);\n\n\t\t\treturn () => {\n\t\t\t\twindow.removeEventListener('keypress', focusSearch, true);\n\t\t\t};\n\t\t}\n\t}, [searchInputElementRef.current, isSearchbarOpen]);\n\n\tconst groupTranslations: any = {\n\t\tForex: t('wtr:WTR_FOREX'),\n\t\tForexSB: t('wtr:WTR_FOREX'),\n\t\tIndices: t('wtr:WTR_INDICES'),\n\t\tIndicesSB: t('wtr:WTR_INDICES'),\n\t\tStocks: t('wtr:SHARE_CFDS'),\n\t\tEnergy: t('wtr:ENERGY'),\n\t\tEnergySB: t('wtr:ENERGY'),\n\t\tCommodities: t('wtr:WTR_COMMODITIES'),\n\t\tCrypto: t('wtr:CRYPTO'),\n\t\tCryptoSB: t('wtr:CRYPTO'),\n\t\tMetals: t('wtr:METALS'),\n\t\tMetalsSB: t('wtr:METALS'),\n\t\tShares: t('wtr:SHARE_CFDS'),\n\t\tCFD: t('wtr:ETFS'),\n\t\tETFs: t('wtr:ETFS'),\n\t\tAll: t('en:All'),\n\t\tTier1: getTierDisplayName('Tier1'),\n\t\tTier2: getTierDisplayName('Tier2'),\n\t\tTier3: getTierDisplayName('Tier3'),\n\t};\n\n\tuseEffect(() => {\n\t\tpromiseFactory.throttle('instrumentContextChanged', 100).then(() => {\n\t\t\tforceRerender();\n\t\t});\n\t}, [instrumentContext.instruments, instrumentContext.watchlists]);\n\n\tuseEffect(() => {\n\t\tif (allWatchlists) {\n\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t}\n\t}, [allWatchlists]);\n\n\tconst controller = ObservableObject.for({\n\t\tselectedGroup: 'All',\n\t\tselectedWatchlistManagementInstrument: null as Optional,\n\t\tmaxWatchlistNameLength: Math.max(1, props.maxWatchlistNameLength || 20),\n\t});\n\n\tconst searchListFilter = useMemo(() => {\n\t\treturn props.filter\n\t\t\t? props.filter\n\t\t\t: (instrument: MarketItem, searchString: string): boolean => {\n\t\t\t\t\tsearchString = (searchString || '').trim().toLowerCase();\n\t\t\t\t\treturn (\n\t\t\t\t\t\tsearchString === '' ||\n\t\t\t\t\t\tinstrument.code?.toLowerCase().includes(searchString) ||\n\t\t\t\t\t\tinstrument.fullName?.toLowerCase().includes(searchString) ||\n\t\t\t\t\t\tinstrument.grp?.toLowerCase().includes(searchString) ||\n\t\t\t\t\t\t(instrument.exchangeTicker ?? '')?.toLowerCase().includes(searchString)\n\t\t\t\t\t);\n\t\t\t };\n\t}, [props.filter]);\n\n\tconst viewInstrument = useMemo(() => {\n\t\treturn props.viewInstrument ? props.viewInstrument : (_: MarketItem) => {};\n\t}, [props.viewInstrument]);\n\n\tinstrumentContext.instrumentSearchInputFocusDelegate = () => {\n\t\tNullable.of(searchInputElementRef.current).run((element: HTMLInputElement) => {\n\t\t\tprops.onOpen();\n\t\t\telement.focus();\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{/*
showSkipWaitingPrompt()}>HAPPY X5
*/}\n\t\t\t {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tconst megaMenuControllerRef = useRef();\n\t\t\t\t\t\t\t\t\tconst forceRerender = useForceRerender();\n\t\t\t\t\t\t\t\t\tconst instrumentSearchController = controller;\n\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument = null;\n\t\t\t\t\t\t\t\t\tconst tableContainerRef = React.useRef(null);\n\n\t\t\t\t\t\t\t\t\tuseObservable(instrumentSearchController.getPropertyChangeStream('selectedGroup'), () => {\n\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t//create map of IMarketItemRecord arrays, indexed by group\n\t\t\t\t\t\t\t\t\tconst instrumentsByGroup = useMemo(() => Nullable.of(searchMatches)\n\t\t\t\t\t\t\t\t\t\t// .filter((matches) => matches.length > 0)\n\t\t\t\t\t\t\t\t\t\t.map((matches) => {\n\t\t\t\t\t\t\t\t\t\t\treturn matches.map((instruments) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst instrument: MarketItem = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...instruments,\n\t\t\t\t\t\t\t\t\t\t\t\t\tgrp: instruments.grp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayName: instruments.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\tlet watchlistsNames: string[] = [];\n\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlists = getWatchlistsContainsInstrument(tradingMode, instrument.code);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (watchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlistsNames = watchlists.map((watchlist) => watchlist.name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tconst record: IMarketItemRecord = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\texistsInWatchlist: watchlistsNames.length > 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\twatchlists: watchlistsNames,\n\t\t\t\t\t\t\t\t\t\t\t\t\tsearchMatch: searchMatches.length > 0,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\treturn record;\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.map((matches) => {\n\t\t\t\t\t\t\t\t\t\t\tconst groups = new Map(Array.of(['All', matches]));\n\n\t\t\t\t\t\t\t\t\t\t\tinstrumentGroups\n\t\t\t\t\t\t\t\t\t\t\t\t.sort((left: any, right: any) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (groupTranslations[left] || left || '').localeCompare(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgroupTranslations[right] || right || ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t.forEach((group: any) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tgroups.set(group as string, []);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tif (isJapanSubscriptionAccount) {\n\t\t\t\t\t\t\t\t\t\t\t\tmatches.forEach((instrument) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// obviously this is not great but will do for now\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (instrument.minTier) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let i = instrument.minTier; i <= 3; i++) groups.get(i.toString())!.push(instrument);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tmatches.forEach((instrument) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument.grp && groups.get(instrument.grp)!.push(instrument);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\treturn groups;\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.orElseGet(() => new Map()),[searchMatches]);\n\t\t\t\t\t\t\t\t\t//create instruments panel\n\t\t\t\t\t\t\t\t\tconst instrumentsPanel = Nullable.of(instrumentsByGroup.get(instrumentSearchController.selectedGroup))\n\t\t\t\t\t\t\t\t\t\t.map((instruments) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst [lastClickedCell, setLastClickedCell] = useState<{ rowId: string; columnId: string } | null>(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst forceRerender = useForceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet newInstruments = instruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst selectedGroup = instrumentSearchController.selectedGroup;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst recentlyViewedInstruments = instrumentContext.recentlyViewedInstruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst isShowRecentlyViewed =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(searchString || '').length < 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedGroup === 'All' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trecentlyViewedInstruments.length > 0;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isShowRecentlyViewed) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewInstruments = Array.from(recentlyViewedInstruments.values())\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((instrument) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst valueComparator =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentContext.recentlyViewedInstruments.valueComparator ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t((val1, val2) => val1.displayName === val2.displayName);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn instruments.find((value) => valueComparator(instrument, value));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.filter((value) => value) as IMarketItemRecord[];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewInstruments = instruments\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.filter((instrument) => instrument.searchMatch)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.sort((val1, val2) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tval1.displayName === searchString && val2.displayName !== searchString\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? -1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: val2.displayName === searchString && val1.displayName !== searchString\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: val1.displayName.localeCompare(val2.displayName)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewInstruments =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchString && searchString.length > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? (sortSearchResults(instruments, searchString) as IMarketItemRecord[])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: instruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst dataStore = new ArrayStore({ key: 'code', data: instruments });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst showEmptyState = instruments.length < 1;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction renderSymbolColumn(target: any): React.ReactNode {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst record = target.original as IMarketItemRecord;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst displayName =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trecord.exchangeTicker && record.exchangeTicker !== ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? record.exchangeTicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: record.displayName;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst upperSearch = searchString?.toUpperCase();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet match = {displayName};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (upperSearch && displayName.includes(upperSearch)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst notHighlighted = displayName.split(upperSearch);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst highlighted = {upperSearch};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notHighlighted[0]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlighted}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notHighlighted[1]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isJapanSubscriptionAccount ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{record?.minTier && getMinReqTierDisplayText(record.minTier)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{match}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{renderNameColumn(target)}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction renderNameColumn(record: any): React.ReactNode {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst fullName = record.original.fullName;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst upperName = fullName?.toUpperCase();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst upperSearch = searchString?.toUpperCase();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst showTooltipLength = 40;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet match =
{fullName}
;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (upperSearch && upperSearch !== ' ' && upperName.includes(upperSearch)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst startIndex = upperName.indexOf(upperSearch);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst endIndex = startIndex + upperSearch.length;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst highlighted = (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{fullName.substring(startIndex, endIndex)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{fullName.substring(0, startIndex)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlighted}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{fullName.substring(endIndex, fullName.length)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn fullName.length >= showTooltipLength ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{fullName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{match}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{match}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction renderWatchlistColumn(target: any, column: any): React.ReactNode {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst record: IMarketItemRecord = target.original;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst existsInWatchlist = record.existsInWatchlist;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistNames = record.watchlists.map((watchlistName) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgetTranslatedWLName(watchlistName)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst isSelected = Nullable.of(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((instrument) => instrument.code === record.code)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.orElse(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst handleCellClick = (rowId: string, columnId: string, e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst row = (e.target as HTMLElement).closest(\"tr\"); \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst rowIsSelected = row && [...row.classList].some(r => r === \"selectedInstrumentRow\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!rowIsSelected){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdocument.querySelectorAll(\".selectedInstrumentRow\").forEach((el) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tel.classList.remove(\"selectedInstrumentRow\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t },row && row.classList.add(\"selectedInstrumentRow\"));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetLastClickedCell({rowId, columnId});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t handleCellClick(target.id, column.id, e)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{existsInWatchlist ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:EXISTS_IN')} {'\"' + watchlistNames.join(' \", \" ') + '\"'}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ton={['hover']}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpinned\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tposition=\"left center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst triggerLastClickedCell = () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (lastClickedCell) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst cellSelector = `[data-rowid=\"${lastClickedCell.rowId}\"][data-colid=\"${lastClickedCell.columnId}\"]`;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst cell = document.querySelector(cellSelector) as HTMLDivElement;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (cell) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcell.click();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onCellClick(target: any, name: string | undefined): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(target)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.run((target) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst record: IMarketItemRecord = target;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isGymActive) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tviewInstrument(record);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isCompSymbolMode) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsCompSymbolMode(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetCompSymbol(record.code);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsimulateMouseEvent(document, 'mousedown', 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname === 'watchlists' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tallWatchlists &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedWatchlist\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument = record;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst maxInstruments = appContext.isJapanAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MAX_INSTRUMENTS_ALLOWED_JP\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: MAX_INSTRUMENTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst maxInstrumentsPerWatchlist =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedWatchlist.instruments.length >= maxInstruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists.length === 1 && !maxInstrumentsPerWatchlist) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst instrumentExists = selectedWatchlist.instruments.includes(record.code);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst preferenceToUpdate = selectedTradingAccountWatchlists.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(watchlist) => watchlist._name === currentWatchList\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (preferenceToUpdate) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!instrumentExists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpreferenceToUpdate.instrument = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...preferenceToUpdate.instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ _code: record.code },\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpreferenceToUpdate.instrument = preferenceToUpdate.instrument.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(instrument) => instrument._code !== record.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.watchlist = selectedTradingAccountWatchlists;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveWatchlistToPreferences(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.watchlist,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = 'select';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentContext.instruments.find((value) => value.code === record.code)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t).run((instrument) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isShowRecentlyViewed) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentContext.recentlyViewedInstruments.delete(instrument);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentContext.recentlyViewedInstruments.enqueue(instrument);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tviewInstrument(record);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst gridHeight = useMemo(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isShowRecentlyViewed) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn isArabic ? 446 : 376;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn isArabic ? 490 : 357;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, [isArabic, isShowRecentlyViewed]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst columnHelper = createColumnHelper();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst columns: ColumnDef[] = useMemo(() => [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumnHelper.accessor('code', {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid: 'code',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader: () => <>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcell: ({ row }) =>
onCellClick(row.original, row.getValue('id'))}>{renderSymbolColumn(row)}
,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tenableHiding: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminSize: 300,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumnHelper.accessor((row) => 'watchlists', {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid: 'watchlists',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader: () => <>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcell: ({row, column}) =>
onCellClick(row.original, \"watchlists\")} className={cn(styles.watchlistCell)}>{renderWatchlistColumn(row, column)}
,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminSize: 50,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tenableHiding: true\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t],[Object.keys(newInstruments).length]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst columnVisibility = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlists: !isGymActive,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcode: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst table = useReactTable({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: newInstruments,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgetCoreRowModel: getCoreRowModel(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t columnVisibility, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst rows = useMemo(() => table.getRowModel().rows, [table.getRowModel()]);\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst rowVirtualizer = useVirtualizer({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount: rows.length,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\testimateSize: useCallback(() => 40, []), //estimate row height for accurate scrollbar dragging\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgetScrollElement: () => tableContainerRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverscan: 10,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst virtualRows = rowVirtualizer.getVirtualItems();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn showEmptyState ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:NO_MATCHES')} '\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{searchString}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{t('wtr:MODIFY_SEARCH')}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{virtualRows.map(virtualRow => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst row = rows[virtualRow.index] as Row;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn row ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.getVisibleCells().map(cell => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{flexRender(cell.column.columnDef.cell, cell.getContext())}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst forceRerender = useForceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst newWatchlistNameRef = useRef('');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistNameElementRef = useRef(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst maxWatchlistNameLength =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.maxWatchlistNameLength;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst selectedInstrument =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst duplicateWatchlistNameRef = useRef(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allWatchlistsLocal = getWatchlists(tradingMode);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuseObservable(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.getPropertyChangeStream(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'selectedGroup',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'selectedWatchlistManagementInstrument',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'maxWatchlistNameLength'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction updateWatchlist(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument: IMarketItemRecord,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist: string,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taction: 'add' | 'remove',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trerender: boolean = true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisWatchlistMaxed: boolean,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerLastClickedCell: () => void\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistName = watchlist.trim();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst updatePreferenceObject = selectedTradingAccountWatchlists.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(entry) => entry._name === watchlistName\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isWatchlistMaxed && action === 'add') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (updatePreferenceObject) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePreferenceObject.instrument.push({ _code: instrument.code });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taddInstruments(tradingMode, watchlistName, [instrument.code]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (action === 'remove') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (updatePreferenceObject) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePreferenceObject.instrument =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePreferenceObject.instrument.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(entry) => entry._code !== instrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tremoveInstruments(tradingMode, watchlistName, [instrument.code]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlists = getWatchlistsContainsInstrument(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttradingMode,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistsNames = watchlists\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? watchlists.map((watchlist) => watchlist.name)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: [];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlists: watchlistsNames,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\texistsInWatchlist: watchlistsNames.length > 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataStore.push([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'update',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey: instrument.code,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (rerender) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveWatchlistToPreferences(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedTradingAccountWatchlists,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerLastClickedCell();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onCreateWatchlistCancelClick(): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = 'select';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduplicateWatchlistNameRef.current = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewWatchlistNameRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(watchlistNameElementRef.current).run(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(element: HTMLInputElement) => (element.value = '')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onCreateWatchlistSaveClick(): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistName = newWatchlistNameRef.current.trim();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists && isWatchlistNameExists(tradingMode, watchlistName)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduplicateWatchlistNameRef.current = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (allWatchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet instrument = selectedInstrument as IMarketItemRecord;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst newWatchlistEntry: TWatchlists = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument: [{ _code: instrument.code }],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_name: watchlistName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_id: watchlistName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_feedId: preferredFeedId !== '' ? preferredFeedId : DEFAULT_FEED_ID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_sortOrder: 'None',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_sortValue: 'Instrument',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.watchlist.push(newWatchlistEntry);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveWatchlistToPreferences(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.watchlist,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = 'select';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewWatchlistNameRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduplicateWatchlistNameRef.current = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlists = getWatchlistsContainsInstrument(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttradingMode,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistsNames = watchlists\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? watchlists.map((watchlist) => watchlist.name)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: [];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlists: watchlistsNames,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\texistsInWatchlist: watchlistsNames.length > 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataStore.push([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'update',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey: instrument.code,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(watchlistNameElementRef.current).run(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(element: HTMLInputElement) => (element.value = '')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerLastClickedCell();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onCreateWatchlistClick(): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!maxWatchlistLimit.current) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = 'create';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewWatchlistNameRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(watchlistNameElementRef.current).run(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(element: HTMLInputElement) => (element.value = '')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onNewWatchlistNameChange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent: React.ChangeEvent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(event)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((event) => event.target)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((target) => target.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.run((value) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewWatchlistNameRef.current = value.trim();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduplicateWatchlistNameRef.current = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpromiseFactory\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.throttle('newWatchlistNameChange', 50)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.then(() => forceRerender());\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:SELECT_WATCHLIST')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{allWatchlistsLocal &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tallWatchlistsLocal.map((watchlist) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentExistsInDynamicWatchlists(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.defaultWatchLists,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst existsInWatchlist = isInstrumentExistsInWatchlist(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttradingMode,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst maxInstruments = appContext.isJapanAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MAX_INSTRUMENTS_ALLOWED_JP\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: MAX_INSTRUMENTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst isWatchlistMaxed =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.instruments.length >= maxInstruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst disableIcon =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisWatchlistMaxed && selectedInstrument && !existsInWatchlist\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? styles.disabledIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: styles.addToWatchlistIcon;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdateWatchlist(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument as IMarketItemRecord,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\texistsInWatchlist ? 'remove' : 'add',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisWatchlistMaxed,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerLastClickedCell\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getTranslatedWLName(watchlist.name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isWatchlistMaxed &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!isInstrumentExistsInWatchlist(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttradingMode,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:MAX_INSTRUMENT_ERROR')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tt('CREATE_WATCHLIST')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onNewWatchlistNameChange(event)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* { `${newWatchlistNameRef.current.length}/${maxWatchlistNameLength}` }\n
*/}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{duplicateWatchlistNameRef.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{duplicateWatchlistNameRef.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:NAME_IN_USE')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{maxWatchlistLimit.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{maxWatchlistLimit.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:MAX_WATCHLIST_ERROR')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!duplicateWatchlistNameRef.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onCreateWatchlistCancelClick()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tt('CANCEL')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onCreateWatchlistSaveClick()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={newWatchlistNameRef.current.length < 1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tt('CREATE')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.get();\n\t\t\t\t\t\t\t\t\t//create array of mega menu data items\n\t\t\t\t\t\t\t\t\tconst megaMenuItems = Nullable.of(instrumentsByGroup)\n\t\t\t\t\t\t\t\t\t\t.map((instrumentsByGroup) => {\n\t\t\t\t\t\t\t\t\t\t\treturn Array.from(instrumentsByGroup)\n\t\t\t\t\t\t\t\t\t\t\t\t.filter(([group, instruments]) => instruments.length !== 0)\n\t\t\t\t\t\t\t\t\t\t\t\t.map(([group, instruments]) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst isSelected = group === instrumentSearchController.selectedGroup;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet selectedStyling = '';\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (isSelected) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// if (isJapanAccount) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isJapanSubscriptionAccount) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedStyling = styles.selectedTier;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedStyling = styles.selected;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t// const isTier = group === '1' || group === '2' || group === '3';\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst isTier =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisJapanSubscriptionAccount && (group === '1' || group === '2' || group === '3');\n\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedGroup = group;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isTier ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getTierNameByNumber(parseInt(group))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{groupTranslations[isTier ? `Tier${group}` : group]} ({instruments.length})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey: group,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titems: instrumentsPanel,\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.orElseGet(() => []);\n\n\t\t\t\t\t\t\t\t\t//set active menu section based on selected group\n\t\t\t\t\t\t\t\t\tuseEffect(() => {\n\t\t\t\t\t\t\t\t\t\tif (megaMenuItems.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\tNullable.of(megaMenuControllerRef.current).run((controller) => {\n\t\t\t\t\t\t\t\t\t\t\t\tcontroller.setActiveSection(instrumentSearchController.selectedGroup || 'All');\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}, [megaMenuItems, instrumentSearchController.selectedGroup]);\n\n\t\t\t\t\t\t\t\t\t//create mega menu props and render mega menu\n\t\t\t\t\t\t\t\t\tconst megaMenuProps = {\n\t\t\t\t\t\t\t\t\t\tcontrollerRef: megaMenuControllerRef,\n\t\t\t\t\t\t\t\t\t\tstyleConfig: {\n\t\t\t\t\t\t\t\t\t\t\tcontainerProps: {\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.menuPanel),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tmenuProps: {\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.groupPanel),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tmenuItemProps: {\n\t\t\t\t\t\t\t\t\t\t\t\t//className: cn(styles.groupItem)\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.itemContainer),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tmenuItemSelectedProps: {\n\t\t\t\t\t\t\t\t\t\t\t\t//className: cn(styles.groupItemSelected)\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.itemContainer),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tcontentProps: {\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.instrumentPanel),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdata: megaMenuItems as unknown as MegaMenu['props']['data'],\n\t\t\t\t\t\t\t\t\t} as unknown as MegaMenu['props'];\n\t\t\t\t\t\t\t\t\treturn <>{megaMenuItems.length > 0 && };\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n});\n\nexport default InstrumentSearch;\n","import React, { useState, createContext } from 'react';\n\nexport enum NotificationType {\n\talert = 'ALERT',\n\tinfo = 'INFO',\n}\n\nexport interface INotification {\n\ttimestamp: string;\n\ttype: NotificationType;\n\tcontent: JSX.Element | JSX.Element[] | string | any;\n\taction: any;\n}\nexport interface IComunnityItem {\n\ttimestamp: string;\n\ttype: NotificationType;\n\tcontent: JSX.Element | JSX.Element[] | string | any;\n\taction: any;\n}\n\ninterface INotificationsContext {\n\tnotifications: INotification[];\n\taddNotifications: (newValues: INotification[]) => void;\n\tresetNotifications: () => void;\n}\n\ninterface IProviderProps {\n\tchildren?: React.ReactNode;\n\t// children?: JSX.Element | JSX.Element[] | null | boolean;\n}\n\nconst defaultContext: INotificationsContext = {\n\tnotifications: [],\n\taddNotifications: (_: INotification[]) => {},\n\tresetNotifications: () => {},\n};\n\nexport const NotificationsContext = createContext(defaultContext);\n\nconst NotificationsContextProvider = ({ children }: IProviderProps) => {\n\tconst [notifications, setNotifications] = useState(defaultContext.notifications);\n\n\tconst addNotifications = (newValues: INotification[]) => {\n\t\tsetNotifications((prevValues) => [...prevValues, ...newValues]);\n\t};\n\n\tconst resetNotifications = () => {\n\t\tsetNotifications([]);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default NotificationsContextProvider;\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport cn from 'classnames';\n\nimport styles from './NotificationsIcon.module.scss';\n\ninterface NotificationsIconProps {\n\topen: boolean;\n\tmessageCount: number;\n}\n\nconst NotificationsIcon = ({ open, messageCount }: NotificationsIconProps) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t{messageCount > 0 &&
{messageCount}
}\n\t\t\n\t);\n};\n\nexport default NotificationsIcon;\n","import React from 'react';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\n\nimport { INotification, NotificationType } from '../../../../../contexts/NotificationsContext';\n\nimport styles from './NotificationsItem.module.scss';\n\nconst NotificationsItem = ({ notification }: { notification: INotification }) => {\n\tconst IconMap: Record = {\n\t\t[NotificationType.alert]: ['far', 'exclamation-triangle'],\n\t\t[NotificationType.info]: ['far', 'sparkles'],\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
{notification.content}
\n\t\t\t
\n\t\t\t{notification.action}\n\t\t
\n\t);\n};\n\nexport default NotificationsItem;\n","import React, { useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { INotification } from '../../../../../contexts/NotificationsContext';\n// import cn from 'classnames';\nimport uniqueId from '../../../../../utils/functions/uniqueId';\n\nimport emptyListIcon from '../../../../../images/empty-notification-list.svg';\nimport NotificationsItem from '../NotificationsItem';\n\nimport styles from './NotificationsList.module.scss';\n\ninterface INotificationsList {\n\tnotifications: INotification[];\n}\n\nconst NotificationsList = ({ notifications }: INotificationsList) => {\n\tconst { t } = useTranslation();\n\tconst hasNotifications = notifications.length > 0;\n\tconst notificationRef = useRef(null);\n\n\tuseEffect(() => {\n\t\tif (!notificationRef.current) return;\n\t}, [notificationRef]);\n\n\treturn (\n\t\t
\n\t\t\t
{t('wtr:NOTIFICATION_POPUP_TITLE')}
\n\t\t\t
\n\t\t\t\t{!hasNotifications && (\n\t\t\t\t\t
\n\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t

{t('wtr:NOTIFICATION_POPUP_EMPTY_TEXT')}

\n\t\t\t\t\t\t

{t('wtr:NOTIFICATION_POPUP_EMPTY_SUBTEXT')}

\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t{hasNotifications && (\n\t\t\t\t\t
\n\t\t\t\t\t\t{notifications.map((notification) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default NotificationsList;\n","import React, { useContext, useEffect, useState } from 'react';\n\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { useHistory } from 'react-router-dom';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { NotificationsContext, NotificationType } from '../../../contexts/NotificationsContext';\n\nimport WtrPopup from '../WtrPopup/WtrPopup';\n\nimport DashboardContext from '../../../contexts/DashboardContext';\n\nimport { AppComponentType, ApplicationStatus } from '../../../utils/functions/enums';\n\nimport Button from '../../../shared/Button/Button';\n\nimport Routes from '../../../setup/routes';\n\nimport accountStatusStore from '../../../store/accountStatusStore';\n\nimport authStore from '../../../store/authStore';\n\nimport UserNotificationsIcon from './components/NotificationsIcon/NotificationsIcon';\nimport UserNotificationsList from './components/NotificationsList/NotificationsList';\nimport styles from './Notifications.module.scss';\nimport cn from 'classnames';\n\ninterface NotificationsProps {\n\topenNotifications: boolean;\n\tsetOpenNotifications: (accountPopup: boolean) => void;\n}\n\nconst Notifications: React.FC = ({ openNotifications, setOpenNotifications }) => {\n\tconst { notifications, addNotifications } = useContext(NotificationsContext);\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst { isArabic } = appContext;\n\tconst { t } = useTranslation();\n\tconst history = useHistory();\n\n\tconst isLiveMode = authStore.use.isLiveMode();\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst hasLiveAccount = accountStatusStore.use.hasLiveAccount();\n\tconst permissions = accountStatusStore.use.permissions();\n\tconst applicationStatus = accountStatusStore.use.checkApplicationStatus();\n\n\tconst notificationBell = permissions?.notificationBell;\n\n\tconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n\tconst shouldDisplayNotifications =\n\t\t!isJapanAccount &&\n\t\tisLiveMode &&\n\t\thasLiveAccount &&\n\t\tapplicationStatus !== ApplicationStatus.APPROVED &&\n\t\tapplicationStatus !== ApplicationStatus.PENDING_REVIEW;\n\n\tconst handleRedirect = () => {\n\t\tsetOpenNotifications(false);\n\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t};\n\tuseEffect(() => {\n\t\tif (shouldDisplayNotifications) {\n\t\t\taddNotifications([\n\t\t\t\t{\n\t\t\t\t\ttimestamp: '',\n\t\t\t\t\ttype: NotificationType.alert,\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t),\n\t\t\t\t\taction: (\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\t}, [shouldDisplayNotifications]);\n\n\tif (!notificationBell && !isJapanAccount) return null;\n\n\treturn (\n\t\t<>\n\t\t\t setOpenNotifications(true)}\n\t\t\t\tonClose={() => setOpenNotifications(false)}\n\t\t\t\tclassName={cn(styles.marginRight, isSafari && styles.marginRightSafari)}\n\t\t\t\tposition={isArabic ? 'bottom right' : 'bottom left'}\n\t\t\t\tbasic\n\t\t\t\ttrigger={\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t\tcontent={}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default Notifications;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useHistory } from 'react-router-dom';\nimport jwt from 'jsonwebtoken';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport Routes from '../../../../../setup/routes';\n\nimport authStore from '../../../../../store/authStore';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { useCountryPrivacyPolicy } from '../../../../../utils/hooks/useCountryPrivacyPolicy';\n\nimport styles from './CommunityList.module.scss';\n\ninterface ICommunityList {\n\thandleToggleOpen: (e?: React.PointerEvent) => void;\n}\n\nconst CommunityList = ({ handleToggleOpen }: ICommunityList) => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\tconst history = useHistory();\n\tconst upvoty = useRef();\n\tconst communityRef = useRef(null);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst [upvotyLink, setUpvotyLink] = useState('');\n\tconst userProfile = authStore.use.userProfile();\n\t\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst privacyPolicyLink = useCountryPrivacyPolicy();\n\tconst accountAvatar = authStore.use.accountAvatar();\n\t\n\tconst privateKey = process.env.REACT_APP_UPVOTY_URL_PUBLICKEY ? process.env.REACT_APP_UPVOTY_URL_PUBLICKEY.toString() : '';\n\n\tuseEffect(() => {\n\t\tconst payload = {\n\t\t\tid: `${userProfile.id}`,\n\t\t\tname: `${userProfile.fullName}`,\n\t\t\temail: `${userProfile.email}`,\n\t\t\tavatar: `${process.env.REACT_APP_UPVOTY_URL_IMAGE_PATH}${accountAvatar}.svg`\n\t\t};\n\t\t\n\t\tconst token = jwt.sign(payload, privateKey, {\n\t\t\t'issuer': `${process.env.REACT_APP_UPVOTY_URL_ISSUER?.toString()}`,\n\t\t\t'audience': `${process.env.REACT_APP_UPVOTY_URL_AUDIENCE?.toString()}`,\n\t\t\t'algorithm': \"HS256\"\n\t\t});\n\t\t\n\t\tconst redirectUri = `${process.env.REACT_APP_UPVOTY_URL_REDIRECT?.toString()}`;\n\t\tsetUpvotyLink(`${redirectUri}/?custom_sso_token=${token}`);\n\t\t\n\t}, [userProfile, privateKey]);\n\n\tconst handleClickOutside = (event: any) => {\n\t\tif (communityRef.current && !communityRef.current.contains(event.target)) {\n\t\t\thandleToggleOpen();\n\t\t}\n\t};\n\n\tconst handleKeyPress = (event: KeyboardEvent) => {\n\t\tif (event.key === 'Escape') {\n\t\t\thandleToggleOpen();\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tdocument.addEventListener('click', handleClickOutside);\n\t\tdocument.addEventListener('keydown', handleKeyPress);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('click', handleClickOutside);\n\t\t\tdocument.removeEventListener('keydown', handleKeyPress);\n\t\t};\n\t}, []);\n\n\tconst handleAcademyClick = () => {\n\t\thandleToggleOpen();\n\t\tif (isJapanAccount) {\n\t\t\tdashboardContext.userGuide = true;\n\t\t\treturn;\n\t\t}\n\t\tdashboardContext.presentComponentType = AppComponentType.Tutorials;\n\t\thistory.push(Routes.trader.tutorials);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{isJapanAccount ? t('en:USER_GUIDE') : 'Think Academy'}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t{!isJapanAccount && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\twindow.open(upvotyLink, '_blank');\n\t\t\t\t\t\t\t\thandleToggleOpen();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

{t('en:COMMUNITY_TITLE')}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tappContext.feedbackModal = true;\n\t\t\t\t\t\t\thandleToggleOpen();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('wtr:WTR_NAVIGATION_FEEDBACK')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\tappContext.contactModal = true;\n\t\t\t\t\t\t\thandleToggleOpen();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('en:NAVIGATION_CONTACTUS')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\twindow.open(privacyPolicyLink, '_blank', 'noopener,noreferrer');\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('en:PRIVACY_POLICY')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default CommunityList;","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport DashboardContext from '../../contexts/DashboardContext';\nimport { TAccountStats } from '../../gateways/TfboGateway/TfboGateway.types';\n\nimport useSelectedTradingAccount from './useSelectedTradingAccount';\n\nexport const useCountryPrivacyPolicy = (): string => {\n\tlet organizationName: string = '';\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst account = useSelectedTradingAccount();\n\t// Define the organization name\n\tif (appContext && dashboardContext && account) {\n\t\tlet result = appContext.accountStats.find(\n\t\t\t(data: TAccountStats) => data.account.accountNumber === +account.providerAccountId\n\t\t);\n\t\torganizationName = result?.account?.organization?.name ?? '';\n\t}\n\n\tswitch (organizationName) {\n\t\tcase 'AU':\n\t\t\treturn 'https://www.thinkmarkets.com/au/support/legal-and-regulation/privacy-policy/';\n\t\tcase 'UK':\n\t\t\treturn 'https://www.thinkmarkets.com/uk/support/legal-and-regulation/privacy-policy/';\n\t\tcase 'TMCY':\n\t\t\treturn 'https://www.thinkmarkets.com/eu/support/legal-and-regulation/privacy-policy/';\n\t\tcase 'TFSA':\n\t\t\treturn 'https://www.thinkmarkets.com/za/support/legal-and-regulation/privacy-policy/';\n\t\tcase 'TMJP':\n\t\t\treturn 'https://www.thinkmarkets.jp/support/legal-and-regulation/pip/';\n\t\tcase 'TMNZ':\n\t\t\treturn 'https://www.thinkmarkets.com/nz/support/legal-and-regulation/privacy-policy/';\n\t\tdefault:\n\t\t\treturn 'https://www.thinkmarkets.com/en/support/legal-and-regulation/privacy-policy/';\n\t}\n};\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport cn from 'classnames';\n\nimport styles from './CommunityIcon.module.scss';\n\ninterface CommunityIconProps {\n\topen: boolean;\n\tonClick: (e?: React.PointerEvent) => void;\n}\n\nconst CommunityIcon = ({ open, onClick }: CommunityIconProps) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CommunityIcon;\n","import React, {useCallback, useContext, useState} from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\n\nimport WtrPopup from '../WtrPopup/WtrPopup';\n\nimport CommunityList from './components/CommunityList/CommunityList';\nimport CommunityIcon from './components/CommunityIcon/CommunityIcon';\n\nconst Community = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { isArabic } = appContext;\n\n\tconst [open, setOpen] = useState(false);\n\n\tconst handleToggleOpen = useCallback((e?: React.PointerEvent) => {\n\t\tif (e) {\n\t\t\te.stopPropagation();\n\t\t}\n\t\tsetOpen(!open);\n\t}, [open]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tcontent={}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default Community;\n","import React, { useContext, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DropdownProps } from 'semantic-ui-react';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { getEnabledLangOptions } from '../../../Settings/settingsOptions';\nimport { isProduction } from '../../../../../../setup/config';\nimport LangSelect from '../../../../../components/LangSelect/LangSelect';\n\nimport authStore from '../../../../../../store/authStore';\n\nimport AppContext from '../../../../../../contexts/AppContext';\n\nimport { TThemeSetting } from '../../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\nimport { useFillContextsFromPreferences } from '../../../../../../utils/hooks/preferences/useFillContextsFromPreferences';\n\nimport styles from './SettingsModule.module.scss';\n\ninterface platformSettingsProps {\n\tsettings: any;\n\tsetOpenSettings: (v: boolean) => void;\n\thandleCloseModal: (v: boolean) => void;\n}\n\nconst PlatformSettings: React.FC = ({ settings, setOpenSettings, handleCloseModal }) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\tconst [theme, setTheme] = useState(appContext.userPreferences!.user_prefs.platform.theme._type);\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst enabledLangOptions = getEnabledLangOptions(isProduction && isJapanAccount ? ['ja'] : []);\n\n\tconst handleLanguage = async (_event: React.SyntheticEvent, { value }: DropdownProps) => {\n\t\tconst initialSettingLanguage = appContext.userPreferences!.user_prefs.platform.lang;\n\t\tif (typeof value === 'string') {\n\t\t\tlocalStorage.setItem('language', value);\n\t\t\tawait savePreferences();\n\n\t\t\tif (initialSettingLanguage._name !== value) {\n\t\t\t\twindow.location.reload();\n\t\t\t}\n\n\t\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t\t}\n\t};\n\n\tconst handleThemeSwitch = async (value: string) => {\n\t\tlet invertedSetting: TThemeSetting;\n\n\t\tswitch (value) {\n\t\t\tcase 'Light':\n\t\t\t\tappContext.userPreferences!.user_prefs.platform.theme = { _type: 'Light' };\n\n\t\t\t\tsetTheme('Light');\n\t\t\t\tinvertedSetting = { _type: 'Light' };\n\t\t\t\tbreak;\n\t\t\tcase 'System':\n\t\t\t\tappContext.userPreferences!.user_prefs.platform.theme = { _type: 'System' };\n\t\t\t\tsetTheme('System');\n\n\t\t\t\tinvertedSetting = { _type: 'System' };\n\t\t\t\tbreak;\n\t\t\tcase 'Dark':\n\t\t\tdefault:\n\t\t\t\tappContext.userPreferences!.user_prefs.platform.theme = { _type: 'Dark' };\n\n\t\t\t\tsetTheme('Dark');\n\t\t\t\tinvertedSetting = { _type: 'Dark' };\n\t\t\t\tbreak;\n\t\t}\n\t\tawait savePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t\tappContext.userPreferences!.user_prefs.platform.theme = invertedSetting;\n\t\tsavePreferences();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t
{t('wtr:PLATFORM')}
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:LANGUAGE')}
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:THEME')}
\n\t\t\t\t\t
\n\t\t\t\t\t\t handleThemeSwitch('Light')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {}} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t handleThemeSwitch('Dark')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {}} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t handleThemeSwitch('System')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {}} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t
{t('wtr:CURRENT_VERSION')}
\n\t\t\t\t\t
{process.env.REACT_APP_VERSION}
\n\t\t\t\t
\n\t\t\t\n\t\t\n\t);\n};\n\nexport default PlatformSettings;\n","export const isPasswordSingleDigit = (value: string) => /\\d/.test(value) && !!value?.length;\nexport const isPasswordValidLength = (value: string) => value?.length >= 8 && value?.length <= 30;\nexport const isPasswordSingleLetter = (value: string) => /[a-z]/.test(value) && !!value?.length;\nexport const isPasswordSingleUpperLetter = (value: string) => /[A-Z]/.test(value) && !!value?.length;\nexport const isPasswordSpecialCharacters = (value: string) =>\n\t/[(@!?~`\"&',/:;<>#\\$%\\^\\&*\\)\\|\\{\\}\\\\\\[\\]\\(+=._-]{1,}/.test(value);\nexport const isPasswordLowercaseLetter = (value: string) => /[a-z]/.test(value) && !!value?.length;\n\nexport const isPasswordValid = (value: string) =>\n\tisPasswordSingleDigit(value) &&\n\tisPasswordValidLength(value) &&\n\tisPasswordSingleLetter(value) &&\n\tisPasswordSingleUpperLetter(value) &&\n\tisPasswordSpecialCharacters(value) &&\n\tisPasswordLowercaseLetter(value);\n// /[a-zA-Z0-9!\"#$%&'()*+,-./:;<=>?@[\\\\\\]_`{|}~]*$/\n","import { useQuery } from '@tanstack/react-query';\nimport axios from 'axios';\n\nconst useGetMFAEnabled = () => {\n\tconst queryKey = ['useGetMFAEnabled'];\n\n\tconst queryFn = async () => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '/user/tfa/status',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.status === 'ENABLED'\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\treturn useQuery({ queryKey, queryFn });\n};\n\nexport default useGetMFAEnabled;\n","import React from 'react';\nimport { Radio } from 'semantic-ui-react';\n\nimport authStore, { AuthStore } from '../../../../../../store/authStore';\n\nimport useGetMFAEnabled from '../../../../../../utils/queries/useGetMFAEnabled';\n\nconst MFAManagement = ({ setOpenSettings }: { setOpenSettings: (open: boolean) => void }) => {\n\tconst { isLoading, data: isMFAEnabled } = useGetMFAEnabled();\n\n\tconst setSetupMFA = authStore((store: AuthStore) => store.setSetupMFA);\n\n\tconst setDisableMFA = authStore((store: AuthStore) => store.setDisableMFA);\n\n\tconst toggleMFA = () => {\n\t\tif (isMFAEnabled) {\n\t\t\tsetDisableMFA(true);\n\t\t} else {\n\t\t\tsetSetupMFA(true);\n\t\t}\n\n\t\tsetOpenSettings(false);\n\t};\n\n\tif (isLoading) return null;\n\treturn ;\n\n};\n\nexport default MFAManagement;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { DropdownProps } from 'semantic-ui-react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../../contexts/AppContext';\nimport {\n\tisPasswordValidLength,\n\tisPasswordLowercaseLetter,\n\tisPasswordSpecialCharacters,\n\tisPasswordSingleUpperLetter,\n\tisPasswordSingleDigit,\n} from '../../../../../../utils/functions/passwordValidation';\n\nimport WtrDropdown from '../../../../../components/WtrDropdown/WtrDropdown';\nimport { getInactivityLogoutOptions } from '../../../Settings/settingsOptions';\nimport { useFillContextsFromPreferences } from '../../../../../../utils/hooks/preferences/useFillContextsFromPreferences';\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\n\nimport MFAManagement from './MFAManagement';\nimport styles from './SettingsModule.module.scss';\nimport LangSelect from '../../../../../components/LangSelect/LangSelect';\nimport useGetMFAEnabled from '../../../../../../utils/queries/useGetMFAEnabled';\n\ninterface paswordValidations {\n\tvalidSatisfied: boolean;\n\tlowercaseSatisfied: boolean;\n\tuppercaseSatisfied: boolean;\n\tdigitSatisfied: boolean;\n\tspecialSatisfied: boolean;\n}\ninterface securitySettingsProps {\n\thandleUpdatePasswordSettings: (values: Record) => void;\n\tsetDisabled: (value: boolean) => void;\n\thandleCloseModal: (value: boolean) => void;\n\tsetOpenSettings: (value: boolean) => void;\n\tisMFAEnabled: boolean;\n}\n\nconst SecuritySettings: React.FC = ({\n\thandleCloseModal,\n\tsetDisabled,\n\tsetOpenSettings,\n\thandleUpdatePasswordSettings,\n\tisMFAEnabled,\n}) => {\n\tconst appContext = useContext(AppContext);\n\t// const { isLoading, data: isMFAEnabled } = useGetMFAEnabled();\n\n\tconst { t } = useTranslation();\n\n\tconst [invalid, setInvalid] = useState(false);\n\tconst [dontMatch, setDontMatch] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(false);\n\tconst [inactivityLogout, setInactivityLogout] = useState(\n\t\tappContext.userPreferences!.user_prefs.platform.inactivity.toString() || ''\n\t);\n\tconst [showPasswordPopup, setShowPasswordPopup] = useState(false);\n\tconst [currentPassword, setCurrentPassword] = useState('');\n\tconst [newPassword, setNewPassword] = useState('');\n\tconst [confirmPassword, setConfirmPassword] = useState('');\n\tconst [passwordValidations, setPasswordValidations] = useState({\n\t\tvalidSatisfied: false,\n\t\tlowercaseSatisfied: false,\n\t\tuppercaseSatisfied: false,\n\t\tdigitSatisfied: false,\n\t\tspecialSatisfied: false,\n\t});\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\n\tconst isNewPasswordValid = (value: string) => {\n\t\tvalue !== '' &&\n\t\t\tsetPasswordValidations({\n\t\t\t\t...passwordValidations,\n\t\t\t\tvalidSatisfied: isPasswordValidLength(value),\n\t\t\t\tlowercaseSatisfied: isPasswordLowercaseLetter(value),\n\t\t\t\tuppercaseSatisfied: isPasswordSingleUpperLetter(value),\n\t\t\t\tdigitSatisfied: isPasswordSingleDigit(value),\n\t\t\t\tspecialSatisfied: isPasswordSpecialCharacters(value),\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (confirmPassword === newPassword && newPassword !== '' && confirmPassword !== '') {\n\t\t\tsetDontMatch(false);\n\n\t\t\tif (\n\t\t\t\t!passwordValidations.validSatisfied ||\n\t\t\t\t!passwordValidations.lowercaseSatisfied ||\n\t\t\t\t!passwordValidations.uppercaseSatisfied ||\n\t\t\t\t!passwordValidations.digitSatisfied ||\n\t\t\t\t!passwordValidations.specialSatisfied\n\t\t\t) {\n\t\t\t\tsetErrorMessage(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!passwordValidations.validSatisfied &&\n\t\t\t\t!passwordValidations.lowercaseSatisfied &&\n\t\t\t\t!passwordValidations.uppercaseSatisfied &&\n\t\t\t\t!passwordValidations.digitSatisfied &&\n\t\t\t\t!passwordValidations.specialSatisfied\n\t\t\t) {\n\t\t\t\tsetInvalid(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tpasswordValidations.validSatisfied &&\n\t\t\t\tpasswordValidations.lowercaseSatisfied &&\n\t\t\t\tpasswordValidations.uppercaseSatisfied &&\n\t\t\t\tpasswordValidations.digitSatisfied &&\n\t\t\t\tpasswordValidations.specialSatisfied &&\n\t\t\t\tconfirmPassword === newPassword\n\t\t\t) {\n\t\t\t\tsetDontMatch(false);\n\t\t\t\tsetInvalid(false);\n\t\t\t\tsetErrorMessage(false);\n\t\t\t\tsetDisabled(false);\n\n\t\t\t\thandleUpdatePasswordSettings({\n\t\t\t\t\tcurrentPassword: currentPassword,\n\t\t\t\t\tnewPassword: newPassword,\n\t\t\t\t\tconfirmPassword: confirmPassword,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (confirmPassword !== newPassword) {\n\t\t\tsetDontMatch(true);\n\t\t}\n\n\t\thandleUpdatePasswordSettings({\n\t\t\tcurrentPassword: '',\n\t\t\tnewPassword: '',\n\t\t\tconfirmPassword: '',\n\t\t});\n\t}, [newPassword, currentPassword, confirmPassword]);\n\n\tconst handleInactivityLogout = async (_event: React.SyntheticEvent, { value }: DropdownProps) => {\n\t\tconst intactivityValue = parseInt(`${value}`);\n\t\tif (!isNaN(intactivityValue) && intactivityValue > 0) {\n\t\t\tappContext.userPreferences!.user_prefs.platform.inactivity = intactivityValue;\n\n\t\t\tawait savePreferences();\n\t\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t\t}\n\t};\n\n\tconst findDefaultInactivity = (value: string) => {\n\t\tconst defaultValue = getInactivityLogoutOptions(t).find((inactivityLogout) => inactivityLogout.value === value);\n\t\treturn defaultValue?.value || '';\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:SETTINGS_SECURITY')}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:TWO_FACTOR_AUTHENTICATION')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:INACTIVITY_LOGOUT')}
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SecuritySettings;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Radio } from 'semantic-ui-react';\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport AppContext from '../../../../../../contexts/AppContext';\n\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../pages/TradersGym/TradersGymContext';\n\nimport WtrSlider from '../../../../../../shared/WtrSlider/WtrSlider';\nimport usePlayNotificationSound from '../../../../../../utils/hooks/usePlayNotificationSound';\n\nimport tradingAccountStore from '../../../../../../store/tradingAccountStore';\n\nimport styles from './SettingsModule.module.scss';\nimport WtrToggle from '../../../../../../shared/WtrToggle/WtrToggle';\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\nimport { Resolver } from '../../../../../../utils/functions/Ioc';\nimport RfpGateway from '../../../../../../gateways/RfpGateway/RfpGateway';\nimport { useFillContextsFromPreferences } from '../../../../../../utils/hooks/preferences/useFillContextsFromPreferences';\nimport { QUANTITY_TYPE, QuantityType } from '../../../../../../utils/functions/enums';\nimport Button from '../../../../../../shared/Button';\n\ninterface tradingSettingsProps {\n\tsetSettings: (settings: any) => void;\n\thandleCloseModal: (settings: any) => void;\n\tsetShowInfoModalBackground: (settings: any) => void;\n\tshowInfoModalBackground: boolean;\n\tsettings: any;\n}\n\nconst TradingSettings: React.FC = ({\n\tsettings,\n\tsetSettings,\n\thandleCloseModal,\n\tsetShowInfoModalBackground,\n\tshowInfoModalBackground,\n}) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst playSound = usePlayNotificationSound();\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext } = gymContext;\n\tconst isTradersGymActive = tradersGymContext.isActive;\n\tconst isArabic = appContext.isArabic;\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst isOneClickTradingActive = tradingAccountStore.use.isOneClickTradingActive();\n\n\tconst [volumeScale, setVolumeScale] = useState(\n\t\tsettings.notificationSoundVolume || dashboardContext.notificationSoundVolume\n\t);\n\tconst [soundMuted, setSoundMuted] = useState(\n\t\tsettings.notificationSoundMuted === undefined\n\t\t\t? dashboardContext.notificationSoundMuted\n\t\t\t: settings.notificationSoundMuted\n\t);\n\tconst oneClickTrading = dashboardContext.oneClickTrading;\n\tconst divRefArrow = useRef(null);\n\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (divRefArrow.current && !divRefArrow.current.contains(event.target as Node)) {\n\t\t\t\tsetShowInfoModalBackground(false);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('mousedown', handleClickOutside);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', handleClickOutside);\n\t\t};\n\t}, []);\n\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\tconst accountType = dashboardContext.accountType;\n\tconst qunatityTypeButton = appContext.userPreferences!.user_prefs.trading.settings[accountType]!._quantityType;\n\n\tconst handleQuantityTypeChange = (quantityType: string) => {\n\t\tconst RFPConnection = Resolver.resolve(RfpGateway);\n\t\tconst tradingAccount = dashboardContext.tradingAccount;\n\t\tlet updatedQuantityType = 'Amount';\n\n\t\tif (appContext.isJapanAccount) {\n\t\t\tupdatedQuantityType = 'Amount';\n\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._quantityType = 'Amount';\n\t\t} else if (quantityType === 'Amount') {\n\t\t\tdashboardContext.quantityType = 'Amount';\n\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._quantityType = 'Amount';\n\t\t\tupdatedQuantityType = 'Amount';\n\t\t\tdashboardContext.quantityType = 'Amount';\n\t\t} else if (quantityType === 'Lots') {\n\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._quantityType = 'Lots';\n\t\t\tupdatedQuantityType = 'Lots';\n\t\t\tdashboardContext.quantityType = 'Lots';\n\t\t} else {\n\t\t}\n\n\t\tif (tradingAccount.length > 0) {\n\t\t\tlet updatedQuantityType: number;\n\t\t\tif (appContext.isJapanAccount || quantityType === 'Amount') {\n\t\t\t\tupdatedQuantityType = QuantityType.Amount;\n\t\t\t} else {\n\t\t\t\tupdatedQuantityType = QuantityType.Lots;\n\t\t\t}\n\t\t\ttradingAccount.forEach((account) => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t// Skip gym accounts\n\t\t\t\t\tif (account.accountType === 'GYM') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tRFPConnection.updateQuantityType(account.id, updatedQuantityType);\n\t\t\t\t}, 1000);\n\t\t\t});\n\t\t}\n\t\tsavePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t};\n\n\tconst handleOneClickTradingChange = () => {\n\t\tconst updatedSettings = {\n\t\t\t...settings,\n\t\t\toneClickTrading: !settings.oneClickTrading,\n\t\t};\n\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._mode = updatedSettings.oneClickTrading\n\t\t\t? '1-Click'\n\t\t\t: 'Regular';\n\n\t\tsavePreferences();\n\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\n\t\tsetSettings(updatedSettings);\n\t\tsetShowInfoModalBackground(false);\n\t};\n\tconst handleTradeFromChart = () => {\n\t\tconst newStateTradeFromChart = !settings.tradeFromChartEnabled;\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._tradeFromChartEnabled =\n\t\t\tnewStateTradeFromChart;\n\n\t\tconst updatedSettings = {\n\t\t\t...settings,\n\t\t\ttradeFromChartEnabled: newStateTradeFromChart,\n\t\t};\n\n\t\tdashboardContext.tradeFromChartEnabled = newStateTradeFromChart;\n\n\t\tsavePreferences();\n\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\n\t\tsetSettings(updatedSettings);\n\t};\n\n\tconst handleSliderAfterChange = (value: number) => {\n\t\tconst isMuted = value > 0 ? false : true;\n\t\tsetSoundMuted(isMuted);\n\t\tsetVolumeScale(value);\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundVolume = value;\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundMuted = isMuted;\n\t\tsetSettings({ ...settings, notificationSoundVolume: value, notificationSoundMuted: isMuted });\n\t\tplaySound(isMuted, value);\n\n\t\tsavePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t};\n\n\tconst handleSliderChange = (value: number) => {\n\t\tconst isMuted = value > 0 ? false : true;\n\t\tsetSoundMuted(isMuted);\n\t\tsetVolumeScale(value);\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundVolume = value;\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundMuted = isMuted;\n\n\t\tsavePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t};\n\n\tconst handleChangeMute = () => {\n\t\tconst newMuted = !soundMuted;\n\t\tsetSoundMuted(newMuted);\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundMuted = newMuted;\n\n\t\tsavePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\n\t\tplaySound(newMuted, volumeScale);\n\t};\n\n\tconst showConfirmModal = () => {\n\t\tif (settings.oneClickTrading) {\n\t\t\thandleOneClickTradingChange();\n\t\t} else {\n\t\t\tsetShowInfoModalBackground(true);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t{showInfoModalBackground && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('en:ONE_CLICK_TRADING_CONFIG_ACTIVE')}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetShowInfoModalBackground(false);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\t\t\tisFullWidth={true}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:TRADING')}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{!appContext.isJapanAccount && !isSpreadBettingAccount && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
{t('en:QUANTITY_TYPE')}
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t handleQuantityTypeChange('Amount')}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t('en:QT_AMOUNT')}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t handleQuantityTypeChange('Lots')}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\tstyles.quantityButton,\n\t\t\t\t\t\t\t\t\t\tqunatityTypeButton === 'Lots' ? styles.quantityButtonSelected : ''\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t('en:QT_LOTS')}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:ONE_CLICK_TRADING')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:CHARTIQ_CHART_TRADE')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:NOTIFICATION_SOUND_VOLUME')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
handleChangeMute()}>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default TradingSettings;\n","import React from 'react';\nimport { getAccountIconOptions } from '../../../Settings/settingsOptions';\nimport authStore from '../../../../../../store/authStore';\n\nconst images: {\n\t[avatar: string]: {\n\t\t[key: string]: string;\n\t};\n} = {\n\tavatars: {\n\t\tavatar1: '/avatars/1.svg',\n\t\tavatar2: '/avatars/2.svg',\n\t},\n};\n\nconst AvatarIcons: React.FC<{ avatarPath: string }> = ({ avatarPath }) => {\n\tconst accountAvatar = authStore.use.accountAvatar();\n\n\tconst findImage = () => {\n\t\tconst currentImage = getAccountIconOptions().find((image) => image.value === accountAvatar);\n\n\t\tif (currentImage) {\n\t\t\treturn currentImage.image.src;\n\t\t}\n\n\t\treturn getAccountIconOptions()[0].image.src;\n\t};\n\treturn \"Avatar\";\n};\n\nexport default AvatarIcons;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\nconst useGetPhoneCodesAndFlags = () => {\n\tconst mutationFn = async () => {\n\t\tconst response = await axios({\n\t\t\turl: '',\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t},\n\t\t\tdata: {\n\t\t\t\tpayload: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmodule: 'Utility',\n\t\t\t\t\t\taction: 'getCountries',\n\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\tshowUnused: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\t\treturn response.data.payload[0];\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useGetPhoneCodesAndFlags'],\n\t\tmutationFn,\n\t});\n};\n\nexport default useGetPhoneCodesAndFlags;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { getAccountIconOptions } from '../../../Settings/settingsOptions';\n\nimport authStore, { UserPhoneNumbersProps, UserProfile } from '../../../../../../store/authStore';\n\nimport AppContext from '../../../../../../contexts/AppContext';\n\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\n\nimport { useFillContextsFromPreferences } from '../../../../../../utils/hooks/preferences/useFillContextsFromPreferences';\n\nimport PhoneCodeDropdown from './PhoneCodeDropdown/PhoneCodeDropdown';\n\nimport AvatarIcons from './AvatarIcons';\n\nimport styles from './SettingsModule.module.scss';\nimport useUpdateUserProfile from '../../../../../../utils/queries/useUpdateUserProfile';\nimport useUserProfile from '../../../../../../utils/queries/useUserProfile';\nimport { Resolver } from '../../../../../../utils/functions/Ioc';\nimport RfpGatewayContext from '../../../../../../contexts/RfpGatewayContext';\nimport RfpGateway from '../../../../../../gateways/RfpGateway/RfpGateway';\nimport { RFP } from '../../../../../../gateways/RfpGateway/rfpConstants';\nimport useGetPhoneCodesAndFlags from '../../../../../../utils/mutations/useGetPhoneCodesAndFlags';\n\ninterface platformSettingsProps {\n\tsettings: any;\n\tsetOpenSettings: (v: boolean) => void;\n\thandleCloseModal: (v: boolean) => void;\n}\n\nenum HandleChangeTypes {\n\tAccountAvatar = 'accountAvatar',\n\tPhoneNumber = 'phoneNumber',\n\tSecondPhoneNumber = 'SecondPhoneNumber',\n}\n\ninterface ChangePhoneState extends Partial {\n\tphone: string;\n\tphoneCountryCode: number;\n\tmobile: string;\n\tmobileCountryCode: number;\n\tpage?: string;\n}\n\ntype WithdrawCryptoState = {\n\tquery: string;\n\tamount: string;\n\tcryptoId: number;\n\tprocessorName: string;\n\taddress: string;\n};\n\nconst ProfileSettings: React.FC = ({ settings, setOpenSettings, handleCloseModal }) => {\n\tconst { t } = useTranslation();\n\tconst userProfile = authStore.use.userProfile();\n\t// const setPhoneNumbers = authStore.use.setPhoneNumbers();\n\t// const userPhoneNumbers = authStore.use.userPhoneNumbers();\n\tconst dropdownOptionsRef = useRef(null);\n\tconst [openImgModal, setOpenImgModal] = useState(false);\n\tconst [imgModal, setImgModal] = useState(0);\n\tconst setAccountAvatar = authStore.use.setAccountAvatar();\n\tconst accountAvatar = authStore.use.accountAvatar();\n\tconst setUserProfile = authStore.use.setUserProfile();\n\tconst isDemoMode = authStore.use.isDemoMode();\n\tconst [errorMessage, setErrorMessage] = useState(false);\n\tconst [changeInPhone, setChangeInPhone] = useState(false);\n\tconst [changeInPhoneSecond, setChangeInPhoneSecond] = useState(false);\n\tconst [isLoadingSaveData, setIsLoadingSaveData] = useState(false);\n\tconst restOfTheWorldCode = 'XX';\n\tconst rfpGatewayConnection = Resolver.resolve(RfpGateway);\n\tconst appContext = useContext(AppContext);\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\tconst avatarFromPrefs = appContext.userPreferences!.user_prefs.platform.accountAvatar;\n\n\t// const [phoneNumber, setPhoneNumber] = useState('');\n\t// const [phoneCode, setPhoneCode] = useState('');\n\t// const [phoneNumberSecond, setPhoneNumberSecond] = useState('');\n\t// const [phoneCodeSecond, setPhoneCodeSecond] = useState('');\n\n\t// const { mutate: updateProfile } = useUpdateUserProfile();\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\tconst {\n\t\tdata,\n\t\tisLoading: isLoadingFlagsAndCodes,\n\t\tisError,\n\t\tmutate: fetchPhoneCodesAndFlags,\n\t} = useGetPhoneCodesAndFlags();\n\n\t// const handleSavePhoneCode = (phoneCodeType: string, phoneCode: string) => {\n\t// \t// Create a new object based on the current userPhoneNumbers state\n\t// \tconst updatedPhoneNumbers: UserPhoneNumbersProps = {\n\t// \t\t...userPhoneNumbers,\n\t// \t\tphoneCountryCode: phoneCodeType === 'phoneCode' ? phoneCode : userPhoneNumbers.phoneCountryCode,\n\t// \t\tmobileCountryCode: phoneCodeType === 'phoneCodeSecond' ? phoneCode : userPhoneNumbers.mobileCountryCode,\n\t// \t};\n\n\t// \tsetPhoneNumbers(updatedPhoneNumbers);\n\n\t// \thandleUploadPhoneNumber(updatedPhoneNumbers, true);\n\t// };\n\n\t// useEffect(() => {\n\t// \tsetPhoneNumber(userPhoneNumbers.phone || userProfile?.phone?.phone || '');\n\t// \tsetPhoneCode(userPhoneNumbers.phoneCountryCode || userProfile?.phone?.phoneCountryCode || '');\n\t// \tsetPhoneNumberSecond(userPhoneNumbers.mobile || userProfile?.phone?.mobile || '');\n\t// \tsetPhoneCodeSecond(userPhoneNumbers.mobileCountryCode || userProfile?.phone?.mobileCountryCode || '');\n\t// }, [userPhoneNumbers, userProfile.phone]);\n\n\tuseEffect(() => {\n\t\tfetchPhoneCodesAndFlags();\n\t}, [fetchPhoneCodesAndFlags]);\n\n\tconst handleUpdateSettings = async (type: string, value: any) => {\n\t\tif (type === 'accountAvatar') {\n\t\t\tsetImgModal(value);\n\t\t\tsetAccountAvatar(value);\n\t\t\tsetOpenImgModal(false);\n\n\t\t\tappContext.userPreferences!.user_prefs.platform.accountAvatar = value;\n\n\t\t\tawait savePreferences();\n\t\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t\t}\n\n\t\tif (type === HandleChangeTypes.PhoneNumber) {\n\t\t\tconst phoneNumberState: ChangePhoneState = {\n\t\t\t\tphone: value.phone.number || '',\n\t\t\t\tphoneCountryCode: value.phone.code || 0,\n\t\t\t\tmobile: value.mobile.number || '',\n\t\t\t\tmobileCountryCode: value.mobile.code || 0,\n\t\t\t};\n\t\t}\n\t};\n\n\tconst onClickOpenImgModal = () => {\n\t\tsetOpenImgModal(!openImgModal);\n\t};\n\n\tconst findImage = () => {\n\t\tconst currentImage = getAccountIconOptions().find((image) => image.value === accountAvatar);\n\n\t\tif (currentImage) {\n\t\t\treturn currentImage.image.src;\n\t\t}\n\n\t\treturn getAccountIconOptions()[0].image.src;\n\t};\n\n\t// const handleUploadPhoneNumber = (updatedNumbers: any, phoneCodes?: boolean, dropdownId?: string) => {\n\t// \tsetIsLoadingSaveData(true);\n\n\t// \tlet phone = {};\n\t// \tif (phoneCodes) {\n\t// \t\tphone = {\n\t// \t\t\tphone: updatedNumbers.phone !== '' ? updatedNumbers.phone : phoneNumber,\n\t// \t\t\tphoneCountryCode: updatedNumbers.phoneCountryCode !== '' ? updatedNumbers.phoneCountryCode : phoneCode,\n\t// \t\t\tmobile: updatedNumbers.mobile !== '' ? updatedNumbers.mobile : phoneNumberSecond,\n\t// \t\t\tmobileCountryCode: updatedNumbers.mobileCountryCode !== '' ? updatedNumbers.mobileCountryCode : phoneCodeSecond,\n\t// \t\t};\n\t// \t} else {\n\t// \t\tphone = {\n\t// \t\t\tphone: phoneNumber,\n\t// \t\t\tphoneCountryCode: phoneCode,\n\t// \t\t\tmobile: phoneNumberSecond,\n\t// \t\t\tmobileCountryCode: phoneCodeSecond,\n\t// \t\t};\n\t// \t}\n\n\t// \tconsole.log('phone', phone);\n\n\t// \tupdateProfile(\n\t// \t\t{\n\t// \t\t\tid: userProfile.id,\n\t// \t\t\tfirstName: userProfile.firstName,\n\t// \t\t\tlastName: userProfile.lastName,\n\t// \t\t\tfullName: userProfile.fullName,\n\t// \t\t\temail: userProfile.email,\n\t// \t\t\tcif: userProfile.cif,\n\t// \t\t\ttitle: userProfile.title,\n\t// \t\t\tbrand: userProfile.brand,\n\t// \t\t\tdateOfBirth: userProfile.dateOfBirth,\n\t// \t\t\temploymentStatus: userProfile.employmentStatus,\n\t// \t\t\tcountry: {\n\t// \t\t\t\tid: userProfile.country.id,\n\t// \t\t\t\tname: userProfile.name,\n\t// \t\t\t\tcode2: userProfile.country.code2,\n\t// \t\t\t\tcode3: userProfile.countrycode3,\n\t// \t\t\t\tphoneCode: phoneCode,\n\t// \t\t\t\torganization: {\n\t// \t\t\t\t\tid: userProfile.organization.id,\n\t// \t\t\t\t\tname: userProfile.organization.name,\n\t// \t\t\t\t\tguid: userProfile.organization.guid,\n\t// \t\t\t\t\tdefaultLeverage: userProfile.organization.defaultLeverage,\n\t// \t\t\t\t},\n\t// \t\t\t\tlegacyOrganization: {\n\t// \t\t\t\t\tid: userProfile.country.legacyOrganization.id,\n\t// \t\t\t\t\tname: userProfile.country.legacyOrganization.name,\n\t// \t\t\t\t\tguid: userProfile.country.legacyOrganization.guid,\n\t// \t\t\t\t\tdefaultLeverage: userProfile.country.legacyOrganization.defaultLeverage,\n\t// \t\t\t\t},\n\t// \t\t\t\tcTraderCountryId: userProfile.country.cTraderCountryId,\n\t// \t\t\t\tused: userProfile.country.used,\n\t// \t\t\t\teuropean: userProfile.country.european,\n\t// \t\t\t\tisRequireEnglishNames: userProfile.country.isRequireEnglishNames,\n\t// \t\t\t},\n\n\t// \t\t\taddress: userProfile.address,\n\t// \t\t\tphone: {\n\t// \t\t\t\t...phone,\n\t// \t\t\t},\n\t// \t\t\tclassification: userProfile.classification,\n\t// \t\t\tpartnerStatus: userProfile.partnerStatus,\n\t// \t\t\tthinkTraderEULA: userProfile.thinkTraderEULA,\n\t// \t\t\tapproved: userProfile.approved,\n\t// \t\t\tidNumber: userProfile.idNumber,\n\t// \t\t\tnationality: {\n\t// \t\t\t\tid: userProfile.nationality.id,\n\t// \t\t\t\tname: userProfile.nationality.name,\n\t// \t\t\t\tcode2: userProfile.nationality.code2,\n\t// \t\t\t\tcode3: userProfile.nationality.code3,\n\t// \t\t\t\tphoneCode: phoneCode,\n\t// \t\t\t\torganization: {\n\t// \t\t\t\t\tid: userProfile.nationality.organization.id,\n\t// \t\t\t\t\tname: userProfile.nationality.organization.name,\n\t// \t\t\t\t\tguid: userProfile.nationality.organization.guid,\n\t// \t\t\t\t\tdefaultLeverage: userProfile.nationality.organization.defaultLeverage,\n\t// \t\t\t\t},\n\t// \t\t\t},\n\n\t// \t\t\tvisitorId: userProfile.visitorId,\n\t// \t\t\tmaxDemoAccounts: userProfile.maxDemoAccounts,\n\t// \t\t\ttwoFAenabled: userProfile.twoFAenabled,\n\t// \t\t\tadditionalAttributes: userProfile.additionalAttributes,\n\t// \t\t\tadditionalTaxInfo: userProfile.additionalTaxInfo,\n\t// \t\t\tphoneVerified: userProfile.phoneVerified,\n\t// \t\t\tisADemoAccount: isDemoMode,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\tonSuccess: async (data: any) => {\n\t// \t\t\t\tsetIsLoadingSaveData(false);\n\n\t// \t\t\t\tif (data.data?.payload[0].status !== 'OK') {\n\t// \t\t\t\t\tsetErrorMessage(true);\n\t// \t\t\t\t} else {\n\t// \t\t\t\t\tsetChangeInPhone(false);\n\t// \t\t\t\t\tsetChangeInPhoneSecond(false);\n\t// \t\t\t\t\tif (phoneCodes) {\n\t// \t\t\t\t\t\tsetPhoneNumbers({\n\t// \t\t\t\t\t\t\tphone: updatedNumbers.phone !== '' ? updatedNumbers.phone : phoneNumber,\n\t// \t\t\t\t\t\t\tphoneCountryCode: updatedNumbers.phoneCountryCode !== '' ? updatedNumbers.phoneCountryCode : phoneCode,\n\t// \t\t\t\t\t\t\tmobile: updatedNumbers.mobile !== '' ? updatedNumbers.mobile : phoneNumberSecond,\n\t// \t\t\t\t\t\t\tmobileCountryCode:\n\t// \t\t\t\t\t\t\t\tupdatedNumbers.mobileCountryCode !== '' ? updatedNumbers.mobileCountryCode : phoneCodeSecond,\n\t// \t\t\t\t\t\t});\n\t// \t\t\t\t\t} else {\n\t// \t\t\t\t\t\tsetPhoneNumbers({\n\t// \t\t\t\t\t\t\tphone: phoneNumber,\n\t// \t\t\t\t\t\t\tphoneCountryCode: phoneCode,\n\t// \t\t\t\t\t\t\tmobile: phoneNumberSecond,\n\t// \t\t\t\t\t\t\tmobileCountryCode: phoneCodeSecond,\n\t// \t\t\t\t\t\t});\n\t// \t\t\t\t\t}\n\t// \t\t\t\t}\n\t// \t\t\t},\n\t// \t\t\tonError: (err) => {\n\t// \t\t\t\tsetIsLoadingSaveData(false);\n\n\t// \t\t\t\tsetErrorMessage(true);\n\t// \t\t\t},\n\t// \t\t}\n\t// \t);\n\t// };\n\n\t// const handleInputChangePhoneNumber = (event: React.ChangeEvent) => {\n\t// \tsetErrorMessage(false);\n\t// \tsetChangeInPhone(true);\n\t// \tlet { value } = event.target;\n\t// \tvalue = value.replace(/\\D/g, '');\n\t// \tsetPhoneNumber(value.toString());\n\t// };\n\n\t// const handleInputChangePhoneNumberSecond = (event: React.ChangeEvent) => {\n\t// \tsetErrorMessage(false);\n\t// \tsetChangeInPhoneSecond(true);\n\t// \tlet { value } = event.target;\n\t// \tvalue = value.replace(/\\D/g, '');\n\t// \tsetPhoneNumberSecond(value.toString());\n\t// };\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t
{t('en:PERSONAL_DETAILS')}
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('wtr:SETTINGS_PROFILE_PICTURE')}
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{avatarFromPrefs ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{openImgModal && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{getAccountIconOptions().map((icon, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleUpdateSettings(HandleChangeTypes.AccountAvatar, icon.value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:NAME')}
\n\t\t\t\t\t
{userProfile.fullName}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:Email')}
\n\t\t\t\t\t
{userProfile.email}
\n\t\t\t\t
\n\t\t\t\t{/* \n\t\t\t\t\t
{t('en:PHONE')}
\n\t\t\t\t\t{userProfile?.phone && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{errorMessage && changeInPhone && (\n\t\t\t\t\t\t\t\t
{t('en:SETTINGS_INVALID_PHONE_NUMBER')}
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t
*/}\n\t\t\t\t{/* \n\t\t\t\t\t
{t('en:PHONE')} 2
\n\t\t\t\t\t{userProfile?.phone && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{errorMessage && changeInPhoneSecond && (\n\t\t\t\t\t\t\t\t
{t('en:SETTINGS_INVALID_PHONE_NUMBER')}
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t */}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ProfileSettings;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\ninterface ChangePasswordParameters {\n\tcurrentPassword: string;\n\tnewPassword: string;\n}\n\nconst useChangePassword = () => {\n\tconst mutationFn = async (parameters: ChangePasswordParameters) => {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'authentication',\n\t\t\t\t\t\t\taction: 'change_password',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\tpassword: parameters.currentPassword,\n\t\t\t\t\t\t\t\tnew_password: parameters.newPassword\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useChangePassword'],\n\t\tmutationFn,\n\t});\n};\n\nexport default useChangePassword;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useEffect, useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport useShortTranslation from '../../../../../../utils/hooks/useShortTranslation';\nimport Button from '../../../../../../shared/Button';\n\nimport {\n\tisPasswordValidLength,\n\tisPasswordLowercaseLetter,\n\tisPasswordSpecialCharacters,\n\tisPasswordSingleUpperLetter,\n\tisPasswordSingleDigit,\n} from '../../../../../../utils/functions/passwordValidation';\n\nimport useChangePassword from '../../../../../../utils/mutations/useChangePassword';\n\nimport styles from './SettingsModule.module.scss';\n\ninterface passwordValidations {\n\tvalidSatisfied: boolean;\n\tlowercaseSatisfied: boolean;\n\tuppercaseSatisfied: boolean;\n\tdigitSatisfied: boolean;\n\tspecialSatisfied: boolean;\n}\n\ninterface securitySettingsProps {\n\thandleUpdatePasswordSettings: (values: Record) => void;\n\tsetDisabled: (value: boolean) => void;\n\thandleCloseModal: (value: boolean) => void;\n}\n\nconst PasswordSettings: React.FC = ({\n\thandleCloseModal,\n\tsetDisabled,\n\thandleUpdatePasswordSettings,\n}) => {\n\tconst { mutate: changePassword } = useChangePassword();\n\n\tconst tt = useShortTranslation('wtr:');\n\n\tconst [inputTypeCurrentPassword, setInputTypeCurrentPassword] = useState('password');\n\tconst [inputTypeNewPassword, setInputTypeNewPassword] = useState('password');\n\tconst [uppercaseCheck, setUppercaseCheck] = useState(false);\n\tconst [lowercaseCheck, setLowercaseCheck] = useState(false);\n\tconst [numberCheck, setNumberCheck] = useState(false);\n\tconst [specialCheck, setSpecialCheck] = useState(false);\n\tconst [passwordLenghtCheck, setPasswordLenghtCheck] = useState(false);\n\tconst [isDisabled, setIsDisabled] = useState(true);\n\n\tconst [invalid, setInvalid] = useState(false);\n\tconst [dontMatch, setDontMatch] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(false);\n\tconst [showPasswordPopup, setShowPasswordPopup] = useState(false);\n\tconst [currentPassword, setCurrentPassword] = useState('');\n\tconst [newPassword, setNewPassword] = useState('');\n\n\tconst [passwordValidations, setPasswordValidations] = useState({\n\t\tvalidSatisfied: false,\n\t\tlowercaseSatisfied: false,\n\t\tuppercaseSatisfied: false,\n\t\tdigitSatisfied: false,\n\t\tspecialSatisfied: false,\n\t});\n\tconst { t } = useTranslation();\n\n\tconst showCurrentPassword = () => {\n\t\tif (inputTypeCurrentPassword === 'password') {\n\t\t\tsetInputTypeCurrentPassword('text');\n\t\t} else {\n\t\t\tsetInputTypeCurrentPassword('password');\n\t\t}\n\t};\n\tconst showNewPassword = () => {\n\t\tif (inputTypeNewPassword === 'password') {\n\t\t\tsetInputTypeNewPassword('text');\n\t\t} else {\n\t\t\tsetInputTypeNewPassword('password');\n\t\t}\n\t};\n\n\tconst isNewPasswordValid = (value: string) => {\n\t\tif (value !== '') {\n\t\t\tconst isLengthValid = isPasswordValidLength(value);\n\t\t\tconst isLowercaseValid = isPasswordLowercaseLetter(value);\n\t\t\tconst isUppercaseValid = isPasswordSingleUpperLetter(value);\n\t\t\tconst isDigitValid = isPasswordSingleDigit(value);\n\t\t\tconst isSpecialCharValid = isPasswordSpecialCharacters(value);\n\n\t\t\tsetPasswordValidations({\n\t\t\t\tvalidSatisfied: isLengthValid,\n\t\t\t\tlowercaseSatisfied: isLowercaseValid,\n\t\t\t\tuppercaseSatisfied: isUppercaseValid,\n\t\t\t\tdigitSatisfied: isDigitValid,\n\t\t\t\tspecialSatisfied: isSpecialCharValid,\n\t\t\t});\n\n\t\t\tsetPasswordLenghtCheck(isLengthValid);\n\t\t\tsetLowercaseCheck(isLowercaseValid);\n\t\t\tsetUppercaseCheck(isUppercaseValid);\n\t\t\tsetNumberCheck(isDigitValid);\n\t\t\tsetSpecialCheck(isSpecialCharValid);\n\t\t}\n\t};\n\n\tconst handleChangeInput = (event: React.ChangeEvent, key: string) => {\n\t\tconst value = event.target.value;\n\n\t\tsetShowPasswordPopup(key === 'newPassword');\n\n\t\tif (key === 'newPassword' && event.target.value.length < 15) {\n\t\t\tsetNewPassword(value);\n\t\t\tisNewPasswordValid(value);\n\n\t\t\tif (newPassword.trim() !== '') {\n\t\t\t\tsetErrorMessage(false);\n\t\t\t} else {\n\t\t\t\tsetErrorMessage(false);\n\t\t\t}\n\t\t}\n\n\t\tswitch (key) {\n\t\t\tcase 'currentPassword':\n\t\t\t\tsetCurrentPassword(value);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (currentPassword.trim() !== '' || newPassword.trim() !== '') {\n\t\t\tsetDontMatch(false);\n\t\t\tsetIsDisabled(true);\n\t\t\tconst validationFailed =\n\t\t\t\t!passwordValidations.validSatisfied ||\n\t\t\t\t!passwordValidations.lowercaseSatisfied ||\n\t\t\t\t!passwordValidations.uppercaseSatisfied ||\n\t\t\t\t!passwordValidations.digitSatisfied ||\n\t\t\t\t!passwordValidations.specialSatisfied;\n\n\t\t\tconst validationSucceed =\n\t\t\t\tpasswordValidations.validSatisfied &&\n\t\t\t\tpasswordValidations.lowercaseSatisfied &&\n\t\t\t\tpasswordValidations.uppercaseSatisfied &&\n\t\t\t\tpasswordValidations.digitSatisfied &&\n\t\t\t\tpasswordValidations.specialSatisfied;\n\n\t\t\tif (validationFailed) {\n\t\t\t\tsetInvalid(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (validationSucceed && currentPassword.trim() !== '') {\n\t\t\t\tsetDontMatch(false);\n\t\t\t\tsetInvalid(false);\n\t\t\t\tsetErrorMessage(false);\n\t\t\t\tsetDisabled(false);\n\t\t\t\tsetIsDisabled(false);\n\n\t\t\t\thandleUpdatePasswordSettings({\n\t\t\t\t\tcurrentPassword: currentPassword,\n\t\t\t\t\tnewPassword: newPassword,\n\t\t\t\t\tconfirmPassword: newPassword,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\thandleUpdatePasswordSettings({\n\t\t\tcurrentPassword: '',\n\t\t\tnewPassword: '',\n\t\t});\n\t}, [newPassword, currentPassword]);\n\n\tconst handleUpdatePassword = () => {\n\t\tif (\n\t\t\t!passwordValidations.validSatisfied ||\n\t\t\t!passwordValidations.lowercaseSatisfied ||\n\t\t\t!passwordValidations.uppercaseSatisfied ||\n\t\t\t!passwordValidations.digitSatisfied ||\n\t\t\t!passwordValidations.specialSatisfied\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tchangePassword(\n\t\t\t{\n\t\t\t\tcurrentPassword: currentPassword,\n\t\t\t\tnewPassword: newPassword,\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: (result) => {\n\t\t\t\t\tif (result === 'FAIL') {\n\t\t\t\t\t\tsetErrorMessage(true);\n\t\t\t\t\t} else if (result === 'OK') {\n\t\t\t\t\t\tsetCurrentPassword('');\n\t\t\t\t\t\tsetNewPassword('');\n\t\t\t\t\t\tsetUppercaseCheck(false);\n\t\t\t\t\t\tsetLowercaseCheck(false);\n\t\t\t\t\t\tsetNumberCheck(false);\n\t\t\t\t\t\tsetSpecialCheck(false);\n\t\t\t\t\t\tsetPasswordLenghtCheck(false);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonError: (err) => {\n\t\t\t\t\tsetErrorMessage(true);\n\n\t\t\t\t\tconsole.debug('Error retrieving changePassword from TFBO gateway. Exception: ', err);\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('wtr:CHANGE_PASS')}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t handleChangeInput(event, 'currentPassword')}\n\t\t\t\t\t\t\tautoComplete=\"current-password\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{errorMessage &&
{tt('WTR_INVALID_PASSWORD')}
}\n\t\t\t\t\t
\n\t\t\t\t\t\t handleChangeInput(event, 'newPassword')}\n\t\t\t\t\t\t\tautoComplete=\"new-password\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('wtr:SETTINGS_UPPERCASE_LETTER')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('en:SETTINGS_LOWERCASE_LETTER')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('en:SETTINGS_NUMBER')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('en:SETTINGS_SPECIAL')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('en:SETTINGS_CHARACTERS_LENGTH')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t handleCloseModal(false)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t handleUpdatePassword()}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default PasswordSettings;\n","import React, { Dispatch, SetStateAction, useContext, useEffect, useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../../contexts/AppContext';\nimport Modal from '../../../../../../shared/Modal';\nimport { ChartTimezone } from '../../../../../../utils/functions/enums';\n\nimport authStore from '../../../../../../store/authStore';\n\nimport { getAccountIconOptions } from '../../../Settings/settingsOptions';\n\nimport { getActiveTier } from '../../../../../../utils/functions/subscriptionUtils';\n\nimport { tierIcons } from '../../../../../../setup/subscriptionsConfig';\n\nimport styles from '../../Header.module.scss';\n\nimport PlatformSettings from './PlatformSettings';\nimport SecuritySettings from './SecuritySettings';\nimport TradingSettings from './TradingSettings';\nimport AvatarIcons from './AvatarIcons';\n\nimport ProfileSettings from './ProfileSettings';\nimport PasswordSettings from './PasswordSettings';\nimport useGetMFAEnabled from '../../../../../../utils/queries/useGetMFAEnabled';\ninterface settingsModalProps {\n\topenSettings: boolean;\n\tsetOpenSettings: (openSettings: boolean) => void;\n\tsetResetIdleTimer: Dispatch>;\n}\n\ninterface passwordSettings {\n\tcurrentPassword: string;\n\tnewPassword: string;\n\tconfirmPassword: string;\n}\n\ninterface settings {\n\t// quantityType: 'Amount' | 'Lots';\n\ttradeFromChartEnabled: boolean;\n\toneClickTrading: boolean;\n\tnotificationSoundMuted: boolean;\n\tnotificationSoundVolume: number;\n\tlanguage: string;\n\ttheme: string;\n\ttimezone: string;\n\tinactivityLogout: number;\n\taccountAvatar?: number;\n}\n\ninterface tabs {\n\tplatformSettings: { name: string; icon: string };\n\ttradingSettings: { name: string; icon: string };\n\tpasswordSettings: { name: string; icon: string };\n\tsecuritySettings: { name: string; icon: string };\n\t// uploadDocuments: { name: string; icon: string };\n}\nconst TabsEnum = {\n\tprofileSettings: 'profileSettings',\n\tplatformSettings: 'platformSettings',\n\ttradingSettings: 'tradingSettings',\n\tpasswordSettings: 'passwordSettings',\n\tsecuritySettings: 'securitySettings',\n\t// uploadDocuments: 'uploadDocuments',\n} as const;\n\n// convert the UserPreferences object from the _fuzzy_ format stored in the BE\n// to something easy to use and back\nconst parseSettings = (preferences: any = {}): settings => ({\n\t// quantityType: preferences.trading.settings.cfd._quantityType.replace('mm', 'm'),\n\ttradeFromChartEnabled: preferences.trading.settings.cfd._tradeFromChartEnabled,\n\toneClickTrading: preferences.trading.settings.cfd._mode === '1-Click',\n\tnotificationSoundMuted: preferences.trading.settings.cfd._notificationSoundMuted,\n\tnotificationSoundVolume: preferences.trading.settings.cfd._notificationSoundVolume,\n\tlanguage: preferences.platform.lang._code,\n\ttheme: preferences.platform.theme._type,\n\t// for some reason we've not added a default value for the timezone, it's there now but we\n\t// should keep this for now; if no value is preset the dashboard uses Local - check fullContextFromPreferences\n\ttimezone: preferences.platform.timezone._name || ChartTimezone.Local,\n\tinactivityLogout: preferences.platform.inactivity,\n\taccountAvatar: preferences.platform.accountAvatar,\n});\n\nconst encodeSettings = (currentSettings: any, parsedSettings: any) => {\n\t// currentSettings.trading.settings.cfd._quantityType = parsedSettings.quantityType;\n\tcurrentSettings.trading.settings.cfd._tradeFromChartEnabled = parsedSettings.tradeFromChartEnabled;\n\tcurrentSettings.trading.settings.cfd._notificationSoundMuted = parsedSettings.notificationSoundMuted;\n\tcurrentSettings.trading.settings.cfd._notificationSoundVolume = parsedSettings.notificationSoundVolume;\n\tcurrentSettings.trading.settings.cfd._mode = parsedSettings.oneClickTrading ? '1-Click' : 'Regular';\n\tcurrentSettings.platform.lang._code = parsedSettings.language;\n\tcurrentSettings.platform.theme._type = parsedSettings.theme;\n\tcurrentSettings.platform.timezone._name = parsedSettings.timezone;\n\tcurrentSettings.platform.inactivity = parsedSettings.inactivityLogout;\n\tcurrentSettings.platform.accountAvatar = parsedSettings.accountAvatar;\n\n\treturn currentSettings;\n};\n\nconst SettingsModal: React.FC = ({ openSettings, setOpenSettings, setResetIdleTimer }) => {\n\tconst { t } = useTranslation();\n\tconst { isLoading, data: isMFAEnabled } = useGetMFAEnabled();\n\n\tconst appContext = useContext(AppContext);\n\tconst accountAvatar = authStore.use.accountAvatar();\n\tconst userProfile = authStore.use.userProfile();\n\tconst [fullName, setFullname] = useState('');\n\tconst [email, setEmail] = useState('');\n\tconst [showInfoModalBackground, setShowInfoModalBackground] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetFullname(userProfile?.fullName);\n\t\tsetEmail(userProfile?.email || '');\n\t}, [userProfile, showInfoModalBackground]);\n\n\tconst [disabled, setDisabled] = useState(true);\n\n\t// override stored language with the one from the login form\n\tconst initialSettings: settings = parseSettings(appContext.userPreferences!.user_prefs);\n\tinitialSettings.language = appContext.languageSettings;\n\n\tconst [settings, setSettings] = useState(initialSettings);\n\tconst [activeTab, setActiveTab] = useState(TabsEnum.profileSettings);\n\tconst [passwordSettings, setPasswordSettings] = useState({\n\t\tcurrentPassword: '',\n\t\tnewPassword: '',\n\t\tconfirmPassword: '',\n\t});\n\n\tconst handleUpdatePasswordSettings = (values: Record) => {\n\t\tsetPasswordSettings({ ...passwordSettings, ...values });\n\t};\n\n\tuseEffect(() => {\n\t\tfor (const item in initialSettings) {\n\t\t\tconst key = item as keyof typeof settings;\n\t\t\tif (settings[key] !== initialSettings[key]) {\n\t\t\t\tsetDisabled(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tsetDisabled(true);\n\t}, [settings, userProfile]);\n\n\tuseEffect(() => {\n\t\tfor (const item in initialSettings) {\n\t\t\tconst key = item as keyof typeof settings;\n\t\t\tif (settings[key] !== initialSettings[key]) {\n\t\t\t\tsetDisabled(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t// setDisabled(true);\n\t}, [settings]);\n\n\tconst handleCloseModal = () => {\n\t\tsetOpenSettings(false);\n\t\tappContext.openSettings = false;\n\t\tsetDisabled(true);\n\t};\n\n\tconst tabs: tabs = {\n\t\tplatformSettings: { name: t('wtr:PLATFORM'), icon: 'desktop' },\n\t\ttradingSettings: { name: t('wtr:WTR_TRADING'), icon: 'chart-candlestick' },\n\t\tpasswordSettings: { name: t('wtr:CHANGE_PASS'), icon: 'key' },\n\t\tsecuritySettings: { name: t('en:SETTINGS_SECURITY'), icon: 'shield-keyhole' },\n\t\t// uploadDocuments: { name: t('en:UPLOAD_DOCUMENTS_BUTTON_TYPE_TITLE'), icon: 'file-arrow-up' },\n\t};\n\tconst isLiveMode = authStore.use.isLiveMode();\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\tconst activeTier = isJapanAccount && isLiveMode && getActiveTier(appContext.subscriptionInfo);\n\n\tconst findImage = () => {\n\t\tconst currentImage = getAccountIconOptions().find((image) => image.value === accountAvatar);\n\n\t\tif (currentImage && !activeTier && accountAvatar !== 0) {\n\t\t\treturn currentImage.image.src;\n\t\t}\n\n\t\tif (activeTier && !accountAvatar) {\n\t\t\treturn tierIcons[activeTier.toLowerCase()];\n\t\t}\n\n\t\treturn '';\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetSettings(initialSettings);\n\t\t\t\t\t\t\t\t\t\tsetActiveTab(TabsEnum.profileSettings);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{findImage() ? (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
{fullName}
\n\t\t\t\t\t\t\t\t\t\t
{email}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{Object.entries(tabs).map(\n\t\t\t\t\t\t\t\t\t([tabName, tabDisplayText]: [string, { name: string; icon: any }]) =>\n\t\t\t\t\t\t\t\t\t\ttabDisplayText && (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSettings(initialSettings);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetActiveTab(tabName);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{activeTab === TabsEnum.profileSettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === TabsEnum.platformSettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === TabsEnum.tradingSettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === TabsEnum.passwordSettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === TabsEnum.securitySettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{/* {activeTab === TabsEnum.uploadDocuments && } */}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SettingsModal;\n","import React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport statusStore from '../../../../../store/accountStatusStore';\nimport useObservable from '../../../../../utils/hooks/useObservable';\nimport useForceRerender from '../../../../../utils/hooks/useForceRerender';\nimport authStore, { AuthStore } from '../../../../../store/authStore';\nimport { useSwitchToDemo, useSwitchToLive } from '../../../../../utils/hooks/system/useSwitchMode';\n\nimport styles from './AccountMenuPopupSection.module.scss';\n\ninterface SettingsOptionsProps {\n\tsetAccountPopupIsOpen: (a: boolean) => void;\n\tsetOpenSettings: (a: boolean) => void;\n\thandleTpRedirectReports: (a: string) => void;\n\thandleTpRedirectManageFunds: (a: string) => void;\n}\n\nconst SettingsOptions = ({\n\tsetAccountPopupIsOpen,\n\tsetOpenSettings,\n\thandleTpRedirectReports,\n\thandleTpRedirectManageFunds,\n}: SettingsOptionsProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst permissions = statusStore.use.permissions();\n\n\tconst reports = permissions?.reports;\n\tconst manageFunds = permissions?.manageFunds;\n\tconst { isLiveMode, isDemoMode } = authStore((store: AuthStore) => ({\n\t\tisLiveMode: store.isLiveMode,\n\t\tisDemoMode: store.isDemoMode,\n\t}));\n\n\tconst switchToLive = useSwitchToLive();\n\tconst switchToDemo = useSwitchToDemo();\n\n\tconst forceRerender = useForceRerender();\n\tuseObservable(appContext.getPropertyChangeStream('subscriptionInfo'), () => forceRerender());\n\n\tconst logoutAccount = () => {\n\t\tappContext.modalId = 'logout';\n\t\tsetAccountPopupIsOpen(false);\n\t};\n\n\tconst handleOnClickSettings = () => {\n\t\tsetAccountPopupIsOpen(false);\n\t\tsetOpenSettings(true);\n\t\tappContext.openSettings = true;\n\t};\n\n\treturn (\n\t\t
\n\t\t\t{isDemoMode && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{t('en:SWITCH_TO_REAL')}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{isLiveMode && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{t('en:MORE_SWITCH_TO_DEMO')}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t<>\n\t\t\t\t{reports && (\n\t\t\t\t\t
handleTpRedirectReports(reports as string)}>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t('en:REPORTS')}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\t{manageFunds && (\n\t\t\t\t\t
handleTpRedirectManageFunds(manageFunds as string)}>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t('wtr:WTR_MANAGE_FUNDS')}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{t('en:SETTINGS')}\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{t('en:MORE_LOGOUT')}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default SettingsOptions;\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport styles from './AccountUserIcon.module.scss';\nimport authStore from '../../../../../../store/authStore';\nimport { getAccountIconOptions } from '../../../Settings/settingsOptions';\n\ninterface IAccountUserIconProps {\n\taccountPopupIsOpen?: boolean;\n\tsize?: 'small' | 'large';\n}\n\nconst AccountUserIcon = ({ accountPopupIsOpen, size = 'small' }: IAccountUserIconProps) => {\n\tconst accountAvatar = authStore.use.accountAvatar();\n\tconst findImage = () => {\n\t\tconst currentImage = getAccountIconOptions().find((image) => image.value === accountAvatar);\n\n\t\tif (currentImage) {\n\t\t\treturn currentImage.image.src;\n\t\t}\n\n\t\treturn getAccountIconOptions()[0].image.src;\n\t};\n\n\tif (accountAvatar) {\n\t\treturn \"Avatar\";\n\t}\n\treturn ;\n};\n\nexport default AccountUserIcon;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../contexts/DashboardContext';\n\nimport { AppComponentType } from '../../../../../utils/functions/enums';\nimport { IStatusConfigEnum } from '../../../../components/Permissions/config.types';\n\nimport Routes from '../../../../../setup/routes';\n\nimport AccountStatusCTA from '../../../../../shared/AccountStatusCTA/AccountStatusCTA';\n\nimport statusStore, { StatusStore } from '../../../../../store/accountStatusStore';\n\nimport authStore from '../../../../../store/authStore';\n\nimport { useSwitchToLive } from '../../../../../utils/hooks/system/useSwitchMode';\n\nimport SettingsOptions from './SettingsOptions';\n\nimport AccountUserIcon from './AccountUserIcon/AccountUserIcon';\n\nimport styles from './AccountMenuPopup.module.scss';\n\ninterface IAccountMenuPopupProps {\n\tsetAccountPopupIsOpen: (a: boolean) => void;\n\tsetOpenSettings: (a: boolean) => void;\n}\n\nconst AccountMenuPopup = ({ setAccountPopupIsOpen, setOpenSettings }: IAccountMenuPopupProps) => {\n\tconst history = useHistory();\n\tconst setShowAccountStatus = statusStore((state: any) => state.setShowAccountStatus);\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst permissions = statusStore((store: StatusStore) => store.permissions);\n\tconst accountMenuAction = permissions?.accountMenuAction;\n\tconst accountMenuLabel = permissions?.accountMenuLabel;\n\tconst { email } = appContext;\n\tconst userProfile = authStore.use.userProfile();\n\tconst [fullName, setFullname] = useState(userProfile?.fullName || '');\n\tconst switchToLive = useSwitchToLive();\n\n\tuseEffect(() => {\n\t\tsetFullname(userProfile?.fullName);\n\t}, [userProfile?.fullName]);\n\n\tconst handleTpRedirectButton = (e: any) => {\n\t\tdocument.body.click();\n\t\tif (accountMenuAction === IStatusConfigEnum.switchToRealMoney) {\n\t\t\tswitchToLive();\n\t\t} else if (accountMenuAction === IStatusConfigEnum.fund) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.Deposits;\n\t\t\thistory.push(Routes.trader.funds, { from: window.location.pathname });\n\t\t} else if (accountMenuAction === IStatusConfigEnum.accountStatus) {\n\t\t\tsetShowAccountStatus();\n\t\t}\n\t};\n\t// TODO: - Rewrite conditions in order to keep them consistent and don't mix UI button text with Context logic\n\n\tconst handleTpRedirectReports = (action: string = '') => {\n\t\tdocument.body.click();\n\t\tif (action === IStatusConfigEnum.reports) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.Reports;\n\t\t\thistory.push(Routes.trader.reports, { from: window.location.pathname });\n\t\t}\n\t\tif (action === IStatusConfigEnum.accountStatus) {\n\t\t\tsetShowAccountStatus();\n\t\t}\n\n\t\treturn;\n\t};\n\n\tconst handleTpRedirectManageFunds = (action: string = '') => {\n\t\tdocument.body.click();\n\t\tif (action === IStatusConfigEnum.fund) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.Funds;\n\t\t\thistory.push(Routes.trader.funds, { from: window.location.pathname });\n\t\t}\n\t\tif (action === IStatusConfigEnum.accountStatus) {\n\t\t\tsetShowAccountStatus();\n\t\t}\n\n\t\treturn;\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{fullName &&
{fullName}
}\n\t\t\t\t\t
{email}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{accountMenuAction && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default AccountMenuPopup;\n","import React, { Dispatch, SetStateAction, useContext, useState } from 'react';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\n\nimport SettingsModal from './SettingsModal';\nimport AccountMenuPopup from './AccountMenuPopup';\n\nimport AccountUserIcon from './AccountUserIcon/AccountUserIcon';\n\nimport styles from './AccountMenu.module.scss';\n\ninterface accountMenuProps {\n\taccountPopupIsOpen: boolean;\n\tsetAccountPopupIsOpen: (accountPopup: boolean) => void;\n\tsetResetIdleTimer: Dispatch>;\n}\n\nconst AccountMenu: React.FC = ({ accountPopupIsOpen, setAccountPopupIsOpen, setResetIdleTimer }) => {\n\tconst appContext = useContext(AppContext);\n\tconst [openSettings, setOpenSettings] = useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t setAccountPopupIsOpen(true)}\n\t\t\t\tonClose={() => setAccountPopupIsOpen(false)}\n\t\t\t\ton={['click']}\n\t\t\t\tpinned\n\t\t\t\tposition={appContext.isArabic ? 'bottom left' : 'bottom right'}\n\t\t\t\ttrigger={\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tbasic\n\t\t\t\tcontent={}\n\t\t\t/>\n\t\t\t{openSettings && appContext.userPreferences?.user_prefs && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default AccountMenu;\n","import React from 'react';\nimport cn from 'classnames';\n\nimport styles from './AccountStats.module.scss';\n\ninterface AccountPanelProps {\n\tlabel: string;\n\tvalue: string;\n\thideDivider?: boolean;\n\tdividerSymbol?: string;\n\tvalueColoring?: boolean;\n}\n\nconst AccountStats: React.FC = ({ label, value, valueColoring }) => {\n\tlet coloring = styles.default;\n\tconst parsedValue = parseFloat(value.substring(value.indexOf(' ') + 1));\n\n\tif (valueColoring) {\n\t\tif (parsedValue < 0) {\n\t\t\tcoloring = styles.red;\n\t\t}\n\n\t\tif (parsedValue > 0) {\n\t\t\tcoloring = styles.green;\n\t\t}\n\t}\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
{value || 0}
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default AccountStats;\n","import React, { useContext, useMemo, useState } from 'react';\nimport cn from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { useTranslation } from 'react-i18next';\n\nimport { Progress } from 'semantic-ui-react';\n\nimport Button from '../../../../../shared/Button';\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useSubscriptionInfo from '../../../../../utils/hooks/useSubscriptionInfo';\nimport { totalNumberOfTiers } from '../../../../../setup/subscriptionsConfig';\nimport useSubscriptionModal from '../../../../../utils/hooks/useSubscriptionModal';\nimport {\n\tcanSeeSubscriptionDetails,\n\tgetTierDisplayName,\n\tSubscriptionModalReason,\n} from '../../../../../utils/functions/subscriptionUtils';\nimport { formatNumberWithCommas } from '../../Watchlist/Instrument/formattedQuoteNumber';\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\n\nimport AccountIconAndTier from '../components/AccountIconAndTier';\n\nimport styles from './RemainingVolume.module.scss';\n\ninterface RemainingVolumeProps {\n\tbaseCurrency?: string;\n}\n\nconst RemainingVolume: React.FC = ({ baseCurrency }) => {\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\tconst { t } = useTranslation();\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst appContext = useContext(AppContext);\n\n\tconst remainingVolume = subscriptionInfo.remainingVolume !== null\n\t\t? formatNumberWithCommas(subscriptionInfo.remainingVolume, 0, appContext.languageSettings)\n\t\t: null;\n\n\tconst iconButton: IconName = isOpen ? 'caret-up' : 'caret-down';\n\n\tconst remainVolPercent =\n\t\tsubscriptionInfo.remainingVolume && subscriptionInfo.maxVolume\n\t\t\t? Math.round((subscriptionInfo.remainingVolume / subscriptionInfo.maxVolume) * 100)\n\t\t\t: null;\n\n\tconst colorStatusIndicator = useMemo(() => {\n\t\tif (!remainVolPercent && remainVolPercent !== 0) return styles.disabled;\n\n\t\tif (remainVolPercent >= 60) return styles.green;\n\t\tif (remainVolPercent >= 20 && remainVolPercent < 60) return styles.orange;\n\t\tif (remainVolPercent < 20) return styles.red;\n\t}, [remainVolPercent]);\n\n\tconst hasUpgradeButton = !!(subscriptionInfo?.tierNum && subscriptionInfo?.tierNum < totalNumberOfTiers);\n\n\tconst handleShowDetails = () => {\n\t\tsetIsOpen(false);\n\t\tsetModalStateProps({\n\t\t\treason: SubscriptionModalReason.SubscriptionDetails,\n\t\t\tisOpen: true,\n\t\t});\n\t};\n\n\tconst handleUpgradeClick = () => {\n\t\tsetIsOpen(false);\n\t\tsetModalStateProps({\n\t\t\treason: SubscriptionModalReason.UpgradeSubscription,\n\t\t\tisOpen: true,\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{appContext.isJapanAccount && (\n\t\t\t\t setIsOpen(true)}\n\t\t\t\t\tonClose={() => setIsOpen(false)}\n\t\t\t\t\ttrigger={\n\t\t\t\t\t\t
setIsOpen(!isOpen)}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{remainingVolume === '-1' ? '-' : remainingVolume}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\tcontent={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{/**/}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{subscriptionInfo.tier && canSeeSubscriptionDetails(subscriptionInfo.status) && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{getTierDisplayName(subscriptionInfo.tier)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('wtr:REMAINING_VOLUME')}:\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{remainingVolume === '-1' ? '-' : remainingVolume}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('wtr:VOLUME_LIMIT')}:\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{subscriptionInfo.maxVolume &&\n\t\t\t\t\t\t\t\t\t\tformatNumberWithCommas(\n\t\t\t\t\t\t\t\t\t\t\tsubscriptionInfo.maxVolume === -1 ? 0 : subscriptionInfo.maxVolume,\n\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\tappContext.languageSettings\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('wtr:USED_VOLUME')}:\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{subscriptionInfo.usedVolume &&\n\t\t\t\t\t\t\t\t\t\tformatNumberWithCommas(subscriptionInfo.usedVolume, 0, appContext.languageSettings)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{hasUpgradeButton && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default RemainingVolume;\n","import EUR from './eur.svg';\nimport GBP from './gbp.svg';\nimport AUD from './aud.svg';\nimport CAD from './cad.svg';\nimport CHF from './chf.svg';\nimport NZD from './nzd.svg';\nimport SGD from './sgd.svg';\nimport ZAR from './zar.svg';\nimport USD from './usd.svg';\nimport JPY from './jpy.svg';\n\nexport type CurrencyFlag = 'EUR' | 'GBP' | 'AUD' | 'CAD' | 'CHF' | 'NZD' | 'SGD' | 'ZAR' | 'USD' | 'JPY' | string;\n\nconst flags: { [key in CurrencyFlag]: any } = {\n\tEUR,\n\tGBP,\n\tAUD,\n\tCAD,\n\tCHF,\n\tNZD,\n\tSGD,\n\tZAR,\n\tUSD,\n\tJPY,\n};\n\nexport default (code: CurrencyFlag): string => flags[code];\n","import React from 'react';\n\nimport getCurrencyFlag, { CurrencyFlag } from '../../../../../images/flags';\n\nimport styles from './AccountCurrency.module.scss';\n\ninterface IAccountCurrencyProps {\n\tcode: CurrencyFlag;\n}\n\nconst AccountCurrency = ({ code }: IAccountCurrencyProps) => (\n\t\"Flag\n);\n\nexport default AccountCurrency;\n","import React, { useContext, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { Loader } from 'semantic-ui-react';\n\nimport { tierIcons } from '../../../../../setup/subscriptionsConfig';\n\nimport { getActiveTier, shouldShowTierIcon } from '../../../../../utils/functions/subscriptionUtils';\n\nimport authStore from '../../../../../store/authStore';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useForceRerender from '../../../../../utils/hooks/useForceRerender';\nimport useObservable from '../../../../../utils/hooks/useObservable';\n\nimport { getAccountIconOptions } from '../../Settings/settingsOptions';\nimport useSelectedTradingAccount from '../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport AccountCurrency from './AccountCurrency';\n\nimport styles from './AccountIconAndTier.module.scss';\n\ninterface AccountIconAndTierProps {\n\taccountPopupIsOpen?: boolean;\n\tsize?: 'small' | 'large';\n\toutline?: boolean;\n\tcustomCurrency?: string;\n\tisForJapanSubscriptionAccount?: boolean;\n\tisNotListOfSelectedTradingMode?: boolean;\n}\n\nconst AccountIconAndTier = ({\n\taccountPopupIsOpen,\n\tsize = 'small',\n\toutline = false,\n\tcustomCurrency,\n\tisForJapanSubscriptionAccount = false,\n\tisNotListOfSelectedTradingMode = false,\n}: AccountIconAndTierProps) => {\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\tconst appContext = useContext(AppContext);\n\tconst accountAvatar = authStore.use.accountAvatar();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\n\tconst forceRerender = useForceRerender();\n\tconst iconStyle = accountPopupIsOpen ? 'fas' : 'fal';\n\n\tuseObservable(appContext.getPropertyChangeStream('subscriptionInfo'), () => {\n\t\tforceRerender();\n\t});\n\n\tconst icon = useMemo(() => {\n\t\tif (selectedTradingAccount || (!selectedTradingAccount && isNotListOfSelectedTradingMode)) {\n\t\t\tif (isJapanAccount && isForJapanSubscriptionAccount) {\n\t\t\t\tif (appContext.subscriptionInfo && !shouldShowTierIcon(appContext.subscriptionInfo)) {\n\t\t\t\t\treturn ;\n\t\t\t\t}\n\n\t\t\t\tconst activeTier = getActiveTier(appContext.subscriptionInfo);\n\n\t\t\t\treturn activeTier ? (\n\t\t\t\t\t\"Tier\"\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn ;\n\t\t\t}\n\t\t} else {\n\t\t\treturn ;\n\t\t}\n\t}, [\n\t\tcustomCurrency,\n\t\ticonStyle,\n\t\tisJapanAccount,\n\t\tselectedTradingAccount,\n\t\tsize,\n\t\tisForJapanSubscriptionAccount,\n\t\tappContext.subscriptionInfo,\n\t]);\n\n\tif (!outline) return icon;\n\n\treturn (\n\t\t
\n\t\t\t
{icon}
\n\t\t
\n\t);\n};\n\nexport default AccountIconAndTier;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport useSubscriptionModal from '../../../../../../utils/hooks/useSubscriptionModal';\nimport { SubscriptionModalReason, SubscriptionStatus } from '../../../../../../utils/functions/subscriptionUtils';\nimport useSubscriptionInfo from '../../../../../../utils/hooks/useSubscriptionInfo';\n\nimport styles from './SubscriptionOptions.module.scss';\n\nconst SubscriptionOptions = ({ setAccountPopupIsOpen }: { setAccountPopupIsOpen: (a: boolean) => void }) => {\n\tconst { t } = useTranslation();\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\n\tconst handleManageClick = () => {\n\t\tsetAccountPopupIsOpen(false);\n\t\tsetModalStateProps({\n\t\t\treason: SubscriptionModalReason.ManageSubscription,\n\t\t\tisOpen: true,\n\t\t});\n\t};\n\n\tconst handleStopClick = () => {\n\t\tsetAccountPopupIsOpen(false);\n\t\tsetModalStateProps({\n\t\t\treason: SubscriptionModalReason.ConfirmStop,\n\t\t\tisOpen: true,\n\t\t\ttext: null,\n\t\t});\n\t};\n\n\t// const handleCancelClick = () => {\n\t// \tsetAccountPopupIsOpen(false);\n\t// \tsetModalStateProps({\n\t// \t\treason: SubscriptionModalReason.ConfirmCancel,\n\t// \t\tisOpen: true,\n\t// \t\ttext: null,\n\t// \t});\n\t// };\n\n\tconst hasManageSubscriptionOption = [SubscriptionStatus.Active, SubscriptionStatus.Unpaid].includes(\n\t\tsubscriptionInfo.status!\n\t);\n\n\treturn (\n\t\t
\n\t\t\t{hasManageSubscriptionOption && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t{t('wtr:MANAGE_SUBSCRIPTIONS')}\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{subscriptionInfo.status === SubscriptionStatus.Active ? (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t{t('wtr:SUSPEND_SUBSCRIPTION')}\n\t\t\t\t\t
\n\t\t\t\t\t{/*
*/}\n\t\t\t\t\t{/*\t*/}\n\t\t\t\t\t{/*\t{t('wtr:CANCEL_SUBSCRIPTION')}*/}\n\t\t\t\t\t{/*
*/}\n\t\t\t\t\n\t\t\t) : null}\n\t\t
\n\t);\n};\n\nexport default SubscriptionOptions;\n","import { useContext } from 'react';\n\nimport { AccountMarketType } from '../../../gateways/RfpGateway/rfp.types';\nimport authStore, { TradingMode } from '../../../store/authStore';\nimport { LastLoggedAct } from '../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport { RFP } from '../../../gateways/RfpGateway/rfpConstants';\nimport useSaveUserPreferences from '../../mutations/useSaveUserPreferences';\nimport DashboardContext from '../../../contexts/DashboardContext';\nimport AppContext from '../../../contexts/AppContext';\nimport { useFillContextsFromPreferences } from '../preferences/useFillContextsFromPreferences';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\nimport useSelectedTradingAccount from '../useSelectedTradingAccount';\nimport { Account } from '../../../gateways/TfboGateway/TfboGateway.types';\nimport RfpGatewayContext from '../../../contexts/RfpGatewayContext';\nimport { TradingAccountType } from '../../functions/enums';\n\nconst useSwitchAccount = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst rfpGateway = useContext(RfpGatewayContext);\n\tconst setTradingMode = authStore.use.setTradingMode();\n\tconst setSelected = tradingAccountStore.use.setSelected();\n\tconst setAccountMarketType = tradingAccountStore.use.setAccountMarketType();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst selectedTradingMode = authStore.use.tradingMode();\n\n\tconst { mutateAsync: savePreferences } = useSaveUserPreferences();\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\n\tconst switchAccounts = async (account: Account) => {\n\t\tdashboardContext.closeAllOtherTabs();\n\n\t\tif (!account) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (account.type !== selectedTradingMode.toLowerCase()) {\n\t\t\tsetTradingMode(account.type as TradingMode);\n\t\t}\n\n\t\tconst selectedIndex = dashboardContext.tradingAccount.findIndex((acc) => {\n\t\t\treturn acc.accountNumber === account.accountNumber;\n\t\t});\n\n\t\tif (selectedIndex !== -1) {\n\t\t\tconst newAccount = dashboardContext.tradingAccount[selectedIndex];\n\n\t\t\tsetAccountMarketType({\n\t\t\t\tisJapanSpread: newAccount?.accountMarketType === AccountMarketType.JapanSpread,\n\t\t\t\tisJapanSubscription:\n\t\t\t\t\tnewAccount?.accountMarketType === AccountMarketType.Japan &&\n\t\t\t\t\tnewAccount?.accountType === TradingAccountType.LIVE,\n\t\t\t\tisSpreadBetting: newAccount?.accountMarketType === AccountMarketType.SpreadBetting,\n\t\t\t});\n\t\t\tsetSelected(selectedIndex);\n\n\t\t\tif (selectedTradingAccount && rfpGateway) {\n\t\t\t\trfpGateway.send(RFP.tradingAccountLogout, { acct_id: selectedTradingAccount.id });\n\t\t\t}\n\t\t}\n\n\t\tif (appContext.userPreferences) {\n\t\t\tif (account.accountNumber) {\n\t\t\t\tappContext.userPreferences.user_prefs.platform.lastLoggedAct[\n\t\t\t\t\taccount.type.toLowerCase() as keyof LastLoggedAct\n\t\t\t\t] = account.accountNumber.toString();\n\t\t\t}\n\n\t\t\tfillContextsFromPreferences(appContext.userPreferences);\n\t\t\tawait savePreferences();\n\t\t}\n\t};\n\n\treturn [switchAccounts];\n};\n\nexport default useSwitchAccount;\n","import React, { useContext, useMemo } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { useHistory } from 'react-router-dom';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport cn from 'classnames';\n\nimport Routes from '../../../../../../setup/routes';\n\nimport { AppComponentType, TradingAccountType } from '../../../../../../utils/functions/enums';\nimport AppContext, { TTradingMode } from '../../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\n\nimport useShortTranslation from '../../../../../../utils/hooks/useShortTranslation';\n\nimport accountStatusStore from '../../../../../../store/accountStatusStore';\n\nimport { IStatusConfigEnum } from '../../../../../components/Permissions/config.types';\n\nimport authStore, { TradingMode } from '../../../../../../store/authStore';\nimport tradingAccountStore from '../../../../../../store/tradingAccountStore';\n\nimport {\n\tAccount,\n\tTradingAccountType as PlatformAccountType,\n} from '../../../../../../gateways/TfboGateway/TfboGateway.types';\n\nimport { checkHasSubscriptionOptions } from '../../../../../../utils/functions/subscriptionUtils';\nimport useSubscriptionInfo from '../../../../../../utils/hooks/useSubscriptionInfo';\n\nimport AccountIconAndTier from '../../components/AccountIconAndTier';\n\nimport SubscriptionOptions from './SubscriptionOptions';\n\nimport { printAccountName } from '../../../../../../utils/functions/getAccountStats';\nimport useSwitchAccount from '../../../../../../utils/hooks/system/useSwitchAccount';\nimport useSelectedTradingAccount from '../../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport styles from './TradingAccounts.module.scss';\nimport { LastLoggedAct } from '../../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\n\ninterface ITradingAccountsProps {\n\tactiveMenuItem: 'live' | 'demo' | TTradingMode;\n\tsetAccountPopupIsOpen: (isOpen: boolean) => void;\n}\n\nconst TradingAccounts = ({ setAccountPopupIsOpen, activeMenuItem }: ITradingAccountsProps) => {\n\tconst { t } = useTranslation();\n\tconst tt = useShortTranslation('wtr:');\n\tconst history = useHistory();\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst [switchAccounts] = useSwitchAccount();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst setTradingMode = authStore.use.setTradingMode();\n\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst permissions = accountStatusStore.use.permissions();\n\tconst setShowModal = accountStatusStore.use.setShowModal();\n\tconst hasLiveAccount = accountStatusStore.use.hasLiveAccount();\n\tconst selectedTradingMode = authStore.use.tradingMode();\n\tconst addAccount = permissions.addAccount;\n\tconst accountStats = tradingAccountStore.use.accountStats();\n\tconst currentAccountUrl = tradingAccountStore.use.currentAccountUrl();\n\tconst userProfile = authStore.use.userProfile();\n\n\tconst { mutate: saveUserPreferences } = useSaveUserPreferences();\n\n\tconst email = appContext.email ?? userProfile.email!;\n\n\tconst accountsList = useMemo(\n\t\t() => accountStats.filter((account) => account.account.type.toLowerCase() === activeMenuItem?.toLowerCase()),\n\t\t[activeMenuItem, accountStats]\n\t);\n\n\tconst handleSwitchAccounts = (account: Account) => {\n\t\tif (selectedTradingAccount?.accountNumber !== account.accountNumber) {\n\t\t\tswitchAccounts(account);\n\t\t}\n\n\t\tif (account && account.accountNumber) {\n\t\t\tconst currentAcc = dashboardContext.rfpServerNames.find(\n\t\t\t\t(item) => item.ttAccountId === account.accountNumber!.toString()\n\t\t\t);\n\t\t\tif (currentAcc?.rfpDnsName && currentAcc?.rfpDnsName !== currentAccountUrl) {\n\t\t\t\tconst rfpUrlStorage = JSON.parse(localStorage.getItem('rfpUrl') || '{}');\n\t\t\t\tconst rfpUrlsObj = {\n\t\t\t\t\t...rfpUrlStorage,\n\t\t\t\t\t[email]: {\n\t\t\t\t\t\turl: currentAcc?.rfpDnsName,\n\t\t\t\t\t\tmode: account.type,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tlocalStorage.setItem('rfpUrl', JSON.stringify(rfpUrlsObj));\n\n\t\t\t\tif (account.accountNumber && appContext.userPreferences) {\n\t\t\t\t\tappContext.userPreferences.user_prefs.platform.lastLoggedAct[\n\t\t\t\t\t\taccount.type.toLowerCase() as keyof LastLoggedAct\n\t\t\t\t\t] = account.accountNumber.toString();\n\t\t\t\t}\n\n\t\t\t\tsaveUserPreferences();\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t}\n\n\t\tsetAccountPopupIsOpen(false);\n\t};\n\n\tconst handleAddAccountClick = () => {\n\t\tif (hasNoDemoAccount) {\n\t\t\t// When login in DEMO mode, if there is no account a default one will be created\n\t\t\t// this is achieved by the setTradingMode\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tif (activeMenuItem !== selectedTradingMode.toLowerCase()) {\n\t\t\t\tsetTradingMode(activeMenuItem.toUpperCase() as TradingMode);\n\t\t\t}\n\t\t\tsetAccountPopupIsOpen(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (addAccount === IStatusConfigEnum.addLiveAccount || addAccount === IStatusConfigEnum.addDemoAccount) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t\t} else {\n\t\t\tsetShowModal(true);\n\t\t\tappContext.statusModal = true;\n\t\t}\n\n\t\tsetAccountPopupIsOpen(false);\n\t};\n\n\tconst isLiveMenu = activeMenuItem.toLowerCase() === 'live';\n\tconst showAddAccount =\n\t\t(!appContext.isJapanAccount &&\n\t\t\tpermissions?.addAccount &&\n\t\t\tselectedTradingMode.toLowerCase() === activeMenuItem.toLowerCase()) ||\n\t\t(isLiveMenu && !hasLiveAccount);\n\n\t// this is a temporary update for https://thinkmarkets.atlassian.net/browse/WTR-5012\n\t// >>> Temporarily remove the option to onboard on the Subscription account\n\t// const showAddJapanAccount = appContext.isJapanAccount && isLiveMenu && accountsList.length && accountsList.length < 2;\n\t// const hasJapanSpread = showAddJapanAccount && !!accountsList.find(({ platformAccountType }) => platformAccountType === PlatformAccountType.JapanSpread);\n\tconst hasJapanSpread = !!accountsList.find(({ platformAccountType }) => platformAccountType === PlatformAccountType.JapanSpread);\n\tconst showAddJapanAccount = appContext.isJapanAccount && isLiveMenu && !hasJapanSpread;\n\n\tconst hasNoDemoAccount = activeMenuItem.toLowerCase() === 'demo' && accountsList.length === 0;\n\n\treturn (\n\t\t
\n\t\t\t{accountsList.map(({ account, platformAccountType }: any) => {\n\t\t\t\tconst isLiveAccount = account.type === TradingAccountType.LIVE;\n\t\t\t\tconst isSpreadBettingAccount = platformAccountType === PlatformAccountType.SpreadBetting;\n\t\t\t\tconst isJapanSpreadAccount = platformAccountType === PlatformAccountType.JapanSpread;\n\t\t\t\tconst isJapanSubscriptionAccount = appContext.isJapanAccount && isLiveAccount && !isJapanSpreadAccount;\n\t\t\t\tconst hasSubscriptionOptions =\n\t\t\t\t\tisJapanSubscriptionAccount && checkHasSubscriptionOptions(subscriptionInfo.status);\n\t\t\t\tconst isCurrentAccount = account.accountNumber.toString() === selectedTradingAccount?.providerAccountId;\n\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t
handleSwitchAccounts(account)}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t(`en:LOGIN_VIEW_${account.type.toUpperCase()}`)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t{account.accountNumber}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{printAccountName({\n\t\t\t\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\t\t\t\tisLiveAccount,\n\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount,\n\t\t\t\t\t\t\t\t\t\tisJapanSpreadAccount,\n\t\t\t\t\t\t\t\t\t\tisJapanSubscriptionAccount,\n\t\t\t\t\t\t\t\t\t\tdefaultName: `${account.currency.code} • ${t('wtr:CFD')}`,\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{isCurrentAccount && hasSubscriptionOptions && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t{(showAddAccount || hasNoDemoAccount || showAddJapanAccount) && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default React.memo(TradingAccounts);\n","import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { IconName } from '@fortawesome/fontawesome-svg-core';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport RfpGatewayContext from '../../../../../contexts/RfpGatewayContext';\nimport { RFPDataObjectType } from '../../../../../gateways/RfpGateway/rfp.types';\nimport accountStatusStore from '../../../../../store/accountStatusStore';\nimport { TTradingMode } from '../../../../../contexts/AppContext';\n\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\n\nimport authStore from '../../../../../store/authStore';\nimport useSelectedTradingAccount from '../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\n\nimport AccountIconAndTier from '../components/AccountIconAndTier';\n\nimport TradingAccounts from './TradingAccounts/TradingAccounts';\n\nimport {printAccountName} from \"../../../../../utils/functions/getAccountStats\";\nimport {TradingAccountType} from \"../../../../../utils/functions/enums\";\n\nimport styles from './CurrencyStats.module.scss';\n\nconst TRADING_ACCOUNTS_TYPES = ['LIVE', 'DEMO'];\n\nconst CurrencyStats = () => {\n\tconst { t } = useTranslation();\n\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst rfpGateway = useContext(RfpGatewayContext);\n\n\tconst [isOpen, setIsOpen] = useState(false);\n\n\tconst hasLiveAccount = accountStatusStore.use.hasLiveAccount();\n\tconst hasDemoAccount = accountStatusStore.use.hasDemoAccount();\n\n\tconst isLiveMode = authStore.use.isLiveMode();\n\tconst isDemoMode = authStore.use.isDemoMode();\n\n\tconst tradingMode = authStore.use.tradingMode();\n\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst isJapanSpreadAccount = tradingAccountStore.use.isJapanSpread();\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tconst [activeMenuItem, setActiveMenuItem] = useState(\n\t\ttradingMode.toLowerCase() as TTradingMode | 'live' | 'demo'\n\t);\n\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst iconButton: IconName = isOpen ? 'caret-up' : 'caret-down';\n\tconst accountTypeStyling = tradingMode === 'LIVE' ? styles.live : styles.demo;\n\tconst subIdRef = useRef(undefined);\n\tconst [hasTradingAccountsError, setHasTradingAccountsError] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (dashboardContext.showOrderTicket) {\n\t\t\tsetIsOpen(false);\n\t\t}\n\t}, [dashboardContext.showOrderTicket]);\n\n\tuseEffect(() => {\n\t\tif (rfpGateway) {\n\t\t\tsubIdRef.current = rfpGateway.subscribeFor(RFPDataObjectType.TradingAccountsError, (message) => {\n\t\t\t\t// TODO: handle error\n\n\t\t\t\tsetHasTradingAccountsError(true);\n\t\t\t});\n\t\t}\n\t\treturn () => {\n\t\t\tif (rfpGateway && subIdRef.current) {\n\t\t\t\trfpGateway.unsubscribeFor(subIdRef.current);\n\t\t\t\tsubIdRef.current = undefined;\n\n\t\t\t\tsetHasTradingAccountsError(false);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\t// We need accountFlag conditions because TFBO and RFP get information about selectedTradingAccount at different times\n\t// and this causes problems with displaying loader and icons for the AccountCurrency component\n\tconst accountFlag = useMemo(() => {\n\t\tif (\n\t\t\thasTradingAccountsError ||\n\t\t\t(isLiveMode && hasLiveAccount === false) ||\n\t\t\t(isDemoMode && hasDemoAccount === false)\n\t\t) {\n\t\t\treturn ;\n\t\t}\n\n\t\treturn ;\n\t}, [selectedTradingAccount, hasLiveAccount, hasDemoAccount, hasTradingAccountsError, isLiveMode, isDemoMode, isJapanSubscriptionAccount]);\n\n\tuseEffect(() => {\n\t\tif (!isOpen && TRADING_ACCOUNTS_TYPES.includes(tradingMode)) {\n\t\t\tsetActiveMenuItem(tradingMode.toLowerCase() as TTradingMode);\n\t\t}\n\t}, [isOpen, tradingMode]);\n\n\t// {hasTierInfo && canSeeSubscriptionDetails(subscriptionInfo.status) ? (\n\t// \t
\n\t// \t\t
\n\t// \t\t\t{getTierDisplayName(subscriptionInfo.tier)}\n\t//\n\t// \t\t\t
\n\t// \t\t\t\t\n\t// \t\t\t
\n\t// \t\t
\n\t//\n\t// \t\t{subscriptionInfo.tier !== subscriptionInfo.nextTier && (\n\t// \t\t\t
\n\t// \t\t\t\t{t('wtr:NEXT_MONTH')}: {getTierDisplayName(subscriptionInfo.nextTier)}\n\t// \t\t\t
\n\t// \t\t)}\n\t// \t
\n\n\treturn (\n\t\t setIsOpen(true)}\n\t\t\tonClose={() => setIsOpen(false)}\n\t\t\ttrigger={\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{accountFlag}\n\t\t\t\t\t\t{!isSpreadBettingAccount ? {t('wtr:CFD')} : null}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`wtr:${tradingMode}`).toUpperCase()}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t{selectedTradingAccount?.accountNumber || 'N/A'}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{printAccountName({\n\t\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\t\tisLiveAccount: selectedTradingAccount?.accountType === TradingAccountType.LIVE,\n\t\t\t\t\t\t\t\tisSpreadBettingAccount,\n\t\t\t\t\t\t\t\tisJapanSpreadAccount,\n\t\t\t\t\t\t\t\tisJapanSubscriptionAccount,\n\t\t\t\t\t\t\t\tdefaultName: `${selectedTradingAccount?.baseCurrency || ''} • ${t('wtr:CFD')}`,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t setActiveMenuItem('live')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('en:LOGIN_VIEW_LIVE')}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t setActiveMenuItem('demo')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('en:LOGIN_VIEW_DEMO')}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t/>\n\t);\n};\n\nexport default CurrencyStats;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport useMoneyFormatter from '../../../../../utils/hooks/useMoneyFormatter';\nimport useShortTranslation from '../../../../../utils/hooks/useShortTranslation';\nimport useForceRerender from '../../../../../utils/hooks/useForceRerender';\nimport { formatNumberWithCommas } from '../../Watchlist/Instrument/formattedQuoteNumber';\n\nimport useObservable from '../../../../../utils/hooks/useObservable';\n\nimport { checkIsVolumeUnlimited } from '../../../../../utils/functions/subscriptionUtils';\n\nimport authStore, { AuthStore } from '../../../../../store/authStore';\n\nimport useSelectedTradingAccount from '../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport {\n\tcalculateEquity,\n\tcalculateFreeMargin,\n\tcalculateMarginLevel,\n} from '../../../../../utils/functions/calculations';\n\nimport AccountStats from './AccountStats';\nimport MarginLevel from './MarginLevel';\nimport RemainingVolume from './RemainingVolume';\nimport CurrencyStats from './CurrencyStats';\n\nimport styles from './AccountPanel.module.scss';\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\n\ninterface IAccountPanelProps {\n\tisSearchBarOpen: boolean;\n}\n\nconst AccountPanel = ({ isSearchBarOpen }: IAccountPanelProps) => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst appContext = useContext(AppContext);\n\tconst tt = useShortTranslation('en:');\n\tconst { t } = useTranslation();\n\tconst forceRerender = useForceRerender();\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tconst isLiveMode = authStore((store: AuthStore) => store.isLiveMode);\n\n\tconst [isMenuOpen, setIsMenuOpen] = useState(true);\n\n\tuseObservable(appContext.getPropertyChangeStream('subscriptionInfo'), () => {\n\t\tforceRerender();\n\t});\n\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\n\t// The variable accountMcLevel is used to determine the margin level for each account.\n\t// Ideally, this value should be retrieved from the backend service, based on the account settings.\n\t// However, for the time being, we will hardcode this value as a temporary workaround.\n\tconst accountMcLevel = useMemo(() => (appContext.isJapanAccount ? 1.2 : 1.0), [appContext.isJapanAccount]);\n\n\t// const selectedAccountStats = tradingAccountStore.use.selectedAccountStats();\n\t// what follows is potentially one of the worst snippets of code I've written; ever\n\t// unfortuantely at the moment we don't have a better solution\n\t// what happens is that every time a tick for an instrument the user has an opened\n\t// position for the profit/loss is calculated inside websocket.ts using the calculations\n\t// utils and put on the dashbaordContext.tradingAccount[INDEX].netProfit\n\t// unfortunately with the observable contexts we are not notified for that change as it relies\n\t// on some quirks of JS so forceRerender on dashboardCtx.tradingaAccount change won't work\n\t// for the same reason we chan't use useMemo for selectedTradingAccount - we always need a fresh\n\t// value as the new data is inside the array;\n\t//\n\t// the solutions is: forceRerender every 1.5 seconds (this was used in the previous AccountPanel as well),\n\t// triggering the setTimeout on mount\n\t//\n\t// this is one of the first things that need to go once we have proper AccountContext :)\n\t//\n\t// self-invoking forceRerender function\n\tconst rerender = () => {\n\t\tforceRerender();\n\t\tsetTimeout(rerender, 1500);\n\t};\n\t// start the force-rerendering\n\tuseEffect(rerender, []);\n\n\tconst formatAsMoney = useMoneyFormatter(selectedTradingAccount);\n\n\tdashboardContext.accountValues.balance = selectedTradingAccount?.balance || 0;\n\tdashboardContext.accountValues.margin = selectedTradingAccount?.usedMargin || 0;\n\n\tconst accountProfitLoss = selectedTradingAccount?.netProfit || 0;\n\tconst calculatedEquity = calculateEquity({\n\t\tbalance: dashboardContext.accountValues?.balance,\n\t\tprofitLoss: accountProfitLoss,\n\t});\n\tconst calculatedFreeMargin = parseFloat(\n\t\tcalculateFreeMargin({\n\t\t\tequity: calculatedEquity,\n\t\t\taccountMcLevel,\n\t\t\tusedMargin: dashboardContext.accountValues.margin,\n\t\t}).toFixed(2)\n\t);\n\tconst calculatedMarginLevel = calculateMarginLevel({\n\t\tequity: calculatedEquity,\n\t\tusedMargin: dashboardContext.accountValues.margin,\n\t});\n\n\tdashboardContext.accountValues.pl = +accountProfitLoss.toFixed(2);\n\tdashboardContext.accountValues.equity = parseFloat(calculatedEquity.toFixed(2));\n\tdashboardContext.accountValues.freeMargin = calculatedFreeMargin;\n\tdashboardContext.accountValues.marginLevel = parseFloat(calculatedMarginLevel.toFixed(2));\n\n\tif (selectedTradingAccount) {\n\t\tselectedTradingAccount.freeMargin = calculatedFreeMargin;\n\t}\n\n\tuseEffect(() => {\n\t\tconst isAccountPanelOpen = localStorage.getItem('isAccountPanelOpen');\n\n\t\tif (isAccountPanelOpen === 'true') {\n\t\t\tsetIsMenuOpen(true);\n\t\t} else if (isAccountPanelOpen === 'false') {\n\t\t\tsetIsMenuOpen(false);\n\t\t} else {\n\t\t\tlocalStorage.setItem('isAccountPanelOpen', 'true');\n\t\t\tsetIsMenuOpen(true);\n\t\t}\n\t}, []);\n\n\tconst balance = formatAsMoney(dashboardContext.accountValues.balance);\n\tconst profitLoss = formatAsMoney(dashboardContext.accountValues.pl);\n\tconst equity = formatAsMoney(dashboardContext.accountValues.equity);\n\tconst marginValue = formatAsMoney(dashboardContext.accountValues.margin);\n\tconst availableMargin = formatAsMoney(dashboardContext.accountValues.freeMargin);\n\n\tconst marginLevel = formatNumberWithCommas(\n\t\tisNaN(dashboardContext.accountValues.marginLevel) ? 0 : dashboardContext.accountValues.marginLevel,\n\t\t2,\n\t\tappContext.languageSettings\n\t);\n\n\tconst handleToggleAccountPanel = () => {\n\t\tlocalStorage.setItem('isAccountPanelOpen', (!isMenuOpen).toString());\n\t\tsetIsMenuOpen(!isMenuOpen);\n\t};\n\n\tconst mustShowRemainingVolume =\n\t\tisJapanSubscriptionAccount &&\n\t\tisLiveMode &&\n\t\tappContext.subscriptionInfo?.maxVolume &&\n\t\t!checkIsVolumeUnlimited(appContext.subscriptionInfo);\n\n\tlet triggerAccountBalance = window.innerWidth <= 1680 ? isMenuOpen && !isSearchBarOpen : isMenuOpen;\n\tlet iconButton: IconName = isMenuOpen && triggerAccountBalance ? 'caret-right' : 'caret-left';\n\n\tif (appContext.isArabic) {\n\t\ticonButton = isMenuOpen && triggerAccountBalance ? 'caret-left' : 'caret-right';\n\t}\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\n\t\t\t{triggerAccountBalance && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t\n\n\t\t\t\t\t{mustShowRemainingVolume && }\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default AccountPanel;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useIdleTimer } from 'react-idle-timer';\n\nimport Routes from '../../../../setup/routes';\nimport { MarketItem, SelectedSymbol } from '../../../../gateways/RfpGateway/rfp.types';\nimport InstrumentSearch from '../InstrumentSearch/InstrumentSearch';\nimport uniqueId from '../../../../utils/functions/uniqueId';\n\nimport useLogout from '../../../../utils/hooks/useLogout';\nimport useObservable from '../../../../utils/hooks/useObservable';\nimport usePromiseFactory from '../../../../utils/hooks/usePromiseFactory';\nimport useForceRerender from '../../../../utils/hooks/useForceRerender';\n\nimport AppContext from '../../../../contexts/AppContext';\nimport ChartContext from '../../../../contexts/ChartContext';\nimport DashboardContext from '../../../../contexts/DashboardContext';\nimport { simulateMouseEvent } from '../../../../utils/functions/simulateClick';\nimport { AppComponentType } from '../../../../utils/functions/enums';\nimport { TradersGymContext, TradersGymContextType } from '../../../../pages/TradersGym/TradersGymContext';\n\nimport Notifications from '../../../components/Notifications';\n\nimport Community from '../../../components/Community';\n\nimport authStore from '../../../../store/authStore';\nimport TradingViewStore from '../../../../store/tradingViewStore';\n\nimport tradingAccountStore from '../../../../store/tradingAccountStore';\n\nimport AccountMenu from './components/AccountMenu';\nimport AccountPanel from './AccountPanel/AccountPanel';\n\nimport styles from './Header.module.scss';\n\ninterface HeaderProps {\n\tshowSearch: boolean;\n}\n\nconst Header: React.FC = ({ showSearch }) => {\n\tconst appContext = useContext(AppContext);\n\tconst chartContext = useContext(ChartContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext, setGymProps } = gymContext;\n\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\tconst history = useHistory();\n\n\tconst isChildWindow = appContext.isChildWindow;\n\tconst isInTradersGymMode = tradersGymContext.isActive;\n\n\tconst tradingAccount = dashboardContext.tradingAccount;\n\n\tconst [accountPopupIsOpen, setAccountPopupIsOpen] = useState(false);\n\tconst [openNotifications, setOpenNotifications] = useState(false);\n\n\tconst [resetIdleTimer, setResetIdleTimer] = useState(false);\n\tconst userProfile = authStore.use.userProfile();\n\tconst isFundedTrader = tradingAccountStore.use.isFundedTrader();\n\tconst isSearchbarOpen = TradingViewStore.use.isSearchOpen();\n\tconst setIsSearchbarOpen = TradingViewStore.use.setIsSearchOpen();\n\tconst setIsCompSymbolMode = TradingViewStore.use.setIsCompSymbolMode();\n\tconst isCompSymbolMode = TradingViewStore.use.isCompSymbolMode();\n\n\tconst { start } = useIdleTimer({\n\t\ttimeout: 1000 * dashboardContext.inactiveTime,\n\t\tonIdle: useLogout(),\n\t\tdebounce: 500,\n\t\tstartManually: true,\n\t});\n\n\tuseEffect(() => {\n\t\tstart();\n\t}, [resetIdleTimer]);\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => forceRerender());\n\n\tuseObservable(\n\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t'tradingAccount',\n\t\t\t'accountType',\n\t\t\t'inactiveTime',\n\t\t\t'quantityType',\n\t\t\t'selectedSymbol',\n\t\t\t'applicationStatus',\n\t\t\t'showNewsFeed',\n\t\t\t'initialTimezone',\n\t\t\t'showOrderInformation',\n\t\t\t'showOrderTicket',\n\t\t\t'showCloseTicket',\n\t\t\t'twoFactorAuthModalToggle',\n\t\t\t'accountValues',\n\t\t\t'accountPopupToggle'\n\t\t),\n\t\t(_) => {\n\t\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t\t\t\tforceRerender();\n\t\t\t});\n\t\t}\n\t);\n\n\tfunction filterInstruments(instrument: MarketItem, searchString: string): boolean {\n\t\tsearchString = (searchString || '').trim().toLowerCase();\n\t\treturn (\n\t\t\tsearchString === '' ||\n\t\t\tinstrument.code?.toLowerCase().includes(searchString) ||\n\t\t\tinstrument.fullName?.toLowerCase().includes(searchString) ||\n\t\t\tinstrument.grp?.toLowerCase().includes(searchString) ||\n\t\t\t(instrument.exchangeTicker ?? '')?.toLowerCase().includes(searchString)\n\t\t);\n\t}\n\n\tfunction viewInstrument(marketItem: MarketItem, gridViewCharts?: boolean) {\n\t\tif (isInTradersGymMode) {\n\t\t\t// Simulate chart click to close the search.\n\t\t\tsimulateMouseEvent(document, 'mousedown', 0, 0);\n\n\t\t\tsetGymProps({ searchInstrumentSelected: marketItem, isOpenCreateSimulationModal: true });\n\t\t\treturn;\n\t\t}\n\n\t\tif (!gridViewCharts) {\n\t\t\tif (isChildWindow) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (window.innerWidth < 1024) {\n\t\t\t\thistory.push(Routes.trader.charts);\n\t\t\t}\n\n\t\t\tdashboardContext.historicalData = [];\n\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\tdashboardContext.selectedType = 'Instrument';\n\n\t\t\tconst newChartId = uniqueId();\n\t\t\tlet selectedSymbols: SelectedSymbol = {};\n\t\t\tfor (let i = 0; i < 2; i++) {\n\t\t\t\tselectedSymbols[newChartId] = marketItem;\n\t\t\t}\n\n\t\t\tdashboardContext.selectedSymbol = {\n\t\t\t\t...Object.entries(dashboardContext.selectedSymbol).slice(0, 0),\n\t\t\t\t...selectedSymbols,\n\t\t\t};\n\t\t\tdashboardContext.newChart = true;\n\t\t\tchartContext.setSingleActiveChart(newChartId);\n\t\t} else {\n\t\t\tconst onTradePage =\n\t\t\t\twindow.location.pathname.split('/')[window.location.pathname.split('/').length - 1] === 'watchlist';\n\t\t\t// Case for Markets page\n\t\t\tif (!onTradePage) {\n\t\t\t\tconst getChartSymbol = JSON.parse(localStorage.getItem(`myChartLayoutchart0`)!);\n\t\t\t\tconst updateSymbol = { ...getChartSymbol, symbols: [marketItem] };\n\t\t\t\tlocalStorage.setItem(`myChartLayoutchart0`, JSON.stringify(updateSymbol));\n\t\t\t}\n\t\t\tdashboardContext.selectedInstrument = marketItem;\n\n\t\t\tdashboardContext.toggleAccordionMenu = '0';\n\t\t\tdashboardContext.showCancelTicket = false;\n\t\t\tdashboardContext.showCloseTicket = false;\n\t\t\tif (dashboardContext.showConfirmTicket) {\n\t\t\t\tdashboardContext.showConfirmTicket = false;\n\t\t\t\tdashboardContext.showOrderTicket = false;\n\t\t\t}\n\t\t\tif (!onTradePage) {\n\t\t\t\tdashboardContext.showNewsFeed = false;\n\t\t\t\tdashboardContext.modifyTicket = false;\n\t\t\t\tdashboardContext.showOrderTicket = false;\n\n\t\t\t\tif (tradingAccount.length > 0) {\n\t\t\t\t\tdashboardContext.showOrderInformation = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdashboardContext.selectedType = 'Instrument';\n\t\t\tdashboardContext.gridChartsChanged = true;\n\n\t\t\tif (!isChildWindow) {\n\t\t\t\thistory.push(Routes.trader.watchlist, { from: window.location.pathname });\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Watchlist;\n\t\t\t}\n\n\t\t\tsimulateMouseEvent(document, 'mousedown', 0, 0);\n\t\t}\n\t}\n\n\tconst handleCloseClick = () => {\n\t\tif (isCompSymbolMode) {\n\t\t\tsetIsCompSymbolMode(false);\n\t\t}\n\t\tsetIsSearchbarOpen(false);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\n\t\t\t\t{showSearch && (\n\t\t\t\t\t\n\t\t\t\t\t\t setIsSearchbarOpen(true)}\n\t\t\t\t\t\t\tonClose={handleCloseClick}\n\t\t\t\t\t\t\tthrottle={100}\n\t\t\t\t\t\t\tmaxWatchlistNameLength={20}\n\t\t\t\t\t\t\tfilter={filterInstruments}\n\t\t\t\t\t\t\tviewInstrument={(instrument) => viewInstrument(instrument, true)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t{userProfile.id && !isFundedTrader && }\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default Header;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { RefObject, useContext, useRef } from 'react';\n\nimport cn from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router';\n\nimport WtrTooltip from '../../../../../shared/WtrTooltip/WtrTooltip';\n\nimport { AppComponentType } from '../../../../../utils/functions/enums';\nimport DashboardContext from '../../../../../contexts/DashboardContext';\n\nimport { TradersGymContext, TradersGymContextType } from '../../../../../pages/TradersGym/TradersGymContext';\n\nimport styles from './Item.module.scss';\nconst noop = () => {};\ninterface ItemProps {\n\ticon: IconName;\n\troute: string;\n\ttooltip: string;\n\tcomponent?: AppComponentType;\n\tpreClick?: () => boolean | Promise;\n\tskipIndicator?: boolean;\n\titemClass?: string;\n\ticonClass?: string;\n\tcontainerClass?: string;\n\tdisableTooltip?: boolean;\n\tdisabled?: boolean;\n\tisLoading?: boolean;\n\trefNeeded?: boolean;\n\tsetParentRef?: (ref: RefObject) => void;\n}\n\nconst Item = ({\n\ticon,\n\troute,\n\tcomponent,\n\ttooltip,\n\tskipIndicator = false,\n\titemClass,\n\tcontainerClass,\n\ticonClass,\n\tpreClick = () => true,\n\tdisableTooltip = false,\n\tdisabled = false,\n\tisLoading = false,\n\trefNeeded,\n\tsetParentRef = noop,\n}: ItemProps) => {\n\tconst { t } = useTranslation();\n\tconst gymContext = useContext(TradersGymContext);\n\tconst { tradersGymContext } = gymContext as TradersGymContextType;\n\tconst parentRef: RefObject = useRef(null);\n\n\tif (refNeeded) setParentRef(parentRef);\n\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst history = useHistory();\n\n\tconst handleItemClick = async () => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (tradersGymContext.isActive) {\n\t\t\ttradersGymContext.isActive = false;\n\t\t}\n\n\t\tconst preclickResult = await preClick();\n\t\tif (preclickResult) {\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\thistory.push(route);\n\t\t\tif (component !== undefined) dashboardContext.presentComponentType = component;\n\t\t}\n\t};\n\n\tconst active = history.location.pathname === route;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Item;\n","import React from 'react';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { Item } from './';\n\nconst Trade = () => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default Trade;\n","import React from 'react';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { Item } from './';\n\nconst Markets = () => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default Markets;\n","import React, { useEffect } from 'react';\n\nconst useOutsideAlerter = (ref: React.MutableRefObject, callback: Function) => {\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (ref.current && !ref.current.contains(event.target)) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t};\n\n\t\t// Bind the event listener\n\t\tdocument.addEventListener('mousedown', handleClickOutside);\n\t\treturn () => {\n\t\t\t// Unbind the event listener on clean up\n\t\t\tdocument.removeEventListener('mousedown', handleClickOutside);\n\t\t};\n\t}, [ref]);\n};\n\nexport default useOutsideAlerter;\n","import React, { useState, useEffect, useRef, createRef, Ref, RefObject, useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport useOutsideAlerter from '../../views/components/SearchInput/useOutsideAlerter';\n\nimport styles from './InfoModal.module.scss';\n\ntype Arrow = 'left' | 'right' | 'top' | 'bottom';\n\ninterface InfoModalProps {\n\tarrow?: Arrow;\n\theader?: React.ReactNode;\n\tcontent?: React.ReactNode;\n\tfooter?: React.ReactNode;\n\tcloseInfoModal: () => void;\n\tparentRef: RefObject;\n\tadditionalPositioning?: { x: number; y: number };\n}\n\nconst InfoModal: React.FC = ({\n\tarrow,\n\theader,\n\tcontent,\n\tfooter,\n\tcloseInfoModal,\n\tparentRef,\n\tadditionalPositioning,\n}) => {\n\tconst childRef: RefObject = useRef(null);\n\tconst divRefArrow = useRef(null);\n\tconst [parentPosition, setParentPosition] = useState({ x: 0, y: 0 });\n\tconst appContext = useContext(AppContext);\n\n\tconst isArabic = !!appContext.isArabic || !!(localStorage.getItem('language') === 'ar-SA');\n\tconst calculateParentPosition = () => {\n\t\tif (parentRef?.current) {\n\t\t\tconst { x, y } = parentRef.current.getBoundingClientRect();\n\n\t\t\tsetParentPosition({ x, y });\n\t\t}\n\t};\n\tuseOutsideAlerter(childRef, () => closeInfoModal());\n\n\tuseEffect(() => {\n\t\tcalculateParentPosition();\n\t\twindow.addEventListener('resize', calculateParentPosition);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', calculateParentPosition);\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (parentRef.current && childRef.current) {\n\t\t\tconst parentCenterY = parentPosition.y + parentRef.current.offsetHeight / 2;\n\t\t\tconst childHeight = childRef.current.offsetHeight;\n\t\t\tconst childwidth = childRef.current.offsetWidth;\n\n\t\t\tif (isArabic) {\n\t\t\t\tchildRef.current.style.left = `${parentRef.current.getBoundingClientRect().right - childwidth - 50}px`;\n\t\t\t\tchildRef.current.style.top = `${parentCenterY - childHeight / 2 + 15}px`;\n\t\t\t} else {\n\t\t\t\tchildRef.current.style.left = `${parentRef.current.getBoundingClientRect().right + 15}px`;\n\t\t\t\tchildRef.current.style.top = `${parentCenterY - childHeight / 2}px`;\n\t\t\t}\n\n\t\t\tif (additionalPositioning) {\n\t\t\t\tif (additionalPositioning.x !== 0) {\n\t\t\t\t\tchildRef.current.style.left = `${parseInt(childRef.current.style.left, 10) + additionalPositioning.x}px`;\n\t\t\t\t}\n\t\t\t\tif (additionalPositioning.y !== 0) {\n\t\t\t\t\tchildRef.current.style.top = `${parseInt(childRef.current.style.top, 10) + additionalPositioning.y}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [parentPosition, additionalPositioning, isArabic]);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{header}
\n\t\t\t\t\t{content ?
{content}
: null}\n\t\t\t\t
\n\t\t\t\t
{footer}
\n\t\t\t\t{arrow &&
}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default InfoModal;\n","import React, { useContext, useRef, useState, useEffect, RefObject, createRef } from 'react';\n\nimport { useHistory } from 'react-router';\n\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\n\nimport useSignalsAccessRestriction from '../../../../../utils/hooks/useSignalsAccessRestriction';\n\nimport statusStore from '../../../../../store/accountStatusStore';\n\nimport { IStatusConfigEnum } from '../../../../components/Permissions/config.types';\n\nimport { signalsBpKey, signalsBpVal } from '../../../../../setup/config';\n\nimport authStore from '../../../../../store/authStore';\n\nimport Button from '../../../../../shared/Button';\n\nimport InfoModal from '../../../../../components/InfoModal/InfoModal';\n\nimport Item from './Item';\n\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\n\nimport styles from './Signals.module.scss';\n\nconst Signals = () => {\n\tconst signalPopupRef = useRef(null);\n\tconst [openSignalPopup, setOpenSignalPopup] = useState(false);\n\tconst [parentRef, setParentRef] = useState>(createRef());\n\tconst { t } = useTranslation();\n\n\tconst permissions = statusStore((state: any) => state.permissions);\n\tconst hasLiveAccount = statusStore.use.hasLiveAccount();\n\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\tconst isSouthAfricaAccount = authStore.use.isSouthAfricaAccount();\n\tconst isFundedTrader = tradingAccountStore.use.isFundedTrader();\n\n\tconst signalsAction = permissions?.signalsAction;\n\tconst appContext = useContext(AppContext);\n\tconst isArabic = !!appContext.isArabic || !!(localStorage.getItem('language') === 'ar-SA');\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst history = useHistory();\n\n\tconst { data: isUserAllowedToAccessSignals, refetch } = useSignalsAccessRestriction({ enabled: false });\n\n\tuseEffect(() => {\n\t\tif (dashboardContext.marketItems !== undefined && dashboardContext.marketItems.length > 0) {\n\t\t\trefetch();\n\t\t}\n\t}, [dashboardContext.marketItems]);\n\n\tconst handlePreClick = async (): Promise => {\n\t\t// this is here so QA team can check the signals page on production\n\t\t// apparently we can't simulate transactions on Prod and whitelisting on the BE\n\t\t// is too hard\n\n\t\tif (signalsAction === undefined) {\n\t\t\tif (isUserAllowedToAccessSignals) return true;\n\t\t\treturn false;\n\t\t}\n\n\t\tif (localStorage.getItem(signalsBpKey) === signalsBpVal) return true;\n\n\t\tif (signalsAction === IStatusConfigEnum.balanceCheck) {\n\t\t\tif (isUserAllowedToAccessSignals) return true;\n\n\t\t\tconst { data: signalsAccessSecondCheck } = await refetch();\n\n\t\t\tif (signalsAccessSecondCheck) return true;\n\t\t}\n\n\t\tsetOpenSignalPopup(true);\n\t\tdocument.body.addEventListener('mousedown', (event: MouseEvent): void => {\n\t\t\tif (signalPopupRef.current && !signalPopupRef.current.contains(event.target as any)) {\n\t\t\t\tsetOpenSignalPopup(false);\n\t\t\t}\n\t\t});\n\n\t\treturn false;\n\t};\n\n\tconst handleSignalPopupCta = () => {\n\t\tif (signalsAction === undefined) {\n\t\t\tif (isUserAllowedToAccessSignals) return true;\n\t\t\treturn false;\n\t\t}\n\n\t\tif (signalsAction === IStatusConfigEnum.balanceCheck) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.Deposits;\n\t\t\thistory.push(Routes.trader.funds, { from: window.location.pathname });\n\t\t} else {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t\t}\n\t\tsetOpenSignalPopup(false);\n\t};\n\n\tif (isJapanAccount || isSouthAfricaAccount || isFundedTrader) return null;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t}\n\t\t\t\tpinned\n\t\t\t\ton=\"click\"\n\t\t\t\topen={openSignalPopup}\n\t\t\t\tposition={`${appContext.isArabic ? 'left' : 'right'} center`}\n\t\t\t\tcontent={<>}\n\t\t\t/>\n\t\t\t{openSignalPopup && (\n\t\t\t\t setOpenSignalPopup(false)}\n\t\t\t\t\tadditionalPositioning={{ x: -12.5, y: -5 }}\n\t\t\t\t\tarrow={isArabic ? 'right' : 'left'}\n\t\t\t\t\tparentRef={parentRef}\n\t\t\t\t\theader={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{hasLiveAccount ? t('wtr:UNLOCK_SIGNALS_TITLE_LIVE') : t('wtr:UNLOCK_SIGNALS_TITLE_DEMO')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\tcontent={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\tfooter={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setOpenSignalPopup(false)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default Signals;\n","import React from 'react';\n\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Button from '../../../../../shared/Button/Button';\n\nimport statusStore from '../../../../../store/accountStatusStore';\n\nimport { IStatusConfigEnum } from '../../../../components/Permissions/config.types';\n\nimport styles from './SignalsPopup.module.scss';\n\ninterface SignalsPopupProps {\n\thandleSignalPopupCta: () => void;\n\tsetOpenSignalPopup: (open: boolean) => void;\n\tsignalsAction: string;\n}\n\nconst SignalsPopup = React.forwardRef(\n\t({ setOpenSignalPopup, handleSignalPopupCta, signalsAction }: SignalsPopupProps, ref) => {\n\t\tconst { t } = useTranslation();\n\n\t\tconst hasLiveAccount = statusStore.use.hasLiveAccount();\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{hasLiveAccount ? t('wtr:UNLOCK_SIGNALS_TITLE_LIVE') : t('wtr:UNLOCK_SIGNALS_TITLE_DEMO')}\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t setOpenSignalPopup(false)}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n);\n\nexport default SignalsPopup;\n","import React from 'react';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { Item } from './';\n\nconst Calendar = () => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default Calendar;\n","import React, { useContext } from 'react';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useObservable from '../../../../../utils/hooks/useObservable';\nimport authStore, { AuthStore } from '../../../../../store/authStore';\nimport useForceRerender from '../../../../../utils/hooks/useForceRerender';\n\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport accountStatusStore, { StatusStore } from '../../../../../store/accountStatusStore';\n\nimport Routes from '../../../../../setup/routes';\nimport { IStatusConfigEnum } from '../../../../components/Permissions/config.types';\n\nimport { Item } from './';\n\nconst Management = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { isJapanAccount } = useContext(AppContext);\n\n\tconst permissions = accountStatusStore((store: StatusStore) => store.permissions);\n\tconst mainMenuAction = permissions?.mainMenuAction;\n\tconst portalPage = permissions?.portalPage;\n\tconst setShowAccountStatus = accountStatusStore((store: StatusStore) => store.setShowAccountStatus);\n\tconst isDemoMode = authStore((store: AuthStore) => store.isDemoMode);\n\tconst hasLiveAccount = accountStatusStore((store: StatusStore) => store.hasLiveAccount);\n\n\tlet component;\n\tlet route = Routes.trader.funds;\n\tconst forceRerender = useForceRerender();\n\tuseObservable(appContext.getPropertyChangeStream('accountStats'), () => forceRerender());\n\n\t// in case of JAPAN where should lead ???\n\n\tif (portalPage === IStatusConfigEnum.deposits) {\n\t\tcomponent = AppComponentType.Funds;\n\t\troute = Routes.trader.funds;\n\t} else if (portalPage === IStatusConfigEnum.fork) {\n\t\tcomponent = AppComponentType.CompleteOnboarding;\n\t\troute = Routes.trader.openAccount;\n\t} else if (portalPage === IStatusConfigEnum.relevantStep) {\n\t\tcomponent = AppComponentType.UploadDocuments;\n\t\troute = Routes.trader.uploadDocuments;\n\t} else if (portalPage === IStatusConfigEnum.statusPage) {\n\t\tcomponent = AppComponentType.Status;\n\t\troute = Routes.trader.status;\n\t} else if (isJapanAccount) {\n\t\tcomponent = AppComponentType.OpenAccount;\n\t\troute = Routes.trader.openAccount;\n\t}\n\n\tconst handleAccountClick = () => {\n\t\tif (portalPage === IStatusConfigEnum.accountStatus) {\n\t\t\tsetShowAccountStatus();\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\tif (isDemoMode) return null;\n\tif (isDemoMode && appContext.isJapanAccount && hasLiveAccount) return null;\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default Management;\n","import React, { useContext } from 'react';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport Routes from '../../../../../setup/routes';\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { Item } from './';\nimport authStore from '../../../../../store/authStore';\n\nconst Guide = () => {\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst handleClick = () => {\n\t\tif (isJapanAccount) {\n\t\t\tdashboardContext.userGuide = true;\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t};\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default Guide;\n","import { HistoryTick, PriceQuote, TradingPositionState } from '../../../gateways/RfpGateway/rfp.types';\nimport { TradingPositionSide, TradingPositionType } from '../../../utils/functions/enums';\nimport { GymTradingAccount } from '../Accounts/GymTradingAccount';\nimport { GymDataItemPlayer } from '../Player/GymDataItemPlayer';\n\nimport { GymPositionUtils } from './GymPositionUtils';\n\nimport { GymTradingPosition } from './GymTradingPosition';\n\nexport interface GymPositionManagerDelegate {\n\tpositionClosed?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionOpened?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionModified?(sender: GymPositionManager, position: GymTradingPosition, prevPosition: GymTradingPosition): void;\n\tpositionUpdated?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionDeleted?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionRestored?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionManagerMarginCall?(sender: GymPositionManager): void;\n}\n\nexport class GymPositionManager {\n\tprivate readonly account: GymTradingAccount;\n\tprivate player: GymDataItemPlayer;\n\tprivate delegates: Set = new Set();\n\n\tconstructor(account: GymTradingAccount, player: GymDataItemPlayer) {\n\t\tthis.account = account;\n\t\tthis.player = player;\n\t}\n\n\taddDelegate(delegate: GymPositionManagerDelegate) {\n\t\tthis.delegates.add(delegate);\n\t}\n\n\tremoveDelegate(delegate: GymPositionManagerDelegate) {\n\t\tthis.delegates.delete(delegate);\n\t}\n\n\t// private removeActivePositionWithId(positionId: number | undefined) {\n\t// \tconst index = this.account.activePositions.findIndex((position) => {\n\t// \t\treturn position.posId === positionId;\n\t// \t});\n\t// \tif (index) {\n\t// \t\tthis.account.activePositions.splice(index, 1);\n\t// \t}\n\t// }\n\n\t// removeActivePositionsAfterHistoryTick(dataItem: HistoryTick, priceQuote: PriceQuote, simulationId: string) {\n\t// \tconst feedId = dataItem.feedId;\n\t// \tconst code = dataItem.code;\n\t// \tconst shouldStoreAccountData = this.account.activePositions.length > 0;\n\t//\n\t// \tthis.account.activePositions.forEach((position) => {\n\t// \t\tif (position.posId && position.f === feedId && position.code === code && position.simulationId === simulationId) {\n\t// \t\t\tconst openTimeInMillis = position.oT ?? 0 * 1000;\n\t// \t\t\tif (openTimeInMillis > dataItem.closeTime) {\n\t// \t\t\t\tGymTradingPosition.removePositionStore(position.simulationId, position.posId);\n\t// \t\t\t\tthis.removeActivePositionWithId(position.posId);\n\t//\n\t// \t\t\t\tthis.account.calcUsedMargin();\n\t// \t\t\t\tthis.account.grossProfit = this.calcGrossProfit();\n\t//\n\t// \t\t\t\t// Notify delegate\n\t// \t\t\t\tthis.delegates.forEach((delegate) => {\n\t// \t\t\t\t\tdelegate.positionDeleted && delegate.positionDeleted(this, position);\n\t// \t\t\t\t});\n\t// \t\t\t} else {\n\t// \t\t\t\tposition.lastDataCloseTime = dataItem.closeTime;\n\t// \t\t\t\tposition.lastDataClosePrice = dataItem.close;\n\t//\n\t// \t\t\t\tposition.calcProfit(this.account, priceQuote, this.account.baseCurrency);\n\t//\n\t// \t\t\t\tGymTradingPosition.storePosition(position);\n\t//\n\t// \t\t\t\tthis.account.grossProfit = this.calcGrossProfit();\n\t//\n\t// \t\t\t\t//Notify delegate\n\t// \t\t\t\tthis.delegates.forEach((delegate) => {\n\t// \t\t\t\t\tdelegate.positionUpdated && delegate.positionUpdated(this, position);\n\t// \t\t\t\t});\n\t// \t\t\t}\n\t// \t\t}\n\t// \t});\n\t//\n\t// \tif (shouldStoreAccountData) {\n\t// \t\tthis.account.storeAccount();\n\t// \t}\n\t// }\n\n\tupdatePositions(dataItem: HistoryTick, priceQuote: PriceQuote, simulationId: string) {\n\t\tconst feedId = dataItem.feedId;\n\t\tconst code = dataItem.code;\n\n\t\tfor (let i = 0; i < this.account.activePositions.length; i++) {\n\t\t\tconst position = this.account.activePositions[i];\n\t\t\tif (position.f === feedId && position.code === code && position.simulationId === simulationId) {\n\t\t\t\tconst oldPosState = position.state;\n\n\t\t\t\tlet changed = false;\n\t\t\t\ttry {\n\t\t\t\t\tchanged = position.updatePosition(this.account, dataItem, priceQuote);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (position.state === TradingPositionState.deleted) {\n\t\t\t\t\t\tthis.account.activePositions.splice(i, 1);\n\n\t\t\t\t\t\t// Move back with one index\n\t\t\t\t\t\ti--;\n\n\t\t\t\t\t\t// Notify delegate\n\t\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\t\tdelegate.positionDeleted && delegate.positionDeleted(this, position);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// TODO GYM - present Alert\n\t\t\t\t\t\t//[Utilities showAlertView:getLocalizedString(@\"WARNING\", nil) message:exception.reason];\n\n\t\t\t\t\t\tthis.player.pause();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (changed) {\n\t\t\t\t\tif (position.state === TradingPositionState.closed) {\n\t\t\t\t\t\tthis.account.closedPositions.push(position);\n\t\t\t\t\t\tthis.account.activePositions.splice(i, 1);\n\n\t\t\t\t\t\t// Move back with one index\n\t\t\t\t\t\ti--;\n\n\t\t\t\t\t\tthis.account.calcUsedMargin();\n\t\t\t\t\t\tthis.account.balance += position.grossProfit;\n\t\t\t\t\t\tthis.account.grossProfit = this.calcGrossProfit();\n\n\t\t\t\t\t\tthis.account.storeAccount();\n\n\t\t\t\t\t\t// Notify delegate\n\t\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\t\tdelegate.positionClosed && delegate.positionClosed(this, position);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (oldPosState === TradingPositionState.pending && position.state === TradingPositionState.open) {\n\t\t\t\t\t\tthis.account.calcUsedMargin();\n\n\t\t\t\t\t\t// Notify delegate\n\t\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\t\tdelegate.positionOpened && delegate.positionOpened(this, position);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Notify delegate\n\t\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\t\tdelegate.positionUpdated && delegate.positionUpdated(this, position);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tGymTradingPosition.storePosition(position);\n\t\t\t\t\t// Notify delegate\n\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\tdelegate.positionUpdated && delegate.positionUpdated(this, position);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst grossProfit = this.calcGrossProfit();\n\t\tif (this.account.grossProfit !== grossProfit) {\n\t\t\tthis.account.grossProfit = grossProfit;\n\t\t\tthis.account.notifyAccountUpdate();\n\t\t}\n\t}\n\n\tvalidatePendingPosition(position: GymTradingPosition): boolean {\n\t\tif (isNaN(position.qty) || position.qty <= 0) {\n\t\t\tthrow Error('Position Amount is invalid!');\n\t\t}\n\n\t\tconst openPrice = position.prc;\n\t\tswitch (position.side) {\n\t\t\tcase TradingPositionSide.Buy: {\n\t\t\t\t// Check the position open price\n\t\t\t\tswitch (position.type) {\n\t\t\t\t\tcase TradingPositionType.Limit: {\n\t\t\t\t\t\tif (openPrice >= position.lastDataClosePrice) {\n\t\t\t\t\t\t\tthrow Error('Pending BUY LIMIT position - Open Price is invalid!');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase TradingPositionType.Stop: {\n\t\t\t\t\t\tif (openPrice <= position.lastDataClosePrice) {\n\t\t\t\t\t\t\tthrow Error('Pending BUY STOP position - Open Price is invalid!');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow Error('Pending position - tradeType is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Stop Loss must be lower than position price\n\t\t\t\tif (position.hasStopLoss() && position.sl >= openPrice) {\n\t\t\t\t\tthrow Error('Position Stop Loss is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Take Profit must be bigger than position price\n\t\t\t\tif (position.hasTakeProfit() && position.tp <= openPrice) {\n\t\t\t\t\tthrow Error('Position Take Profit is invalid!');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionSide.Sell: {\n\t\t\t\t// Check the position open price\n\t\t\t\tswitch (position.type) {\n\t\t\t\t\tcase TradingPositionType.Limit: {\n\t\t\t\t\t\tif (openPrice <= position.lastDataClosePrice) {\n\t\t\t\t\t\t\tthrow Error('Pending SELL LIMIT position - Open Price is invalid!');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase TradingPositionType.Stop: {\n\t\t\t\t\t\tif (openPrice >= position.lastDataClosePrice) {\n\t\t\t\t\t\t\tthrow Error('Pending SELL STOP position - Open Price is invalid!');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow Error('Pending position - Trade Type is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Stop Loss must be bigger than position price\n\t\t\t\tif (position.hasStopLoss() && position.sl <= openPrice) {\n\t\t\t\t\tthrow Error('Position Stop Loss is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Take Profit must be lower than position price\n\t\t\t\tif (position.hasTakeProfit() && position.tp >= openPrice) {\n\t\t\t\t\tthrow Error('Position Take Profit is invalid!');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tvalidateOpenPosition(position: GymTradingPosition): boolean {\n\t\tif (isNaN(position.qty) || position.qty <= 0) {\n\t\t\tthrow Error('Position Amount is invalid!');\n\t\t}\n\n\t\tswitch (position.side) {\n\t\t\tcase TradingPositionSide.Buy: {\n\t\t\t\t// Stop Loss must be lower than current price\n\t\t\t\tif (position.hasStopLoss() && position.sl >= position.lastDataClosePrice) {\n\t\t\t\t\tthrow Error('Position Stop Loss is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Take Profit must be bigger than current price\n\t\t\t\tif (position.hasTakeProfit() && position.tp <= position.lastDataClosePrice) {\n\t\t\t\t\tthrow Error('Position Take Profit is invalid!');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionSide.Sell: {\n\t\t\t\t// Stop Loss must be bigger than current price\n\t\t\t\tif (position.hasStopLoss() && position.sl <= position.lastDataClosePrice) {\n\t\t\t\t\tthrow Error('Position Stop Loss is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Take Profit must be lower than current price\n\t\t\t\tif (position.hasTakeProfit() && position.tp >= position.lastDataClosePrice) {\n\t\t\t\t\tthrow Error('Position Take Profit is invalid!');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (!GymPositionUtils.validateMargin(this.account, position)) {\n\t\t\tthrow Error('Position rejected. Insufficient Available Margin!');\n\t\t}\n\n\t\treturn true;\n\t}\n\n\trestorePosition(position: GymTradingPosition) {\n\t\tswitch (position.state) {\n\t\t\tcase TradingPositionState.pending:\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\t// Add it in active positions\n\t\t\t\tthis.account.activePositions.push(position);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.closed: {\n\t\t\t\t// Add in closed positions\n\t\t\t\tthis.account.closedPositions.push(position);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\t// Notify delegate\n\t\tthis.delegates.forEach((delegate) => {\n\t\t\tdelegate.positionRestored && delegate.positionRestored(this, position);\n\t\t});\n\t}\n\n\topenOrder(position: GymTradingPosition) {\n\t\t// Validation\n\t\tif (this.account.activePositions.findIndex((pos) => pos.posId === position.posId) !== -1) {\n\t\t\tthrow Error('Position is already opened');\n\t\t}\n\n\t\tswitch (position.state) {\n\t\t\tcase TradingPositionState.pending: {\n\t\t\t\tthis.validatePendingPosition(position);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\t// Set open price\n\t\t\t\tif (this.validateOpenPosition(position)) {\n\t\t\t\t\tposition.oT = position.lastDataCloseTime;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow Error('Invalid state for open position');\n\t\t}\n\n\t\t// Add it in active positions\n\t\tthis.account.activePositions.push(position);\n\n\t\tthis.account.calcUsedMargin();\n\n\t\tthis.account.grossProfit = this.calcGrossProfit();\n\n\t\tthis.account.storeAccount();\n\t\tGymTradingPosition.storePosition(position);\n\n\t\t// Notify delegate\n\t\tthis.delegates.forEach((delegate) => {\n\t\t\tdelegate.positionOpened && delegate.positionOpened(this, position);\n\t\t});\n\t}\n\n\tmodifyPosition(position: GymTradingPosition) {\n\t\tconst index = this.account.activePositions.findIndex((pos) => pos.posId === position.posId);\n\t\tif (index !== -1) {\n\t\t\tconst prevPosition = this.account.activePositions[index];\n\t\t\t// Validate\n\t\t\tswitch (position.state) {\n\t\t\t\tcase TradingPositionState.pending: {\n\t\t\t\t\tthis.validatePendingPosition(position);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase TradingPositionState.open: {\n\t\t\t\t\tthis.validateOpenPosition(position);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tthrow Error('Position has invalid state');\n\t\t\t}\n\n\t\t\tthis.account.activePositions[index] = position;\n\n\t\t\t// Notify delegate\n\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\tdelegate.positionModified && delegate.positionModified(this, position, prevPosition);\n\t\t\t});\n\n\t\t\tGymTradingPosition.storePosition(position);\n\t\t} else {\n\t\t\tthrow Error('Position is not active');\n\t\t}\n\t}\n\n\tpartialClosePosition(position: GymTradingPosition, quantity: number, dataItem: HistoryTick, priceQuote: PriceQuote) {\n\t\tif (position.posId) {\n\t\t\t// Create a copy of position with reduced quantity and close it\n\t\t\tconst posCopy = GymTradingPosition.restoreTradingPosition(position.simulationId, position.posId);\n\t\t\tif (posCopy) {\n\t\t\t\tposCopy.marketItem = position.marketItem;\n\t\t\t\tposCopy.posId = GymPositionUtils.generatePositionId();\n\t\t\t\tposCopy.qty = quantity;\n\n\t\t\t\tposCopy.updatePosition(this.account, dataItem, priceQuote);\n\n\t\t\t\t// reduce position quantity\n\t\t\t\tposition.qty -= quantity;\n\t\t\t\tposition.updatePosition(this.account, dataItem, priceQuote);\n\t\t\t\tGymTradingPosition.storePosition(position);\n\n\t\t\t\t//Notify delegate\n\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\tdelegate.positionOpened && delegate.positionOpened(this, position);\n\t\t\t\t});\n\n\t\t\t\tthis.closePosition(posCopy);\n\t\t\t}\n\t\t}\n\t}\n\n\tclosePosition(position: GymTradingPosition) {\n\t\t// Remove from active positions\n\t\tconst index = this.account.activePositions.findIndex((pos) => pos.posId === position.posId);\n\t\tif (index !== -1) {\n\t\t\tthis.account.activePositions.splice(index, 1);\n\t\t}\n\n\t\tswitch (position.state) {\n\t\t\tcase TradingPositionState.pending: {\n\t\t\t\tif(position.posId) {\n\t\t\t\t\tGymTradingPosition.removePositionStore(position.simulationId, position.posId);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\t// Marked as closed\n\t\t\t\tposition.cT = position.lastDataCloseTime;\n\t\t\t\tposition.cP = position.lastDataClosePrice;\n\t\t\t\tposition.setPositionInClosedState(this.account.baseCurrency);\n\t\t\t\tposition.state = TradingPositionState.closed;\n\t\t\t\t// Add in closed positions\n\t\t\t\tthis.account.closedPositions.push(position);\n\t\t\t\tGymTradingPosition.storePosition(position);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tconsole.log('Position has invalid state');\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.account.calcUsedMargin();\n\n\t\tthis.account.grossProfit = this.calcGrossProfit();\n\n\t\tif (position.state === TradingPositionState.closed) {\n\t\t\tthis.account.balance += position.grossProfit;\n\t\t}\n\n\t\tthis.account.storeAccount();\n\n\t\t// Notify delegate\n\t\tthis.delegates.forEach((delegate) => {\n\t\t\tdelegate.positionClosed && delegate.positionClosed(this, position);\n\t\t});\n\t}\n\n\tdeletePositionById(posId: number) {\n\t\tlet pos =\n\t\t\tthis.account.activePositions.find((pos) => pos.posId === posId) ??\n\t\t\tthis.account.closedPositions.find((pos) => pos.posId === posId);\n\t\tif (pos) {\n\t\t\tthis.deletePosition(pos);\n\t\t}\n\t}\n\n\tdeletePosition(position: GymTradingPosition) {\n\t\tif (position.posId) {\n\t\t\tif (position.state === TradingPositionState.closed) {\n\t\t\t\tconst index = this.account.closedPositions.findIndex((pos) => pos.posId === position.posId);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.account.closedPositions.splice(index, 1);\n\t\t\t} else {\n\t\t\t\tconst index = this.account.activePositions.findIndex((pos) => pos.posId === position.posId);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.account.activePositions.splice(index, 1);\n\t\t\t}\n\n\t\t\tthis.account.calcUsedMargin();\n\n\t\t\tif (!isNaN(position.grossProfit)) {\n\t\t\t\tif (position.state === TradingPositionState.closed) {\n\t\t\t\t\tthis.account.balance -= position.grossProfit;\n\t\t\t\t}\n\n\t\t\t\tthis.account.grossProfit = this.calcGrossProfit();\n\t\t\t}\n\n\t\t\tthis.account.storeAccount();\n\n\t\t\tGymTradingPosition.removePositionStore(position.simulationId, position.posId);\n\n\t\t\t// Notify delegate\n\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\tdelegate.positionDeleted && delegate.positionDeleted(this, position);\n\t\t\t});\n\t\t}\n\t}\n\n\tdeleteAllPositionsWithSimulationId(simulationId: string) {\n\t\tconst allPosition = [\n\t\t\t...this.account.activePositions.filter((value) => value.simulationId === simulationId),\n\t\t\t...this.account.closedPositions.filter((value) => value.simulationId === simulationId),\n\t\t];\n\t\tfor (let i = 0; i < allPosition.length; i++) {\n\t\t\tthis.deletePosition(allPosition[i]);\n\t\t}\n\t}\n\n\tdeleteAllPositions() {\n\t\tconst allPosition = [...this.account.activePositions, ...this.account.closedPositions];\n\t\tfor (let i = 0; i < allPosition.length; i++) {\n\t\t\tthis.deletePosition(allPosition[i]);\n\t\t}\n\t}\n\n\tcalcGrossProfit() {\n\t\tlet grossProfit = 0.0;\n\n\t\tthis.account.activePositions.forEach((position) => {\n\t\t\tif (position.grossProfit) {\n\t\t\t\tgrossProfit += position.grossProfit;\n\t\t\t}\n\t\t});\n\n\t\treturn grossProfit;\n\t}\n\n\tmarginCall() {\n\t\tconst shouldPresentLiquidationMsg = this.account.activePositions.length > 0;\n\t\tfor (let i = 0; i < this.account.activePositions.length; i++) {\n\t\t\tconst position = this.account.activePositions[i];\n\t\t\tif (position.state === TradingPositionState.open) {\n\t\t\t\tthis.closePosition(position);\n\t\t\t\tposition.comment = 'Margin Call';\n\t\t\t} else {\n\t\t\t\tthis.deletePosition(position);\n\t\t\t}\n\t\t\ti--;\n\t\t}\n\n\t\tthis.player.pause();\n\n\t\tif (shouldPresentLiquidationMsg) {\n\t\t\t// Notify delegate\n\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\tdelegate.positionManagerMarginCall && delegate.positionManagerMarginCall(this);\n\t\t\t});\n\t\t}\n\t}\n}\n","import {\n AccountMarketType,\n\tHistoryTick,\n\tMarketItem,\n\tPriceQuote,\n\tRFPDataObjectType,\n\tTradingAccount,\n\tTradingInstruments,\n\tTradingPositionState,\n} from '../../../gateways/RfpGateway/rfp.types';\nimport { MarginAccountType, TradingAccountType } from '../../../utils/functions/enums';\nimport { ITradersGymContext } from '../TradersGymContext';\nimport { GymPositionManager } from '../Positions/GymPositionManager';\nimport { GymTradingPosition } from '../Positions/GymTradingPosition';\nimport { GymDataItemPlayer } from '../Player/GymDataItemPlayer';\nimport {calculateMarginLevel} from \"../../../utils/functions/calculations\";\n\nexport class GymTradingAccount implements TradingAccount {\n\tid: number;\n\taccountType: TradingAccountType = TradingAccountType.GYM;\n\tbaseCurrency: string;\n\tcredit: number = 0;\n\tnetProfit: number = 0; // Not be used for GYM\n\tleverage: number;\n\tpreferredFeed: string = 'VTFeed';\n\tproviderAccountId: string = '';\n\taccountNumber?: number = undefined;\n\tproviderId: number = 0;\n\tisLoggedIn: boolean = true;\n\tusedMargin: number = 0;\n\tmarginCalculationType?: number | undefined;\n\tval?: MarketItem | undefined;\n\ttradingInstruments?: TradingInstruments | undefined;\n\taccountMarketType: AccountMarketType;\n\n\tprivate _balance: number = NaN;\n\tprivate _grossProfit: number = 0;\n\n\t// in the rest of the application the trading positions were reworked to\n\t// be dicts with position.postId used as keys;\n\t// this is not needed to be done here right now but would be nice to be done here as well\n\t// for consistency\n\tactivePositions: GymTradingPosition[] = [];\n\tclosedPositions: GymTradingPosition[] = [];\n\n\tisJapanAccount: boolean = false;\n\tenabled: boolean = true;\n\tdataObjectType = RFPDataObjectType.TradingAccount;\n\n\tpositionManager: GymPositionManager;\n\n\tconstructor(\n\t\tid: number,\n\t\tbaseCurrency: string,\n\t\tdeposit: number,\n\t\tleverage: number,\n\t\ttradingInstruments: TradingInstruments | undefined,\n\t\taccountMarketType: AccountMarketType,\n\t) {\n\t\tthis.id = id;\n\t\tthis.providerAccountId = `${id}`;\n\t\tthis.accountNumber = +id;\n\t\tthis.baseCurrency = baseCurrency;\n\t\tthis.balance = deposit;\n\t\tthis.leverage = leverage;\n\t\tthis.tradingInstruments = tradingInstruments;\n\t\tthis.accountMarketType = accountMarketType;\n\n\t\tif (baseCurrency === 'JPY') {\n\t\t\tthis.isJapanAccount = true;\n\t\t\tthis.marginCalculationType = MarginAccountType.Japan;\n\t\t} else {\n\t\t\tthis.marginCalculationType = MarginAccountType.Unhedged;\n\t\t}\n\n\t\tthis.positionManager = new GymPositionManager(this, GymDataItemPlayer.sharedInstance());\n\t}\n\n\tpublic get balance(): number {\n\t\treturn this._balance;\n\t}\n\n\tpublic set balance(value: number) {\n\t\tthis._balance = value < 0 ? 0 : value;\n\t}\n\n\tpublic get equity(): number {\n\t\treturn this.grossProfit + this.balance;\n\t}\n\n\tpublic get freeMargin(): number {\n\t\treturn this.equity - this.usedMargin;\n\t}\n\n\tpublic get grossProfit(): number {\n\t\treturn this._grossProfit;\n\t}\n\n\tpublic set grossProfit(value: number) {\n\t\tthis._grossProfit = value;\n\t\tthis.netProfit = value;\n\t}\n\n\tpublic get marginLevel(): number {\n\t\treturn calculateMarginLevel({equity: this.equity, usedMargin: this.usedMargin});\n\t}\n\n\tupdatePositions(dataItem: HistoryTick, priceQuote: PriceQuote, simulationId: string) {\n\t\tthis.positionManager.updatePositions(dataItem, priceQuote, simulationId);\n\t\tthis.checkForMarginCall();\n\t}\n\n\tcheckForMarginCall() {\n\t\tif (this.freeMargin <= 0) {\n\t\t\tthis.positionManager.marginCall();\n\t\t}\n\t}\n\n\tnotifyAccountUpdate() {\n\t\t// Send event to remove all components from presenter\n\t\tconst event = new CustomEvent('gymTradingAccountUpdated');\n\t\tdocument.dispatchEvent(event);\n\n\t\tthis.storeAccount();\n\t}\n\n\tcalcUsedMargin() {\n\t\tlet marginSum = 0;\n\t\tthis.activePositions.forEach((position) => {\n\t\t\tif (position.state === TradingPositionState.open) {\n\t\t\t\tif (position.oP && !isNaN(position.oP)) {\n\t\t\t\t\tconst positionUsedMargin = position.calcUsedMargin(this);\n\t\t\t\t\tif (!isNaN(positionUsedMargin)) {\n\t\t\t\t\t\tmarginSum += positionUsedMargin;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.usedMargin = marginSum;\n\t}\n\n\tprivate static buildKey(id: number, accountMarketType: AccountMarketType) {\n\t\treturn `tradersGym_account_${id}_${accountMarketType}`;\n\t}\n\n\tprivate static ignoreProps(this: any, key: any, value: any) {\n\t\treturn (['tradingInstruments', 'activePositions', 'closedPositions', 'positionManager'].indexOf(key) > -1) ? undefined : value;\n\t}\n\n\tstoreAccount() {\n\t\tif (localStorage) {\n\t\t\tlocalStorage.setItem(GymTradingAccount.buildKey(this.id, this.accountMarketType), JSON.stringify(this, GymTradingAccount.ignoreProps));\n\t\t}\n\t}\n\n\tstatic restoreAccount(id: number, accountMarketType: AccountMarketType): GymTradingAccount | undefined {\n\t\tif (localStorage) {\n\t\t\tconst accountData = localStorage.getItem(GymTradingAccount.buildKey(id, accountMarketType));\n\t\t\tif (accountData) {\n\t\t\t\tconst account = JSON.parse(accountData);\n\t\t\t\tif (account) {\n\t\t\t\t\tconst copyAccount = new GymTradingAccount(\n\t\t\t\t\t\taccount.id,\n\t\t\t\t\t\taccount.baseCurrency,\n\t\t\t\t\t\taccount.deposit,\n\t\t\t\t\t\taccount.leverage,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\taccount.accountMarketType\n\t\t\t\t\t);\n\t\t\t\t\tObject.assign(copyAccount, account);\n\n\t\t\t\t\treturn copyAccount;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Will remove all simulations and positions\n\t * @param tradersGymContext Gym context\n\t */\n\tresetAccount(tradersGymContext: ITradersGymContext) {\n\t\tif (localStorage) {\n\t\t\t// Remove simulations\n\t\t\tif (tradersGymContext.simulationsManager) {\n\t\t\t\ttradersGymContext.simulationsManager.removeAllSimulations();\n\t\t\t}\n\n\t\t\t// Remove selected simulation\n\t\t\ttradersGymContext.lastHistoryTick = undefined;\n\t\t\ttradersGymContext.priceQuote = undefined;\n\t\t\ttradersGymContext.simulation = undefined;\n\n\t\t\t// Delete all positions\n\t\t\tthis.positionManager.deleteAllPositions();\n\t\t}\n\t}\n\n\t// Memory management\n\tdestroy() {}\n}\n","import {AccountMarketType, TradingInstruments} from '../../../gateways/RfpGateway/rfp.types';\n\nimport { GymTradingAccount } from './GymTradingAccount';\n\nexport class GymAccountUtils {\n\tprivate static defaultLeverage = 0.0025; // Leverage: value:0.0025 code:@\"1:400\"\n\n\tstatic createAccount(\n\t\temailId: number,\n\t\tcurrency: string,\n\t\tdeposit: number,\n\t\ttradingInstruments: TradingInstruments | undefined,\n\t\taccountMarketType: AccountMarketType,\n\t\tleverage: number = this.defaultLeverage,\n\t) {\n\n\t\treturn new GymTradingAccount(emailId, currency, deposit, leverage, tradingInstruments, accountMarketType);\n\t}\n\n\tstatic convertEmailToId(email: string) {\n\t\tvar emailId = 0,\n\t\t\ti,\n\t\t\tchr;\n\t\tif (email.length === 0) return emailId;\n\t\tfor (i = 0; i < email.length; i++) {\n\t\t\tchr = email.charCodeAt(i);\n\t\t\temailId = (emailId << 5) - emailId + chr;\n\t\t\temailId |= 0; // Convert to 32bit integer\n\t\t}\n\t\treturn emailId;\n\t}\n}\n","import { useContext, useEffect, useMemo } from 'react';\n\nimport statusStore, { StatusStore } from '../../store/accountStatusStore';\n\nimport AppContext from '../../contexts/AppContext';\nimport { TIERS_WITH_GYM_ACCESS } from '../../setup/subscriptionsConfig';\nimport { SubscriptionTier } from '../functions/subscriptionUtils';\n\nimport { GymAccountUtils } from '../../pages/TradersGym/Accounts/GymAccountUtils';\nimport { GymTradingAccount } from '../../pages/TradersGym/Accounts/GymTradingAccount';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport { TradersGymContext, TradersGymContextType } from '../../pages/TradersGym/TradersGymContext';\nimport authStore from '../../store/authStore';\nimport tradingAccountStore from '../../store/tradingAccountStore';\nimport useSelectedTradingAccount from \"./useSelectedTradingAccount\";\n\nconst useEnableTradersGym = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst appContext = useContext(AppContext);\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst permissions = statusStore((state: StatusStore) => state.permissions);\n\tconst tradersGym = permissions?.tradersGym;\n\tconst { setGymProps } = gymContext;\n\tconst setIsTradeGymActive = statusStore.use.setIsTraderGymActive();\n\tconst setUnlockGym = statusStore.use.setUnlockGym();\n\tconst userProfile = authStore.use.userProfile();\n\tconst email = appContext.email ?? userProfile.email;\n\tconst isFundedTrader = tradingAccountStore.use.isFundedTrader();\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst { tradersGymContext } = gymContext;\n\n\tuseEffect(() => {\n\t\tif (tradersGymContext.isActive) {\n\t\t\tcanEnableTradersGym(true);\n\t\t}\n\t}, [selectedTradingAccount?.id]);\n\n\t// skipJapanTierValidation when the Gym is already active, because the access was granted by the Spread Account,\n\t// but not for the right navigation menu, this behavior will be updated once Japan team decide\n\t// https://thinkmarkets.atlassian.net/browse/WTR-4914\n\tconst canEnableTradersGym = (skipJapanTierValidation?: boolean) => {\n\t\tif (!email || !selectedTradingAccount) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst account = dashboardContext.tradingAccount.find(acc => acc.id === selectedTradingAccount.id);\n\n\t\tif (account && (isFundedTrader || tradersGym === true)) {\n\t\t\tif (!skipJapanTierValidation && isJapanSubscriptionAccount && !TIERS_WITH_GYM_ACCESS.includes(appContext.subscriptionInfo?.tier as SubscriptionTier)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst emailId = GymAccountUtils.convertEmailToId(`${email}_${account.accountMarketType}`);\n\t\t\tlet gymAccount = GymTradingAccount.restoreAccount(emailId, account.accountMarketType);\n\n\t\t\tif (!gymAccount) {\n\t\t\t\tconst accountBalance = userProfile?.country?.demoBalance ?? 30000;\n\t\t\t\tgymAccount = GymAccountUtils.createAccount(\n\t\t\t\t\temailId,\n\t\t\t\t\taccount.baseCurrency,\n\t\t\t\t\taccountBalance,\n\t\t\t\t\taccount.tradingInstruments,\n\t\t\t\t\taccount.accountMarketType\n\t\t\t\t);\n\n\t\t\t\tgymAccount.storeAccount();\n\t\t\t} else {\n\t\t\t\t// If you click too early on the gym button,\n\t\t\t\t// the account is not yet created and the app throws the following error - undefined tradingInstruments\n\t\t\t\t// So we need to check if the account is created and then set the tradingInstruments\n\t\t\t\tif (account) {\n\t\t\t\t\tgymAccount.tradingInstruments = account.tradingInstruments;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetGymProps({ isActive: true, gymTradingAccount: gymAccount });\n\t\t\tsetIsTradeGymActive(true);\n\t\t\treturn true;\n\t\t} else {\n\t\t\tsetUnlockGym(true);\n\t\t\treturn false;\n\t\t}\n\t};\n\n\treturn canEnableTradersGym;\n};\n\nexport default useEnableTradersGym;\n","import React, { useContext, useRef, useState, RefObject, createRef } from 'react';\n\nimport { useHistory } from 'react-router-dom';\n\nimport { useTranslation, Trans } from 'react-i18next';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useEnableTradersGym from '../../../../../utils/hooks/useEnableTradersGym';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\n\nimport Button from '../../../../../shared/Button';\n\nimport InfoModal from '../../../../../components/InfoModal/InfoModal';\n\nimport styles from './Signals.module.scss';\n\nimport { Item } from './';\nimport accountStatusStore from '../../../../../store/accountStatusStore';\n\nconst TradersGym = () => {\n\tconst appContext = useContext(AppContext);\n\tconst traderGymPopupRef = useRef(null);\n\tconst [openTradersGymPopup, setOpenTradersGymPopup] = useState(false);\n\tconst enableTradersGym = useEnableTradersGym();\n\tconst setUnlockGym = accountStatusStore.use.setUnlockGym();\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst history = useHistory();\n\tconst [parentRef, setParentRef] = useState>(createRef());\n\tconst { t } = useTranslation();\n\tconst isArabic = appContext.isArabic || localStorage.getItem('language') === 'ar-SA';\n\n\tconst handlePreClick = (): boolean => {\n\t\t// wait until live application status is read:\n\t\t// undefined = nodata, false - has incomplete application; true - has live account\n\n\t\tif (enableTradersGym()) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\tsetOpenTradersGymPopup(true);\n\t\t\tdocument.body.addEventListener('mousedown', (event: MouseEvent): void => {\n\t\t\t\tif (traderGymPopupRef.current && !traderGymPopupRef.current.contains(event.target as any)) {\n\t\t\t\t\tcloseTradersGymPopup();\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst handleTradersGymPopupCta = () => {\n\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t\tsetOpenTradersGymPopup(false);\n\t};\n\n\tconst closeTradersGymPopup = () => {\n\t\tsetOpenTradersGymPopup(false);\n\t\tsetUnlockGym(false);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t}\n\t\t\t\topen={openTradersGymPopup}\n\t\t\t\tcontent={<>}\n\t\t\t/>\n\t\t\t{openTradersGymPopup && (\n\t\t\t\t{t('wtr:UNLOCK_TRADERS_GYM')}}\n\t\t\t\t\tcontent={}\n\t\t\t\t\tfooter={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default TradersGym;\n","import React from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport cn from 'classnames';\n\nimport styles from './WtrToggle.module.scss';\n\ninterface WtrToggleProps {\n\tonChange: () => void;\n\ticon: IconProp;\n\tisActive: boolean;\n\tid: string;\n\tactiveBackgroundStyling?: boolean;\n\tposition?: 'vertical' | 'horizontal';\n\tsize?: 'sm' | 'md';\n}\n\n/**\n * Custom toggle component :)\n * @param onChange onChange event\n * @param icon Semantic ui icon array\n * @param activeBackgroundStyling Color the toggle with the main color (topaz)\n * @param position The layout of the toggle - if no position is specified it will fallback to vertical\n * @param size Sizing of the toggle - sm / md (if no size is specified it will fallback to md)\n */\nconst WtrToggle = ({\n\tonChange,\n\ticon,\n\tisActive,\n\tid,\n\tactiveBackgroundStyling = false,\n\tposition = 'vertical',\n\tsize = 'md',\n}: WtrToggleProps) => {\n\tconst horizontalStyling = position === 'horizontal' && styles.horizontal;\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default WtrToggle;\n","import React, { useState, useContext } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { TThemeSetting } from '../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useObservable from '../../../../../utils/hooks/useObservable';\n\nimport WtrTooltip from '../../../../../shared/WtrTooltip/WtrTooltip';\n\nimport WtrToggle from '../../../../../shared/WtrToggle/WtrToggle';\nimport useSaveUserPreferences from '../../../../../utils/mutations/useSaveUserPreferences';\n\nconst ThemeToggle = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => {\n\t\tsetTheme(appContext.appTheme);\n\t});\n\n\tconst [theme, setTheme] = useState(appContext.appTheme);\n\tconst isDarkTheme = theme === 'dark';\n\n\tconst handleClick = async () => {\n\t\tlet inverted = 'dark';\n\t\tlet invertedSetting: TThemeSetting = { _type: 'Dark' };\n\n\t\tif (isDarkTheme) {\n\t\t\tinverted = 'light';\n\t\t\tinvertedSetting = { _type: 'Light' };\n\t\t}\n\t\tsetTheme(inverted);\n\t\tappContext.appTheme = inverted;\n\t\tappContext.userPreferences!.user_prefs.platform.theme = invertedSetting;\n\n\t\tsavePreferences();\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default ThemeToggle;\n","import React, { RefObject, useCallback, useContext, useRef, useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { forceCloseModal } from '../../../../../utils/hooks/useForceCloseModal';\n\nimport AppContext from '../../../../../contexts/AppContext';\n// import DashboardContext from '../../../../../contexts/DashboardContext';\n// import usePromiseFactory from '../../../../../utils/hooks/usePromiseFactory';\n// import useForceRerender from '../../../../../utils/hooks/useForceRerender';\n// import useObservable from '../../../../../utils/hooks/useObservable';\nimport Button from '../../../../../shared/Button';\n\nimport WtrTooltip from '../../../../../shared/WtrTooltip/WtrTooltip';\n\nimport WtrToggle from '../../../../../shared/WtrToggle/WtrToggle';\n\nimport useSaveUserPreferences from '../../../../../utils/mutations/useSaveUserPreferences';\n\nimport InfoModal from '../../../../../components/InfoModal/InfoModal';\n\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\n\nimport styles from './OneClickTradingToggle.module.scss';\n\nconst OneClickTradingToggle = () => {\n\tconst appContext = useContext(AppContext);\n\t// const dashboardContext = useContext(DashboardContext);\n\tconst parentRef: RefObject = useRef(null);\n\tconst isArabic = appContext.isArabic || localStorage.getItem('language') === 'ar-SA';\n\t// const promiseFactory = usePromiseFactory();\n\t// const forceRerender = useForceRerender();\n\n\tconst isOneClickTradingActive = tradingAccountStore.use.isOneClickTradingActive();\n\tconst setIsOneClickTradingActive = tradingAccountStore.use.setIsOneClickTradingActive();\n\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\tconst { t } = useTranslation();\n\n\tconst [openActivateModal, setOpenActivateModal] = useState(false);\n\n\t// const oneClickTrading = dashboardContext.oneClickTrading;\n\n\t// useObservable(dashboardContext.getPropertyChangeStream('oneClickTrading'), () => {\n\t// \tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t// \t\tforceRerender();\n\t// \t});\n\t// });\n\n\tconst handleClick = () => {\n\t\tif (!isOneClickTradingActive) {\n\t\t\tsetOpenActivateModal(true);\n\t\t} else {\n\t\t\tupdateOneClickTrading();\n\t\t}\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetOpenActivateModal(false);\n\t\tforceCloseModal('fade modal');\n\t};\n\n\tconst handleActivate = () => {\n\t\tupdateOneClickTrading();\n\t\tsetOpenActivateModal(false);\n\t\tforceCloseModal('fade modal');\n\t};\n\n\tconst updateOneClickTrading = useCallback(() => {\n\t\tappContext.userPreferences!.user_prefs.trading.settings.cfd!._mode = !isOneClickTradingActive\n\t\t\t? '1-Click'\n\t\t\t: 'Regular';\n\n\t\tsetIsOneClickTradingActive(!isOneClickTradingActive);\n\t\tsavePreferences();\n\t}, [setIsOneClickTradingActive, isOneClickTradingActive, savePreferences]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{openActivateModal && (\n\t\t\t\t setOpenActivateModal(false)}\n\t\t\t\t\tarrow={isArabic ? 'right' : 'left'}\n\t\t\t\t\tparentRef={parentRef}\n\t\t\t\t\theader={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('en:ONE_CLICK_TRADING_CONFIG_ACTIVE')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\tfooter={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default OneClickTradingToggle;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport AppContext from '../../../../contexts/AppContext';\nimport DashboardContext from '../../../../contexts/DashboardContext';\nimport useForceRerender from '../../../../utils/hooks/useForceRerender';\nimport useObservable from '../../../../utils/hooks/useObservable';\n\nimport useWindowSize from '../../../../utils/hooks/useWindowSize';\nimport Routes from '../../../../setup/routes';\nimport LiveChat from '../../../../shared/LiveChat';\nimport { TradersGymContext, TradersGymContextType } from '../../../../pages/TradersGym/TradersGymContext';\nimport { AppComponentType, ApplicationStatus } from '../../../../utils/functions/enums';\nimport { IStatusConfigEnum } from '../../../components/Permissions/config.types';\nimport authStore from '../../../../store/authStore';\nimport accountStatusStore, { StatusStore } from '../../../../store/accountStatusStore';\nimport { updateDocumentTitle } from '../../../../utils/functions/documentUtils';\n\nimport { Calendar, Guide, Management, Markets, Signals, Trade, TradersGym } from './Items';\nimport styles from './Navigation.module.scss';\nimport { OneClickTradingToggle, ThemeToggle } from './IconToggles';\nimport tradingAccountStore from '../../../../store/tradingAccountStore';\n\nconst Navigation = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst gymContext = useContext(TradersGymContext);\n\tconst { tradersGymContext, setGymProps } = gymContext as TradersGymContextType;\n\tconst permissions = accountStatusStore((store: StatusStore) => store.permissions);\n\tconst hasLiveAccount = accountStatusStore.use.hasLiveAccount();\n\tconst status = accountStatusStore.use.status();\n\tconst portalPage = permissions?.portalPage;\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\tconst isFundedTrader = tradingAccountStore.use.isFundedTrader();\n\n\tconst forceRerender = useForceRerender();\n\tconst windowSize = useWindowSize();\n\tconst history = useHistory();\n\tconst location = history.location;\n\tconst [helpOpen, setHelpOpen] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst isDemoMode = authStore.use.isDemoMode();\n\tconst isLiveMode = authStore.use.isLiveMode();\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => forceRerender());\n\tuseObservable(\n\t\tdashboardContext.getPropertyChangeStream('presentComponentType'),\n\t\t() => windowSize.height <= 620 && forceRerender()\n\t);\n\n\tuseEffect(() => {\n\t\tif (location.pathname === Routes.trader.charts && windowSize.width >= 1024) {\n\t\t\thistory.push(Routes.trader.watchlist);\n\t\t}\n\t}, [windowSize]);\n\n\t// Updated only to change the page title temporal\n\t// UNFORTUNATELY, In order for the back and forward browser buttons to work we need to implement this useEffect\n\t// Should refactor this in the future!!!\n\tuseEffect(() => {\n\t\tif (portalPage === undefined) return;\n\t\tconst location = window.location.pathname;\n\t\tlet pageTitlePrefix = '';\n\t\tdashboardContext.closeAllOtherTabs();\n\n\t\tif (location !== Routes.trader.tradersGym) {\n\t\t\tsetGymProps({ isActive: false });\n\t\t}\n\n\t\tswitch (location) {\n\t\t\tcase Routes.trader.watchlist:\n\t\t\t\tpageTitlePrefix = 'en:Trade';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Watchlist;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.markets:\n\t\t\t\tpageTitlePrefix = 'wtr:MARKETS';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Markets;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.signals:\n\t\t\t\tpageTitlePrefix = 'wtr:SIGNALS';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Signals;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.calendar:\n\t\t\t\tpageTitlePrefix = 'en:NAVIGATION_CALENDAR';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Calendar;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.openAccount:\n\t\t\t\tpageTitlePrefix = 'en:OPEN_LIVE_ACCOUNT';\n\n\t\t\t\tif (isDemoMode || isJapanAccount || (hasLiveAccount && status === ApplicationStatus.APPROVED) || (isLiveMode && !hasLiveAccount)) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\t\t\t} else {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.CompleteOnboarding;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase Routes.trader.funds:\n\t\t\t\tpageTitlePrefix = 'wtr:LEFT_NAV_FUNDS';\n\n\t\t\t\tlet route = Routes.trader.funds;\n\n\t\t\t\tif (portalPage === IStatusConfigEnum.deposits) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Funds;\n\t\t\t\t\troute = Routes.trader.funds;\n\t\t\t\t} else if (portalPage === IStatusConfigEnum.fork) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.CompleteOnboarding;\n\t\t\t\t\troute = Routes.trader.openAccount;\n\t\t\t\t} else if (portalPage === IStatusConfigEnum.relevantStep) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.UploadDocuments;\n\t\t\t\t\troute = Routes.trader.uploadDocuments;\n\t\t\t\t} else if (portalPage === IStatusConfigEnum.statusPage) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Status;\n\t\t\t\t\troute = Routes.trader.status;\n\t\t\t\t} else if (isJapanAccount) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\t\t\t\troute = Routes.trader.openAccount;\n\t\t\t\t}\n\n\t\t\t\thistory.replace(route);\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.tradersGym:\n\t\t\t\tpageTitlePrefix = 'en:MORE_SWITCH_GYM';\n\n\t\t\t\tsetGymProps({ isActive: true });\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.TradersGym;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.tutorials:\n\t\t\t\tpageTitlePrefix = appContext.isJapanAccount ? 'en:USER_GUIDE' : 'Think Academy';\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Tutorials;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.reports:\n\t\t\t\tpageTitlePrefix = 'en:REPORTS';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Reports;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpageTitlePrefix = 'en:Trade';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Watchlist;\n\t\t}\n\n\t\tupdateDocumentTitle(t(pageTitlePrefix));\n\t}, [window.location.pathname, portalPage]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{!helpOpen && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!tradersGymContext.isActive && }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{!isFundedTrader && setHelpOpen(isOpen)} menuStyle=\"vertical\" />}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default Navigation;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { Optional } from '../../utils/functions/Nullable';\nimport { stripHtmlTags } from '../../utils/functions/stripHtmlTags';\nimport uniqueId from '../../utils/functions/uniqueId';\n\nimport styles from './Checkbox.module.scss';\n\ninterface CheckboxProps {\n\tisChecked: boolean;\n\tonChange: (e: React.ChangeEvent) => void;\n\tlabelContents?: Optional;\n\tisLabelContentsInteractive?: boolean;\n\tcheckedValue?: Optional;\n\tid?: Optional;\n}\n\nconst Checkbox = ({\n\tisChecked,\n\tonChange,\n\tlabelContents,\n\tcheckedValue,\n\tisLabelContentsInteractive,\n\tid,\n}: CheckboxProps) => {\n\tconst checkboxId = id || uniqueId();\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default Checkbox;\n","export const stripHtmlTags = (htmlString: string) => htmlString.replace(/(<([^>]+)>)/gi, '');\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styles from './Carousel.module.scss';\nimport cn from 'classnames';\nimport { formatNumberWithCommas } from '../../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\nimport AppContext from '../../../contexts/AppContext';\n\ninterface CarouselProps {\n\tselectedTierInfo: any;\n\tonMoreDetails: () => void;\n}\n\nconst Carousel = ({ selectedTierInfo, onMoreDetails }: CarouselProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\n\tconst [currentIndex, setCurrentIndex] = useState(0);\n\n\tconst tierPerks = ['currencyPairs', 'monthlyAmount', 'minPerOrder', 'maxPerOrder', 'maxPosition'];\n\tconst tierPerksTranslations = [\n\t\tt('wtr:TIER_CURRENCY_PAIRS'),\n\t\tt('wtr:TIER_MONTHLY_AMOUNT'),\n\t\tt('wtr:TIER_MIN_PER_ORDER'),\n\t\tt('wtr:TIER_MAX_PER_ORDER'),\n\t\tt('wtr:TIER_MAX_POSITION'),\n\t];\n\n\tconst CURRENCY_INDEX_IN_ARRAY = 0;\n\tconst carouselData = tierPerks.map((item) => selectedTierInfo[item]);\n\tconst isCurrencySlide = currentIndex === CURRENCY_INDEX_IN_ARRAY;\n\n\tconst scrollCarousel = () => {\n\t\tif (currentIndex === carouselData.length - 1) {\n\t\t\treturn setCurrentIndex(0);\n\t\t}\n\t\treturn setCurrentIndex((prevState) => prevState + 1);\n\t};\n\n\tuseEffect(() => {\n\t\tconst interval = setInterval(() => scrollCarousel(), 5000);\n\n\t\treturn () => clearInterval(interval);\n\t});\n\n\tconst handleCarouselClick = (key: number) => {\n\t\tif (key === currentIndex) return;\n\n\t\tsetCurrentIndex(key);\n\t};\n\n\tconst perkValue = carouselData[currentIndex];\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{isNaN(parseInt(perkValue)) ? perkValue : formatNumberWithCommas(perkValue, 0, appContext.languageSettings)}{' '}\n\t\t\t\t{tierPerksTranslations[currentIndex]}\n\t\t\t\n\t\t\t{isCurrencySlide &&\n\t\t\t\t(selectedTierInfo.id !== 'Tier1' ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{t('wtr:VIEW_DETAILS')}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t
{selectedTierInfo.instruments.join('、')}
\n\t\t\t\t))}\n\t\t\t
\n\t\t\t\t{carouselData.map((_item, key) => (\n\t\t\t\t\t handleCarouselClick(key)}\n\t\t\t\t\t\tclassName={cn(styles.carouselDot, currentIndex === key && styles.active)}\n\t\t\t\t\t>
\n\t\t\t\t))}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default Carousel;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useContext } from 'react';\nimport Modal from '../../../shared/Modal';\nimport styles from './CurrencyDetails.module.scss';\nimport cn from 'classnames';\nimport { Tier } from '../../../utils/functions/subscriptionUtils';\nimport { useTranslation } from 'react-i18next';\nimport { generateFXMaxPositionTable, generateFXMaxPositionArray } from '../../../utils/functions/currencyPairsUtils';\n\nimport AppContext from '../../../contexts/AppContext';\n\ninterface ICurrencyDetails {\n\tisOpen: boolean;\n\tonGoBack: () => void;\n\tselectedTierInfo: Tier;\n\ttiers: Tier[];\n\t// children: React.ReactNode;\n}\n\nconst CurrencyDetails = ({ isOpen, onGoBack, selectedTierInfo, tiers }: ICurrencyDetails) => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tlet result: Record = {};\n\tif (selectedTierInfo) {\n\t\tselectedTierInfo.instruments.forEach((item: string) => {\n\t\t\tlet prefix = item.substring(0, item.indexOf('/'));\n\t\t\tif (!result[prefix]) {\n\t\t\t\tresult[prefix] = [];\n\t\t\t}\n\n\t\t\tresult[prefix].push(item);\n\t\t});\n\t}\n\n\tconst tableHTML = () => {\n\t\tconst inputData = selectedTierInfo.maxOpenInstrumentPosition;\n\t\treturn generateFXMaxPositionTable(generateFXMaxPositionArray(inputData), t, appContext.languageSettings);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t onGoBack()} />\n\t\t\t\t\t
\n\t\t\t\t\t
{`${t(`wtr:${selectedTierInfo?.key}`)} ${t(\n\t\t\t\t\t\t'wtr:TRADABLE_CURRENCY_PAIRS'\n\t\t\t\t\t)}`}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default CurrencyDetails;\n","import { formatNumberWithCommas } from '../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nexport const generateFXMaxPositionArray = (inputData: any) => {\n\tif (!inputData) {\n\t\treturn null;\n\t}\n\n\tconst arr: any = [];\n\tObject.entries(inputData).forEach(([fxPair, value]) => {\n\t\tconst [leadCurrency, secondaryCurrency] = fxPair.split('/');\n\t\tconst pairLimit = [leadCurrency + secondaryCurrency, value];\n\n\t\tconst existingLeadEntry = arr.find((element: any) => element.leadCurrency === leadCurrency);\n\t\tif (existingLeadEntry) {\n\t\t\texistingLeadEntry.limits.push(pairLimit);\n\t\t} else {\n\t\t\tarr.push({ leadCurrency: leadCurrency, limits: [pairLimit] });\n\t\t}\n\t});\n\n\treturn arr;\n};\n\nexport const generateFXMaxPositionTable = (array: any, translationFunc: any, language: string) => {\n\tif (!array) {\n\t\treturn '';\n\t}\n\n\tlet tableContent = `\n\t\t\n\t`;\n\tarray.forEach((entry: any) => {\n\t\tconst rows = entry.limits.length;\n\t\tentry.limits.forEach((limitEntry: string, index: number) => {\n\t\t\ttableContent += ``;\n\t\t\tif (index === 0) {\n\t\t\t\ttableContent += ``;\n\t\t\t}\n\t\t\ttableContent += `\n \n \n `;\n\t\t});\n\t\ttableContent += '\\n';\n\t});\n\ttableContent += '
${translationFunc('wtr:TRADING_CURRENCY_PAIRS')}${translationFunc(\n\t\t'en:REPORT_BASE_CURRENCY'\n\t)}${translationFunc('wtr:TIER_MAX_POSITION')}
${entry.leadCurrency}${limitEntry[0]}${formatNumberWithCommas(limitEntry[1], 0, language)}
';\n\n\treturn tableContent;\n};\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV, tfboSourceParam } from '../../setup/config';\n\nconst useSubscribe = (accountNumber?: null | string) => {\n\tconst mutationKey = ['useSubscribe', accountNumber];\n\n\tconst mutationFn = async (requestedTier: string) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'subscribe',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t\ttier: requestedTier,\n\t\t\t\t\t\t\t\tsource: tfboSourceParam,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn });\n};\n\nexport default useSubscribe;\n","import { useMutation} from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV } from '../../setup/config';\n\n\nconst useChangeTier = (accountNumber?: null | string) => {\n\tconst mutationKey = ['useChangeTier', accountNumber];\n\n\tconst mutationFn = async (requestedTier: string) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'changeTier',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t\trequestedTier,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result.result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn});\n};\n\nexport default useChangeTier;\n","import React, { useContext } from 'react';\n\nimport cn from 'classnames';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { tierIcons } from '../../../setup/subscriptionsConfig';\nimport {\n\tgetTierDisplayName,\n\tSubscriptionModalReason,\n\tSubscriptionTier,\n\tTier,\n} from '../../../utils/functions/subscriptionUtils';\nimport useMoneyFormatter from '../../../utils/hooks/useMoneyFormatter';\nimport useSelectedTradingAccount from '../../../utils/hooks/useSelectedTradingAccount';\nimport { formatNumberWithCommas } from '../../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\nimport AppContext from '../../../contexts/AppContext';\n\nimport styles from './TierTile.module.scss';\n\ninterface TierTileProps {\n\ttier: Tier;\n\tonSelectTier: (tierId: SubscriptionTier) => void;\n\tisSelected: boolean;\n\ttitle: string | null;\n\treason: SubscriptionModalReason;\n\tisNewUser: boolean;\n}\n\nconst TierTile = ({ tier, onSelectTier, isSelected, title, reason, isNewUser }: TierTileProps) => {\n\tconst { t } = useTranslation();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst formatAsMoney = useMoneyFormatter(selectedTradingAccount);\n\tconst appContext = useContext(AppContext);\n\n\tconst showCurrencyPairs = [\n\t\tSubscriptionModalReason.Renewal,\n\t\tSubscriptionModalReason.SubscriptionForNewUser,\n\t\tSubscriptionModalReason.SubscriptionForExistingUser,\n\t\tSubscriptionModalReason.SubscribeFromAlert,\n\t\tSubscriptionModalReason.ManageSubscription,\n\t\tSubscriptionModalReason.UpgradeSubscription,\n\t\tSubscriptionModalReason.Instrument,\n\t].includes(reason);\n\n\tconst showMaxVolume = reason === SubscriptionModalReason.Volume;\n\n\tconst showOrderSize = reason === SubscriptionModalReason.OrderSizeUpgradable;\n\n\treturn (\n\t\t
onSelectTier(tier.id)}>\n\t\t\t{!isNewUser && title && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t
{title}
\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t
\n\t\t\t\t{tier.id}\n\t\t\t\t

{getTierDisplayName(tier.id)}

\n\t\t\t
\n\t\t\t
\n\t\t\t\t{showCurrencyPairs && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
{tier.currencyPairs}
\n\t\t\t\t\t\t{t('wtr:TIER_CURRENCY_PAIRS')}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{showMaxVolume && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{isNaN(parseInt(tier.monthlyAmount))\n\t\t\t\t\t\t\t\t? tier.monthlyAmount\n\t\t\t\t\t\t\t\t: formatNumberWithCommas(tier.monthlyAmount, 0, appContext.languageSettings)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{t('wtr:MAXIMUM_MOTHNLY_TRADING_VOLUME')}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{showOrderSize && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{formatNumberWithCommas(tier.maxPerOrder, 0, appContext.languageSettings)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{t('wtr:TIER_MAX_PER_ORDER')}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\n\t\t\t{`${formatAsMoney(tier.pricePerMonth)}/${t('wtr:PER_MONTH')}`}\n\t\t
\n\t);\n};\n\nexport default TierTile;\n","import React, { useState, useContext } from 'react';\n\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { tiers } from '../../../setup/subscriptionsConfig';\nimport Modal from '../../../shared/Modal';\nimport Button from '../../../shared/Button/Button';\nimport {\n\tgetActiveTier,\n\tgetTierDisplayName,\n\tSubscriptionStatus,\n\tSubscriptionTier,\n\tTier,\n} from '../../../utils/functions/subscriptionUtils';\nimport { SubscriptionModalReason } from '../../../utils/functions/subscriptionUtils';\n\nimport useSubscriptionModal from '../../../utils/hooks/useSubscriptionModal';\nimport Checkbox from '../../../shared/Checkbox/Checkbox';\n\nimport Carousel from '../Carousel/Carousel';\n\nimport useSubscriptionInfo from '../../../utils/hooks/useSubscriptionInfo';\nimport CurrencyDetails from '../CurrencyDetails/CurrencyDetails';\n\nimport authStore, { AuthStore } from '../../../store/authStore';\n\nimport useSubscribe from '../../../utils/subscriptions/useSubscribe';\nimport useChangeTier from '../../../utils/subscriptions/useChangeTier';\nimport { submitDynamicForm } from '../../../utils/functions/submitDynamicForm';\n\nimport styles from './SubscriptionSelector.module.scss';\nimport TierTile from './TierTile';\n\ninterface SubscriptionSelectorProps {\n\tisOpen: boolean;\n\treason: SubscriptionModalReason;\n\tpreselectedTier: SubscriptionTier;\n\taccountId: string;\n\tstartFromTierNum?: number;\n\tonCancel: () => void;\n}\n\ntype ModalView = 'selector' | 'confirm' | 'details';\n\nconst providerAcceptCharset = 'Shift-JIS';\n/**\n * Japan Tier selection modal\n * @param isOpen If the modal is open\n * @param reason Subscription-related circumstance that makes modal necessary\n * @param preselectedTier Current subscription tier\n */\nconst SubscriptionSelector = ({\n\tisOpen,\n\treason,\n\tpreselectedTier,\n\taccountId,\n\tstartFromTierNum,\n\tonCancel,\n}: SubscriptionSelectorProps) => {\n\tconst [modalView, setModalView] = useState('selector');\n\tconst [hasUserAgreement, setHasUserAgreement] = useState(false);\n\tconst [selectedTier, setSelectedTier] = useState(preselectedTier);\n\tconst [isRequesting, setIsRequesting] = useState(false);\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst isLiveMode = authStore((store: AuthStore) => store.isLiveMode);\n\n\tlet disabledTierId: SubscriptionTier | null = null;\n\tif (reason === SubscriptionModalReason.ManageSubscription) {\n\t\tdisabledTierId = preselectedTier;\n\t}\n\tconst isConfirmDisabled = !selectedTier || selectedTier === disabledTierId;\n\tconst selectedTierInfo = tiers.find((tier: Tier) => tier.id === selectedTier);\n\n\tconst { mutate: subscribe } = useSubscribe(accountId);\n\tconst { mutate: changeTier } = useChangeTier(accountId);\n\n\tconst handleSelectTier = (tierId: SubscriptionTier): void => {\n\t\tsetSelectedTier(tierId);\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetModalView('selector');\n\t\tonCancel();\n\n\t\tif (\n\t\t\t![SubscriptionStatus.Active, SubscriptionStatus.Existing, SubscriptionStatus.Unpaid].includes(\n\t\t\t\tsubscriptionInfo.status!\n\t\t\t)\n\t\t) {\n\t\t\tappContext.canFetchSubscrInfo = true;\n\t\t}\n\t};\n\n\tconst handleSubscribe = () => {\n\t\tsetModalView('confirm');\n\t};\n\n\tconst handleMoreDetails = () => {\n\t\tsetModalView('details');\n\t};\n\n\tconst handleConfirmSubscribe = () => {\n\t\tif (!accountId || !selectedTier || selectedTier === disabledTierId) {\n\t\t\tconsole.debug('===>>> Unexpected failure to proceed with `subscribe/manage subscription!`');\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t[\n\t\t\t\tSubscriptionModalReason.SubscriptionForNewUser,\n\t\t\t\tSubscriptionModalReason.SubscribeFromAlert,\n\t\t\t\tSubscriptionModalReason.SubscriptionForExistingUser,\n\t\t\t].includes(reason)\n\t\t) {\n\t\t\tsubscribe(selectedTier, {\n\t\t\t\tonSuccess: (data) => {\n\t\t\t\t\tif (!data.action?.type || !data.action?.url || !data.action?.fields) {\n\t\t\t\t\t\tappContext.subscriptionModal = {\n\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\treason: SubscriptionModalReason.IncorrectParamsForBJP,\n\t\t\t\t\t\t\ttext: null,\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tsubmitDynamicForm(\n\t\t\t\t\t\tdata.action.type,\n\t\t\t\t\t\tdata.action.url,\n\t\t\t\t\t\tdata.action.fields,\n\t\t\t\t\t\tdata.acceptCharset || providerAcceptCharset\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tif (\n\t\t\t[\n\t\t\t\tSubscriptionModalReason.ManageSubscription,\n\t\t\t\tSubscriptionModalReason.UpgradeSubscription,\n\t\t\t\tSubscriptionModalReason.Instrument,\n\t\t\t\tSubscriptionModalReason.Volume,\n\t\t\t\tSubscriptionModalReason.OrderSizeUpgradable,\n\t\t\t\tSubscriptionModalReason.UpgradeToAccessGym,\n\t\t\t].includes(reason)\n\t\t) {\n\t\t\tconst onSuccess = (result: string) => {\n\t\t\t\tconsole.debug('===>>> onSuccess callback for ManageSubscription/UpgradeSubscription called!`');\n\n\t\t\t\tsetModalStateProps({\n\t\t\t\t\treason: SubscriptionModalReason.ChangeTierResponse,\n\t\t\t\t\tisOpen: true,\n\t\t\t\t\ttext: t(`wtr:SUBSCRIPTION_OP_RESPONSE_${result.toUpperCase()}`),\n\t\t\t\t});\n\n\t\t\t\tsetIsRequesting(false);\n\n\t\t\t\tappContext.canFetchSubscrInfo = false;\n\t\t\t\tappContext.canFetchSubscrInfo = true;\n\t\t\t};\n\n\t\t\tchangeTier(selectedTier, { onSuccess });\n\t\t}\n\n\t\tsetIsRequesting(true);\n\t};\n\n\tconst handleClickAgreementBox = (e: React.ChangeEvent) => {\n\t\tsetHasUserAgreement((e.target as HTMLInputElement).checked);\n\t};\n\n\tconst isDowngrade = getActiveTier(subscriptionInfo) && selectedTier < subscriptionInfo.nextTier!;\n\tconst isUpgrade = getActiveTier(subscriptionInfo) && selectedTier !== subscriptionInfo.nextTier && !isDowngrade;\n\t// const isFirstSubscription = !isDowngrade && !isUpgrade;\n\n\tif (modalView === 'selector') {\n\t\tlet subscribeButtonText = t('wtr:MODIFY_TEXT');\n\t\tif (isDowngrade) {\n\t\t\tsubscribeButtonText = t('wtr:DOWNGRADE');\n\t\t} else if (isUpgrade) {\n\t\t\tsubscribeButtonText = t('wtr:UPGRADE');\n\t\t}\n\n\t\tconst modalTitle =\n\t\t\treason === SubscriptionModalReason.ManageSubscription\n\t\t\t\t? t('wtr:MANAGE_SUBSCRIPTIONS')\n\t\t\t\t: t('wtr:TIER_SELECTOR_MODAL_TITLE', { courseName: getTierDisplayName(selectedTier) });\n\n\t\tconst CTA_TRANS_TEXTS: Partial> = {\n\t\t\t[SubscriptionModalReason.UpgradeToAccessGym]: isLiveMode ? 'wtr:UPGRADE_TIER_TO_ACCESS_GYM_TEXT' : undefined,\n\t\t};\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{modalTitle}\n\t\t\t\t{CTA_TRANS_TEXTS[reason] && (\n\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t)}\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{tiers.map((tier, index) => {\n\t\t\t\t\t\t\tconst tierNum = index + 1;\n\t\t\t\t\t\t\tif (startFromTierNum && tierNum < startFromTierNum) {\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst isSelected = tier.id === selectedTier;\n\t\t\t\t\t\t\tconst isCurrentTier = tier.id === subscriptionInfo.tier;\n\n\t\t\t\t\t\t\tlet titleText = null;\n\t\t\t\t\t\t\tif (isDowngrade) {\n\t\t\t\t\t\t\t\tif (isSelected && !isCurrentTier) {\n\t\t\t\t\t\t\t\t\ttitleText = t('wtr:NEXT_MONTH');\n\t\t\t\t\t\t\t\t} else if (isCurrentTier) {\n\t\t\t\t\t\t\t\t\ttitleText = t('wtr:CURRENT_TIER');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\n\t);\n\n\t// keeping commented code below as I think it might be needed soon\n\t// const nextTierInfo = tiers.find((tier) => tier.id === subscriptionInfo.nextTier);\n\t// const nextPaymentAmount = formatAsMoney(selectedTierInfo.pricePerMonth) || null;\n\n\tconst detailsRows = [\n\t\t[t('wtr:TIER'), tierName],\n\t\t[t('wtr:SUBSCRIPTION_STATUS'), subscriptionStatus],\n\t\t[t('wtr:SUBCRIPTION_TERM'), subscriptionTerm],\n\t\t[\n\t\t\tt('wtr:MINIMUM_TRADING_UNIT'),\n\t\t\tformatNumberWithCommas(selectedTierInfo.minPerOrder, 0, appContext.languageSettings),\n\t\t],\n\t\t[\n\t\t\tt('wtr:MAXIMUM_TRADING_UNIT'),\n\t\t\tformatNumberWithCommas(selectedTierInfo.maxPerOrder, 0, appContext.languageSettings),\n\t\t],\n\t\t[t('wtr:MAXIMUM_MOTHNLY_TRADING_VOLUME'), displayVolumeInfo(subscriptionInfo.maxVolume)],\n\t\t[t('wtr:TIER_MAX_POSITION'), formatNumberWithCommas(selectedTierInfo.maxPosition, 0, appContext.languageSettings)],\n\t\t[t('wtr:TRADING_CURRENCIES'), currencyValueCell],\n\t\t// keeping commented code below as I think it might be needed soon\n\t\t// [t('wtr:NEXT_WITHDRAWAL_DATE'), '?'],\n\t\t// [t('wtr:NEXT_PAYMENT_AMOUNT'), nextPaymentAmount],\n\t];\n\n\tif (modalView === 'tier') {\n\t\treturn (\n\t\t\t\n\t\t\t\t{detailsRows.map((row) => (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t
{row[0]}{row[1]}
\n\t\t);\n\t}\n\n\tif (modalView === 'currencies') {\n\t\treturn ;\n\t}\n\n\treturn null;\n};\n\nexport default SubscriptionDetails;\n","import { useMutation} from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV } from '../../setup/config';\n\n\nconst useCancelSubscription = (accountNumber?: null | string) => {\n\tconst mutationKey = ['useCancelSubscription', accountNumber];\n\n\tconst mutationFn = async (_: any) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'cancelSubscription',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn});\n};\n\nexport default useCancelSubscription;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV } from '../../setup/config';\n\nconst useStopSubscription = (accountNumber?: null | string) => {\n\tconst mutationKey = ['useStopSubscription', accountNumber];\n\n\tconst mutationFn = async (_: any) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'stopSubscription',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn });\n};\n\nexport default useStopSubscription;\n","import { useMutation} from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV } from '../../setup/config';\n\n\nconst useResumeSubscription = (accountNumber?: null | string) => { const mutationKey = ['useResumeSubscription', accountNumber];\n\tconst mutationFn = async (_:any) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'restartSubscription',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn});\n};\n\nexport default useResumeSubscription;\n","import React, { FC } from 'react';\nimport styles from './OrHzDivider.module.scss';\n\nconst OrHzDivider: FC<{ text: string }> = ({ text }) => (\n\t
\n\t\t
\n\t\t{text}\n\t\t
\n\t
\n);\n\nexport default OrHzDivider;\n","import React, { useContext, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {useHistory} from \"react-router-dom\";\n\nimport Modal from '../../../shared/Modal';\nimport Button from '../../../shared/Button/Button';\nimport { SubscriptionModalReason } from '../../../utils/functions/subscriptionUtils';\n\nimport AppContext from '../../../contexts/AppContext';\nimport useSubscriptionModal from '../../../utils/hooks/useSubscriptionModal';\n\nimport SubscriptionDetails from '../SubscriptionDetails';\nimport DashboardContext from '../../../contexts/DashboardContext';\n\nimport useLogout from '../../../utils/hooks/useLogout';\n\nimport useCancelSubscription from '../../../utils/subscriptions/useCancelSubscription';\n\nimport useStopSubscription from '../../../utils/subscriptions/useStopSubscription';\nimport useResumeSubscription from '../../../utils/subscriptions/useResumeSubscription';\n\nimport { AccountMarketType } from '../../../gateways/RfpGateway/rfp.types';\nimport { Account } from '../../../gateways/TfboGateway/TfboGateway.types';\nimport useSwitchAccount from '../../../utils/hooks/system/useSwitchAccount';\nimport tradingAccountStore from '../../../store/tradingAccountStore'; // import tradingAccountStore from \"../../../store/tradingAccountStore\";\nimport OrHzDivider from './OrHzDivider/OrHzDivider';\n\nimport { AppComponentType } from '../../../utils/functions/enums';\nimport Routes from '../../../setup/routes';\n\nimport styles from './SubscriptionAlert.module.scss';\n\n\ninterface SubscriptionAlertProps {\n\tisOpen: boolean;\n\treason: SubscriptionModalReason;\n\ttext?: string | null;\n\taccountId: string;\n\tonCancel: () => void;\n\tonConfirm?: () => void;\n}\n\n/**\n *\n * @param isOpen if modal is open\n * @param reason subscription-related circumstance that makes modal necessary\n * @param onCancel callback executed on pressing cancel button\n * @param onConfirm callback executed on pressing confirm button\n */\n\nconst SubscriptionAlert = ({ isOpen, reason, text, accountId, onCancel, onConfirm }: SubscriptionAlertProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst { tradingAccount } = dashboardContext;\n\tconst accountStats = tradingAccountStore.use.accountStats();\n\tconst [switchAccounts] = useSwitchAccount();\n\tconst history = useHistory();\n\n\tconst logOut = useLogout();\n\tconst [hasUserAgreement, setHasUserAgreement] = useState(false);\n\n\tconst { setModalStateProps, resetModalStateProps } = useSubscriptionModal();\n\n\tconst RESPONSE_TITLE_MAP = useMemo<{ [key: string]: string }>(\n\t\t() => ({\n\t\t\tstopped: t('wtr:SUBSCRIPTION_PAUSED_TITLE'),\n\t\t\tnotAllowed: t('wtr:OPERATION_NOT_ALLOWED_TITLE'),\n\t\t\tnoRecord: t('wtr:OPERATION_NOT_ALLOWED_TITLE'),\n\t\t\topenPositions: t('wtr:OPERATION_NOT_ALLOWED_OPEN_POSITIONS_TITLE'),\n\t\t\tpendingOrders: t('wtr:OPERATION_NOT_ALLOWED_OPEN_ORDERS_TITLE'),\n\t\t\trestarted: t('wtr:SUBSCRIPTION_RESUMED_TITLE'),\n\t\t\tcanceled: t('wtr:SUBSCRIPTION_CANCELED_TITLE'),\n\t\t\tremainingBalance: t('wtr:OPERATION_NOT_ALLOWED_REMANING_BALANCE_TITLE'),\n\t\t}),\n\t\t[]\n\t);\n\n\tconst RESPONSE_MESSAGE_MAP = useMemo<{ [key: string]: string }>(\n\t\t() => ({\n\t\t\tstopped: t('wtr:SUBSCRIPTION_PAUSED'),\n\t\t\tnotAllowed: t('wtr:OPERATION_NOT_ALLOWED'),\n\t\t\tnoRecord: t('wtr:OPERATION_NOT_ALLOWED'),\n\t\t\topenPositions: t('wtr:OPERATION_NOT_ALLOWED_OPEN_POSITIONS'),\n\t\t\tpendingOrders: t('wtr:OPERATION_NOT_ALLOWED_OPEN_ORDERS'),\n\t\t\trestarted: t('wtr:SUBSCRIPTION_RESUMED_TITLE'),\n\t\t\tcanceled: t('wtr:SUBSCRIPTION_CANCELED'),\n\t\t\tremainingBalance: t('wtr:OPERATION_NOT_ALLOWED_REMANING_BALANCE'),\n\t\t}),\n\t\t[]\n\t);\n\n\tconst STATUS_MESSAGE_MAP = useMemo>>(\n\t\t() => ({\n\t\t\t[SubscriptionModalReason.SubscriptionForNewUser]: t('wtr:SUBSCRIPTION_NEW_NEEDED_TEXT'),\n\t\t\t[SubscriptionModalReason.SubscriptionForUnpaidUser]: t('wtr:SUBSCRIPTON_UNPAID_NEEDED_TEXT'),\n\t\t\t[SubscriptionModalReason.Renewal]: t('wtr:SUBSCRIPTION_RENEWAL_NEEDED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.Cancelled]: t('wtr:SUBSCRIPTION_CANCELED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.Terminated]: t('wtr:SUBSCRIPTION_TERMINATED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.ConfirmStop]: t('wtr:SUSPEND_SUBSCRIPTION_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.ConfirmRestart]: t('wtr:SUBSCRIPTION_RESUME_CONFIRM_TEXT'),\n\t\t\t// [SubscriptionModalReason.ConfirmCancel]: t('wtr:CANCEL_SUBSCRIPTION_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.NoSuperiorTiers]: t('wtr:NO_SUPPERIOR_TIERS_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.SubscribeResponse]: t('wtr:NEW_SUBSCRIPTION_STATUS_RESPONSE_TEXT'),\n\t\t\t[SubscriptionModalReason.ChangeTierResponse]: t('wtr:TIER_CHANGE_RESPONSE_TEXT'),\n\t\t\t[SubscriptionModalReason.SystemError]: t('wtr:SYSTEM_ERROR_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.OrderSizeGlobal]: t('wtr:MAX_ORDER_SIZE_EXCEEDED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.NotAuthorized]: t('wtr:OPERATION_FAILED_NOTAUTHORIZED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.IncorrectParamsForBJP]: t('wtr:INCORRECT_PARAMS_FOR_BJP_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.GymNotAccessibleForTier]: t('wtr:UPGRADE_TIER_TO_ACCESS_GYM_TEXT'),\n\t\t\t[SubscriptionModalReason.JapanAccountEmptyApplicationStatus]: t('wtr:OBTAINING_LOGIN_INFORMATION_ACTION_MESSAGE'),\n\t\t}),\n\t\t[]\n\t);\n\n\tconst STATUS_TITLE_MAP = useMemo>>(\n\t\t() => ({\n\t\t\t[SubscriptionModalReason.SubscriptionForNewUser]: t('wtr:SUBSCRIPTION_NEW_NEEDED_TITLE'),\n\t\t\t[SubscriptionModalReason.SubscriptionForUnpaidUser]: t('wtr:SUBSCRIPTON_UNPAID_NEEDED_TITLE'),\n\t\t\t[SubscriptionModalReason.Renewal]: t('wtr:SUBSCRIPTION_RENEWAL_NEEDED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.Cancelled]: t('wtr:SUBSCRIPTION_CANCELED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.Terminated]: t('wtr:SUBSCRIPTION_TERMINATED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.ConfirmStop]: t('wtr:SUSPEND_SUBSCRIPTION_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.ConfirmRestart]: t('wtr:SUBSCRIPTION_RESUME_CONFIRM_TITLE'),\n\t\t\t// [SubscriptionModalReason.ConfirmCancel]: t('wtr:CANCEL_SUBSCRIPTION_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.NoSuperiorTiers]: t('wtr:NO_SUPPERIOR_TIERS_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.SubscriptionDetails]: t('wtr:SUBSCRIPTION_DETAILS_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.SubscribeResponse]: t('wtr:NEW_SUBSCRIPTION_STATUS_RESPONSE_TITLE'),\n\t\t\t[SubscriptionModalReason.ChangeTierResponse]: t('wtr:TIER_CHANGE_RESPONSE_TITLE'),\n\t\t\t[SubscriptionModalReason.SystemError]: t('wtr:SYSTEM_ERROR_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.OrderSizeGlobal]: t('wtr:MAX_ORDER_SIZE_EXCEEDED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.NotAuthorized]: t('wtr:OPERATION_FAILED_NOTAUTHORIZED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.IncorrectParamsForBJP]: t('wtr:INCORRECT_PARAMS_FOR_BJP_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.GymNotAccessibleForTier]: t('wtr:UPGRADE_TIER_TO_ACCESS_GYM_TITLE'),\n\t\t\t[SubscriptionModalReason.JapanAccountEmptyApplicationStatus]: t(' '),\n\t\t}),\n\t\t[]\n\t);\n\n\tconst [message, setMessage] = useState(STATUS_MESSAGE_MAP[reason]);\n\tconst [title, setTitle] = useState(STATUS_TITLE_MAP[reason] || reason);\n\n\tconst { mutate: cancelSubscription } = useCancelSubscription(accountId);\n\tconst { mutate: stopSubscription } = useStopSubscription(accountId);\n\tconst { mutate: resumeSubscription } = useResumeSubscription(accountId);\n\n\tconst japanSpreadAccount = useMemo(() => {\n\t\t// TODO: fix incompatibility type between tradingAccount (RFP) in DashboardContext and account value for accountStats (TFBO) in tradingAccountStore\n\t\t// Unify Types and refactor in favor of the Zustand store\n\t\tconst japanSpreadAccount = tradingAccount.find((ta) => ta.accountMarketType === AccountMarketType.JapanSpread);\n\t\treturn (\n\t\t\tjapanSpreadAccount &&\n\t\t\t(accountStats.find(({ account }) => account.accountNumber === japanSpreadAccount.accountNumber)\n\t\t\t\t?.account as Account)\n\t\t);\n\t}, [tradingAccount, accountStats]);\n\n\tconst handleResumeClick = () => {\n\t\tconst onSuccess = ({ result }: { result: string }) => {\n\t\t\tsetMessage(RESPONSE_MESSAGE_MAP[result]);\n\t\t\tsetTitle(RESPONSE_TITLE_MAP[result]);\n\t\t\tsetModalStateProps({\n\t\t\t\treason: SubscriptionModalReason.RestartSubscriptionResponse,\n\t\t\t\tisOpen: true,\n\t\t\t\ttext: t(`wtr:SUBSCRIPTION_OP_RESPONSE_${result.toUpperCase()}`),\n\t\t\t\tinstrument: null,\n\t\t\t});\n\t\t};\n\n\t\tresumeSubscription({}, { onSuccess });\n\t};\n\n\tconst handleConfirm = () => {\n\t\tif (reason === SubscriptionModalReason.ConfirmStop) {\n\t\t\tconst onSuccess = ({ result }: { result: string }) => {\n\t\t\t\tsetMessage(RESPONSE_MESSAGE_MAP[result]);\n\t\t\t\tsetTitle(RESPONSE_TITLE_MAP[result]);\n\t\t\t\tsetModalStateProps({\n\t\t\t\t\treason: SubscriptionModalReason.StopSubscriptionResponse,\n\t\t\t\t\tisOpen: true,\n\t\t\t\t\ttext: t(`wtr:SUBSCRIPTION_OP_RESPONSE_${result.toUpperCase()}`),\n\t\t\t\t\tinstrument: null,\n\t\t\t\t});\n\t\t\t};\n\t\t\tstopSubscription({}, { onSuccess });\n\t\t}\n\n\t\t// if (reason === SubscriptionModalReason.ConfirmCancel) {\n\t\t// \tconst onSuccess = ({ result }: { result: string }) => {\n\t\t// \t\tsetMessage(RESPONSE_MESSAGE_MAP[result]);\n\t\t// \t\tsetTitle(RESPONSE_TITLE_MAP[result]);\n\t\t// \t\tsetModalStateProps({\n\t\t// \t\t\treason: SubscriptionModalReason.CancelSubscriptionResponse,\n\t\t// \t\t\tisOpen: true,\n\t\t// \t\t\ttext: t(`wtr:SUBSCRIPTION_OP_RESPONSE_${result.toUpperCase()}`),\n\t\t// \t\t\tinstrument: null,\n\t\t// \t\t});\n\t\t// \t\t//FIXME double check if we need this here\n\t\t// \t\tappContext.canFetchSubscrInfo = true;\n\t\t// \t};\n\t\t// \tcancelSubscription({}, { onSuccess });\n\t\t// }\n\n\t\tif (reason === SubscriptionModalReason.ConfirmRestart) {\n\t\t\thandleResumeClick();\n\t\t}\n\t};\n\n\tconst handleSubscribeClick = (reason: SubscriptionModalReason) => {\n\t\tsetModalStateProps({\n\t\t\treason: reason,\n\t\t\tisOpen: true,\n\t\t\ttext: null,\n\t\t\tinstrument: null,\n\t\t});\n\t};\n\n\tconst handleResumeConfirm = () => {\n\t\tsetModalStateProps({ reason: SubscriptionModalReason.ConfirmRestart, isOpen: true });\n\t\tsetMessage(STATUS_MESSAGE_MAP[SubscriptionModalReason.ConfirmRestart]);\n\t\tsetTitle(STATUS_TITLE_MAP[SubscriptionModalReason.ConfirmRestart]!);\n\t};\n\n\tconst handleOpenLiveAccountClick = () => {\n\t\tresetModalStateProps();\n\n\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t};\n\n\tconst handleLogoutClick = () => {\n\t\tresetModalStateProps();\n\t\tlogOut();\n\t};\n\n\tconst handleCancel = () => {\n\t\tresetModalStateProps();\n\t\tonCancel();\n\t\tappContext.canFetchSubscrInfo = true;\n\t};\n\n\tconst handleNotNowClick = (japanSpreadAccount: Account) => {\n\t\tresetModalStateProps();\n\n\t\tswitchAccounts(japanSpreadAccount).then(() => {\n\t\t\tappContext.canFetchSubscrInfo = true;\n\t\t});\n\t};\n\n\tconst handleClickAgreementBox = (e: React.ChangeEvent) => {\n\t\tsetHasUserAgreement((e.target as HTMLInputElement).checked);\n\t};\n\n\tlet buttons =
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default NotificationModal;\n","import React, { useContext } from 'react';\n\nimport { Modal } from 'react-bootstrap';\n\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../contexts/DashboardContext';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\n\nimport userGuideGeneralPDF from '../../../docs/Web-User-Guide.pdf';\nimport userGuideJapanPDF from '../../../docs/Web-User-Guide-Japan.pdf';\n\nimport styles from './UserGuideModal.module.scss';\n\nconst UserGuide = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst forceRerender = useForceRerender();\n\n\tuseObservable(appContext.getPropertyChangeStream('isJapanAccount'), async (change) => {\n\t\tforceRerender();\n\t});\n\n\tuseObservable(dashboardContext.getPropertyChangeStream('userGuide'), async (change) => {\n\t\tforceRerender();\n\t});\n\n\tif (!dashboardContext.userGuide) {\n\t\treturn null;\n\t}\n\tconst fileSrc = appContext.isJapanAccount ? userGuideJapanPDF : null;\n\n\treturn (\n\t\t (dashboardContext.userGuide = false)}\n\t\t>\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default IframeThinkPortal;\n","import { useQuery } from '@tanstack/react-query';\nimport axios from 'axios';\n\ninterface CalendarParams {\n\tusi: string;\n\tlang: string;\n}\n\nconst useCalendarToken = (parameters: CalendarParams) => {\n\tconst queryKey = ['calendarToken', parameters];\n\tconst queryFn = async () => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'utility',\n\t\t\t\t\t\t\taction: 'createHandshakeUrl',\n\t\t\t\t\t\t\tparameters: { page: 'economic_calendar', ...parameters },\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {\n\t\t\treturn e\n\t\t}\n\t};\n\n\treturn useQuery({ queryKey, queryFn });\n};\n\nexport default useCalendarToken;\n","import React, { useContext, useEffect, useState, useRef } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport DashboardContext from '../../contexts/DashboardContext';\nimport useForceRerender from '../../utils/hooks/useForceRerender';\nimport useObservable from '../../utils/hooks/useObservable';\nimport usePromiseFactory from '../../utils/hooks/usePromiseFactory';\nimport { AppComponentType } from '../../utils/functions/enums';\n\nimport { CalendarLangMap, calendarLangMap } from '../../views/features/Dashboard/Settings/settingsOptions';\n\nimport useCalendarToken from '../../utils/queries/useCalendarToken';\nimport StringUtils from '../../utils/functions/StringUtils';\nimport authStore, { AuthStore } from '../../store/authStore';\n\nimport i18n from \"../../setup/i18n\";\n\nimport styles from './Insights.module.scss';\n\nconst Insights = () => {\n\tconst [url, setUrl] = useState('');\n\tconst iframeContainerRef = useRef(null);\n\n\tconst appContext = useContext(AppContext);\n\tconst theme = appContext.appTheme;\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\n\tconst userProfile = authStore((store: AuthStore) => store.userProfile);\n\n\tconst { data: token } = useCalendarToken({\n\t\tusi: userProfile.email!,\n\t\tlang: calendarLangMap[(appContext.languageSettings || i18n.language) as CalendarLangMap],\n\t});\n\n\tuseObservable(dashboardContext.getPropertyChangeStream('presentComponentType'), () => {\n\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t\t\tif (dashboardContext.presentComponentType !== AppComponentType.Watchlist) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tforceRerender();\n\t\t});\n\t});\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => {\n\t\tforceRerender();\n\t});\n\n\tuseEffect(() => {\n\t\tif (token && StringUtils.isString(token)) {\n\t\t\tsetUrl(token.replace('thinkmarkets', `thinkmarkets${theme === 'dark' ? '_dark' : ''}`));\n\t\t}\n\t}, [theme, token]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{url && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\nexport default Insights;\n","import cn from 'classnames';\nimport React, { useContext, useEffect, useRef, useState } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport Loading from '../../views/components/Loading/Loading';\n\nimport styles from './Calendar.module.scss';\nimport Insights from './Insights';\n\n// keep this guy here as it's a temporary (I hope) patch :))))))))))))))))))))))))))))))))))))))\nconst FallBackCalendar = ({ language }: { language: string }) => {\n\tconst containerRef = useRef();\n\n\tconst languageMap: { [key: string]: string } = {\n\t\tit: 'it-IT',\n\t\tja: 'ja-JP',\n\t\tth: 'th-TH',\n\t\t'pt-BR': 'pt-PT',\n\t};\n\n\tuseEffect(() => {\n\t\tif (containerRef.current) {\n\t\t\tconst config = document.createElement('script');\n\t\t\tconfig.type = 'text/javascript';\n\t\t\tconfig.innerHTML = `var fxcalendar_config = {\n gridselector: \"#fxst_grid\",\n filterselector: \"#fxst_filter\",\n columns: \"None\",\n showeventlink: \"0\", // if you want to disable event link, put a \"0\"\n showcountrylink: \"0\", // if you want to disable country link, put a \"0\"\n culture: \"${languageMap[language]}\"\n };`;\n\t\t\tcontainerRef.current.appendChild(config);\n\n\t\t\tconst script = document.createElement('script');\n\t\t\tscript.type = 'text/javascript';\n\t\t\tscript.src = 'https://calendar.fxstreet.com/scripts/main/?version=0.0.2';\n\t\t\tcontainerRef.current.appendChild(script);\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nconst Calendar = () => {\n\tconst calRef = useRef();\n\tconst [showLoader, setShowLoader] = useState(true);\n\n\tconst { languageSettings } = useContext(AppContext);\n\n\tconst languageMap: { [key: string]: string } = {\n\t\tar: 'ar-SA',\n\t\t'zh-Hans': 'zh-CN',\n\t\t'zh-Hant': 'zh-CHT',\n\t};\n\n\tuseEffect(() => {\n\t\tif (calRef.current) {\n\t\t\tcalRef.current.toggleAttribute('fxs-widget', true);\n\n\t\t\tconst script = document.createElement('script');\n\t\t\tscript.src = 'https://staticcontent.fxstreet.com/widgets-v2/stable/fxs-widgets.js';\n\t\t\tscript.async = true;\n\t\t\tscript.defer = true;\n\t\t\tcalRef.current.parentNode!.appendChild(script);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetTimeout(() => setShowLoader(false), 1000);\n\t}, []);\n\n\tif (!localStorage.getItem('fxStreet')) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{showLoader && }\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t}\n\n\t// fallback to the previous implementation of FXStreet calendar for the following languages\n\tconst missingLanguge = ['it', 'ja', 'th', 'pt-BR'].includes(languageSettings);\n\tif (missingLanguge) return ;\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default Calendar;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\n\nconst useGenerateSSOToken = () => {\n\tconst mutationFn = async (_: any) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: `/internal/sso`,\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data;\n\t\t} catch (e) {\n\t\t\treturn e.response.data;\n\t\t}\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useGenerateSSOToken'],\n\t\tmutationFn,\n\t});\n};\n\nexport default useGenerateSSOToken;\n","import { useQuery, UseQueryOptions } from '@tanstack/react-query';\n\n// import axios from 'axios';\n\nconst useFetchDataFromYoutube = () => {\n\t// const queryKey = ['useFetchDataFromYoutube'];\n\t// const queryFn = async (): Promise[]> => {\n\t// \ttry {\n\t// \t\tconst response = await axios({\n\t// \t\t\turl: `${process.env.REACT_APP_YOUTUBE_PLAYLIST_ITEMS_API_URL}?part=snippet&playlistId=PLKC_I3Bz7HZTzR4vJnDTNVHBqmk5Zdwur&maxResults=50&key=${process.env.REACT_APP_YOUTUBE_PLAYLIST_ITEMS_API_KEYS}`,\n\t// \t\t\tmethod: 'GET',\n\t// \t\t});\n\t// \t\treturn response.data.items;\n\t// \t} catch (e) {}\n\t// \treturn [];\n\t// };\n\t// return useQuery[]>(queryKey, queryFn);\n\tconst queryKey = ['useFetchDataFromYoutube'];\n\tconst queryFn = async (): Promise[]> => {\n\t\ttry {\n\t\t\tconst response = await fetch(\n\t\t\t\t`${process.env.REACT_APP_YOUTUBE_PLAYLIST_ITEMS_API_URL}?part=snippet&playlistId=PLKC_I3Bz7HZTzR4vJnDTNVHBqmk5Zdwur&maxResults=50&key=${process.env.REACT_APP_YOUTUBE_PLAYLIST_ITEMS_API_KEYS}`\n\t\t\t);\n\t\t\tconst data = await response.json();\n\t\t\tconst items = data.items;\n\t\t\treturn items;\n\t\t} catch (e) {}\n\t\treturn [];\n\t};\n\treturn useQuery[]>(queryKey, queryFn);\n};\n\nexport default useFetchDataFromYoutube;\n","import React from 'react';\n\nimport styles from './Tutorials.module.scss';\n\ninterface SingleTutorialType {\n\tid: string;\n\turl: string;\n\ttitle: string;\n\topenVideo: (id: string, placeholder: string) => void;\n}\n\nconst SingleTutorial: React.FC = ({ id, url, title, openVideo }) => {\n\treturn (\n\t\t
openVideo(id, url)}>\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t
\n\t\t\t
\n\t\t\t\t

{title}

\n\t\t\t
\n\t\t
\n\t);\n};\nexport default SingleTutorial;\n","import React, { useState } from 'react';\n\nimport Loading from '../../views/components/Loading/Loading';\nimport useFetchDataFromYoutube from '../../utils/hooks/useFetchDataFromYoutube';\nimport WtrModal from '../../shared/WtrModal';\nimport ServiceIssuesModal from '../TradersGym/Accounts/ServiceIssuesModal/ServiceIssuesModal';\n\nimport SingleTutorial from './SingleTutorial';\n\nimport styles from './Tutorials.module.scss';\n\nconst Tutorials = () => {\n\tconst [videoId, setVideoId] = useState('');\n\tlet { data: items, isLoading: loading, isError: errorFromYoutube, refetch } = useFetchDataFromYoutube();\n\n\tconst handleOpenVideo = (id: string) => {\n\t\tsetVideoId(id);\n\t};\n\tconst handleCloseVideo = () => {\n\t\tsetVideoId('');\n\t};\n\n\tconst setIsOpenServiceIssuesModal = () => {\n\t\trefetch();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t{videoId && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t{/* this is the only way I found in order to get the video to autoplay and to be well positioned */}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{loading && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{errorFromYoutube && }\n\n\t\t\t{items && (\n\t\t\t\t
\n\t\t\t\t\t{items\n\t\t\t\t\t\t.filter((item) => item.title !== 'Private video')\n\t\t\t\t\t\t.map((video) => (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default Tutorials;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\n\nimport { useLocation } from 'react-router';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { default as InstrumentContext, InstrumentContextProvider } from '../../../contexts/InstrumentContext';\nimport DashboardContext from '../../../contexts/DashboardContext';\nimport { changeLangForPortal } from '../../../utils/functions/changeLanguageForPortal';\nimport { AppComponentType } from '../../../utils/functions/enums';\nimport { Resolver } from '../../../utils/functions/Ioc';\nimport useForceRerender from '../../../utils/hooks/useForceRerender';\nimport useObservable from '../../../utils/hooks/useObservable';\nimport usePromiseFactory from '../../../utils/hooks/usePromiseFactory';\nimport Dashboard from '../Dashboard/Dashboard';\nimport Markets from '../Markets/Markets';\nimport IframeThinkPortal from '../ThinkPortal/IframeThinkPortal';\n\nimport AuthLayout from '../../../layouts/AuthLayout';\n\nimport { Calendar } from '../../../pages/Calendar';\n\nimport useGenerateSSOToken from '../../../utils/mutations/useGenerateSSOToken';\n\nimport { Tutorials } from '../../../pages/Tutorials';\n\nimport styles from './DashboardContainerComponent.module.scss';\n\nconst DashboardContainerComponent = React.memo(() => {\n const appContext = useContext(AppContext);\n const dashboardContext = useContext(DashboardContext);\n const promiseFactory = usePromiseFactory();\n const forceRerender = useForceRerender();\n const email = appContext.email;\n const [url, setUrl] = useState('');\n\n const { mutate: generateSSOToken } = useGenerateSSOToken();\n const location = useLocation();\n\n const renderDisplayInit: { [key in AppComponentType]?: boolean } = {\n [AppComponentType.Markets]: false,\n [AppComponentType.Watchlist]: false,\n [AppComponentType.Calendar]: false,\n [AppComponentType.Portal]: false,\n [AppComponentType.Tutorials]: false\n };\n const toRender = useRef<{ [key in AppComponentType]?: boolean }>({\n ...renderDisplayInit\n // [AppComponentType.Watchlist]: true,\n });\n\n const toDisplay = useRef<{ [key in AppComponentType]?: boolean }>({\n ...renderDisplayInit\n // [AppComponentType.Watchlist]: true,\n });\n\n if (dashboardContext.presentComponentType) {\n toRender.current[dashboardContext.presentComponentType] = true;\n toDisplay.current[dashboardContext.presentComponentType] = true;\n }\n\n const instrumentContextProvider = Resolver.resolve(InstrumentContextProvider);\n\n const portalIframeComponents = [\n AppComponentType.Funds,\n AppComponentType.OpenAccount,\n AppComponentType.Reports,\n AppComponentType.Status,\n AppComponentType.Deposits,\n AppComponentType.UploadDocuments,\n AppComponentType.CompleteOnboarding\n ];\n\n useEffect(() => {\n if (!dashboardContext.presentComponentType) return;\n toDisplay.current = renderDisplayInit;\n\n if (portalIframeComponents.includes(dashboardContext.presentComponentType)) {\n if (!toRender.current[AppComponentType.Portal]) {\n thinkPortalAuth();\n }\n\n toRender.current[AppComponentType.Portal] = true;\n toDisplay.current[AppComponentType.Portal] = true;\n return;\n }\n // unmount markets page explicitly as potential performance optimisation\n toRender.current[AppComponentType.Markets] = false;\n\n toRender.current[dashboardContext.presentComponentType] = true;\n toDisplay.current[dashboardContext.presentComponentType] = true;\n }, [dashboardContext.presentComponentType, location]);\n\n useObservable(dashboardContext.getPropertyChangeStream('presentComponentType'), () => {\n promiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n forceRerender();\n });\n });\n\n const thinkPortalAuth = () => {\n generateSSOToken(\n {},\n {\n onSuccess: (data) => {\n setUrl(\n `${process.env.REACT_APP_THINK_PORTAL}/dashboard?ssoToken=${\n data.ssoCode\n }&email=${email}&lang=${changeLangForPortal(appContext.languageSettings)}&keepmesignedin=yes&referrer=wtr`\n );\n }\n }\n );\n };\n\n return (\n
\n \n \n \n {/* {tfboConnectionError && } */}\n {toRender.current[AppComponentType.Portal] && }\n
\n\n \n {toRender.current[AppComponentType.Markets] && }\n \n\n \n {toRender.current[AppComponentType.Calendar] && }\n \n\n \n {toRender.current[AppComponentType.Tutorials] && }\n \n {/*
*/}\n {/* \t{toDisplay.current[AppComponentType.Signals] && toRender.current[AppComponentType.Signals] && } */}\n {/*
*/}\n\n {/* Important: Use visibility:'hidden' instead of display:'none' to prevent charts from reseting their scaling.\n\t\t\t\t\t\tThis div should be below other divs to prioritize the active tab in the document. */}\n \n {toRender.current[AppComponentType.Watchlist] && }\n \n \n \n \n );\n});\n\nexport default DashboardContainerComponent;\n","import React, { lazy, Suspense, useContext, useEffect } from 'react';\nimport { Redirect, Switch } from 'react-router-dom';\n\nimport { ApmRoute } from '@elastic/apm-rum-react';\n\nimport './App.scss';\n\nimport Routes, { webTraderPath } from './setup/routes';\n\nimport './setup/registerIcons';\nimport './setup/monitoring';\nimport './setup/axios';\n\nimport 'react-notifications-component/dist/theme.css';\nimport 'animate.css/animate.min.css';\nimport { Resolver } from './utils/functions/Ioc';\nimport AppContext from './contexts/AppContext';\nimport usePromiseFactory from './utils/hooks/usePromiseFactory';\nimport useObservable from './utils/hooks/useObservable';\nimport useForceRerender from './utils/hooks/useForceRerender';\nimport ThemeWrapper from './views/components/ThemeWrapper';\nimport { subscribeOpsPersistHelper } from './utils/functions/subscrOpParamsPersistHelper';\nimport TradersGymContextProvider from './pages/TradersGym/TradersGymContext';\nimport InstrumentContext, { InstrumentContextProvider } from './contexts/InstrumentContext';\n\nimport useInitialize from './utils/hooks/system/useInitialize';\nimport AccountStatusHandler from './views/components/Permissions/AccountStatusHandler';\n\nimport TwoFactorAuthModal from './views/features/Dashboard/Header/components/SettingsModal/TwoFactorAuthentication/TwoFactorAuthModal';\n\nimport DashboardContainerComponent from './views/features/DashboardContainerComponent/DashboardContainerComponent'; // import useWindowSize from './utils/hooks/useWindowSize';\nimport MarginRulesContext, { MarginRulesContextProvider } from './contexts/MarginRulesContext';\nimport { MarginRequirementsContextProvider } from './contexts/MarginRequirementsContext';\nimport lazyRetry from './utils/functions/lazyRetry';\n\nconst Login = lazy(() => lazyRetry(() => import('./pages/Login/Login')));\nconst MobileView = lazy(() => lazyRetry(() => import('./pages/Mobile/MobileView')));\nconst ForgotPassword = lazy(() => lazyRetry(() => import('./pages/ForgotPassword/ForgotPassword')));\nconst TwoFactorAuthentication = lazy(() =>\n\tlazyRetry(() => import('./pages/TwoFactorAuthentication/TwoFactorAuthentication'))\n);\nconst Agreement = lazy(() => lazyRetry(() => import('./views/features/Agreement')));\nconst NewTraderWindow = lazy(() => lazyRetry(() => import('./views/components/NewTraderWindow/NewTraderWindow')));\nconst TradersGym = lazy(() => lazyRetry(() => import('./pages/TradersGym/TradersGym')));\nconst Signals = lazy(() => lazyRetry(() => import('./pages/Signals/Signals')));\n// const NewUpdateNotification = lazy(() => import('./shared/NewUpdateNotification/NewUpdateNotification'));\nconst AccountStatusModal = lazy(() =>\n\tlazyRetry(() => import('./views/components/AccountStatusModal/AccountStatusModal'))\n);\n\nconst App: React.FC = () => {\n\tconst appContext = useContext(AppContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\n\tconst instrumentContextProvider = Resolver.resolve(InstrumentContextProvider);\n\tconst marginRulesProvider = Resolver.resolve(MarginRulesContextProvider);\n\n\tconst queryPersistAppendix = subscribeOpsPersistHelper('status', 'providerStatus');\n\n\tuseObservable(appContext.getPropertyChangeStream('isArabic'), () => {\n\t\tpromiseFactory.throttle('appContext.propertyChanged', 100).then(() => {\n\t\t\tforceRerender();\n\t\t});\n\t});\n\n\tuseEffect(() => {\n\t\tif (appContext.isArabic) {\n\t\t\tdocument.documentElement.setAttribute('dir', 'rtl');\n\t\t} else {\n\t\t\tdocument.documentElement.removeAttribute('dir');\n\t\t}\n\t}, [appContext.isArabic]);\n\n\tuseInitialize();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default App;\n","import { useState, useEffect } from 'react';\n\ntype Hidden = keyof Pick;\ntype VisibilityChange = keyof Pick<\n\tDocumentEventMap,\n\t'visibilitychange' | 'msvisibilitychange' | 'webkitvisibilitychange'\n>;\nlet hidden: Hidden | undefined;\nlet visibilityChange: VisibilityChange | undefined;\n\nexport default function usePageVisibility() {\n\tif (typeof document?.hidden !== 'undefined') {\n\t\thidden = 'hidden';\n\t\tvisibilityChange = 'visibilitychange';\n\t} else if (typeof document?.msHidden !== 'undefined') {\n\t\thidden = 'msHidden';\n\t\tvisibilityChange = 'msvisibilitychange';\n\t} else if (typeof document?.webkitHidden !== 'undefined') {\n\t\thidden = 'webkitHidden';\n\t\tvisibilityChange = 'webkitvisibilitychange';\n\t}\n\tconst initialHidden = hidden ? document[hidden] : false;\n\tconst [hiddenStatus, setHiddenStatus] = useState(initialHidden);\n\n\tuseEffect(() => {\n\t\tconst handleVisibilityChange = () => {\n\t\t\tif (hidden) setHiddenStatus(document[hidden]);\n\t\t};\n\t\tif (visibilityChange) document.addEventListener(visibilityChange, handleVisibilityChange, false);\n\t\treturn () => {\n\t\t\tif (visibilityChange) document.removeEventListener(visibilityChange, handleVisibilityChange);\n\t\t};\n\t}, []);\n\n\treturn hiddenStatus;\n}\n","import React, { useEffect } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport * as reactDeviceDetect from 'react-device-detect';\n\nimport Content from './Content';\nimport RfpGatewayContext from './contexts/RfpGatewayContext';\nimport RfpGateway from './gateways/RfpGateway/RfpGateway';\nimport { Resolver } from './utils/functions/Ioc';\nimport usePageVisibility from './utils/hooks/usePageVisibility';\nimport Routes from './setup/routes';\nimport useWindowSize from \"./utils/hooks/useWindowSize\";\n\nconst queryClient = new QueryClient();\n\nconst ROUTES_ALLOWED_ON_MOBILE = [Routes.account.forgotPassword]\n\nconst App = () => {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst { width, height } = useWindowSize();\n\n\tconst rfpGateway = Resolver.resolve(RfpGateway);\n\t// the \"Content\" component was created because the caching didn't work due to the renders of the app component.\n\t// It will also be used for future refactoring.\n\n\t// Workaround until WTR-4682 get fixed\n\tuseEffect(() => {\n\t\tif (location.pathname === Routes.account.forgotPassword) {\n\t\t\thistory.push(Routes.account.forgotPassword + location.search);\n\t\t}\n\t}, []);\n\n\tconst pageHiddenStatus = usePageVisibility();\n\tuseEffect(() => {\n\t\tif (rfpGateway) {\n\t\t\tif (pageHiddenStatus) {\n\t\t\t\tconsole.log('App is in background');\n\t\t\t\trfpGateway.setAppInBackgroundMode = true;\n\t\t\t} else {\n\t\t\t\tconsole.log('App is visible');\n\t\t\t\trfpGateway.setAppInBackgroundMode = false;\n\t\t\t}\n\t\t}\n\t}, [pageHiddenStatus]);\n\n\tconst isMobile =\n\t\treactDeviceDetect.isMobile ||\n\t\treactDeviceDetect.isAndroid ||\n\t\treactDeviceDetect.isTablet ||\n\t\t'ontouchstart' in document.documentElement;\n\n\tuseEffect(() => {\n\t\tif (isMobile && !ROUTES_ALLOWED_ON_MOBILE.includes(location.pathname)) history.push(Routes.account.mobile);\n\t}, [width, height, isMobile, reactDeviceDetect, location.pathname]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n\twindow.location.hostname === 'localhost'\n\t// [::1] is the IPv6 localhost address.\n\t// window.location.hostname === '[::1]' ||\n\t// 127.0.0.0/8 are considered localhost for IPv4.\n\t// window.location.hostname.match(\n\t// /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n\t// )\n);\n\ntype Config = {\n\tonSuccess?: (registration: ServiceWorkerRegistration) => void;\n\tonUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n\t// console.info(\"process.env.NODE_ENV: \", process.env.NODE_ENV, process.env.NODE_ENV === 'production');\n\t// console.info(\"'serviceWorker' in navigator: \", 'serviceWorker' in navigator);\n\tif (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n\t\t// The URL constructor is available in all browsers that support SW.\n\t\tconst publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n\t\tif (publicUrl.origin !== window.location.origin) {\n\t\t\t// Our service worker won't work if PUBLIC_URL is on a different origin\n\t\t\t// from what our page is served on. This might happen if a CDN is used to\n\t\t\t// serve assets; see https://github.com/facebook/create-react-app/issues/2374\n\t\t\treturn;\n\t\t}\n\n\t\twindow.addEventListener('load', () => {\n\t\t\tconst swUrl = `${process.env.PUBLIC_URL}/sw.js`;\n\n\t\t\tif (isLocalhost) {\n\t\t\t\t// This is running on localhost. Let's check if a service worker still exists or not.\n\t\t\t\tcheckValidServiceWorker(swUrl, config);\n\n\t\t\t\t// Add some additional logging to localhost, pointing developers to the\n\t\t\t\t// service worker/PWA documentation.\n\t\t\t\tnavigator.serviceWorker.ready.then(() => {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'This web app is being served cache-first by a service ' +\n\t\t\t\t\t\t\t'worker. To learn more, visit https://bit.ly/CRA-PWA'\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Is not localhost. Just register service worker\n\t\t\t\tregisterValidSW(swUrl, config);\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n\tnavigator.serviceWorker\n\t\t.register(swUrl)\n\t\t.then((registration) => {\n\t\t\tregistration.onupdatefound = () => {\n\t\t\t\tconst installingWorker = registration.installing;\n\t\t\t\tif (installingWorker == null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tinstallingWorker.onstatechange = () => {\n\n\t\t\t\t\tif (installingWorker.state === 'installed') {\n\t\t\t\t\t\tif (navigator.serviceWorker.controller) {\n\t\t\t\t\t\t\t// At this point, the updated precached content has been fetched,\n\t\t\t\t\t\t\t// but the previous service worker will still serve the older\n\t\t\t\t\t\t\t// content until all client tabs are closed.\n\n\t\t\t\t\t\t\t// Execute callback\n\t\t\t\t\t\t\tif (config && config.onUpdate) {\n\t\t\t\t\t\t\t\tconfig.onUpdate(registration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// At this point, everything has been precached.\n\t\t\t\t\t\t\t// It's the perfect time to display a\n\t\t\t\t\t\t\t// \"Content is cached for offline use.\" message.\n\n\t\t\t\t\t\t\t// Execute callback\n\t\t\t\t\t\t\tif (config && config.onSuccess) {\n\t\t\t\t\t\t\t\tconfig.onSuccess(registration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.error('Error during service worker registration:', error);\n\t\t});\n}\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n\t// Check if the service worker can be found. If it can't reload the page.\n\tfetch(swUrl, {\n\t\theaders: { 'Service-Worker': 'script' },\n\t})\n\t\t.then((response) => {\n\t\t\t// Ensure service worker exists, and that we really are getting a JS file.\n\t\t\tconst contentType = response.headers.get('content-type');\n\t\t\tif (response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1)) {\n\t\t\t\t// No service worker found. Probably a different app. Reload the page.\n\t\t\t\tnavigator.serviceWorker.ready.then((registration) => {\n\t\t\t\t\tregistration.unregister().then(() => {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Service worker found. Proceed as normal.\n\t\t\t\tregisterValidSW(swUrl, config);\n\t\t\t}\n\t\t})\n\t\t.catch(() => {\n\t\t\tconsole.log('No internet connection found. App is running in offline mode.');\n\t\t});\n}\n\nexport function unregister() {\n\tif ('serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.ready\n\t\t\t.then((registration) => {\n\t\t\t\tregistration.unregister();\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error(error.message);\n\t\t\t});\n\t}\n}\n\nexport function handleSkipWaiting() {\n\tconsole.info(\"handleSkipWaiting\")\n\tif ('serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.getRegistration()\n\t\t\t.then((registration) => {\n\t\t\t\tif (registration?.waiting) {\n\t\t\t\t\tregistration.waiting.postMessage({action: 'SKIP_WAITING'});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error(error.message);\n\t\t\t});\n\t}\n}\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { BrowserRouter as Router } from 'react-router-dom';\n\n// must be imported before \nimport 'semantic-ui-css/semantic.min.css';\nimport './index.scss';\n\nimport './setup/i18n';\nimport './setup/gtm';\nimport { DependencyContainer, IResolver, Resolver } from './utils/functions/Ioc';\nimport { WindowContextProvider } from './contexts/WindowContext';\nimport { default as RfpGateway } from './gateways/RfpGateway/RfpGateway';\nimport { default as BinaryRfpGateway } from './gateways/RfpGateway/BinaryRfpGateway';\nimport { InstrumentContextProvider } from './contexts/InstrumentContext';\nimport { AppContextProvider } from './contexts/AppContext';\nimport { DashboardContextProvider } from './contexts/DashboardContext';\nimport { ChartContextProvider } from './contexts/ChartContext';\nimport { showSkipWaitingPrompt } from './shared/NewUpdateNotification/utils';\nimport { MarginRulesContextProvider } from './contexts/MarginRulesContext';\n//import { isProduction, isPreviewProduction } from './setup/config';\nimport App from './App';\nimport * as serviceWorkerContainer from './workers/serviceWorkerContainer';\n\nconst dependencyContainer = new DependencyContainer()\n\t.registerSingle(RfpGateway, (resolver: IResolver) => {\n\t\tconst instance = new BinaryRfpGateway({\n\t\t\tdefaultFeedId: 'VTFeed',\n\t\t\tbaseUrl: `${process.env.REACT_APP_RFP_BINARY_WEBPROXY}`,\n\t\t\twebSocket: {\n\t\t\t\tconnectTimeout: 15000,\n\t\t\t\tfeedDelay: 0,\n\t\t\t\tautoReconnect: false, // (isProduction || isPreviewProduction) ? { interval: 1000 } : false,\n\t\t\t\tsimulateQuotes: false,\n\t\t\t},\n\t\t});\n\n\t\tif (\n\t\t\tprocess.env &&\n\t\t\tprocess.env.REACT_APP_ENV === 'development--' &&\n\t\t\tconsole &&\n\t\t\ttypeof console.debug === 'function'\n\t\t) {\n\t\t\tinstance.debugHandler = (...args: any[]) => {\n\t\t\t\tif (args.length > 0 && (args[0] as string).indexOf('MarketWatch') >= 0) {\n\t\t\t\t\tconsole.log(`[${new Date()}]: RfpGateway:`, args);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\treturn instance;\n\t})\n\t.registerSingle(InstrumentContextProvider, (resolver: IResolver) => {\n\t\treturn new InstrumentContextProvider();\n\t})\n\t.registerSingle(AppContextProvider, (resolver: IResolver) => {\n\t\treturn AppContextProvider.instance;\n\t})\n\t.registerSingle(DashboardContextProvider, (resolver: IResolver) => {\n\t\treturn DashboardContextProvider.instance;\n\t})\n\t.registerSingle(MarginRulesContextProvider, (resolver: IResolver) => {\n\t\treturn MarginRulesContextProvider.instance;\n\t})\n\t.registerSingle(ChartContextProvider, (resolver: IResolver) => {\n\t\treturn ChartContextProvider.instance;\n\t})\n\t.register(WindowContextProvider, new WindowContextProvider(globalThis.window));\n\nResolver.setResolver(dependencyContainer.resolver);\n\nconst container = document.getElementById('root');\nconst root = createRoot(container!);\nroot.render(\n\t\n\t\t\n\t\n);\n\n// const onUpdate = () => {\n// \tshowSkipWaitingPrompt();\n// };\n\nwindow.addEventListener('load', async () => {\n\t// When the user asks to refresh the UI, we'll need to reload the window\n\tif (navigator.serviceWorker) {\n\t\tconst registration = await navigator.serviceWorker.getRegistration();\n\n\t\t// ensure the case when the updatefound event was missed is also handled\n\t\t// by re-invoking the prompt when there's a waiting Service Worker\n\t\tif (registration?.waiting) {\n\t\t\tshowSkipWaitingPrompt();\n\t\t}\n\n\t\tif (registration?.active) {\n\t\t\tsetInterval(() => {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (registration) {\n\t\t\t\t\tconsole.info('registration -> check for updates');\n\t\t\t\t\tregistration\n\t\t\t\t\t\t.update()\n\t\t\t\t\t\t.then((r) => {})\n\t\t\t\t\t\t.catch((e) => {});\n\t\t\t\t}\n\t\t\t}, 600000);\n\t\t}\n\n\t\tlet refreshing = false;\n\n\t\t// detect controller change and refresh the page\n\t\tnavigator.serviceWorker.addEventListener('controllerchange', () => {\n\t\t\tif (!refreshing) {\n\t\t\t\twindow.location.reload();\n\t\t\t\trefreshing = true;\n\t\t\t}\n\t\t});\n\t}\n});\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\nserviceWorkerContainer.unregister();\n// serviceWorkerContainer.register({onUpdate});\n\n//close child windows when this window closes\nResolver.resolve(WindowContextProvider).once('beforeUnload', (sender, event) => {\n\tsender.children.forEach((child) => {\n\t\tchild.window.close();\n\t});\n});\n","export const SW_UPDATE_NOTIFICATION_DIALOG_ID = 'sw-update-notification';\nexport const IS_VISIBLE_DIALOG_CLASS = 'isDialogVisible';\n\nexport const showSkipWaitingPrompt = () => {\n console.info(\"showSkipWaitingPrompt\")\n const notificationDialog = document.getElementById(SW_UPDATE_NOTIFICATION_DIALOG_ID);\n if (notificationDialog) {\n notificationDialog.classList.add(IS_VISIBLE_DIALOG_CLASS);\n }\n};\n\nexport const hideSkipWaitingPrompt = () => {\n console.info(\"hideSkipWaitingPrompt\")\n\n const notificationDialog = document.getElementById(SW_UPDATE_NOTIFICATION_DIALOG_ID);\n if (notificationDialog) {\n notificationDialog.classList.remove(IS_VISIBLE_DIALOG_CLASS);\n }\n};\n"],"sourceRoot":""}